From 7c29d47927c9aee6bcedf7dba410fa99f5d79f0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Mon, 25 Nov 2024 10:41:53 +0000 Subject: [PATCH 01/86] feat: add decorator wrapper --- R/utils.R | 32 +++++++++++++++++++++++ inst/WORDLIST | 1 + man/srv_decorate_teal_data.Rd | 36 ++++++++++++++++++++++++++ man/tm_a_gee.Rd | 4 +-- man/tm_a_mmrm.Rd | 4 +-- man/tm_g_barchart_simple.Rd | 4 +-- man/tm_g_ci.Rd | 4 +-- man/tm_g_forest_rsp.Rd | 4 +-- man/tm_g_forest_tte.Rd | 4 +-- man/tm_g_ipp.Rd | 4 +-- man/tm_g_km.Rd | 4 +-- man/tm_g_lineplot.Rd | 4 +-- man/tm_g_pp_adverse_events.Rd | 4 +-- man/tm_g_pp_patient_timeline.Rd | 4 +-- man/tm_g_pp_therapy.Rd | 4 +-- man/tm_g_pp_vitals.Rd | 4 +-- man/tm_t_abnormality.Rd | 4 +-- man/tm_t_abnormality_by_worst_grade.Rd | 4 +-- man/tm_t_ancova.Rd | 4 +-- man/tm_t_binary_outcome.Rd | 4 +-- man/tm_t_coxreg.Rd | 8 +++--- man/tm_t_events.Rd | 4 +-- man/tm_t_events_by_grade.Rd | 4 +-- man/tm_t_events_patyear.Rd | 8 +++--- man/tm_t_events_summary.Rd | 4 +-- man/tm_t_exposure.Rd | 4 +-- man/tm_t_logistic.Rd | 4 +-- man/tm_t_mult_events.Rd | 4 +-- man/tm_t_pp_basic_info.Rd | 4 +-- man/tm_t_pp_laboratory.Rd | 4 +-- man/tm_t_pp_medical_history.Rd | 4 +-- man/tm_t_pp_prior_medication.Rd | 4 +-- man/tm_t_shift_by_arm.Rd | 4 +-- man/tm_t_shift_by_arm_by_worst.Rd | 4 +-- man/tm_t_shift_by_grade.Rd | 4 +-- man/tm_t_smq.Rd | 4 +-- man/tm_t_summary.Rd | 4 +-- man/tm_t_summary_by.Rd | 4 +-- man/tm_t_tte.Rd | 4 +-- 39 files changed, 145 insertions(+), 76 deletions(-) create mode 100644 man/srv_decorate_teal_data.Rd diff --git a/R/utils.R b/R/utils.R index eba21ecfd..e478b07e8 100644 --- a/R/utils.R +++ b/R/utils.R @@ -946,3 +946,35 @@ set_default_total_label <- function(total_label) { # for mocking in tests interactive <- NULL + +#' Wrappers around `srv_transform_teal_data` that allows to decorate the data +#' @inheritParams teal::srv_transform_teal_data +#' @param expr (`expression`) to evaluate on the output of the decoration. +#' Must be inline code. See [within()] +#' Default is `NULL` which won't append any expression. +#' @details +#' `srv_decorate_teal_data` is a wrapper around `srv_transform_teal_data` that +#' allows to decorate the data with additional reactive expressions. +#' When original `teal_data` object is in error state, it will show that error +#' first. +#' +#' @keywords internal +srv_decorate_teal_data <- function(id, data, decorators, expr = NULL) { + expr_quosure <- rlang::enexpr(expr) + decorated_output <- srv_transform_teal_data(id, data = data, transformators = decorators) + + reactive({ + req(data(), decorated_output()) # ensure original errors are displayed + if (is.null(expr_quosure)) { + decorated_output() + } else { + eval_code(decorated_output(), expr_quosure) + } + }) +} + +#' @rdname srv_decorate_teal_data +#' @details +#' `ui_decorate_teal_data` is a wrapper around `ui_transform_teal_data`. +#' @keywords internal +ui_decorate_teal_data <- teal::ui_transform_teal_data diff --git a/inst/WORDLIST b/inst/WORDLIST index 8dd5973dd..b73251e66 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -25,6 +25,7 @@ programmatically repo responder responders +transformator unadjusted univariable unstratified diff --git a/man/srv_decorate_teal_data.Rd b/man/srv_decorate_teal_data.Rd new file mode 100644 index 000000000..9290f40ab --- /dev/null +++ b/man/srv_decorate_teal_data.Rd @@ -0,0 +1,36 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils.R +\name{srv_decorate_teal_data} +\alias{srv_decorate_teal_data} +\alias{ui_decorate_teal_data} +\title{Wrappers around \code{srv_transform_teal_data} that allows to decorate the data} +\usage{ +srv_decorate_teal_data(id, data, decorators, expr = NULL) + +ui_decorate_teal_data(id, transformators, class = "well") +} +\arguments{ +\item{id}{(\code{character(1)}) Module id} + +\item{data}{(\verb{reactive teal_data})} + +\item{expr}{(\code{expression}) to evaluate on the output of the decoration. +Must be inline code. See \code{\link[=within]{within()}} +Default is \code{NULL} which won't append any expression.} + +\item{transformators}{(\code{list} of \code{teal_transform_module}) that will be applied to transformator module's data input.} + +\item{class}{(character(1)) CSS class to be added in the \code{div} wrapper tag.} +} +\description{ +Wrappers around \code{srv_transform_teal_data} that allows to decorate the data +} +\details{ +\code{srv_decorate_teal_data} is a wrapper around \code{srv_transform_teal_data} that +allows to decorate the data with additional reactive expressions. +When original \code{teal_data} object is in error state, it will show that error +first. + +\code{ui_decorate_teal_data} is a wrapper around \code{ui_transform_teal_data}. +} +\keyword{internal} diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index 35dd29535..75bb4aa7f 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -127,8 +127,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeUAipV1DU2t7fwAjqI6AKQAfNM9Jca01OSM7KUAQtUAYrUAhAC8OgpgAJqnOgBkZdt7AEw6RyfnpzZzCxAlJTCCoeTsRbfUoANQAkpUwbYdMcoOJjFB1ER1qCIVC5LggSVUZDbAA5GE6ZgQADWG3BuLx73mWO+cIwCKR62pn2+bJ09IggngjBk1hmNK+7JK9MZpGR1kxQrZoNK1U2YIJx1ltT0OgArAAGHQAYh0AClBKJSByplAvq1YD5dOKdABzOAmsL0bKeHQUbxEbKkDBAllA-iMIjW7TUUTxCAAXwCACsvRAoiS4Kxw3kbMl+HAEcJSFECPxaKImnHsonk6JgNB4KnEnIALquaDoOrZdKAoV5Ql5KU-ATCMSEvhCEThoENdpRB1wdvC6hQehwaiE04AcScLjwtLyVd0x1OFQGpx77Kgmm4UTPjEJBAyXoIYiiokXcHUcH4gLAKoVeKPJloLTfQl7GcDFaVofgLxYa9bxkB8nxEV93wID8HEqBxNn1MFyl-U40IwrC3gKU5UPQzDsLAUDpTpRgYEgq9jhvO84OfRD2GQ-csAAWRwz8uIAYXIjEXlKLjCNpTRC3SOjoKY0RHxY8gkI-HEoR4lT8UI4SKVUijjzZVAWFgfMZNguT4JfRSZ2FHRGNMwkz2oQQ4DzGD7xrUJgGAfd+kqU46zrIiwAABRE0pOIEniQqwMKxKotlzMQ5cwB2ABpSEDB2AB1TZTlpSjhWITRpIY1zmIQyz2LATZSkqDdAtKNceNqgANHjqtqxB1M0vEHGqaoAjZAadACAJaGMHR2G9VREQ0bRrBsIohVELIIFYUp0HYNBUAAEkEWgCi27an0YbR-CUSMlDASM6yAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index 58225572c..ee5c3c101 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEosMAD6jHDGIcQwqPpGdKKk7Eo6OgCCWACyAMIAIjoAvDoJSSmpOuHGhToKYBmZOgBCtbhlqdGxRQTJdVnpLTW9Ddm1AakBAUr8UKRQcTpc1CHTs9ZTM3OGOgDutKQAFrQQ7CtQuDogZWm5AMoAMvOkMAQhcAAeIVD8otRXuQCKN0ez1eHy+AEdRDoAKQAPmhbRMtGo5EY7DSjTuADEHgBCIq1ACatR0ADJ0picQAmHT4wbEsA2OEIiDlJEo1TogBqAEkbjzbDCjtCdN1agB1JxOADSOgAjDpcmlCToABwDCVS2U0pUquUAVg1YElMp0AGZFcqdFSqaMmfDETBBLNyMlWWz0rz+YKilBxMYoOoiGi0l6BXJWu62aG+QKAHLVZgQADW3Njtjj9pZHvKfowAaDaKziLZeYggngjBk1hhDqjHrzBdIwZrAGIAOQ6GBQZNHADmopIojgBGdWl05crMhMgebjERAQAvgEAFZEI4hZNwViiE4bGxbfgRKDCUhRfi0UQvNcbrc74DQeC705yAC6rmg6HmRz2btSp2qU5I1SPghBEKEilA4QxD-conk+EIYBgRgYFgtlqCgeg4GoapakyTIshaEsdFOR9dAJOoARuIj61SKBNG4EIGMYaoCH2dcCDEEJhxEdQ4H4dgxTqLk0juI1sgACQAcVGc5alDUTZOI2h+CYlhWPYmQuJ4kdyAEoSHBuBxGgAKR5XIjSM0zzNkwZDOMsyLMZYCGxQtSWK6TTONEbjsN0-jBJ6eojXqPJbPkwjnOIzRLz2dyNI47S-L4-SgrDWwQvSuNwuE9MlNonRgjCCIoiIGJqiKypSpiFy2VQFhYAIfgEq0nydJStCPTYxKIJ0BjqEEOAoi8mDTmAYB5Ko2pX1fOSwAABQyNIcicubFqwZb8pzVJ2r03CwCxaV+QMLFxWaMBiIjYjiE0eLPJ63zeL0wLakaNIbhcPBBjSKTPrmj6AA0jTej7EBjb1bLjBw7juMZyjhiYlFoKp2COVFZ3HawbEud1REOCBWDSdB2DQVAABJBFoc5SbJ4dGG0fwlEXJQwEXV8gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index f1e92bc46..664cde4e3 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -182,8 +182,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTowgonk7ACStrYAYp0AvCZQ6gHsCmAAmic207MQ8-NFpWnUUPRw1MdgqypkBrZEP4xwBI6AAKRFQwgSlhumyeAHMLkEGi1Gk4uj0+oNhvFdFc5g1jLRqORGOwAITsdgo2wAeQAGgBxLA6HZ7ACMNgAZDpKU5Wk4AGrMvYnACyq3azQuOi5lKwIqFOhOjUQOmajEEsJ0tIRQQAvkEAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfSNJvNluA0HgVtycgAurEWh0urlgMAlW12icQ2GIMjUXaqjG4yjE8mlGhUF1ysVjjcdLlmWWqrg5nwhCJRBXa8IxCXbj00rC0vQWAQSiwXaJaDBInBW7cdE8XuNhWBU01oFFB6ITtXS7cBhXcv0BqQ1APUHACGPx5XEgHdDOIwm8Hjx6JXofSBX7yJ1GlRAej7eT73jQQxBWmgsLQzwiK6JR-i234nk08arjB45fmuCHzEqcoroqs4AMK2I06F4JhfLajeyEoZhWCNFhLgESc6xbNeNQnK0jSbNsGFMfYjS4QATCc0EnoiKFyPBKEvo+cD8BWSo4XhIorvx8yLEStAjhWmyNO0fIKYJtzCdBBLUNOE4eqQx7jlugy7gc+6HmZJ65OeUmzvG8mkXeD7qM+Hk2UhZENL+MgAXsQGMCB9BgQF-5WgpJ5XiJfk6L5CWobO+GMdhuFpYRTjEfFyUnBRVHsR8GxsTRYDMaxDGEZxPF8W5CE6UJeUIWJ6gSU5RGuQlSkaKpezqZpLgNfMTW6S18wWTue7vp+dnmVUjmXs02YkWRbVPnsG2zbZMXzJFQU6CFYURRBgVWqmNRfrOTg0gyWDFSifL8o9vJOA9YByHpI23BtHV7AAcg47TtBNJ69SpIhqRpWk-ToY2jdB30nkMjr-ptxmiKZClTVZb4frtcMObAF6Yam3Wid5Xmvj580-mdUWAcBoFwOBkEXStThXe8VJ0oyr3PQL70ImD7k0-9ZO3XzH2i7cEP9Tog2w2RCMNMjMG4zNBNJQhxPwE5V4U61VNbd5O06yhB0NsFzPhazVt0zBcV7bcFsJWhcnlZRmWe+lXVrclDQFZR1HpXRZV+yxEc1RRdVgC7iNw2rsvzH9kmA8DoMJ-LUMDTDw0q9pSMTawaRo3AGN0Fjjua9Z5uOw0euk1mod7Rt1OPvXCdW0zoUs2z52Upz3NKlL91Cy9XtvR9X0pw0acG29k9zwszqQ6TSsF0J2mi7X+NzXtTcGy5AfGzTHf74TCU9zbfd2wPUUN+OztJ-tT8nh7j0yVlTE5Ub+VgEKqHTC4dqpMSjmAiqtVGi8Xjq-NWCd1brW8hLIGIMV45w3vnPaqt4ZI1vIJIIQRaDGG5OUYk1ktCji+rUOYogygQFYI0dA7B8wABJBC0BqOw+8jBtAxAgLqJQYBdQhiAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index 7f3fc462f..009d28609 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -136,8 +136,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlbUAQg1NLe2d-NT0SgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5idaJTqdTqFB6HBqCS-gBhEjGWh7cy6ACSKkYmm4OgACv5SH88VSWToOpLGCSCq02qQ1MdRKg4ARmcqygV7rpsdCaoC8H0TaJOYbSCSHSJ1DF9YbjSaygQsksCGISUboVgALI8yoKnR-QZhrAAaSwACY-nJFT7qa6nXB+MG0f9w5G0xnM6SjrRUCISQAxcq1apOUuZgVtXO1+uNu3KoIm9PdsqsGJqjXJLU6qDuz0hpUms2wC0x-5ghUD6kC6jkdXYuiiUjen0brceg0zsvUtXEy1gaXlLDlCNR22zst+gNBndwbTUTYwwYAElve9H37F9M2zdR20-b9fzBQC7wfSM5GAABGZ5mzLGAKyrRc6wbJs1xNNkOS5a9qkddQdGIxA-kI6lQPPI9VBPL06JZS9uX+AA1EVqhFWxVzAn03xkD8qK-TlYKGf9yh4vjbAY88dAg8g82gyT2D-GS5P45C0IwzMsM3Stq2xPDGwMn1iM5TjyLdZ1NHOTIaLANidF7H1FPtCjnWxFSWLPMtrNIpdymgahWAAL3bLjuEEOBBPPETAyvHQQ24+to15AAJABxEs3JUqDQq4zLn3PIyNBwjt8MsllW2K8yXCEsoPJZLzqT8AJR3CcddQCg8WXneBOIBRKfRUl0fIGtzgs4vl-HVehWB0NVaHZERxszZKxPSxsAA0srAap7HKWxyhQo6Tvvc7UzADrvPs4q9tO87LvuurqUqkzcM7AiWvXWg2zUnQmrotr6O7DygiCWhjB0dhci3ScNG0awbBKJVRByCBWHKdB2ERf9BFoIoiYdCVVCCGYlDAGZniAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index c627cc585..886c467e9 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -208,8 +208,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc1YrV09fYPD-IyiOgCkAHyrEw0wgonk7I0Aao3tAMI6ALw6-GkkxGnLqGnUUPRw1Icn5zYbWxANQGFYolF5vD7sBRgM4lFhQdSqHRYMTCUgAegAYuV+OUAOZQuS-TbbEy0ajkRjsAAKjSwjQAsmdmjoAITXKEAeSOWAAkgA5I5QnQAHyaRx5rR5tiu7LAGI57XaHIA6joHFSCUoAL5BABWRHKaQA1nBWKJKokbPl+HBjFBUWkCDjRH19YaTWbgNB4ObcnIALqxFodLq5YDAKHB9pQ-2BiAtaahqrhyNTVoxuNKFgwR62x1EGCoLp0USkSEAppYelXHQlsskxi2mtQgBCiB0VNeBDg9CIUNwJOIhZrBEhYEa7eajEEuJ0AA1+zooWd22cC-RyglLBBNRW5AOK7TGczrnXy0DG8Zm+OqzoW-3BwWi9dR5Hb41F2-q2ddw0gkEs3QLpymKc8biqGtcgPHYBGEMQaz4IQRHNEkejSXE0mMAIfEeURUDAoFXneahrwxbDSyRMRUBIUQ4AfCsgVyb1dFlBN0zwEkGmzNJNBYEcSgNbtRDSWiRARfgCKBHReMYWg3hER0BJkMRDjadoalfG96U-LSmQJfdOMBL89LAQyDIYwFuMvfNh2uKy8yHVBoKk1A4V6fh+MEsQRI+OBxMkoFeOoQQ4EUrzzTYmooRpOljx0mKGQJZypKXMB+SOJxbChMzksBURBHoXFGCIQRnhkzzlOE0S-PICTDIaGS5PoBSCCUoTVI6GpmIitTCVyoFNJbeksAAaSwAAmHTWicBcwCCFLzJS0tmESHi+JfNrvOq-z6uklgmpazaes6nRNNaexGlsRoAEYpouq7JrmxaUtS866Qe7KLL-fqdEiIhSDSEo4FoXESlIEd2AANgABmh9SdHG2H4cRpHnsY217XJXM8Jo+DT1oUsAsBFsnFaaYqR5Gsz12honghqFWkSZrdGaAm4CgWidHYVpmkUPBUr5f6dCcILBHk3R2D5Jw+bRl6RG0agVhfImUuXJ8RHISicYgTn2DOLA+aisAqRYDRuC16idYlqkDampmRB0VnaI5iWecNmmjON4qirEUQtBZtmXa5qleZ0wXwZF7gxeZrmpb5j35pe2WgXSzKqYJ+svqkunlbVwsNd0ZFtd1-XDdSk3GDNkii8t3WbZln7CLgBWldOlWpLzyI4E1mvca50uw6FyPgvF2Ppfi025Orqi++pW2OKz1WvaIH3RD97RHcDuvQ-5hn7YD53dbdz6XsBROFsbnQuV5AV08Jj2c7b6LvcbNf-c3w-rZ3o3GdHp32aPjvZOUl5YfFbppKkL9fbv3-kHak39Xr7w-gA12CCoTh2FqLUektx5zV2ufM+JJE7-iULQK87BygUnhBobQ1gbB1ArKIMoEBWCNHQOwNAqAAAkghaA1E4Vw2ijBtAxAgFqJQYAtT+iAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index fd262399b..8a0c9b423 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -186,8 +186,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc22tk5dPX2Dw-yk5BMtHQAkWI0AwrP5-IxEkXDa1KLs6+1bu042AKQAfPeFxSVp1FD0cNTsCmBYKAEOD-IIAXyCACsiOU0gBrOCsC65GwHODGKDCUhpAj8WiiPrQ2EIpHAaDwZFVOQAXViVy6uWAwH+V3+1NpEBa032RkZzLAXJmbI5ShYMDSjHROKIMFQXToolIfwgDUaWAAsjoALw6BVKiYNSXGbU6f4AIUQOgACp9gfQiP9cAadMRZSaCH8BZbmoxBABzHQADUdprAO0tOxl9HKCUsEFBEzkTpVTQ1O2aJr1yoahvRJpZGp0Zsdztdcp1HoLmsaIarOh2CZTQSCovQXXKxWzOlyJtyyYafCEIlEJsHwjEXYaPTSfrSxgCPjSKzgk5zn2+1HzYAAYgvFTpWoJGJotNwSymc92quTdDqWVMhXhnQ0xWlNCx3SUYcDRGlRD84HUOB+FXS930YWgvhEHEvxkCcrhqSsBQ1WtkPVdNQSTZ8cyrDCwGwrCLxzV8jWlN0dRIqUy37S8dFQFhYFxT9vzEP8AKAkDsIad9qEEOAYJYi5BScGp-itNVGnQ5pUPE7Z1VBGjaNDAB5Vp-gIxSc1EQR6D9I5BFQN8PwrWCfzYkQONAnNwMg+hoIIUz4LadoahvITnLkQilIaJCzXVLAAGksAAJlQ1onGDMAgiUrzaMVZhEiMxhmLg39-ws8hOKIsCWFs+zHPcjpEM9Vp7EaWxGgARjCsqKtCqLYqU-5Su2Or1OynRopzLrmyUWhjXYcpyDUDRtGsGw6hTUQyggVhGnQdg0FQDZBFoGolo2f9j1UcElDAMFqSAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 907e24fc6..0ae053a1f 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -174,8 +174,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTpjMnDsAIyIAEwADDbTsxDzOvzG-QORMsVp0Nn7Tc3tAEJdPX2Dw-zU9JMzcw3GtNTkRjsBytBz3ABSAElmpNyhNbh0ACQgsFQ5o7b43BpHE5nAgXK4YvYHP4A1TsRoANUhrUhth0AEIALw6BRgVoAYSwTicADlIbyAOJsoIAXyCACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAj8WiiPpSmXyxXAaDwJW5OQAXViLQ6XVywGAbId7TZNrtEBaDydVRdbru9093qUaFQXXKxXYc1yOhZuVwcz4QhEogTOlTwjEsax3RgaQA5mlaOg8wcGtQoPQ4OMWWzIXEtLQhNwdAAFBK0CikTv+Uhs5P57FVC26BtgX0hvA-eYsQuaFiZgglaUEMRpUR1uDqOD8CuVhpL6iCOC6tdLJXTmpurAAWQ5zRFw6PDTv96abLnDTkr8rqAsLAeorpeG6iFuO57geP7zCeZ4XuuuY3qyYAdo0WCNI+z5gH+sHvlO7S2N+I46HhpFQCeaRLowoFIRB24iNBh5HjRtA1iIiFXhSwY1AQsZTpSjQengqEcgAEsKuHkW+qFUsJJFHjJlaUdwgjUcuLKrvRkFMeQMGkceLDsfQnHadxKH8W6QntA4IrKUe1nCXZs6GSYtADPumb2M4sEOfMrYabRWlgZujG7vpLGVmxHHnuZ4E8Q8fECSiELQvZ-6OWAqVokO+HuZ5-DeY4Likf5x4GhcNF0VeukRfuUUHDFplxaF168ToVmCTSdIZfl1k9cRYB+Zl8z0FAjHlOe1UhTp4XMflzVmW1iX3MlbL3I0rQuNJo0HBtW07Xt8x-IVxW+WVx0jPwaTjZN3hpCUUgTjoABiwnbcd26Acw5C3awaREPQGYsu97TbXOQS-koQS0MYOjsOUgJQBY2jWDYdQ3KIZQQKwjTlhGiKCLQNSE9ujDaDEECikoYCijaQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index 02308139e..3a5255cdb 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -171,8 +171,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlba2Tg1NLe2d-KTkSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAZDL7JH5-KqDFxgYFvFgwGKMfYnIgwVANOiiUjsPrlADCtnKWAAsoTKjoALw6HF4vplVHGGk6aHknQAIT+uEZOmImNZBHx-w55R5bNFZJ0hL+QTKcl5EDKpOltPp+OVZR0zNZf05iB0AAVqFACHB6EQeXyBVjacLoYbKoxBABzHQADQlf0JhsJGPouTClmCYHlOiCQSUaCxqVymU1ZQKrIKSrKfCEIlErIzwjEie1TRirtWMAL2rpUHocGoerAAGk0KaIAYyXBaKpjf5SNatRWCvddLToWC4WmKzokTFNCwhVklubRDFRDW4Oo4PxyxOZ4xaFWRCd5zJ8wCig6pd6pZTL0SSeTr2HFXyK+yyX9nxHxxXUCxYKc5wuYjLqu66bh+ZQztQghwIegGbDCQxFH8RqkuUFKVJeKFYGhcpfhOfwAPLVO+fbak+pFlFOzLooKtJUWitp4WUuLMOE06zvaR6LsBIigVuFY7nu9AHgQXEnjUtRniK1ROF6eCSpyZJYPWWAAExyuRE7an8MlyR+mkTgc5rHDuAHHkuK68eQYEUdqgn7jBolwewp78tJsmXopylqRpTHagAcg4tSArZ4YKn0kZKLQLLsLk5BqBo2jWDYJRaqIOQQKw5ToOwMYACSCLQRT5SujDaIEsxKGAMzPEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_lineplot.Rd b/man/tm_g_lineplot.Rd index 0f3dbdf6f..0f5d0e954 100644 --- a/man/tm_g_lineplot.Rd +++ b/man/tm_g_lineplot.Rd @@ -160,8 +160,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBbgyhHMYBsqSiQUr8UKRQ+kZc1AD6GVnW6ZnZhjoA7rSkABa0EOFluDogSjo6AIIAIgDKADI5OqQwBPlwAB75UPyi1O1d3f0AQkMjY5PT-NT0OgCkAHx7Cx0wglnk7J0AagCSvbe2OgC8zybq+YxwAfyqV3cPWwtG73R4AORaMAaciCAF8ggArIgNfIAazgrFETSyNgqv2MUGEpHyBH4tFEYyRKPRmOA0HgWKKUDkAF1XBAegMhkzgMAFGBOf1+Sy2Rylqs8WVefyeithaKlGhUEMGjV2AsmS8dEzcAs+EIRKItfrhGJ1RAOh0RvkAOb5KRwSJEUjmy2W6hQehwaha-n9Bq6AAK-lI-N1Frd2rK9N0bxl4rDJ0tolIzCyWoItWRBDE+VE3rg6jg-FdkY6mhYtE9IhJWZkZsFLQI6oFWAAsmGdDL2wBhbqdmU92ydXv9sAw8NljrdjtgJMdOSTyOsDN1nOiPMFosl+eWiuMKv0GuZ7MN8VNls3TpCvBdsDLTq9Fy3-k9gASAHEB2BA++v+PF13acBWua9+V3QCIzdVAWFgVdTw3fMRG3UsywrahBDgWsEKuc870DEdOjbPtvwIrAiP5SCpzva9bHAqDLSCN0mJ0IIgloYwdHYBpyDUDRtGsGw2gjUR6ggVhOnQdglQAEkEWgWlk-NGG0GIIFhJQwFhFkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index a5e56dd54..3656ffc29 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -140,8 +140,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUEAvkEAVkTlaQDWcFYokqiRs+X4cGMUGEpDSBH4tFEPR+f0BwOA0HgINycgAurEWlMOrlgMAFGAiZMKXiCRAWm0SVUyRSGS4wLTYmhUB1ysV2KNcjoALw6XK4UZ8IQiUQinRS4RiAUQBoNLppADmaXQC20jFEcF62jIIK2quoUHocGWotZ-D1Bp0TmNpFEFIlKtVDVyWN0tsprXZHq9DVQLAopF9ctZE2peDNoYStAj8KINp0FOe5yu7oTOkiRDhJTgtA1JVIcoI7AAbAAGWuTGoAJnrjZ0LdbcmDIagcH2MErJV+BDEaQNInUcH4ypDqoIQ5kYjlmhYtEtInhC5HILZNVZTlsTiwAFkKV28w1x3BJ-xo5SD0fT2A8+fPV7SEQBhrmJDB8PR1eN4zrOOjzv+sqiiujBrvQG5gYuO6Bnu962AA8gAGgA4lgZ7drOgHkLe-ptGhWE4c+b6qq+s6yIIojcMUrB-ghY7WtehHATRW5LpBq7roa8Hbuwu4ZveWBOHG1EgQRU53m04lxi+eGqkQgi+EQ8DMdurEThxF6gdxEE6FBMFwYZwlIaJbSoQ4ti4fpMlEVZTg2XZFGzlJXpQBYJBaQBbFAfpgk8cZfGwQJ5kifujQAMIAHL2ZRXqOXJTixQl7khp5qoaJporBaIOnsVOnEhgVy5hWZ4EWW0yGNOMtjNAAmolIE6ClxENc1FJKXmkLEE5cUOJM1KUUEDRBEEtDGDo7DlPs3kaNo1g2HUnqiGUECsI06DsNyDyCLQNT7QajB6h8ShgO8eJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 5f34a838c..a7290456d 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -187,8 +187,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUENLQDCALIz3b0DIYEGCrDZbHQwQSJcjscENH7jWzNACaOgAvDpZKI4GkCiUKLCIA1icSfp9GrZ0RiFGB4PxJDoTjSdAA-HQAJgADLg4aTvuTKWjqbS4PTlp9mWyAIwAVm5vIa9mcrJ0Ut5NnWdyKpTS1Cg9Dg1FhYHGpEE-FYOmaUEtRGMOlNLFIOjtOm+opkCUsEBpch5RJJOh+TgAcij0ZioNjcfiKgqg-yKVSdDS6QymWAVQB2TnygOBhMC5Op0UMiWZ6W5vMFxWOdpsuWc9WgrXFEq6-WG42m82W622+1OOIu+3u-iejQkX3+gs-RqI5q2X4Y+dIpczwNz0OL5dNbdL8FBAC+QSUACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAjj0Q9C9Xre97AAQxotFMNI1DSLRtJBKZgF83y+gAukoQIwDed6iB0oE0oiDgolccE0s85xEXg8GrjuxFgAiTgAIo0RSnxqhR0G2J87JMRxADM3GfAALL656XhAmH3o+UByMA0HND8TFyUhYDIR06HiaIImAVhknSbJsFsQhik0ip+S4SatgEci5FQWApGvMJPrQOgHTlMUhINLkEa5BufBCCI2EYr5whiO5xJdGkADmaToNFXoUF+GjwFIcChSSeoGsswoAApxWQdi0El5QjHgvK5NA8ALFAujCjBLglfmxJlbAOLoRGsnyfVBaoCw8XldVlETJMkG8t1Gjxd+RCZfBdnWSN-hfvitARSUzoYqBABsuaTDUXKcttHJVpMfq8sCr7EPwEYECUl4EGIaTYiI6iiqlgZXTdYgRpoLC0PqIjftdMghbkwAyYZHXIchNk-M0TifAA8s007xg9cBPRdwrQ7DCPDQ1DTHbjOhVfsIJrQDt2iPdhqo+Q-AvSSb2AwFOhfYwP30H9DPk5JIN6XVEM2W0thOFgSn4zWOgo2jl1gU4Qsiw5BZi4GRMFTioiJIwq2YmTd2SzTdPEpzH0YizbMczrD7A6DtXGZDlELgeYBKwWeuitL0EO6L6obiSKsVRQ6Pa+9FOu7T8ZG0zpu-TiEfc9brR83b0H7qLPuBqH7sISnCuBs7jXq6r90a1rEeU49+vhxbn3fdH-3B3H7VKfz8Fzp7SMEw0Gdrcardrl7BN5x5Bf+8OpPB2X1PPZXwfV6ztex1bje21D3xtGGjuD8SXeYj3q-Z073u8lVjCGvErBF06l0WxPaMGw0Eez2bMcWw3hn6c3HtIsi7fi9vZlUd-A+A804NGPqfG0vRR5B0ZjfCuHdoHk0fvPF+i836JwFtuQBm9O5Uylt3ZOYYsGHwJosE+1Az4X01lfceoc74IONszGu7Nn711QYhZe9sv4-xrH-MCC4iHANKqIMhFCA7UJgbQ6ejMkHMLrozV+7DlJJyzoQ7hLtcE00zmvFEOcSTvGJPooIQRaD2nYOUfYUALDaGsDYOoAZRBlAgKwRo6B2BoFQA8QQtAajuIeNiRg2gYgQCPEoMAR5kJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index f91584fa7..09cc86cf1 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -171,8 +171,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAwgCyyTqkMARpcAAeaVD8BDD1Tc0AygAyXT19g8P8otQ6AKQAfOsmtNTkjOwOUw4AQgBSAJLNG+U7LR0AJMdnV81BDQ-tjx2NU7bNWydfJfR5-AFAiag35OABygOBRlBjThCKUAF8gkoAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfVx+KJJOABHYCjALVmvJqvK+vLkAF0lCMxoTiaIutzef8HM0AJrXQU6XkvC7qvCavn-NF63kdKZOACKGuFtlaAEYrXybQAmB2NG0AZldNoALKKcXiIDKSWSoHJgMK2u1XZHeWKulKYEHRLF+XNKVVgOG+dMZrGJRAvl1cpmIx087E0KguuVijyIA1cjoALw6XK4CZ8IQiOUtzvCMR1hoNHppADmaXQaVKqjQHAmQ501Cg9DgaxbvNsJRnqFYgvnQ9y0Hgzf1Irw+4aqBYFFIR906+zAvP9YXOivGhvDKIa-12ree5fBdIiIekt1oUcSlIE9uQANgABjgmYaidBCkJ0FDULkdtAKHBJaEYVdoJKPECDENJRFXOB1DgfhB1fBoCGImQxBPTQWFoZcRAZJjSNJL4hUdS4sCcXMwCwi8hwokRqP4aCeUE4TRI+V9xJwhiYCpYhZJbRiSLIqSqPIWiJIYniWJbNjGA4+guN05i+MjASOmaJxWgAeWaUVsPohoDJkk8TXaFz3M8sAJNU+ixnKUYiL00RyMomS6Misyex0SzrNs1L2H4-UOkueFWi8kydD8oyArAfLCt5cLvNfMZ+CICjYvshLpKM5L6tS1j2M4uBuLinLHLyoK3LNYq1MkxLyofZyxpcMLJoi+qYFIRgoJ01K2sMmjOoXOzeJ6qy+oG+yho6Jz2nsWwJp80rppoiqOmumqlrq-aNKawQWt47akpKg7zPS3qbP6wGHIukbmjGhxbp8srHp0+S5pOP03oksZGCIQRyB+-SHuMybTLio7MrB7LcsCrA3IcWwFuW+iEe0kbqdphbaoxz7RGMRgAEc8fipm9qHcHSZO8HzvaS7oamAAxLBLTE97XyZp7RrlhXXvohmRZgURSH4VgBb+jqAe6iyQaywbKYNAEVThxmCYq8FVS1lTlfUihDeNoWzZJi3jtB07eMlgSUXhe2lZK1WH3D13Fu1-dlKCIJaGMHR2HKA4oAsbRrBsOoX1EMoIFYRp0HYStHkEWgairijGG0GIIHRJQwHRMUgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index e4562143c..94e8b93a2 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -116,8 +116,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlQBq1Q1NLe2d-JqiSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vQbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5jF0DFNJluJs+tSdNQoPQ4NQSX8BqzqNM8BzqQV7rpsdCwX88VTOTpUCwKKQpQL-jVAWLFZyVRo1SciPyZWAHNUHAAhABSAElKvLxWVUP5jlk4LQ6VlSCSCOwAGwABiDtSKACYQ2GdJGo3IFUrlSxYKc-VklgQxDFRHy4Oo4PxKYmygR0zIxCTNCxaDyRCcy5nNjDqkU-gAFcpYcoAWQAwo6wPHndScyJ8-xNR2u32B8Oh3rqW0oG1zmmM1nR3nyIXhyWGxXsVXGDX6HXS+um2DW1qAJp-efFnSb8eaqp3sBzhNKqBV2JHtflqI2a5uORbFuegGVtWtZwPWF7sM217lAM5Q6g+xbPtur4oTqc7ikEZRBEEtDGDo7C5OQagaNo1g2CUiqiDkECsOU6DsIiAAkgi0EUnE5ow2iBLMShgDMzxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index a1d061747..f51457977 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -162,8 +162,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index 555ecc0f8..c19b8e48b 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -139,8 +139,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lxrTU5IzsAISlAGoAkpU7ttPZUzoE7ApglQDCWE5OAHI79wDiFwUX-aWVTtVPLmByAIAXwCACsiNkogBrOCsUS5RI2ZL8ODGKDCUhRAj8WiiJrgyEwuHAaDweF5OQAXVcEAqNTqeWAwAudOqF0p1NpfUGyMSTJZ3PZnKUaFQdWy6XOEBKeR0AF4dHlcD0+EIRKJ5TpVcIxFKSiUGlFMVB6BAiIwYNx0qwovQbSlzaJMQBzZgovX6krUE1waiai7VE3mkLm1h2MSkHRYMQYjVpTI6AAStGdGQjOmebt0AAUiE6DP0oKJfdk4G8Fvq8qTdAqBQNy9LPToWDAopoWJqCBkIQQxFFiyJ1HB+B6m6duzIxJr24xaCaRFiJ734ayCqJBPRi5GFWcWVgALJvHR7-dXcoXQHKxtjgdwIf8f1gUoHi4VkpyK9j1AsWDYztLvtb3vUcmy7HspwVdtqEEOBF3AlduXeMBs2fUpT3PPBj2Q1DDwBT8xx0IDyAfHdzifapbCPC4bmzKiwB2Z5SgvN8dA-FiOn4I0iFCP0FQAMVKapvgrAJ33wpYVlUTVIn7OhlxAmSuknMjWToypSj4vi2Uwojh0fABNC98INOBuFk5S636OiAHl7nsWwtKPXSSKwwyAR6AIAloYwdHYbJVigCxtGsGwikbUQsggVhSnQdhRQAEkEWgCgS4tGG0fwlCBJQwCBSkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 82c76ee1c..3df258ee3 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -163,8 +163,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyARVyikrLK6v4AR1ElAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+bWxdCHp5yWm8PkoWDA-IxlhsiDBUEU6KJSOwGpksABZHQAXh08MRDQyEOMmJ0TwAQogdAAFahQAhwehEJ64PE6YgwokEJHPcnZRiCADmOgAGoziWAAMLksXQ+jxDyWCBPIYZORMiAZTJi2wo1Fi7JEnFItUZHQEon-NE6EmM5ms2FYjnm9GZEWOnRixUNIZDEHoIrxaKGjJJIlJVUZPhCESiIkR4RiQPGkp+dZQcxETRQBPG7FQehwahm54AOTFAHkAGqZOy5kTWo3ZpLHXRY-5fOvZjJQTTbaLsmJjWmiPyifNwdRwfhZjsEfsyMREjPUQRwDazwfsAG5FL-csASVyu9sirDHYyI5E4-4hYA6k4nABpHQARh02UyAE0dAAOJ7M5Un7NQT8DNGD7AcxGHUdLynbMZ3A6MsRA2gaxXOC51mF4UgdZ40RdZ5NW1XU8MI7JFRVP9jXPMdyCvFscJ1UiwAo8j62NICCShNksXYyFbQAtjF2AlgwPQyCLxomDjTQwcFxYZD6BEVd4I3L4sM5MUAAkAHFiMrV4wDkFjTzPKCaMLTSdKY1j-wo4hNCE0D7TXCCqOgiiMmk+dELklClPQlSWjU0lMlyFw8FFXJ7EyLUnzw0LhQMozjNcsy6MirBosyWKrNPJLs1QFhYE2ETBzE6iJ0kjznIQnRF2XPz103bcwApFFMgYvDWoy1Fj3cnQUonQsADF7wPAwhuvK0co7PLjXicg1HWECSpc0yKr6zyaqQ3zNoCrcWU5EkQrC5r0sy7LTqcBLDP47MBtoiKopi39rJ0JVjXer0lFoQl2Hm1QaQ0bRrBsNIjVEOIIFYTJ0HYNBUAAEkEWgUnhhGR0YbRGCGfolDAfpziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index 63d00a333..9243e48ac 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -197,8 +197,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSUwgqHk7PMlZQBqpdUAwjoAvDr8USTEUeOoUdRQ9HDU7KVbuzYzcxDrH6npGVc3d6tgHYZFhQdSqHRYMTCUgAegAYtl+NkAOYKMABD4vWZrYy0ajkRjsAAKpSwpQAsjtyjoAISHNEAeQ2WAAkgA5DZonQAH02LMqLNsB3pYDhDOq1QZAHUdA4iWiAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoNCogQkaImmqNdrdcBoPA9Xk5ABdVwQCo1Op5YDANHe6pot0er19AZGxL+wMRkNhpQsGDnE0WogwVB1OiiUird5lLCU6mHbO5xgmg46QOFnQAITRBWIGcrBABpPJZQbVbA7Z0OwVclwPV7JdoOfY5eMlbRtcQOiJ1wIcHoRC7Tczh1bgbn5UYgmROgAGl20Ts5zt0-RsiFLIF0QEAmhM8lsuk8yU8pW8kP83whCIJkOP9hDEd91gaKJSCiK9oDYE4libOAwI+a5bmoacwEhURUBIY1xgbNYP0SJ1dBFCp+gI-MPlQEFGn4FsMnVJdRCiUQ7jgMF+GQz4CEYmQxErTRuEEOALT45iHgjAo0RJMkixPMBZIpBUf0+dY2JETiMNrJxKn6IkWTRQidEHYykyiITGAYpixFY9jOO4j5eJswCdEs2gbhEMSXMk-pGzbQsFPbKkgp2WxgvKAdVLUnQNI48h6LIwKwGM0yqPWczJzTZtDky1N12ij4c2YUILJYaz+JYuKHOMkpnMqwSWA8+gvPqiTyMqfy0UqJxjzwbta3JLAAGksAAJgUskdhce9Cs+aqEowqaZtSuaPxNM18RTbCSDY1zS0c9YdL0yoDMrA7avWC4WwBC8MxEcgITEHCIDYnR2B2LBFH6mSWA0bgnp217dGJL6VMukoRG0ahXK3dKYu7O6fDgR6sJet6PrBn7FL+jz0LR3aQaJLG1pi7rQha3RyjHOAoAxypym+6TFMYIhkXLURRC0KmabponGaM+HPgxGK0oR9kNicIVR3HCGdGuzcAUqCmRB0am2L596GaZ7s2SIUgdCcITqEETyQbZJxvrFhGdChu5YcOtTT3TZHUeewn3s+nW0T1g2jeEs33ot72ccYf78fd4H3uJpm5ZKGTWfZsQue0NXeYxokBex5XA-V2n6azuWRbU621KZVkOXOsdczlhWdC3Fm2Y5lOeY1jOs+ZnPKbTtuQe18GhZQuBoYdhOm+T7me-z-mQ671W8819h++x33DeN03u-YYOFUu4v1j3kWHyUWgp3YbICVBDRtGsGwinzUQsggVhSnQdgnwAEkEWgCg-tjGG0fwShFRKDAIqN0QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index ab7fac86e..0ce204f11 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -244,13 +244,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgGK1Go0jpwAB6wqCLungC80TGxMRF2ABa6waEiOvRw1EQA7jq0ohlQonD8OiQ6pMk6gqKC3DpoqIxEUASJ+RCaRNSatBAA5joEjHBQGhVExglQOswQ-EQwOgDCACIAkgDKKzr848VwAVALlckQc2bKQ1W6TXSyExAYrtCMMAD6o8YfxDCo+iMdH87CUOh0AEEVrYIVgALLrHSRHTA0igi7guZwYxInQKMCwuE6ABC+NwYMxfwByIIoIJ8MhZLx9KJK3xigxcnJGMJuNR6MxWJxyPxxMQOgACtQ2nB6EQyRTwVTcbT8RDxWtGIIhgANJn4lbilZLej9caWCDsikcjlKfakWaGSpjagfe1Qax2g6AnQ5WhVfrsd24HQgCkQtZbAAyPtIMAIH2CHyg-FE1HDa1sticsfjiaCyf4pHISgAvhyAFZEfofADWcFYoiDBxsTv42KgwlIv34BQTVZr9cbwGg8Cb7rkAF1XhHoz73cBgGrI1H8ZPpxAI1mc22Dovl9u1xulE0ff1-QK9t7kcGKXwhCJCsj78IxJfwXGPt3iEFRgN35i0qZNQuIGkQQQ6FgcADC8eCKpi7qjroIoEpm2YKhigosJ8mgsCqiTVgQYgfCUIjqKU7Cqiy+osusNFQjC8J0WAXLMoS7LcoK4LYV82K-Es1KNO8vE-FSnFcagLCwAQZQ0gRMjEaRcDkfwAGCrh1CCHAvzyURTZbtmIb4hKsIQgiaw0SZWBmRxzIAPJbPi8Hglyzk6P4zAOh8uGMPhhGKVkynkKpblKnSKx2Q4ABy9gAJo0Vs9gQjCACMCVJTCABMtn4ol1mpU5mGYq5RVKkQmjeXhcn+aIJGBSpamUnSEIAOIuHgzLEnCWAANJYGlHWit1fXZYNYBYE4LUbHZUUDaxaptYVXE6CVy0wF2WgsLQ4zIXYjguEVHIuUoHK0Di7D9OQagaNo1g2GGGKiIk-SsBC6DsE0AAkgi0CGX0lIw2iMBypZKGApaTkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgMpxiEfjpwAB6wqCLungC80TGxsRF2ABa0ojoa8Lg6UDqirGSJcBoEOqhQtIw6RMY6AIIAIra2TgD09V4AMjr8UKTZKSZQTDI9cAHGRBUAwkRBOoxwAObzoqKWEAkA7gXzabRiWf4lmtwA+vCkiQI6MD3kjBhKdEwsHPxhrIyK6-492YZpcFO3V61iUwL+Rg2tAutAg7HBmRASh0tQaTX0RnBGGMzHg7GRKO8tgcdQAmgBJOo6SI6BRgdoOAByAHE6bgCSiagA1GqdGkEdgAFkyAGZMgBGCWZABMMtFUp00rk7IghJ0k0ZXiw1J0AslOn1+oADArjZkTTojcqObUsABZSZUmnGKDqCb41Vq3XsC2G03mgOW83Wz1q6iDODUVL8-FgGr22ps2lxhMAITpXzVIbVXicAA0dS63YwPV7vRaK4G-QbTdmveH6JHo966QAxJN0u0Zm11lHkzW2Quu0jugV0moduOT9N4ZMzzLj6eTiezunz5MruS9nKkRiwhaiGqiVvDibN1u83MEzOoxpODFzeiw-jsep3zJvpoftFOb93m+fve-xQKIJwaPQ9AiK+P43qIhQYHBozsOKAE-gAJP2XiDv8oihFBgEYQOqF3mhNTMkBRi4TAYRwOwcEAI7sAArJkADsLE6Exyo5LQABeug0hAjBEBs0H-pk8xhK6Al2I4TjEU0aEOF4DipgAUpSD6lKI5CxqIgj0Em4qIEJIliU03EEZhtiZHBqA6nSBjdp6BEAArxjUdoPm5HkOlS-x0gA8l4dIEm0nQ4QZcGkKWhKASqapwSI6g6mOYDKapGl1JOWEkhS2Wrimfk5fmk7Wcu5HOSiXwAL5fEoABWRCwicADWcCsKI8K-DY-z8HALrCKQJwEPwKQECcTUte1nXANA8BdeCcgALquBA4UPuCwDAOOdQdHSy2retP6bb8227XeB1HQkAAGXDUDdWToHQsgaCQCQGJ9X3fT9TkQB4OiMkQ5BpIkPSg7o2rEP1gRBKgEzkAE9CsDoN1eJcGw6Nq0z9Y9-BEPsEDAzosKSIIMMXLo4IJKg8wGLTRAEGIqwQAsGA6KSRCCDoULUNQOgQHAoxpEQurzCMENdL80VZKkgxENoOiNuM8wJIwZjKAskvBPDjCI1juoCHADzfCwMAnPMxgjUQ1EPnQOmvvajo6vbMWWw5RWJrOxC2zG45phmW5rWg9n-LC0KxeCOoIgSfBCCIzZx8IYixSipDm8NxBBPMCyp4SDaRh70yzFgiwPHgNoouC80yRdTRspXWSMObxwVPylwyGIJxJb4iPsGl8bFWA3H+0P24ombFsDdbvtN+blsz6gCVeqUuKjalHdM6BPfqEhjcosc1CCHAI2byn8XJu5WCeY6k5X55GYLmAwWhaGhLjzuzC9Ccrcb81W-d0jL3JCaVyrD0yIyBw7R2gf2IJoH+LA-6d23kA3eL40q5jzBVFw4DkyYMfo3GAQ0tAsFoBLGk9hnA9mvEoL4tBqjsFhHcYcWhaJbh0EiT0ohkgQFYDUdA7AQ5oUELQTIQi4KMG0J8JQNUlBgBqstIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index 88c500d09..ab1d03a12 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -139,8 +139,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyoZHxyeBoeCmkuQBdVwgcgqKk4GAFMEv8+5Ozi6aWudDb+5zm59elGhUEV4tF2A0kjoALw6JK4Bp8IQiUTQnSI4RicEQDIZEp+FZwbRkKYNHE6ahQehwaion78bSMUS6JxE0h2Skie7w7Fk2GhA66GE-d5c0k4lgwPyaFioggxYYEMR+JkidRwfjsAjgh5YACyXJ0Pz1AGFsvc5CkjfqwBaxRlqNQ2TC5QqlSq4GqNXacS6ZGJUdLGLQOXBVvK-VNfk4Ulqfk5bE49Qa49knMaAPJmm22nm8nTuz2y7XNVMZrP9PM5vMxR2y8OK0TK6ke8he3O830NgMsYP0ERh12R94x4tOABCmdyAE1csmHk5cunjeaq3n883C0L5xO8jP7t7V2Savx8URPDSYfZnNy84SKCtSKxUILDSh6aomTo72R9+2Kzp+n6WhjB0dh4nINQNG0awbDSHlRDiCBWEydB2CBAASQRaBSDCmUYBl+h6JQwB6E4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index 158dcdced..a4b5d9972 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -137,8 +137,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMoAMmE6pDAEkXAAHpFQ-KLUhToY1PTUoq1BuknEUdRQ9HD9nPWNLW1QcAFFZcVONXUNzYOLOgCkAHx7XUUwgiHkkbTG7LTiBOksUOqqeVDixs+kRP46AMQAch0kx0BFUISyOiIxh0j00WQA5iYvj9RF1RpFxpNpqsnDYkj0+gMFnAlABfAIAKyIWUiAGs4KxRDlglB8UZ+HBPsJSJECPw7g1qbSGUzgNB4MyEnIALquCBlKo1BLAYAKMCKyrqmVyhWlNbK1mq9W47W6pRoVA1LJpdhdBI6AC8OlyXT4QhEoidOndwjEdogRSKdUivLg2jIA3orEiCOYnIDQaDWKm3pN-G0jFEuicEdIXujOgA4vHdLYJiJ1bgTkGEhLdM6TfqXHga0UWDBIpoWN6HjSwQNsyIXvx2AQ7RqsABZKs6E3TgDCpXVcjy85nYFXbZ01GopF76X7YkiQ7gI8TSaDfZkYm93cYtArcD5h5vzNxeXHJqctic09n36lE4C4APLLpuW6BpeRSniOvYTmsQGgeByyXpB0HpHuB5HoOUxnuQo7bkU14DneLCPn0z4kf6H6gghTgAEJgeUACa5QARqTjlCBC4ruh0E6LBBFppxTEVGx6rbvxSZxm0Dagq+A4nnh55EQpOFkQ+T4vjh7C0V+nG2CBAAaRZYBxazlE4ABqfHVlB0FCXA-AiWsRmmeZYBSTWqEBAE1w6LcKhqBo2jWDYBRQaImQQKwxToOwloACSCLQbzoEl2aMJmARkkoYBkjKQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index d5a2b8702..a91b35fa8 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -170,13 +170,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6e4YHQAITpMh0ThasB8cBNaFQdWy6SuoJ0eRpeVwPT4QhE1JReeEYjTYPqMCiSvZlLhqBCrDgLDL5Z01Cg9Dg1Bp3x0WBCulK-D5glE5H4JiIjB0WxCtEpBgAmk3GNTSqQ+7DhXYOyInoSSnldboUZ6Xfv0+WWJXNCwaQQMoKCGIoqIu3B1HB+C3WxdHzIxBpW9GFoXc4GVf9nwlM1qgKS4XiwfZPgQo5ygBOQc0vVs3xET8J1PG5EOOa4Dx0DDSI6fgqyIUJuxRexnEw38azIOFgPvSCXxwj9xx-VsHyfQCUWA0D6BECDBOg507meSAKVYgEmN-HRuLwns5JYqkL2UkxaBaL8aQYlwsJKciTJ0etmEafC-0k193zwvjywEgDCx0W9qEEcCXKg9gKi9WSdj2VDkLAIKDkU0iSlU8d1K9R4wFIgJy2SsilACWhjB0GEVDUDRtGsGwinTUQsggVhSnQdhEwAEkEWgClqt9GG0fweSUMBuUNIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6N4YHROFqwHy6NKZepQegiHSiHzpHQkIO0xgwKKaFg6HOMWhxkSiE1oVB1bLpK6gnR5Gl5XA9PhCYs05vCMTVsH1LNK9mUuGoEKsOAsLvdnTUONwag0746LAhXSlfh8wSicj8ExERg6LYhWiUgwATVHjGppVIC9hwrsRbgT0JJTyut0KM9LsfNe7LCz+ZpBAZIKBBiFEogznA6hwPw44ThcQEyGINL5oW8ZwMqCEgRKZrVAUlwvFg+yfARRzlMRYCVE4AAaAJyI234TuBIhQVuKL4TchHkZRNFgAEcF0U+tL8PwUSkEQoSzii9jOPRcH9mQcL-mxmGgUxkGbrBE6AcBSEoih94YTp2HOnczyQBSCkArJcGJhBLFzuZ8lUl+NkmLQLTQTS0kuAxJQCb5OhDswjSsfBRlgXZGmCSU2mIdSencII6GxVh7AVF6Zk7HspHkVlBxWdFtnMZuDleo8YCCXxYJVQEAS0MYOgwioagaNo1g2EUNaiFkECsKU6DsGWAAkgi0AUw3gYw2j+DyShgNyhpAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index 8aeca58dc..e40b783d8 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -195,8 +195,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otQ6AKQAfD3FJTowgqHk7EPDOuW2ABIAYrUAvDqyonBRKRkUkxDT0wCEtOLQ7LNzszYAfjoKYACa97hTB-bOOrf33-sHNv09VLpDJRahQehwaiTMCVQT0ABWcHUMzgIQyOgWYIA5vcAtM8WVyqUnHUGk1Wu1gnBXL8MB1+M1tGQosZsaI6qZzBorLEbEVfiVYnUhQDXiVRuM4HsDsNbABZAAKSyilScWB0q2JqvVy1W9yeeDFssVyqwThWZTV5o1esezyNJXlSuqUQA4lgAKway22ADyAA13Ta7mAPfaBW9FSq5QBFAAMAEZvcdTlB2JVY4mAHKlOVyF4R6ZO6PxgBMyZOGDOGbLObzBZljqjAGF40nVimq2nW9ncwT8a9iNRBDAIKDwZD2ck6KJSNLI86VWrvfdKqpLIJ2cTwzKnabrbasJCQnB+Jadwvle6vbbXcx+LovdvDYW7FGa4nvVAxLRxxCobEwDAKumYJnW9wALoQQUgHATCoGVM2kEQfmRrFh+5arN+oi-mC-7Qg8GAAJzEaRREAPQAFpkWRlqVAAkriDYLlEPbtjo2G4ROAEhEB9xseBYBQf2OgiUOf6TrkIRyMA0DwKI7BDiOY54ZOcgQXUUDiAQGQsFA6iqIpRDDqOEnUKIImxEMAC+NIlAAxAA5DoroUKoITZFiOibqoBgPsY2SnjocBMqQJhshgQwVMSdTRSSAI6HS-AMiFFCkCybLxIEtLfu0EDRJoLBTkYcliOwcUybOLCkKIADqwLsKVCkVQU9x7i6uIQUMdI-lEhWMMVOhNeVRJOJVoSMDV9WZI1sBlS1IbFp1SjWQE8JENkUQANZwKwCl5DYyT+VAwjpQQ-AnE062bTte2yXN+2JOpNJoKgdTZOk855N6eTMXwQgiOyqz-cIZWvA0UTpalZCiFEogjjAnjztMqndLapT8NoA26E4oXsrCMCI2wF7THkpUrmAcUk8MLAwH1LDejpG0EGIcOQki5D8MjBxMzIYjev1tDgiIUS8yzCn3BUNTPGs0KlFgcoy5LCvNuUuKoa+JQbCIBlnujCs-DKGsyqyUBYvTjB5WjawZMzrPaxzp7c9MYv86sgvC5srsS5To0y3kfFgD1VsW6IyHG42Du6z9iSB8HUD5aHyHAAm0EOjoO1wKgUREIwD6MN67xOMxJu0C0QWrAspTVKqRoR9Mpvm-17Q-oztt87DUec87wzewLLBC-QIve3Lft4DoAdwT1OFJ0JKElwcXcVxPsdT5xs9QSnaeaxncBZzneeqIXjjF+nAXl3rGLV7Xr71zTyWQ0QoTW0XrwEgEAS0MYOjsNk5BqBobQ1g+RDFEFkCArBSjoHYK9AAJIIWgBQ4EbEYFjAItkIBgGshBIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 7aec2d4a8..6c6f7f5b3 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVOABp1DU2t7fytrhAlonCkGDNw-OwAjAUA1tn8OgC8OgpgALKqMxAQcAa2aaLkjPsBJRjUUPRw1KJ1xNFPL2-sFQMFYy0ajUHY6ABipWqlSc916Azq-0GAFIAHzInolfi0a7ZdTsByVBwAIQAUgBJcoFDBrOBwVDtEFg+zOGxojFTEo6GCCULkdiYrkABVKWFKBwAwuUwftbOUHFhyvtcIKSiKxQcZWAAPLaZhMoTMDQkHS5KCsUSKPCqsoANShYNEsB8cHYLUdcAAjisCgAmAAM-rkBVEtAAXrpdjlgzpGPSngRI3ZHLCVZyuXaoQ4teVzaJ9oK2ejBfRNlFGEQUqI-n1+nDPlFvq9q0ibMlHs9m0oAL4BABWRGyUVpFrNoTbRnGxigwlIUQI2NETQHQ5HomA0Hg1bycgAupM0Kg6tl0gLOXkwXk0yU+EIRO9drfhGIzxmGlE561UERRII46+Mx0JtQV2fZyj-EJLCmIhjB0JwWm-X84zsZ4RGVG08k3JN9iRdD0y5VAWFgBcwQIDJB0TUQohmER1EWADAJ0MiKLEMFNG4QQ4HnciZBfPJgGAHDa32XddwKfZ1XFKVlT2MBJIOO5r0YnQaLgOitlAsA5QVJUwBtYMbQbehWCidjGFInjKOo141PIJYbRKZjeIfHQzNoVCuKcyixygAShIGESxJUwR6BmUhSIFMAYX6GScKwBSwDkAz8IzVT1K1aKCxSnRksYisUiiYzTJYCyWKotK7IYwCvNY3Y3I87iyp8vywFwsBRJDEKwoi-YxQlFw8FkrAnAAcXJbUADllliqL7FKWxSmmwb9kyxLcuUirFi1PqBv0pSM0IxhZHC3YavKmz1KqjMzrYjjPMsvjEhatqOtk9UJXm31FIclSLrsnNGEEABzMossY9aMw6fgPyIUIQIhKEYULHp1qBagbjBSJqLobysa6XjIoqGoZsqUpwXBaoZM2jTZIATTuAIAloWD2GyG4oAsbRrBsIpOVELIIFYUp0HYQ8ABJBFoApxZmRg9QCbslDAbtdyAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 41a8e2bad..4978fb7a8 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -131,8 +131,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 7eb44136f..3dd43431a 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -126,8 +126,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAYQBZIpKyyur+AhglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdJRreyenRIoJ2BTBc2wdsgE0ASWznlOeHLkHAAhABSPz+OmemVe2VsLUhz1auScAEVEWBMrYmgBGDFYpoAJnx2IAzCSmgAWZ5DPYQW4zOaeOTAaHNBF4KGY9nPc5Fa4wBmiVwQHIFIpJYCs7kFXmXUXsiWhKVs1pykVoVBFeLRJ4QDJJHQAXh0SVwDT4QhE9xNluEYj1GQyJT86xga3K2jIswaTp01Cg9Dg1GNXKaJGIMGiUDIOhacC2sg0JHu9FYcYTMg8ln1TQDonuMf4OgACoxlqpy8WAHKwOB-X1OpLHXQm1Uc836v06FiCzQsUMEGJjAhiPyiYNwdQJ9iPaFYDtczILpq-MByf6Yhc0zvdnQTgCOfn7jEHw5kY4nImn-CeYGRaMhV6n5GLbfvLRR6M5xloFQTob2M4G6NhkMTUKQZ4jpek43o6e46EO0E2joJ60IGIgbOeo6zDkrQpHOmLYninLQtixKkURTTkpRBLUuuIFdnuz43oOd4EiRm4EhRXFkhS9FDHujF7tQEFQReojjrBr7wXuSESaGaEYXAWHIeweEtARd6tNkThNAA8mucjCQhLGvmxSItLpBlGaBOgmX6NT8K6RCeCGJpAU4u7dnAXrrKQrCoK2XKkOWHjwGQzyNoJ9lKEMtDGDo7DxOQagaNo1g2GkXaiHEECsJk6DsJqAAkgi0CkpUTow2iMEM-RKGA-TnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 9138d5e51..7cc0fe4bc 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -67,8 +67,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWolAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyto7u3uBoeD6kuQBdVwgcgqKk4GAFMF38442tiCU0VCL46PZ0nSSdAF5n0NwnviERUTedD9hGJHhAMhkSn4Jug-PQoKIZH54sYiKDweDqFB6HBqADjgAheEyHQASQgKOOXzB6I+nhWunex1OlKe6NQHloFAmxFxjLADlyDnxACkSdkWdT0ZoWP93gQYu0CGI-KIcXB1HB+GiaRl5YqxADpYxaFiRJMFTIQac5FSdRlVSINfwAQRHicsABZSk6JkAcRceB9YFyTgAGt7jgBhADyDgAcvYAJoRsBYTKRgMpY5OaO5XK2WzHZo64vg0vNZq0Yw6djxchqDTaaw2NLU0RxCCsTLodg3AAkgloKX7qsY2kYzQaSjADQ2QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index f4d00026c..86f271b96 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -119,8 +119,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NboPzUKD0IjMUgUjgNPE6Un0ODUdGPABq0W4okeiNxdPhoSOujhf0+3NpeNQHloFDWxGZwrADlyDmaACkAJLZMW8umS5ilfjoggxUYEMR+URMuDqOD8HF8vHG01idGaFi0MkidYmmTY-7NFKPAAKmSwmQAsgBhLVgOQ8h0ZS0iG2GhUhsNRmPijJx7M6PWwI0+s2iC1WlP2hNO31ouFuxge+he6sl9j+wNgdMRx65nV8pPW8ipnTB0PdsB53sOjTwVCjMi1nQt80Dit5jLLxf1xvN4t+z4dnIATR78YTq6HLKe2RPE77ObPdKgEAbEGHm7LyaHlYdm9d7s9OBvWdGZ2xHJ4ADksHVCCYync9y0vBVMigmCs3vHR4KfN1-HrIsQM-QdbR-Pk-zrACmyAzc2wPcDMlZTIXljR9+0Q20r3oxjHknFiMigHDBD8PC4Q-C9iPXJc9y3CjdxAmiWkPBj8gcU8JLE4c-iUlS7wdQY6T0zClEGWhjB0dh4nINQNG0awbDSXlRDiCBWEydB2BBAASQRaBSTzLUYbRGEGPolDAPoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 0de76f252..424ce6fbb 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -89,8 +89,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 2992351ab..6e117e107 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -102,8 +102,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMIAsmE6pDAEkXAAHpFQ-AQwhSWlAMoAMjV1Dc2t-KLUOgCkAHyTJrTU5IzsDj0OAEIAUgCSpVNZc2VVACSrGzulAUVHlcdVxT22pbbVSTfHD08vXe-3TgByz1eRnexQBQKUAF8AgArIhZSIAazgrFEOWCUBsSX4cGMUGEpEiBH4tFEDThCORqOA0HgaIScgAuko2h0kSjRDUCOwFGBHg5SgBNXa8vK8s5bEV4HS8z4Q6W8qo9JwARVFMrAxVs5QAjOrZdqAEz6zXagDMJq15QALLzYfCIOzUeiQnJgLKKpVLZ7eYyaqyYE7RK4IGV+jUEsB3Zren1fczQ56Ixiox6qvGQ2hUDUsmkeRAigkdABeHS5Lp8IQiTmlyvCMT5opFOqRQnoSKoRiWRiReAk2QaKxdJs6ahQehwCal3kABS7REYOkqcH7wUsEFFw6bCVpumnMfTeC3RVQLAopF3JY1YbjR4LI50p4056JRCnGolF0395Ha8Yk6vAh0nhAgxEiURJzgdQV0bB8iiAkCxCvTQWFoccRCJYCZAbG4xVNbYsCcW85FwY8mwgkRoP4K8DQIojeTIkiyI6HFiGo0sEOw0RwMgqjYLgzjQJrHQUK7dC4EwxC0VwjUqlKJxygAeVKO1SJ-B8KKg8h2Nkyp5KUlSwEYtSBJgLJ2kArChJ4yjtP4h9BKQ0tRLQ+gMMc6TPTwqptkBcpVLIopNKomiwB8vyGPUoomKinQOlEUh+FYSypJsrSYMCuKrKckTUPEySuPYGTZUeIUAtioLeO00K5UFSK4KuJtGoCAJaGMHR2CyJYoAsbRrBsAp71ETIIFYYp0HYLNjkEWg8imiDGG0fwoSUMBIUZIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 93d7ea80c..27026c12b 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -145,8 +145,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwHF4vHUKD0ODUdGPXIk0g6clZKl2BkiR6I3G0+GhI66OF-T4Chq0lgwPyaFjoggxMYEMR+URMuDqOD8GnCjKKxi0PlwdaqmTY54pUSCehajlwgiQp5YACyAp0fw9AGFso85HJBYaMlqRLr+Cy3Z6wDK8cH4xlUCxYBtlZb1aJNdrIwbDYrqIJzSq1dbPilHgAFTJYTLu-2BkOh8M68hRiVgAASWEeSZ0iaFtM0W2iCqVzszGtbef7Ru4xYtZdm-2alaeADUAJK5Le2JtznQz9vRqsAeVytgMACFMrknPktwA5Jw6d3Prfuhyx-uDw1QQtx0YDNlxzCN23zYVjVNegRCXK0VwrI97UdaNMifLBnwDMA-xbXMT07dDMKfbDm0NYxaAqPV0XsZxfzIvF6CgcN4nNY0QIQsC2z1SDhxYGC4NLBD2FXW0ULgJ1vTAa8MKwg8h2FY9qM7GTiNIw8KKojs7EcFwFIyXDaUELUn0yaNaGWCBWD7BShgMpQhgsnR2Hicg1A0bRrBsNIhWJeJWEydB2BBAASQRaBSUKtUYbRGCGfolDAfoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index 4672fa128..aa87f47fb 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -145,8 +145,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwPzkvwRIiMUSkHF4vHUKD0ODUdGPXIk0g6clZKl2DkiR6I3Gs+GhI66OF-T4ShqsljUzQsdEEGJjAhiPyiLlwdRwfgs6UZDWMWhiuDrHUybHPFKiQT0Q0CuEESFPLAAWQlOj+-oAwtlHnI5JKLRlDSITfweb6A2AVXio2mMqgWLANlqHXrRAajQnzRaNdRBHbtbqnZ8Uo8AAqZLCZP1hiPRmNx43kRMKsBOEPNACSADlbI3HpmdBmpaz6Yy1sZ2T0-Fb87Wiz3SzPLSwbfQRPat+x-s0Ut7HgB1ADyWFyAAYAEwAMReeCDYDvD8fAEZ3wjOcYx0Hc+yTH8nzfD8Z2A6VFyZPwVygHpN0dbcSz7MtpQrKsT3Qs96y-SCX0AsA4ItMDTSTABNZV52lYxaAqai4XsZxYK7VUK3XTUvQLfUqLNPcdCtQ9jxrAjz0vH1MgANUyfIQ0DP4xywcdw3IijpSEpN5MU5TUwYjJtIyegoDjeI7Q3fit2LeMsJEsTbXwwtCJaGTHgAIUyXIhxUsAvLUjSgK4nTMNYr8fL8wzOJnQRDTHTIk1oZYIFYacGKGEylCGVKdHYeJyDUDRtGsGw0ilYl4lYTJ0HYEEABJBFoFImsNRhtEYIZ+iUMB+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index 0af0b42f4..de64a0e34 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0Vh+ADmzEWOLxeOoUHocGo6MeAHEabp8kyiMxSHzWFl6BA+TBuNEhbYmSJHojcfT4aEjro4X9PnKGvSWDA-JoWOiCDFRgQxH5RCy4Oo4Pw6YqMkaTWJ0frGLQZXB1saZNjnilRIJ6BbSIbIU8sABZOU6P6RgDC2Uecjk8vtGQtImt-DZ4ajYC1eJTBYyqBYsA2hu9ptE5stWbt9sdPrRcP11EEnqb1fY-2aKUeAAVMlhMhGE9HB8PR0nU2mM1byNm1U98rZHsWdEWFfSInzRGtjIzKXqDXCu2b5-WNw6q87Wyx3fQRF6nTNe-7A8HQ48AOrsrD5AA8gAagAYi8eAxmAf4AYB4ETtB-4ABIAJJgRB-aIVgqHwWAyazval6Lt+WFAehSYblu9q7ow+5+IeUDHvEmyyAKjCVq+taZouDaKm2HYvs2PafJhMFkbhVFznWxHLgAmtGxi0BUNrovYziUQReJQBA-gChU1I1J6rocc2XELjavH0ueLY6K6j7PtZwktB+QZwCGZ5hpktiAQAGv+SaSYR0kqR5fzeX5WAzteJhKSFdiOC426FppGT0FAFqEkQ+lcie7FnreNZERZ0XWS6D4eoJ3bvjoAaue5OgEGGzThf5eGBYqRVLg1TUtZFeEpXiinKV1amJfa7UZDU-CZZ4rJwqBmT5LkY2Fg0kmKdQ5B5cUcDcOadDdr4+0+p5eQYVBuSZKBuH+sFXWPPJbVKIMtDGDo7DxFtUAWNo1g2GkCrEvErCZOg7AggAJIItApJDFqMNojCDH0ShgH0ZxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index cd211d8ed..843bb2d05 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -144,8 +144,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zhXCAyMaHhRP3ooUQBrOFJRIoBzRjhUdgUwAD12XIBZAEUAHwBhLbkMACoAOUyNgBJllIGxdhzmuRTNbkFdAF47RydFXp1+rAxH5RMRUGJZvNFssVpstidcntrngdHdRA8mr8Xm9Pt9nH8GhIhiNxpNpuECDEiDJgaI4CJ1HB+Et-hlKdSCBCvq9GLQoPQRH52TT0Y8nClRIJ6HTSDovoDBsNRhMps8Ghk6QzyPw5QC0UrSVMGgT-kSQWCIRSqSKQfS4IzmeqdMLOdNuSw+QK4ELra6Mc0JVKZbqFbSLaI1aydJr7dqQ-rQURwaJcE7jLQKkzdfZnMalABfP4AK2pED8E1Y6KSNnC-DgxigwlIQv4tFBfhL8XLcErwDRiVCcgAuj00KgivFoiyMkldUlU-8+EIRG6dEvhPcnSU-M3RDAAI7TjLH6j8+m65aZfjaRh0nRObRkab0Vg6OF2fkiG5OmehO4XsAxW-KMMhYGA-B5XUXVpO0HSPY9j2g1ceU9QUkIHTxgGAS88nyZYhyHQNpUmKClkArANhuHRllyJwAA1ljkSMEIQmMHQAzIKOWH8dGYlian4HciE8ahdQAMUyfJaIXFidBJFVVySLDljNeSyXwwieMTZM51CZSwDNbSxA0mSWOoahZS+JDbS1Jl4JYpDdRQz9vXQpTsMAzETOjIMSKssjmmyJw9gAeWyRi+Nkti4y+S8nCC0LwrAHi-gQ1LeKUP5aGMHR2Hicg1A0bRrBsNJ-lEOIIFYTJ0HYMdLkEWgUnqulGBvP58yUMB8yHIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index e0a427b8c..d9c1a080e 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -125,8 +125,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGIdABUZxULKBokOkTGOqQAFrrkoqQ6sqK6RoIJOgAGTgDyAMoAIgCaqTpQEPxpOQDCWVhOAIJZhZostFD0IqJhRDr8cHwQMczkOjC0oqK0EADmXQFQGEr8M-pGXNQA+gukUNbzi4Y6AO60EePsG1C4OiBKOjo1OVkAMkthMASrcAAeq1D8otTXt3uDwAJJlcnlgABGAC6zwAcjVVuNyBNVKslABfRQQABWRHGqwA1nBWKJTjMbHtusYoMJSKsCPwRm88QTiaTgNB4GSznJoa4IHdHs8zsBgAowEKHhLofyIEo0KhnuMjuwAWcdABeaabXAAvhCNpaoYCYRiNUQG43UgwVb00SCGAwFgcAFWnTUFpwajGiU5HpECbMVDhGR2FoiCV6y3unXFWC6bUSqVRt1Wli2xqMY0EcL4ghiVYJETqOD8dgENWSrAAWSjOmTtfKOQlcgujbrYDbaZuP34dqImx92vszmjsZ0DqdTQAXnBVln2trc-nC8W4KXyz2rZWJVknAANesSrA1couPANsAAIRrWAA0lgAEzHsBg-KvipVWpZV81ADiF7djGE67mA+5HpeJ5nkB27AROyRwAivpgLQNIQKwEpptiNzYtiaE6OwyKqFAFjaNYNhXDGoihhhNToOwirAoItAXExCSMNojDYhiShgBi0JAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index 91173fea1..de6b90271 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -156,8 +156,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiQQwGAsVh+egcBp4nTUKD0ODUdGPXIkslsHRUnRYIgRHQAcUYREEqDRtgZIkeiNxtPhoSOujhf0+0ppeJYMD8mhY6IIMVGBDEflETLg6jg-Bxcrx+sNYnROsYtElcHWBpk2OeKQIkKeWAAstKdH9AwBhbKPORyGU2jKmkQW-gs-1BsDqjIxjM6Gr8QlETzMuH2ZyxuVU7UsNFwu2e0Qms1J61x2tG6s6J0u+gid32mb-Zo+v0ABUyWEyaZSfwAagBJXKz2xRrOym0J83kZM1v2ZOcLpdgQY2ldr9ksWgALzdTvbreN66b2Yyd-bnddvbr7AHQ5nmReeBDMAwwACQFZcyzXRtNz1Hdpz-KNsxPOVBFNAA5TIU1oZYIFYNVVzxVAWFgDY9Q9NsG0TTdmxtF9HW4QQ3RfL9PinMBR3HAMI2DR52InKMILlB9oOVJ58gPRD1SPHRBkGLCdHYeJyDUDRtGsGw0llUQ4hwzJ0HYEEABJBFoFJDNNRhtEYQY+iUMA+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index c8d8d6f5f..30e7e1855 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -183,8 +183,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzbWycikrLK6v5SciUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urppbb0PvHnOaXGA3pcWDA-IwlusiDBUEU6KJSOwGpkAMK2TJYACyKOyOgAvDp4YiGhkIcZ8To-lidAAhR64Ek6YgwikEJFPamZemUjmYnQox6DDJyBkQDIYvkEolIsUZHRkimPGmIHQABWoUAIcHoRHpjOZsIJbL+KuyjEEAHMdAANbmPFEqlHQ+jxDyWCCChqDQZKNCw8LxaIyjJJClJUUZPhCESiClR4RiYNykp+NY9OBJuWEqD0ODURVgWy0eB2Ig6JzaMh2HMiPWyrNJI66Al-T6AiNZnSgvyaFismKjLWiPyiPNwdRwfiZzu9xi0GtwdYDmSJ54pY28u28nFb1HorE7sByEWMrNUzGPU86E-1uXdslQlkE++Qg0drOoFiwDb9wdiEdjhOU5XhkvbUIIi4EMuQ7sP8LQpI8qoYpk2LZFuSFYChgrvp2jwAPK5Jet7CjhGQIswng9n2RrQf+o4iEB05ZrO870CIS5-jMa5MuyuROLaeA8jSmJYAA0lgABMgo3p2cqPHxAlXjJnYaPAfioKMZCxjRnEAQx5BTmyACMAAcEkpBJAAsADMIo6KZEnKVmcCVmsizbFRjC-iuw70eOBlMXKLELhxPmwW2CFgE4ABqABytjZE4uQCkepFyVFcUJUlKVpRkxi0BUk4UvYzhKYyQrXkogy0OS7DxOQagaNo1g2GksqiHEECsJk6DsH6AAkgi0CkA2jow2iMIMfRKGAfRnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 45da7caafeb5070d5e5834bc70bf82053046a186 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 11:02:01 +0000 Subject: [PATCH 02/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_a_gee.Rd | 4 ++-- man/tm_a_mmrm.Rd | 4 ++-- man/tm_g_barchart_simple.Rd | 4 ++-- man/tm_g_ci.Rd | 4 ++-- man/tm_g_forest_rsp.Rd | 4 ++-- man/tm_g_forest_tte.Rd | 4 ++-- man/tm_g_ipp.Rd | 4 ++-- man/tm_g_km.Rd | 4 ++-- man/tm_g_lineplot.Rd | 4 ++-- man/tm_g_pp_adverse_events.Rd | 4 ++-- man/tm_g_pp_patient_timeline.Rd | 4 ++-- man/tm_g_pp_therapy.Rd | 4 ++-- man/tm_g_pp_vitals.Rd | 4 ++-- man/tm_t_abnormality.Rd | 4 ++-- man/tm_t_abnormality_by_worst_grade.Rd | 4 ++-- man/tm_t_ancova.Rd | 4 ++-- man/tm_t_binary_outcome.Rd | 4 ++-- man/tm_t_coxreg.Rd | 8 ++++---- man/tm_t_events.Rd | 4 ++-- man/tm_t_events_by_grade.Rd | 4 ++-- man/tm_t_events_patyear.Rd | 8 ++++---- man/tm_t_events_summary.Rd | 4 ++-- man/tm_t_exposure.Rd | 4 ++-- man/tm_t_logistic.Rd | 4 ++-- man/tm_t_mult_events.Rd | 4 ++-- man/tm_t_pp_basic_info.Rd | 4 ++-- man/tm_t_pp_laboratory.Rd | 4 ++-- man/tm_t_pp_medical_history.Rd | 4 ++-- man/tm_t_pp_prior_medication.Rd | 4 ++-- man/tm_t_shift_by_arm.Rd | 4 ++-- man/tm_t_shift_by_arm_by_worst.Rd | 4 ++-- man/tm_t_shift_by_grade.Rd | 4 ++-- man/tm_t_smq.Rd | 4 ++-- man/tm_t_summary.Rd | 4 ++-- man/tm_t_summary_by.Rd | 4 ++-- man/tm_t_tte.Rd | 4 ++-- 36 files changed, 76 insertions(+), 76 deletions(-) diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index 75bb4aa7f..35dd29535 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -127,8 +127,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeUAipV1DU2t7fwAjqI6AKQAfNM9Jca01OSM7KUAQtUAYrUAhAC8OgpgAJqnOgBkZdt7AEw6RyfnpzZzCxAlJTCCoeTsRbfUoANQAkpUwbYdMcoOJjFB1ER1qCIVC5LggSVUZDbAA5GE6ZgQADWG3BuLx73mWO+cIwCKR62pn2+bJ09IggngjBk1hmNK+7JK9MZpGR1kxQrZoNK1U2YIJx1ltT0OgArAAGHQAYh0AClBKJSByplAvq1YD5dOKdABzOAmsL0bKeHQUbxEbKkDBAllA-iMIjW7TUUTxCAAXwCACsvRAoiS4Kxw3kbMl+HAEcJSFECPxaKImnHsonk6JgNB4KnEnIALquaDoOrZdKAoV5Ql5KU-ATCMSEvhCEThoENdpRB1wdvC6hQehwaiE04AcScLjwtLyVd0x1OFQGpx77Kgmm4UTPjEJBAyXoIYiiokXcHUcH4gLAKoVeKPJloLTfQl7GcDFaVofgLxYa9bxkB8nxEV93wID8HEqBxNn1MFyl-U40IwrC3gKU5UPQzDsLAUDpTpRgYEgq9jhvO84OfRD2GQ-csAAWRwz8uIAYXIjEXlKLjCNpTRC3SOjoKY0RHxY8gkI-HEoR4lT8UI4SKVUijjzZVAWFgfMZNguT4JfRSZ2FHRGNMwkz2oQQ4DzGD7xrUJgGAfd+kqU46zrIiwAABRE0pOIEniQqwMKxKotlzMQ5cwB2ABpSEDB2AB1TZTlpSjhWITRpIY1zmIQyz2LATZSkqDdAtKNceNqgANHjqtqxB1M0vEHGqaoAjZAadACAJaGMHR2G9VREQ0bRrBsIohVELIIFYUp0HYNBUAAEkEWgCi27an0YbR-CUSMlDASM6yAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index ee5c3c101..58225572c 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEosMAD6jHDGIcQwqPpGdKKk7Eo6OgCCWACyAMIAIjoAvDoJSSmpOuHGhToKYBmZOgBCtbhlqdGxRQTJdVnpLTW9Ddm1AakBAUr8UKRQcTpc1CHTs9ZTM3OGOgDutKQAFrQQ7CtQuDogZWm5AMoAMvOkMAQhcAAeIVD8otRXuQCKN0ez1eHy+AEdRDoAKQAPmhbRMtGo5EY7DSjTuADEHgBCIq1ACatR0ADJ0picQAmHT4wbEsA2OEIiDlJEo1TogBqAEkbjzbDCjtCdN1agB1JxOADSOgAjDpcmlCToABwDCVS2U0pUquUAVg1YElMp0AGZFcqdFSqaMmfDETBBLNyMlWWz0rz+YKilBxMYoOoiGi0l6BXJWu62aG+QKAHLVZgQADW3Njtjj9pZHvKfowAaDaKziLZeYggngjBk1hhDqjHrzBdIwZrAGIAOQ6GBQZNHADmopIojgBGdWl05crMhMgebjERAQAvgEAFZEI4hZNwViiE4bGxbfgRKDCUhRfi0UQvNcbrc74DQeC705yAC6rmg6HmRz2btSp2qU5I1SPghBEKEilA4QxD-conk+EIYBgRgYFgtlqCgeg4GoapakyTIshaEsdFOR9dAJOoARuIj61SKBNG4EIGMYaoCH2dcCDEEJhxEdQ4H4dgxTqLk0juI1sgACQAcVGc5alDUTZOI2h+CYlhWPYmQuJ4kdyAEoSHBuBxGgAKR5XIjSM0zzNkwZDOMsyLMZYCGxQtSWK6TTONEbjsN0-jBJ6eojXqPJbPkwjnOIzRLz2dyNI47S-L4-SgrDWwQvSuNwuE9MlNonRgjCCIoiIGJqiKypSpiFy2VQFhYAIfgEq0nydJStCPTYxKIJ0BjqEEOAoi8mDTmAYB5Ko2pX1fOSwAABQyNIcicubFqwZb8pzVJ2r03CwCxaV+QMLFxWaMBiIjYjiE0eLPJ63zeL0wLakaNIbhcPBBjSKTPrmj6AA0jTej7EBjb1bLjBw7juMZyjhiYlFoKp2COVFZ3HawbEud1REOCBWDSdB2DQVAABJBFoc5SbJ4dGG0fwlEXJQwEXV8gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index 664cde4e3..f1e92bc46 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -182,8 +182,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTowgonk7ACStrYAYp0AvCZQ6gHsCmAAmic207MQ8-NFpWnUUPRw1MdgqypkBrZEP4xwBI6AAKRFQwgSlhumyeAHMLkEGi1Gk4uj0+oNhvFdFc5g1jLRqORGOwAITsdgo2wAeQAGgBxLA6HZ7ACMNgAZDpKU5Wk4AGrMvYnACyq3azQuOi5lKwIqFOhOjUQOmajEEsJ0tIRQQAvkEAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfSNJvNluA0HgVtycgAurEWh0urlgMAlW12icQ2GIMjUXaqjG4yjE8mlGhUF1ysVjjcdLlmWWqrg5nwhCJRBXa8IxCXbj00rC0vQWAQSiwXaJaDBInBW7cdE8XuNhWBU01oFFB6ITtXS7cBhXcv0BqQ1APUHACGPx5XEgHdDOIwm8Hjx6JXofSBX7yJ1GlRAej7eT73jQQxBWmgsLQzwiK6JR-i234nk08arjB45fmuCHzEqcoroqs4AMK2I06F4JhfLajeyEoZhWCNFhLgESc6xbNeNQnK0jSbNsGFMfYjS4QATCc0EnoiKFyPBKEvo+cD8BWSo4XhIorvx8yLEStAjhWmyNO0fIKYJtzCdBBLUNOE4eqQx7jlugy7gc+6HmZJ65OeUmzvG8mkXeD7qM+Hk2UhZENL+MgAXsQGMCB9BgQF-5WgpJ5XiJfk6L5CWobO+GMdhuFpYRTjEfFyUnBRVHsR8GxsTRYDMaxDGEZxPF8W5CE6UJeUIWJ6gSU5RGuQlSkaKpezqZpLgNfMTW6S18wWTue7vp+dnmVUjmXs02YkWRbVPnsG2zbZMXzJFQU6CFYURRBgVWqmNRfrOTg0gyWDFSifL8o9vJOA9YByHpI23BtHV7AAcg47TtBNJ69SpIhqRpWk-ToY2jdB30nkMjr-ptxmiKZClTVZb4frtcMObAF6Yam3Wid5Xmvj580-mdUWAcBoFwOBkEXStThXe8VJ0oyr3PQL70ImD7k0-9ZO3XzH2i7cEP9Tog2w2RCMNMjMG4zNBNJQhxPwE5V4U61VNbd5O06yhB0NsFzPhazVt0zBcV7bcFsJWhcnlZRmWe+lXVrclDQFZR1HpXRZV+yxEc1RRdVgC7iNw2rsvzH9kmA8DoMJ-LUMDTDw0q9pSMTawaRo3AGN0Fjjua9Z5uOw0euk1mod7Rt1OPvXCdW0zoUs2z52Upz3NKlL91Cy9XtvR9X0pw0acG29k9zwszqQ6TSsF0J2mi7X+NzXtTcGy5AfGzTHf74TCU9zbfd2wPUUN+OztJ-tT8nh7j0yVlTE5Ub+VgEKqHTC4dqpMSjmAiqtVGi8Xjq-NWCd1brW8hLIGIMV45w3vnPaqt4ZI1vIJIIQRaDGG5OUYk1ktCji+rUOYogygQFYI0dA7B8wABJBC0BqOw+8jBtAxAgLqJQYBdQhiAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index 009d28609..7f3fc462f 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -136,8 +136,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlbUAQg1NLe2d-NT0SgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5idaJTqdTqFB6HBqCS-gBhEjGWh7cy6ACSKkYmm4OgACv5SH88VSWToOpLGCSCq02qQ1MdRKg4ARmcqygV7rpsdCaoC8H0TaJOYbSCSHSJ1DF9YbjSaygQsksCGISUboVgALI8yoKnR-QZhrAAaSwACY-nJFT7qa6nXB+MG0f9w5G0xnM6SjrRUCISQAxcq1apOUuZgVtXO1+uNu3KoIm9PdsqsGJqjXJLU6qDuz0hpUms2wC0x-5ghUD6kC6jkdXYuiiUjen0brceg0zsvUtXEy1gaXlLDlCNR22zst+gNBndwbTUTYwwYAElve9H37F9M2zdR20-b9fzBQC7wfSM5GAABGZ5mzLGAKyrRc6wbJs1xNNkOS5a9qkddQdGIxA-kI6lQPPI9VBPL06JZS9uX+AA1EVqhFWxVzAn03xkD8qK-TlYKGf9yh4vjbAY88dAg8g82gyT2D-GS5P45C0IwzMsM3Stq2xPDGwMn1iM5TjyLdZ1NHOTIaLANidF7H1FPtCjnWxFSWLPMtrNIpdymgahWAAL3bLjuEEOBBPPETAyvHQQ24+to15AAJABxEs3JUqDQq4zLn3PIyNBwjt8MsllW2K8yXCEsoPJZLzqT8AJR3CcddQCg8WXneBOIBRKfRUl0fIGtzgs4vl-HVehWB0NVaHZERxszZKxPSxsAA0srAap7HKWxyhQo6Tvvc7UzADrvPs4q9tO87LvuurqUqkzcM7AiWvXWg2zUnQmrotr6O7DygiCWhjB0dhci3ScNG0awbBKJVRByCBWHKdB2ERf9BFoIoiYdCVVCCGYlDAGZniAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index 886c467e9..c627cc585 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -208,8 +208,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc1YrV09fYPD-IyiOgCkAHyrEw0wgonk7I0Aao3tAMI6ALw6-GkkxGnLqGnUUPRw1Icn5zYbWxANQGFYolF5vD7sBRgM4lFhQdSqHRYMTCUgAegAYuV+OUAOZQuS-TbbEy0ajkRjsAAKjSwjQAsmdmjoAITXKEAeSOWAAkgA5I5QnQAHyaRx5rR5tiu7LAGI57XaHIA6joHFSCUoAL5BABWRHKaQA1nBWKJKokbPl+HBjFBUWkCDjRH19YaTWbgNB4ObcnIALqxFodLq5YDAKHB9pQ-2BiAtaahqrhyNTVoxuNKFgwR62x1EGCoLp0USkSEAppYelXHQlsskxi2mtQgBCiB0VNeBDg9CIUNwJOIhZrBEhYEa7eajEEuJ0AA1+zooWd22cC-RyglLBBNRW5AOK7TGczrnXy0DG8Zm+OqzoW-3BwWi9dR5Hb41F2-q2ddw0gkEs3QLpymKc8biqGtcgPHYBGEMQaz4IQRHNEkejSXE0mMAIfEeURUDAoFXneahrwxbDSyRMRUBIUQ4AfCsgVyb1dFlBN0zwEkGmzNJNBYEcSgNbtRDSWiRARfgCKBHReMYWg3hER0BJkMRDjadoalfG96U-LSmQJfdOMBL89LAQyDIYwFuMvfNh2uKy8yHVBoKk1A4V6fh+MEsQRI+OBxMkoFeOoQQ4EUrzzTYmooRpOljx0mKGQJZypKXMB+SOJxbChMzksBURBHoXFGCIQRnhkzzlOE0S-PICTDIaGS5PoBSCCUoTVI6GpmIitTCVyoFNJbeksAAaSwAAmHTWicBcwCCFLzJS0tmESHi+JfNrvOq-z6uklgmpazaes6nRNNaexGlsRoAEYpouq7JrmxaUtS866Qe7KLL-fqdEiIhSDSEo4FoXESlIEd2AANgABmh9SdHG2H4cRpHnsY217XJXM8Jo+DT1oUsAsBFsnFaaYqR5Gsz12honghqFWkSZrdGaAm4CgWidHYVpmkUPBUr5f6dCcILBHk3R2D5Jw+bRl6RG0agVhfImUuXJ8RHISicYgTn2DOLA+aisAqRYDRuC16idYlqkDampmRB0VnaI5iWecNmmjON4qirEUQtBZtmXa5qleZ0wXwZF7gxeZrmpb5j35pe2WgXSzKqYJ+svqkunlbVwsNd0ZFtd1-XDdSk3GDNkii8t3WbZln7CLgBWldOlWpLzyI4E1mvca50uw6FyPgvF2Ppfi025Orqi++pW2OKz1WvaIH3RD97RHcDuvQ-5hn7YD53dbdz6XsBROFsbnQuV5AV08Jj2c7b6LvcbNf-c3w-rZ3o3GdHp32aPjvZOUl5YfFbppKkL9fbv3-kHak39Xr7w-gA12CCoTh2FqLUektx5zV2ufM+JJE7-iULQK87BygUnhBobQ1gbB1ArKIMoEBWCNHQOwNAqAAAkghaA1E4Vw2ijBtAxAgFqJQYAtT+iAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index 8a0c9b423..fd262399b 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -186,8 +186,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc22tk5dPX2Dw-yk5BMtHQAkWI0AwrP5-IxEkXDa1KLs6+1bu042AKQAfPeFxSVp1FD0cNTsCmBYKAEOD-IIAXyCACsiOU0gBrOCsC65GwHODGKDCUhpAj8WiiPrQ2EIpHAaDwZFVOQAXViVy6uWAwH+V3+1NpEBa032RkZzLAXJmbI5ShYMDSjHROKIMFQXToolIfwgDUaWAAsjoALw6BVKiYNSXGbU6f4AIUQOgACp9gfQiP9cAadMRZSaCH8BZbmoxBABzHQADUdprAO0tOxl9HKCUsEFBEzkTpVTQ1O2aJr1yoahvRJpZGp0Zsdztdcp1HoLmsaIarOh2CZTQSCovQXXKxWzOlyJtyyYafCEIlEJsHwjEXYaPTSfrSxgCPjSKzgk5zn2+1HzYAAYgvFTpWoJGJotNwSymc92quTdDqWVMhXhnQ0xWlNCx3SUYcDRGlRD84HUOB+FXS930YWgvhEHEvxkCcrhqSsBQ1WtkPVdNQSTZ8cyrDCwGwrCLxzV8jWlN0dRIqUy37S8dFQFhYFxT9vzEP8AKAkDsIad9qEEOAYJYi5BScGp-itNVGnQ5pUPE7Z1VBGjaNDAB5Vp-gIxSc1EQR6D9I5BFQN8PwrWCfzYkQONAnNwMg+hoIIUz4LadoahvITnLkQilIaJCzXVLAAGksAAJlQ1onGDMAgiUrzaMVZhEiMxhmLg39-ws8hOKIsCWFs+zHPcjpEM9Vp7EaWxGgARjCsqKtCqLYqU-5Su2Or1OynRopzLrmyUWhjXYcpyDUDRtGsGw6hTUQyggVhGnQdg0FQDZBFoGolo2f9j1UcElDAMFqSAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 0ae053a1f..907e24fc6 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -174,8 +174,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTpjMnDsAIyIAEwADDbTsxDzOvzG-QORMsVp0Nn7Tc3tAEJdPX2Dw-zU9JMzcw3GtNTkRjsBytBz3ABSAElmpNyhNbh0ACQgsFQ5o7b43BpHE5nAgXK4YvYHP4A1TsRoANUhrUhth0AEIALw6BRgVoAYSwTicADlIbyAOJsoIAXyCACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAj8WiiPpSmXyxXAaDwJW5OQAXViLQ6XVywGAbId7TZNrtEBaDydVRdbru9093qUaFQXXKxXYc1yOhZuVwcz4QhEogTOlTwjEsax3RgaQA5mlaOg8wcGtQoPQ4OMWWzIXEtLQhNwdAAFBK0CikTv+Uhs5P57FVC26BtgX0hvA-eYsQuaFiZgglaUEMRpUR1uDqOD8CuVhpL6iCOC6tdLJXTmpurAAWQ5zRFw6PDTv96abLnDTkr8rqAsLAeorpeG6iFuO57geP7zCeZ4XuuuY3qyYAdo0WCNI+z5gH+sHvlO7S2N+I46HhpFQCeaRLowoFIRB24iNBh5HjRtA1iIiFXhSwY1AQsZTpSjQengqEcgAEsKuHkW+qFUsJJFHjJlaUdwgjUcuLKrvRkFMeQMGkceLDsfQnHadxKH8W6QntA4IrKUe1nCXZs6GSYtADPumb2M4sEOfMrYabRWlgZujG7vpLGVmxHHnuZ4E8Q8fECSiELQvZ-6OWAqVokO+HuZ5-DeY4Likf5x4GhcNF0VeukRfuUUHDFplxaF168ToVmCTSdIZfl1k9cRYB+Zl8z0FAjHlOe1UhTp4XMflzVmW1iX3MlbL3I0rQuNJo0HBtW07Xt8x-IVxW+WVx0jPwaTjZN3hpCUUgTjoABiwnbcd26Acw5C3awaREPQGYsu97TbXOQS-koQS0MYOjsOUgJQBY2jWDYdQ3KIZQQKwjTlhGiKCLQNSE9ujDaDEECikoYCijaQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index 3a5255cdb..02308139e 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -171,8 +171,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlba2Tg1NLe2d-KTkSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAZDL7JH5-KqDFxgYFvFgwGKMfYnIgwVANOiiUjsPrlADCtnKWAAsoTKjoALw6HF4vplVHGGk6aHknQAIT+uEZOmImNZBHx-w55R5bNFZJ0hL+QTKcl5EDKpOltPp+OVZR0zNZf05iB0AAVqFACHB6EQeXyBVjacLoYbKoxBABzHQADQlf0JhsJGPouTClmCYHlOiCQSUaCxqVymU1ZQKrIKSrKfCEIlErIzwjEie1TRirtWMAL2rpUHocGoerAAGk0KaIAYyXBaKpjf5SNatRWCvddLToWC4WmKzokTFNCwhVklubRDFRDW4Oo4PxyxOZ4xaFWRCd5zJ8wCig6pd6pZTL0SSeTr2HFXyK+yyX9nxHxxXUCxYKc5wuYjLqu66bh+ZQztQghwIegGbDCQxFH8RqkuUFKVJeKFYGhcpfhOfwAPLVO+fbak+pFlFOzLooKtJUWitp4WUuLMOE06zvaR6LsBIigVuFY7nu9AHgQXEnjUtRniK1ROF6eCSpyZJYPWWAAExyuRE7an8MlyR+mkTgc5rHDuAHHkuK68eQYEUdqgn7jBolwewp78tJsmXopylqRpTHagAcg4tSArZ4YKn0kZKLQLLsLk5BqBo2jWDYJRaqIOQQKw5ToOwMYACSCLQRT5SujDaIEsxKGAMzPEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_lineplot.Rd b/man/tm_g_lineplot.Rd index 0f5d0e954..0f3dbdf6f 100644 --- a/man/tm_g_lineplot.Rd +++ b/man/tm_g_lineplot.Rd @@ -160,8 +160,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBbgyhHMYBsqSiQUr8UKRQ+kZc1AD6GVnW6ZnZhjoA7rSkABa0EOFluDogSjo6AIIAIgDKADI5OqQwBPlwAB75UPyi1O1d3f0AQkMjY5PT-NT0OgCkAHx7Cx0wglnk7J0AagCSvbe2OgC8zybq+YxwAfyqV3cPWwtG73R4AORaMAaciCAF8ggArIgNfIAazgrFETSyNgqv2MUGEpHyBH4tFEYyRKPRmOA0HgWKKUDkAF1XBAegMhkzgMAFGBOf1+Sy2Rylqs8WVefyeithaKlGhUEMGjV2AsmS8dEzcAs+EIRKItfrhGJ1RAOh0RvkAOb5KRwSJEUjmy2W6hQehwaha-n9Bq6AAK-lI-N1Frd2rK9N0bxl4rDJ0tolIzCyWoItWRBDE+VE3rg6jg-FdkY6mhYtE9IhJWZkZsFLQI6oFWAAsmGdDL2wBhbqdmU92ydXv9sAw8NljrdjtgJMdOSTyOsDN1nOiPMFosl+eWiuMKv0GuZ7MN8VNls3TpCvBdsDLTq9Fy3-k9gASAHEB2BA++v+PF13acBWua9+V3QCIzdVAWFgVdTw3fMRG3UsywrahBDgWsEKuc870DEdOjbPtvwIrAiP5SCpzva9bHAqDLSCN0mJ0IIgloYwdHYBpyDUDRtGsGw2gjUR6ggVhOnQdglQAEkEWgWlk-NGG0GIIFhJQwFhFkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index 3656ffc29..a5e56dd54 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -140,8 +140,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUEAvkEAVkTlaQDWcFYokqiRs+X4cGMUGEpDSBH4tFEPR+f0BwOA0HgINycgAurEWlMOrlgMAFGAiZMKXiCRAWm0SVUyRSGS4wLTYmhUB1ysV2KNcjoALw6XK4UZ8IQiUQinRS4RiAUQBoNLppADmaXQC20jFEcF62jIIK2quoUHocGWotZ-D1Bp0TmNpFEFIlKtVDVyWN0tsprXZHq9DVQLAopF9ctZE2peDNoYStAj8KINp0FOe5yu7oTOkiRDhJTgtA1JVIcoI7AAbAAGWuTGoAJnrjZ0LdbcmDIagcH2MErJV+BDEaQNInUcH4ypDqoIQ5kYjlmhYtEtInhC5HILZNVZTlsTiwAFkKV28w1x3BJ-xo5SD0fT2A8+fPV7SEQBhrmJDB8PR1eN4zrOOjzv+sqiiujBrvQG5gYuO6Bnu962AA8gAGgA4lgZ7drOgHkLe-ptGhWE4c+b6qq+s6yIIojcMUrB-ghY7WtehHATRW5LpBq7roa8Hbuwu4ZveWBOHG1EgQRU53m04lxi+eGqkQgi+EQ8DMdurEThxF6gdxEE6FBMFwYZwlIaJbSoQ4ti4fpMlEVZTg2XZFGzlJXpQBYJBaQBbFAfpgk8cZfGwQJ5kifujQAMIAHL2ZRXqOXJTixQl7khp5qoaJporBaIOnsVOnEhgVy5hWZ4EWW0yGNOMtjNAAmolIE6ClxENc1FJKXmkLEE5cUOJM1KUUEDRBEEtDGDo7DlPs3kaNo1g2HUnqiGUECsI06DsNyDyCLQNT7QajB6h8ShgO8eJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index a7290456d..5f34a838c 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -187,8 +187,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUENLQDCALIz3b0DIYEGCrDZbHQwQSJcjscENH7jWzNACaOgAvDpZKI4GkCiUKLCIA1icSfp9GrZ0RiFGB4PxJDoTjSdAA-HQAJgADLg4aTvuTKWjqbS4PTlp9mWyAIwAVm5vIa9mcrJ0Ut5NnWdyKpTS1Cg9Dg1FhYHGpEE-FYOmaUEtRGMOlNLFIOjtOm+opkCUsEBpch5RJJOh+TgAcij0ZioNjcfiKgqg-yKVSdDS6QymWAVQB2TnygOBhMC5Op0UMiWZ6W5vMFxWOdpsuWc9WgrXFEq6-WG42m82W622+1OOIu+3u-iejQkX3+gs-RqI5q2X4Y+dIpczwNz0OL5dNbdL8FBAC+QSUACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAjj0Q9C9Xre97AAQxotFMNI1DSLRtJBKZgF83y+gAukoQIwDed6iB0oE0oiDgolccE0s85xEXg8GrjuxFgAiTgAIo0RSnxqhR0G2J87JMRxADM3GfAALL656XhAmH3o+UByMA0HND8TFyUhYDIR06HiaIImAVhknSbJsFsQhik0ip+S4SatgEci5FQWApGvMJPrQOgHTlMUhINLkEa5BufBCCI2EYr5whiO5xJdGkADmaToNFXoUF+GjwFIcChSSeoGsswoAApxWQdi0El5QjHgvK5NA8ALFAujCjBLglfmxJlbAOLoRGsnyfVBaoCw8XldVlETJMkG8t1Gjxd+RCZfBdnWSN-hfvitARSUzoYqBABsuaTDUXKcttHJVpMfq8sCr7EPwEYECUl4EGIaTYiI6iiqlgZXTdYgRpoLC0PqIjftdMghbkwAyYZHXIchNk-M0TifAA8s007xg9cBPRdwrQ7DCPDQ1DTHbjOhVfsIJrQDt2iPdhqo+Q-AvSSb2AwFOhfYwP30H9DPk5JIN6XVEM2W0thOFgSn4zWOgo2jl1gU4Qsiw5BZi4GRMFTioiJIwq2YmTd2SzTdPEpzH0YizbMczrD7A6DtXGZDlELgeYBKwWeuitL0EO6L6obiSKsVRQ6Pa+9FOu7T8ZG0zpu-TiEfc9brR83b0H7qLPuBqH7sISnCuBs7jXq6r90a1rEeU49+vhxbn3fdH-3B3H7VKfz8Fzp7SMEw0Gdrcardrl7BN5x5Bf+8OpPB2X1PPZXwfV6ztex1bje21D3xtGGjuD8SXeYj3q-Z073u8lVjCGvErBF06l0WxPaMGw0Eez2bMcWw3hn6c3HtIsi7fi9vZlUd-A+A804NGPqfG0vRR5B0ZjfCuHdoHk0fvPF+i836JwFtuQBm9O5Uylt3ZOYYsGHwJosE+1Az4X01lfceoc74IONszGu7Nn711QYhZe9sv4-xrH-MCC4iHANKqIMhFCA7UJgbQ6ejMkHMLrozV+7DlJJyzoQ7hLtcE00zmvFEOcSTvGJPooIQRaD2nYOUfYUALDaGsDYOoAZRBlAgKwRo6B2BoFQA8QQtAajuIeNiRg2gYgQCPEoMAR5kJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index 09cc86cf1..f91584fa7 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -171,8 +171,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAwgCyyTqkMARpcAAeaVD8BDD1Tc0AygAyXT19g8P8otQ6AKQAfOsmtNTkjOwOUw4AQgBSAJLNG+U7LR0AJMdnV81BDQ-tjx2NU7bNWydfJfR5-AFAiag35OABygOBRlBjThCKUAF8gkoAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfVx+KJJOABHYCjALVmvJqvK+vLkAF0lCMxoTiaIutzef8HM0AJrXQU6XkvC7qvCavn-NF63kdKZOACKGuFtlaAEYrXybQAmB2NG0AZldNoALKKcXiIDKSWSoHJgMK2u1XZHeWKulKYEHRLF+XNKVVgOG+dMZrGJRAvl1cpmIx087E0KguuVijyIA1cjoALw6XK4CZ8IQiOUtzvCMR1hoNHppADmaXQaVKqjQHAmQ501Cg9DgaxbvNsJRnqFYgvnQ9y0Hgzf1Irw+4aqBYFFIR906+zAvP9YXOivGhvDKIa-12ree5fBdIiIekt1oUcSlIE9uQANgABjgmYaidBCkJ0FDULkdtAKHBJaEYVdoJKPECDENJRFXOB1DgfhB1fBoCGImQxBPTQWFoZcRAZJjSNJL4hUdS4sCcXMwCwi8hwokRqP4aCeUE4TRI+V9xJwhiYCpYhZJbRiSLIqSqPIWiJIYniWJbNjGA4+guN05i+MjASOmaJxWgAeWaUVsPohoDJkk8TXaFz3M8sAJNU+ixnKUYiL00RyMomS6Misyex0SzrNs1L2H4-UOkueFWi8kydD8oyArAfLCt5cLvNfMZ+CICjYvshLpKM5L6tS1j2M4uBuLinLHLyoK3LNYq1MkxLyofZyxpcMLJoi+qYFIRgoJ01K2sMmjOoXOzeJ6qy+oG+yho6Jz2nsWwJp80rppoiqOmumqlrq-aNKawQWt47akpKg7zPS3qbP6wGHIukbmjGhxbp8srHp0+S5pOP03oksZGCIQRyB+-SHuMybTLio7MrB7LcsCrA3IcWwFuW+iEe0kbqdphbaoxz7RGMRgAEc8fipm9qHcHSZO8HzvaS7oamAAxLBLTE97XyZp7RrlhXXvohmRZgURSH4VgBb+jqAe6iyQaywbKYNAEVThxmCYq8FVS1lTlfUihDeNoWzZJi3jtB07eMlgSUXhe2lZK1WH3D13Fu1-dlKCIJaGMHR2HKA4oAsbRrBsOoX1EMoIFYRp0HYStHkEWgairijGG0GIIHRJQwHRMUgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index 94e8b93a2..e4562143c 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -116,8 +116,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlQBq1Q1NLe2d-JqiSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vQbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5jF0DFNJluJs+tSdNQoPQ4NQSX8BqzqNM8BzqQV7rpsdCwX88VTOTpUCwKKQpQL-jVAWLFZyVRo1SciPyZWAHNUHAAhABSAElKvLxWVUP5jlk4LQ6VlSCSCOwAGwABiDtSKACYQ2GdJGo3IFUrlSxYKc-VklgQxDFRHy4Oo4PxKYmygR0zIxCTNCxaDyRCcy5nNjDqkU-gAFcpYcoAWQAwo6wPHndScyJ8-xNR2u32B8Oh3rqW0oG1zmmM1nR3nyIXhyWGxXsVXGDX6HXS+um2DW1qAJp-efFnSb8eaqp3sBzhNKqBV2JHtflqI2a5uORbFuegGVtWtZwPWF7sM217lAM5Q6g+xbPtur4oTqc7ikEZRBEEtDGDo7C5OQagaNo1g2CUiqiDkECsOU6DsIiAAkgi0EUnE5ow2iBLMShgDMzxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index f51457977..a1d061747 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -162,8 +162,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index c19b8e48b..555ecc0f8 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -139,8 +139,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lxrTU5IzsAISlAGoAkpU7ttPZUzoE7ApglQDCWE5OAHI79wDiFwUX-aWVTtVPLmByAIAXwCACsiNkogBrOCsUS5RI2ZL8ODGKDCUhRAj8WiiJrgyEwuHAaDweF5OQAXVcEAqNTqeWAwAudOqF0p1NpfUGyMSTJZ3PZnKUaFQdWy6XOEBKeR0AF4dHlcD0+EIRKJ5TpVcIxFKSiUGlFMVB6BAiIwYNx0qwovQbSlzaJMQBzZgovX6krUE1waiai7VE3mkLm1h2MSkHRYMQYjVpTI6AAStGdGQjOmebt0AAUiE6DP0oKJfdk4G8Fvq8qTdAqBQNy9LPToWDAopoWJqCBkIQQxFFiyJ1HB+B6m6duzIxJr24xaCaRFiJ734ayCqJBPRi5GFWcWVgALJvHR7-dXcoXQHKxtjgdwIf8f1gUoHi4VkpyK9j1AsWDYztLvtb3vUcmy7HspwVdtqEEOBF3AlduXeMBs2fUpT3PPBj2Q1DDwBT8xx0IDyAfHdzifapbCPC4bmzKiwB2Z5SgvN8dA-FiOn4I0iFCP0FQAMVKapvgrAJ33wpYVlUTVIn7OhlxAmSuknMjWToypSj4vi2Uwojh0fABNC98INOBuFk5S636OiAHl7nsWwtKPXSSKwwyAR6AIAloYwdHYbJVigCxtGsGwikbUQsggVhSnQdhRQAEkEWgCgS4tGG0fwlCBJQwCBSkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 3df258ee3..82c76ee1c 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -163,8 +163,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyARVyikrLK6v4AR1ElAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+bWxdCHp5yWm8PkoWDA-IxlhsiDBUEU6KJSOwGpksABZHQAXh08MRDQyEOMmJ0TwAQogdAAFahQAhwehEJ64PE6YgwokEJHPcnZRiCADmOgAGoziWAAMLksXQ+jxDyWCBPIYZORMiAZTJi2wo1Fi7JEnFItUZHQEon-NE6EmM5ms2FYjnm9GZEWOnRixUNIZDEHoIrxaKGjJJIlJVUZPhCESiIkR4RiQPGkp+dZQcxETRQBPG7FQehwahm54AOTFAHkAGqZOy5kTWo3ZpLHXRY-5fOvZjJQTTbaLsmJjWmiPyifNwdRwfhZjsEfsyMREjPUQRwDazwfsAG5FL-csASVyu9sirDHYyI5E4-4hYA6k4nABpHQARh02UyAE0dAAOJ7M5Un7NQT8DNGD7AcxGHUdLynbMZ3A6MsRA2gaxXOC51mF4UgdZ40RdZ5NW1XU8MI7JFRVP9jXPMdyCvFscJ1UiwAo8j62NICCShNksXYyFbQAtjF2AlgwPQyCLxomDjTQwcFxYZD6BEVd4I3L4sM5MUAAkAHFiMrV4wDkFjTzPKCaMLTSdKY1j-wo4hNCE0D7TXCCqOgiiMmk+dELklClPQlSWjU0lMlyFw8FFXJ7EyLUnzw0LhQMozjNcsy6MirBosyWKrNPJLs1QFhYE2ETBzE6iJ0kjznIQnRF2XPz103bcwApFFMgYvDWoy1Fj3cnQUonQsADF7wPAwhuvK0co7PLjXicg1HWECSpc0yKr6zyaqQ3zNoCrcWU5EkQrC5r0sy7LTqcBLDP47MBtoiKopi39rJ0JVjXer0lFoQl2Hm1QaQ0bRrBsNIjVEOIIFYTJ0HYNBUAAEkEWgUnhhGR0YbRGCGfolDAfpziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index 9243e48ac..63d00a333 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -197,8 +197,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSUwgqHk7PMlZQBqpdUAwjoAvDr8USTEUeOoUdRQ9HDU7KVbuzYzcxDrH6npGVc3d6tgHYZFhQdSqHRYMTCUgAegAYtl+NkAOYKMABD4vWZrYy0ajkRjsAAKpSwpQAsjtyjoAISHNEAeQ2WAAkgA5DZonQAH02LMqLNsB3pYDhDOq1QZAHUdA4iWiAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoNCogQkaImmqNdrdcBoPA9Xk5ABdVwQCo1Op5YDANHe6pot0er19AZGxL+wMRkNhpQsGDnE0WogwVB1OiiUird5lLCU6mHbO5xgmg46QOFnQAITRBWIGcrBABpPJZQbVbA7Z0OwVclwPV7JdoOfY5eMlbRtcQOiJ1wIcHoRC7Tczh1bgbn5UYgmROgAGl20Ts5zt0-RsiFLIF0QEAmhM8lsuk8yU8pW8kP83whCIJkOP9hDEd91gaKJSCiK9oDYE4libOAwI+a5bmoacwEhURUBIY1xgbNYP0SJ1dBFCp+gI-MPlQEFGn4FsMnVJdRCiUQ7jgMF+GQz4CEYmQxErTRuEEOALT45iHgjAo0RJMkixPMBZIpBUf0+dY2JETiMNrJxKn6IkWTRQidEHYykyiITGAYpixFY9jOO4j5eJswCdEs2gbhEMSXMk-pGzbQsFPbKkgp2WxgvKAdVLUnQNI48h6LIwKwGM0yqPWczJzTZtDky1N12ij4c2YUILJYaz+JYuKHOMkpnMqwSWA8+gvPqiTyMqfy0UqJxjzwbta3JLAAGksAAJgUskdhce9Cs+aqEowqaZtSuaPxNM18RTbCSDY1zS0c9YdL0yoDMrA7avWC4WwBC8MxEcgITEHCIDYnR2B2LBFH6mSWA0bgnp217dGJL6VMukoRG0ahXK3dKYu7O6fDgR6sJet6PrBn7FL+jz0LR3aQaJLG1pi7rQha3RyjHOAoAxypym+6TFMYIhkXLURRC0KmabponGaM+HPgxGK0oR9kNicIVR3HCGdGuzcAUqCmRB0am2L596GaZ7s2SIUgdCcITqEETyQbZJxvrFhGdChu5YcOtTT3TZHUeewn3s+nW0T1g2jeEs33ot72ccYf78fd4H3uJpm5ZKGTWfZsQue0NXeYxokBex5XA-V2n6azuWRbU621KZVkOXOsdczlhWdC3Fm2Y5lOeY1jOs+ZnPKbTtuQe18GhZQuBoYdhOm+T7me-z-mQ671W8819h++x33DeN03u-YYOFUu4v1j3kWHyUWgp3YbICVBDRtGsGwinzUQsggVhSnQdgnwAEkEWgCg-tjGG0fwShFRKDAIqN0QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index 0ce204f11..ab7fac86e 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -244,13 +244,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgGK1Go0jpwAB6wqCLungC80TGxMRF2ABa6waEiOvRw1EQA7jq0ohlQonD8OiQ6pMk6gqKC3DpoqIxEUASJ+RCaRNSatBAA5joEjHBQGhVExglQOswQ-EQwOgDCACIAkgDKKzr848VwAVALlckQc2bKQ1W6TXSyExAYrtCMMAD6o8YfxDCo+iMdH87CUOh0AEEVrYIVgALLrHSRHTA0igi7guZwYxInQKMCwuE6ABC+NwYMxfwByIIoIJ8MhZLx9KJK3xigxcnJGMJuNR6MxWJxyPxxMQOgACtQ2nB6EQyRTwVTcbT8RDxWtGIIhgANJn4lbilZLej9caWCDsikcjlKfakWaGSpjagfe1Qax2g6AnQ5WhVfrsd24HQgCkQtZbAAyPtIMAIH2CHyg-FE1HDa1sticsfjiaCyf4pHISgAvhyAFZEfofADWcFYoiDBxsTv42KgwlIv34BQTVZr9cbwGg8Cb7rkAF1XhHoz73cBgGrI1H8ZPpxAI1mc22Dovl9u1xulE0ff1-QK9t7kcGKXwhCJCsj78IxJfwXGPt3iEFRgN35i0qZNQuIGkQQQ6FgcADC8eCKpi7qjroIoEpm2YKhigosJ8mgsCqiTVgQYgfCUIjqKU7Cqiy+osusNFQjC8J0WAXLMoS7LcoK4LYV82K-Es1KNO8vE-FSnFcagLCwAQZQ0gRMjEaRcDkfwAGCrh1CCHAvzyURTZbtmIb4hKsIQgiaw0SZWBmRxzIAPJbPi8Hglyzk6P4zAOh8uGMPhhGKVkynkKpblKnSKx2Q4ABy9gAJo0Vs9gQjCACMCVJTCABMtn4ol1mpU5mGYq5RVKkQmjeXhcn+aIJGBSpamUnSEIAOIuHgzLEnCWAANJYGlHWit1fXZYNYBYE4LUbHZUUDaxaptYVXE6CVy0wF2WgsLQ4zIXYjguEVHIuUoHK0Di7D9OQagaNo1g2GGGKiIk-SsBC6DsE0AAkgi0CGX0lIw2iMBypZKGApaTkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgMpxiEfjpwAB6wqCLungC80TGxsRF2ABa0ojoa8Lg6UDqirGSJcBoEOqhQtIw6RMY6AIIAIra2TgD09V4AMjr8UKTZKSZQTDI9cAHGRBUAwkRBOoxwAObzoqKWEAkA7gXzabRiWf4lmtwA+vCkiQI6MD3kjBhKdEwsHPxhrIyK6-492YZpcFO3V61iUwL+Rg2tAutAg7HBmRASh0tQaTX0RnBGGMzHg7GRKO8tgcdQAmgBJOo6SI6BRgdoOAByAHE6bgCSiagA1GqdGkEdgAFkyAGZMgBGCWZABMMtFUp00rk7IghJ0k0ZXiw1J0AslOn1+oADArjZkTTojcqObUsABZSZUmnGKDqCb41Vq3XsC2G03mgOW83Wz1q6iDODUVL8-FgGr22ps2lxhMAITpXzVIbVXicAA0dS63YwPV7vRaK4G-QbTdmveH6JHo966QAxJN0u0Zm11lHkzW2Quu0jugV0moduOT9N4ZMzzLj6eTiezunz5MruS9nKkRiwhaiGqiVvDibN1u83MEzOoxpODFzeiw-jsep3zJvpoftFOb93m+fve-xQKIJwaPQ9AiK+P43qIhQYHBozsOKAE-gAJP2XiDv8oihFBgEYQOqF3mhNTMkBRi4TAYRwOwcEAI7sAArJkADsLE6Exyo5LQABeug0hAjBEBs0H-pk8xhK6Al2I4TjEU0aEOF4DipgAUpSD6lKI5CxqIgj0Em4qIEJIliU03EEZhtiZHBqA6nSBjdp6BEAArxjUdoPm5HkOlS-x0gA8l4dIEm0nQ4QZcGkKWhKASqapwSI6g6mOYDKapGl1JOWEkhS2Wrimfk5fmk7Wcu5HOSiXwAL5fEoABWRCwicADWcCsKI8K-DY-z8HALrCKQJwEPwKQECcTUte1nXANA8BdeCcgALquBA4UPuCwDAOOdQdHSy2retP6bb8227XeB1HQkAAGXDUDdWToHQsgaCQCQGJ9X3fT9TkQB4OiMkQ5BpIkPSg7o2rEP1gRBKgEzkAE9CsDoN1eJcGw6Nq0z9Y9-BEPsEDAzosKSIIMMXLo4IJKg8wGLTRAEGIqwQAsGA6KSRCCDoULUNQOgQHAoxpEQurzCMENdL80VZKkgxENoOiNuM8wJIwZjKAskvBPDjCI1juoCHADzfCwMAnPMxgjUQ1EPnQOmvvajo6vbMWWw5RWJrOxC2zG45phmW5rWg9n-LC0KxeCOoIgSfBCCIzZx8IYixSipDm8NxBBPMCyp4SDaRh70yzFgiwPHgNoouC80yRdTRspXWSMObxwVPylwyGIJxJb4iPsGl8bFWA3H+0P24ombFsDdbvtN+blsz6gCVeqUuKjalHdM6BPfqEhjcosc1CCHAI2byn8XJu5WCeY6k5X55GYLmAwWhaGhLjzuzC9Ccrcb81W-d0jL3JCaVyrD0yIyBw7R2gf2IJoH+LA-6d23kA3eL40q5jzBVFw4DkyYMfo3GAQ0tAsFoBLGk9hnA9mvEoL4tBqjsFhHcYcWhaJbh0EiT0ohkgQFYDUdA7AQ5oUELQTIQi4KMG0J8JQNUlBgBqstIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index ab1d03a12..88c500d09 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -139,8 +139,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyoZHxyeBoeCmkuQBdVwgcgqKk4GAFMEv8+5Ozi6aWudDb+5zm59elGhUEV4tF2A0kjoALw6JK4Bp8IQiUTQnSI4RicEQDIZEp+FZwbRkKYNHE6ahQehwaion78bSMUS6JxE0h2Skie7w7Fk2GhA66GE-d5c0k4lgwPyaFioggxYYEMR+JkidRwfjsAjgh5YACyXJ0Pz1AGFsvc5CkjfqwBaxRlqNQ2TC5QqlSq4GqNXacS6ZGJUdLGLQOXBVvK-VNfk4Ulqfk5bE49Qa49knMaAPJmm22nm8nTuz2y7XNVMZrP9PM5vMxR2y8OK0TK6ke8he3O830NgMsYP0ERh12R94x4tOABCmdyAE1csmHk5cunjeaq3n883C0L5xO8jP7t7V2Savx8URPDSYfZnNy84SKCtSKxUILDSh6aomTo72R9+2Kzp+n6WhjB0dh4nINQNG0awbDSHlRDiCBWEydB2CBAASQRaBSDCmUYBl+h6JQwB6E4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index a4b5d9972..158dcdced 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -137,8 +137,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMoAMmE6pDAEkXAAHpFQ-KLUhToY1PTUoq1BuknEUdRQ9HD9nPWNLW1QcAFFZcVONXUNzYOLOgCkAHx7XUUwgiHkkbTG7LTiBOksUOqqeVDixs+kRP46AMQAch0kx0BFUISyOiIxh0j00WQA5iYvj9RF1RpFxpNpqsnDYkj0+gMFnAlABfAIAKyIWUiAGs4KxRDlglB8UZ+HBPsJSJECPw7g1qbSGUzgNB4MyEnIALquCBlKo1BLAYAKMCKyrqmVyhWlNbK1mq9W47W6pRoVA1LJpdhdBI6AC8OlyXT4QhEoidOndwjEdogRSKdUivLg2jIA3orEiCOYnIDQaDWKm3pN-G0jFEuicEdIXujOgA4vHdLYJiJ1bgTkGEhLdM6TfqXHga0UWDBIpoWN6HjSwQNsyIXvx2AQ7RqsABZKs6E3TgDCpXVcjy85nYFXbZ01GopF76X7YkiQ7gI8TSaDfZkYm93cYtArcD5h5vzNxeXHJqctic09n36lE4C4APLLpuW6BpeRSniOvYTmsQGgeByyXpB0HpHuB5HoOUxnuQo7bkU14DneLCPn0z4kf6H6gghTgAEJgeUACa5QARqTjlCBC4ruh0E6LBBFppxTEVGx6rbvxSZxm0Dagq+A4nnh55EQpOFkQ+T4vjh7C0V+nG2CBAAaRZYBxazlE4ABqfHVlB0FCXA-AiWsRmmeZYBSTWqEBAE1w6LcKhqBo2jWDYBRQaImQQKwxToOwloACSCLQbzoEl2aMJmARkkoYBkjKQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index a91b35fa8..d5a2b8702 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -170,13 +170,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6e4YHQAITpMh0ThasB8cBNaFQdWy6SuoJ0eRpeVwPT4QhE1JReeEYjTYPqMCiSvZlLhqBCrDgLDL5Z01Cg9Dg1Bp3x0WBCulK-D5glE5H4JiIjB0WxCtEpBgAmk3GNTSqQ+7DhXYOyInoSSnldboUZ6Xfv0+WWJXNCwaQQMoKCGIoqIu3B1HB+C3WxdHzIxBpW9GFoXc4GVf9nwlM1qgKS4XiwfZPgQo5ygBOQc0vVs3xET8J1PG5EOOa4Dx0DDSI6fgqyIUJuxRexnEw38azIOFgPvSCXxwj9xx-VsHyfQCUWA0D6BECDBOg507meSAKVYgEmN-HRuLwns5JYqkL2UkxaBaL8aQYlwsJKciTJ0etmEafC-0k193zwvjywEgDCx0W9qEEcCXKg9gKi9WSdj2VDkLAIKDkU0iSlU8d1K9R4wFIgJy2SsilACWhjB0GEVDUDRtGsGwinTUQsggVhSnQdhEwAEkEWgClqt9GG0fweSUMBuUNIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6N4YHROFqwHy6NKZepQegiHSiHzpHQkIO0xgwKKaFg6HOMWhxkSiE1oVB1bLpK6gnR5Gl5XA9PhCYs05vCMTVsH1LNK9mUuGoEKsOAsLvdnTUONwag0746LAhXSlfh8wSicj8ExERg6LYhWiUgwATVHjGppVIC9hwrsRbgT0JJTyut0KM9LsfNe7LCz+ZpBAZIKBBiFEogznA6hwPw44ThcQEyGINL5oW8ZwMqCEgRKZrVAUlwvFg+yfARRzlMRYCVE4AAaAJyI234TuBIhQVuKL4TchHkZRNFgAEcF0U+tL8PwUSkEQoSzii9jOPRcH9mQcL-mxmGgUxkGbrBE6AcBSEoih94YTp2HOnczyQBSCkArJcGJhBLFzuZ8lUl+NkmLQLTQTS0kuAxJQCb5OhDswjSsfBRlgXZGmCSU2mIdSencII6GxVh7AVF6Zk7HspHkVlBxWdFtnMZuDleo8YCCXxYJVQEAS0MYOgwioagaNo1g2EUNaiFkECsKU6DsGWAAkgi0AUw3gYw2j+DyShgNyhpAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index e40b783d8..8aeca58dc 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -195,8 +195,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otQ6AKQAfD3FJTowgqHk7EPDOuW2ABIAYrUAvDqyonBRKRkUkxDT0wCEtOLQ7LNzszYAfjoKYACa97hTB-bOOrf33-sHNv09VLpDJRahQehwaiTMCVQT0ABWcHUMzgIQyOgWYIA5vcAtM8WVyqUnHUGk1Wu1gnBXL8MB1+M1tGQosZsaI6qZzBorLEbEVfiVYnUhQDXiVRuM4HsDsNbABZAAKSyilScWB0q2JqvVy1W9yeeDFssVyqwThWZTV5o1esezyNJXlSuqUQA4lgAKway22ADyAA13Ta7mAPfaBW9FSq5QBFAAMAEZvcdTlB2JVY4mAHKlOVyF4R6ZO6PxgBMyZOGDOGbLObzBZljqjAGF40nVimq2nW9ncwT8a9iNRBDAIKDwZD2ck6KJSNLI86VWrvfdKqpLIJ2cTwzKnabrbasJCQnB+Jadwvle6vbbXcx+LovdvDYW7FGa4nvVAxLRxxCobEwDAKumYJnW9wALoQQUgHATCoGVM2kEQfmRrFh+5arN+oi-mC-7Qg8GAAJzEaRREAPQAFpkWRlqVAAkriDYLlEPbtjo2G4ROAEhEB9xseBYBQf2OgiUOf6TrkIRyMA0DwKI7BDiOY54ZOcgQXUUDiAQGQsFA6iqIpRDDqOEnUKIImxEMAC+NIlAAxAA5DoroUKoITZFiOibqoBgPsY2SnjocBMqQJhshgQwVMSdTRSSAI6HS-AMiFFCkCybLxIEtLfu0EDRJoLBTkYcliOwcUybOLCkKIADqwLsKVCkVQU9x7i6uIQUMdI-lEhWMMVOhNeVRJOJVoSMDV9WZI1sBlS1IbFp1SjWQE8JENkUQANZwKwCl5DYyT+VAwjpQQ-AnE062bTte2yXN+2JOpNJoKgdTZOk855N6eTMXwQgiOyqz-cIZWvA0UTpalZCiFEogjjAnjztMqndLapT8NoA26E4oXsrCMCI2wF7THkpUrmAcUk8MLAwH1LDejpG0EGIcOQki5D8MjBxMzIYjev1tDgiIUS8yzCn3BUNTPGs0KlFgcoy5LCvNuUuKoa+JQbCIBlnujCs-DKGsyqyUBYvTjB5WjawZMzrPaxzp7c9MYv86sgvC5srsS5To0y3kfFgD1VsW6IyHG42Du6z9iSB8HUD5aHyHAAm0EOjoO1wKgUREIwD6MN67xOMxJu0C0QWrAspTVKqRoR9Mpvm-17Q-oztt87DUec87wzewLLBC-QIve3Lft4DoAdwT1OFJ0JKElwcXcVxPsdT5xs9QSnaeaxncBZzneeqIXjjF+nAXl3rGLV7Xr71zTyWQ0QoTW0XrwEgEAS0MYOjsNk5BqBobQ1g+RDFEFkCArBSjoHYK9AAJIIWgBQ4EbEYFjAItkIBgGshBIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 6c6f7f5b3..7aec2d4a8 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVOABp1DU2t7fytrhAlonCkGDNw-OwAjAUA1tn8OgC8OgpgALKqMxAQcAa2aaLkjPsBJRjUUPRw1KJ1xNFPL2-sFQMFYy0ajUHY6ABipWqlSc916Azq-0GAFIAHzInolfi0a7ZdTsByVBwAIQAUgBJcoFDBrOBwVDtEFg+zOGxojFTEo6GCCULkdiYrkABVKWFKBwAwuUwftbOUHFhyvtcIKSiKxQcZWAAPLaZhMoTMDQkHS5KCsUSKPCqsoANShYNEsB8cHYLUdcAAjisCgAmAAM-rkBVEtAAXrpdjlgzpGPSngRI3ZHLCVZyuXaoQ4teVzaJ9oK2ejBfRNlFGEQUqI-n1+nDPlFvq9q0ibMlHs9m0oAL4BABWRGyUVpFrNoTbRnGxigwlIUQI2NETQHQ5HomA0Hg1bycgAupM0Kg6tl0gLOXkwXk0yU+EIRO9drfhGIzxmGlE561UERRII46+Mx0JtQV2fZyj-EJLCmIhjB0JwWm-X84zsZ4RGVG08k3JN9iRdD0y5VAWFgBcwQIDJB0TUQohmER1EWADAJ0MiKLEMFNG4QQ4HnciZBfPJgGAHDa32XddwKfZ1XFKVlT2MBJIOO5r0YnQaLgOitlAsA5QVJUwBtYMbQbehWCidjGFInjKOo141PIJYbRKZjeIfHQzNoVCuKcyixygAShIGESxJUwR6BmUhSIFMAYX6GScKwBSwDkAz8IzVT1K1aKCxSnRksYisUiiYzTJYCyWKotK7IYwCvNY3Y3I87iyp8vywFwsBRJDEKwoi-YxQlFw8FkrAnAAcXJbUADllliqL7FKWxSmmwb9kyxLcuUirFi1PqBv0pSM0IxhZHC3YavKmz1KqjMzrYjjPMsvjEhatqOtk9UJXm31FIclSLrsnNGEEABzMossY9aMw6fgPyIUIQIhKEYULHp1qBagbjBSJqLobysa6XjIoqGoZsqUpwXBaoZM2jTZIATTuAIAloWD2GyG4oAsbRrBsIpOVELIIFYUp0HYQ8ABJBFoApxZmRg9QCbslDAbtdyAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 4978fb7a8..41a8e2bad 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -131,8 +131,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 3dd43431a..7eb44136f 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -126,8 +126,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAYQBZIpKyyur+AhglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdJRreyenRIoJ2BTBc2wdsgE0ASWznlOeHLkHAAhABSPz+OmemVe2VsLUhz1auScAEVEWBMrYmgBGDFYpoAJnx2IAzCSmgAWZ5DPYQW4zOaeOTAaHNBF4KGY9nPc5Fa4wBmiVwQHIFIpJYCs7kFXmXUXsiWhKVs1pykVoVBFeLRJ4QDJJHQAXh0SVwDT4QhE9xNluEYj1GQyJT86xga3K2jIswaTp01Cg9Dg1GNXKaJGIMGiUDIOhacC2sg0JHu9FYcYTMg8ln1TQDonuMf4OgACoxlqpy8WAHKwOB-X1OpLHXQm1Uc836v06FiCzQsUMEGJjAhiPyiYNwdQJ9iPaFYDtczILpq-MByf6Yhc0zvdnQTgCOfn7jEHw5kY4nImn-CeYGRaMhV6n5GLbfvLRR6M5xloFQTob2M4G6NhkMTUKQZ4jpek43o6e46EO0E2joJ60IGIgbOeo6zDkrQpHOmLYninLQtixKkURTTkpRBLUuuIFdnuz43oOd4EiRm4EhRXFkhS9FDHujF7tQEFQReojjrBr7wXuSESaGaEYXAWHIeweEtARd6tNkThNAA8mucjCQhLGvmxSItLpBlGaBOgmX6NT8K6RCeCGJpAU4u7dnAXrrKQrCoK2XKkOWHjwGQzyNoJ9lKEMtDGDo7DxOQagaNo1g2GkXaiHEECsJk6DsJqAAkgi0CkpUTow2iMEM-RKGA-TnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 7cc0fe4bc..9138d5e51 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -67,8 +67,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWolAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyto7u3uBoeD6kuQBdVwgcgqKk4GAFMF38442tiCU0VCL46PZ0nSSdAF5n0NwnviERUTedD9hGJHhAMhkSn4Jug-PQoKIZH54sYiKDweDqFB6HBqADjgAheEyHQASQgKOOXzB6I+nhWunex1OlKe6NQHloFAmxFxjLADlyDnxACkSdkWdT0ZoWP93gQYu0CGI-KIcXB1HB+GiaRl5YqxADpYxaFiRJMFTIQac5FSdRlVSINfwAQRHicsABZSk6JkAcRceB9YFyTgAGt7jgBhADyDgAcvYAJoRsBYTKRgMpY5OaO5XK2WzHZo64vg0vNZq0Yw6djxchqDTaaw2NLU0RxCCsTLodg3AAkgloKX7qsY2kYzQaSjADQ2QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index 86f271b96..f4d00026c 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -119,8 +119,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NboPzUKD0IjMUgUjgNPE6Un0ODUdGPABq0W4okeiNxdPhoSOujhf0+3NpeNQHloFDWxGZwrADlyDmaACkAJLZMW8umS5ilfjoggxUYEMR+URMuDqOD8HF8vHG01idGaFi0MkidYmmTY-7NFKPAAKmSwmQAsgBhLVgOQ8h0ZS0iG2GhUhsNRmPijJx7M6PWwI0+s2iC1WlP2hNO31ouFuxge+he6sl9j+wNgdMRx65nV8pPW8ipnTB0PdsB53sOjTwVCjMi1nQt80Dit5jLLxf1xvN4t+z4dnIATR78YTq6HLKe2RPE77ObPdKgEAbEGHm7LyaHlYdm9d7s9OBvWdGZ2xHJ4ADksHVCCYync9y0vBVMigmCs3vHR4KfN1-HrIsQM-QdbR-Pk-zrACmyAzc2wPcDMlZTIXljR9+0Q20r3oxjHknFiMigHDBD8PC4Q-C9iPXJc9y3CjdxAmiWkPBj8gcU8JLE4c-iUlS7wdQY6T0zClEGWhjB0dh4nINQNG0awbDSXlRDiCBWEydB2BBAASQRaBSTzLUYbRGEGPolDAPoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 424ce6fbb..0de76f252 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -89,8 +89,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 6e117e107..2992351ab 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -102,8 +102,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMIAsmE6pDAEkXAAHpFQ-AQwhSWlAMoAMjV1Dc2t-KLUOgCkAHyTJrTU5IzsDj0OAEIAUgCSpVNZc2VVACSrGzulAUVHlcdVxT22pbbVSTfHD08vXe-3TgByz1eRnexQBQKUAF8AgArIhZSIAazgrFEOWCUBsSX4cGMUGEpEiBH4tFEDThCORqOA0HgaIScgAuko2h0kSjRDUCOwFGBHg5SgBNXa8vK8s5bEV4HS8z4Q6W8qo9JwARVFMrAxVs5QAjOrZdqAEz6zXagDMJq15QALLzYfCIOzUeiQnJgLKKpVLZ7eYyaqyYE7RK4IGV+jUEsB3Zren1fczQ56Ixiox6qvGQ2hUDUsmkeRAigkdABeHS5Lp8IQiTmlyvCMT5opFOqRQnoSKoRiWRiReAk2QaKxdJs6ahQehwCal3kABS7REYOkqcH7wUsEFFw6bCVpumnMfTeC3RVQLAopF3JY1YbjR4LI50p4056JRCnGolF0395Ha8Yk6vAh0nhAgxEiURJzgdQV0bB8iiAkCxCvTQWFoccRCJYCZAbG4xVNbYsCcW85FwY8mwgkRoP4K8DQIojeTIkiyI6HFiGo0sEOw0RwMgqjYLgzjQJrHQUK7dC4EwxC0VwjUqlKJxygAeVKO1SJ-B8KKg8h2Nkyp5KUlSwEYtSBJgLJ2kArChJ4yjtP4h9BKQ0tRLQ+gMMc6TPTwqptkBcpVLIopNKomiwB8vyGPUoomKinQOlEUh+FYSypJsrSYMCuKrKckTUPEySuPYGTZUeIUAtioLeO00K5UFSK4KuJtGoCAJaGMHR2CyJYoAsbRrBsAp71ETIIFYYp0HYLNjkEWg8imiDGG0fwoSUMBIUZIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 27026c12b..93d7ea80c 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -145,8 +145,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwHF4vHUKD0ODUdGPXIk0g6clZKl2BkiR6I3G0+GhI66OF-T4Chq0lgwPyaFjoggxMYEMR+URMuDqOD8GnCjKKxi0PlwdaqmTY54pUSCehajlwgiQp5YACyAp0fw9AGFso85HJBYaMlqRLr+Cy3Z6wDK8cH4xlUCxYBtlZb1aJNdrIwbDYrqIJzSq1dbPilHgAFTJYTLu-2BkOh8M68hRiVgAASWEeSZ0iaFtM0W2iCqVzszGtbef7Ru4xYtZdm-2alaeADUAJK5Le2JtznQz9vRqsAeVytgMACFMrknPktwA5Jw6d3Prfuhyx-uDw1QQtx0YDNlxzCN23zYVjVNegRCXK0VwrI97UdaNMifLBnwDMA-xbXMT07dDMKfbDm0NYxaAqPV0XsZxfzIvF6CgcN4nNY0QIQsC2z1SDhxYGC4NLBD2FXW0ULgJ1vTAa8MKwg8h2FY9qM7GTiNIw8KKojs7EcFwFIyXDaUELUn0yaNaGWCBWD7BShgMpQhgsnR2Hicg1A0bRrBsNIhWJeJWEydB2BBAASQRaBSUKtUYbRGCGfolDAfoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index aa87f47fb..4672fa128 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -145,8 +145,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwPzkvwRIiMUSkHF4vHUKD0ODUdGPXIk0g6clZKl2DkiR6I3Gs+GhI66OF-T4ShqsljUzQsdEEGJjAhiPyiLlwdRwfgs6UZDWMWhiuDrHUybHPFKiQT0Q0CuEESFPLAAWQlOj+-oAwtlHnI5JKLRlDSITfweb6A2AVXio2mMqgWLANlqHXrRAajQnzRaNdRBHbtbqnZ8Uo8AAqZLCZP1hiPRmNx43kRMKsBOEPNACSADlbI3HpmdBmpaz6Yy1sZ2T0-Fb87Wiz3SzPLSwbfQRPat+x-s0Ut7HgB1ADyWFyAAYAEwAMReeCDYDvD8fAEZ3wjOcYx0Hc+yTH8nzfD8Z2A6VFyZPwVygHpN0dbcSz7MtpQrKsT3Qs96y-SCX0AsA4ItMDTSTABNZV52lYxaAqai4XsZxYK7VUK3XTUvQLfUqLNPcdCtQ9jxrAjz0vH1MgANUyfIQ0DP4xywcdw3IijpSEpN5MU5TUwYjJtIyegoDjeI7Q3fit2LeMsJEsTbXwwtCJaGTHgAIUyXIhxUsAvLUjSgK4nTMNYr8fL8wzOJnQRDTHTIk1oZYIFYacGKGEylCGVKdHYeJyDUDRtGsGw0ilYl4lYTJ0HYEEABJBFoFImsNRhtEYIZ+iUMB+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index de64a0e34..0af0b42f4 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0Vh+ADmzEWOLxeOoUHocGo6MeAHEabp8kyiMxSHzWFl6BA+TBuNEhbYmSJHojcfT4aEjro4X9PnKGvSWDA-JoWOiCDFRgQxH5RCy4Oo4Pw6YqMkaTWJ0frGLQZXB1saZNjnilRIJ6BbSIbIU8sABZOU6P6RgDC2Uecjk8vtGQtImt-DZ4ajYC1eJTBYyqBYsA2hu9ptE5stWbt9sdPrRcP11EEnqb1fY-2aKUeAAVMlhMhGE9HB8PR0nU2mM1byNm1U98rZHsWdEWFfSInzRGtjIzKXqDXCu2b5-WNw6q87Wyx3fQRF6nTNe-7A8HQ48AOrsrD5AA8gAagAYi8eAxmAf4AYB4ETtB-4ABIAJJgRB-aIVgqHwWAyazval6Lt+WFAehSYblu9q7ow+5+IeUDHvEmyyAKjCVq+taZouDaKm2HYvs2PafJhMFkbhVFznWxHLgAmtGxi0BUNrovYziUQReJQBA-gChU1I1J6rocc2XELjavH0ueLY6K6j7PtZwktB+QZwCGZ5hpktiAQAGv+SaSYR0kqR5fzeX5WAzteJhKSFdiOC426FppGT0FAFqEkQ+lcie7FnreNZERZ0XWS6D4eoJ3bvjoAaue5OgEGGzThf5eGBYqRVLg1TUtZFeEpXiinKV1amJfa7UZDU-CZZ4rJwqBmT5LkY2Fg0kmKdQ5B5cUcDcOadDdr4+0+p5eQYVBuSZKBuH+sFXWPPJbVKIMtDGDo7DxFtUAWNo1g2GkCrEvErCZOg7AggAJIItApJDFqMNojCDH0ShgH0ZxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index 843bb2d05..cd211d8ed 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -144,8 +144,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zhXCAyMaHhRP3ooUQBrOFJRIoBzRjhUdgUwAD12XIBZAEUAHwBhLbkMACoAOUyNgBJllIGxdhzmuRTNbkFdAF47RydFXp1+rAxH5RMRUGJZvNFssVpstidcntrngdHdRA8mr8Xm9Pt9nH8GhIhiNxpNpuECDEiDJgaI4CJ1HB+Et-hlKdSCBCvq9GLQoPQRH52TT0Y8nClRIJ6HTSDovoDBsNRhMps8Ghk6QzyPw5QC0UrSVMGgT-kSQWCIRSqSKQfS4IzmeqdMLOdNuSw+QK4ELra6Mc0JVKZbqFbSLaI1aydJr7dqQ-rQURwaJcE7jLQKkzdfZnMalABfP4AK2pED8E1Y6KSNnC-DgxigwlIQv4tFBfhL8XLcErwDRiVCcgAuj00KgivFoiyMkldUlU-8+EIRG6dEvhPcnSU-M3RDAAI7TjLH6j8+m65aZfjaRh0nRObRkab0Vg6OF2fkiG5OmehO4XsAxW-KMMhYGA-B5XUXVpO0HSPY9j2g1ceU9QUkIHTxgGAS88nyZYhyHQNpUmKClkArANhuHRllyJwAA1ljkSMEIQmMHQAzIKOWH8dGYlian4HciE8ahdQAMUyfJaIXFidBJFVVySLDljNeSyXwwieMTZM51CZSwDNbSxA0mSWOoahZS+JDbS1Jl4JYpDdRQz9vXQpTsMAzETOjIMSKssjmmyJw9gAeWyRi+Nkti4y+S8nCC0LwrAHi-gQ1LeKUP5aGMHR2Hicg1A0bRrBsNJ-lEOIIFYTJ0HYMdLkEWgUnqulGBvP58yUMB8yHIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index d9c1a080e..e0a427b8c 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -125,8 +125,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGIdABUZxULKBokOkTGOqQAFrrkoqQ6sqK6RoIJOgAGTgDyAMoAIgCaqTpQEPxpOQDCWVhOAIJZhZostFD0IqJhRDr8cHwQMczkOjC0oqK0EADmXQFQGEr8M-pGXNQA+gukUNbzi4Y6AO60EePsG1C4OiBKOjo1OVkAMkthMASrcAAeq1D8otTXt3uDwAJJlcnlgABGAC6zwAcjVVuNyBNVKslABfRQQABWRHGqwA1nBWKJTjMbHtusYoMJSKsCPwRm88QTiaTgNB4GSznJoa4IHdHs8zsBgAowEKHhLofyIEo0KhnuMjuwAWcdABeaabXAAvhCNpaoYCYRiNUQG43UgwVb00SCGAwFgcAFWnTUFpwajGiU5HpECbMVDhGR2FoiCV6y3unXFWC6bUSqVRt1Wli2xqMY0EcL4ghiVYJETqOD8dgENWSrAAWSjOmTtfKOQlcgujbrYDbaZuP34dqImx92vszmjsZ0DqdTQAXnBVln2trc-nC8W4KXyz2rZWJVknAANesSrA1couPANsAAIRrWAA0lgAEzHsBg-KvipVWpZV81ADiF7djGE67mA+5HpeJ5nkB27AROyRwAivpgLQNIQKwEpptiNzYtiaE6OwyKqFAFjaNYNhXDGoihhhNToOwirAoItAXExCSMNojDYhiShgBi0JAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index de6b90271..91173fea1 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -156,8 +156,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiQQwGAsVh+egcBp4nTUKD0ODUdGPXIkslsHRUnRYIgRHQAcUYREEqDRtgZIkeiNxtPhoSOujhf0+0ppeJYMD8mhY6IIMVGBDEflETLg6jg-Bxcrx+sNYnROsYtElcHWBpk2OeKQIkKeWAAstKdH9AwBhbKPORyGU2jKmkQW-gs-1BsDqjIxjM6Gr8QlETzMuH2ZyxuVU7UsNFwu2e0Qms1J61x2tG6s6J0u+gid32mb-Zo+v0ABUyWEyaZSfwAagBJXKz2xRrOym0J83kZM1v2ZOcLpdgQY2ldr9ksWgALzdTvbreN66b2Yyd-bnddvbr7AHQ5nmReeBDMAwwACQFZcyzXRtNz1Hdpz-KNsxPOVBFNAA5TIU1oZYIFYNVVzxVAWFgDY9Q9NsG0TTdmxtF9HW4QQ3RfL9PinMBR3HAMI2DR52InKMILlB9oOVJ58gPRD1SPHRBkGLCdHYeJyDUDRtGsGw0llUQ4hwzJ0HYEEABJBFoFJDNNRhtEYQY+iUMA+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index 30e7e1855..c8d8d6f5f 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -183,8 +183,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzbWycikrLK6v5SciUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urppbb0PvHnOaXGA3pcWDA-IwlusiDBUEU6KJSOwGpkAMK2TJYACyKOyOgAvDp4YiGhkIcZ8To-lidAAhR64Ek6YgwikEJFPamZemUjmYnQox6DDJyBkQDIYvkEolIsUZHRkimPGmIHQABWoUAIcHoRHpjOZsIJbL+KuyjEEAHMdAANbmPFEqlHQ+jxDyWCCChqDQZKNCw8LxaIyjJJClJUUZPhCESiClR4RiYNykp+NY9OBJuWEqD0ODURVgWy0eB2Ig6JzaMh2HMiPWyrNJI66Al-T6AiNZnSgvyaFismKjLWiPyiPNwdRwfiZzu9xi0GtwdYDmSJ54pY28u28nFb1HorE7sByEWMrNUzGPU86E-1uXdslQlkE++Qg0drOoFiwDb9wdiEdjhOU5XhkvbUIIi4EMuQ7sP8LQpI8qoYpk2LZFuSFYChgrvp2jwAPK5Jet7CjhGQIswng9n2RrQf+o4iEB05ZrO870CIS5-jMa5MuyuROLaeA8jSmJYAA0lgABMgo3p2cqPHxAlXjJnYaPAfioKMZCxjRnEAQx5BTmyACMAAcEkpBJAAsADMIo6KZEnKVmcCVmsizbFRjC-iuw70eOBlMXKLELhxPmwW2CFgE4ABqABytjZE4uQCkepFyVFcUJUlKVpRkxi0BUk4UvYzhKYyQrXkogy0OS7DxOQagaNo1g2GksqiHEECsJk6DsH6AAkgi0CkA2jow2iMIMfRKGAfRnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 84a00fdea6db6320cc66925da2ba08b0765eb0af Mon Sep 17 00:00:00 2001 From: m7pr Date: Tue, 26 Nov 2024 21:25:02 +0100 Subject: [PATCH 03/86] add decorators @param to standard template arguments --- R/argument_convention.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/argument_convention.R b/R/argument_convention.R index f9cbcfb96..27445e428 100644 --- a/R/argument_convention.R +++ b/R/argument_convention.R @@ -93,6 +93,9 @@ #' `dataname`. #' @param worst_flag_indicator (`character`)\cr value indicating worst grade. #' @param worst_flag_var (`character`)\cr name of the worst flag variable. +#' @param decorators `r lifecycle::badge("experimental")` (`list` of `teal_transform_module` or `NULL`) optional, +#' if not `NULL`, decorator for tables or plots included in the module. +#' #' #' @return a `list` of expressions to generate a table or plot object. #' From 58e65bfc0a3d9faaafc82bab3b20b90bae63c0ce Mon Sep 17 00:00:00 2001 From: m7pr Date: Tue, 26 Nov 2024 21:27:37 +0100 Subject: [PATCH 04/86] move decorators parameter to module templeate parameters --- R/argument_convention.R | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/R/argument_convention.R b/R/argument_convention.R index 27445e428..81240958e 100644 --- a/R/argument_convention.R +++ b/R/argument_convention.R @@ -93,9 +93,6 @@ #' `dataname`. #' @param worst_flag_indicator (`character`)\cr value indicating worst grade. #' @param worst_flag_var (`character`)\cr name of the worst flag variable. -#' @param decorators `r lifecycle::badge("experimental")` (`list` of `teal_transform_module` or `NULL`) optional, -#' if not `NULL`, decorator for tables or plots included in the module. -#' #' #' @return a `list` of expressions to generate a table or plot object. #' @@ -206,6 +203,8 @@ NULL #' value indicating worst grade. #' @param worst_flag_var ([teal.transform::choices_selected()])\cr object #' with all available choices and preselected option for variable names that can be used as worst flag variable. +#' @param decorators `r lifecycle::badge("experimental")` (`list` of `teal_transform_module` or `NULL`) optional, +#' if not `NULL`, decorator for tables or plots included in the module. #' #' @return a `teal_module` object. #' From b684fa528873c8c2c7ad8274046d5b7a5a9ffcee Mon Sep 17 00:00:00 2001 From: m7pr Date: Tue, 26 Nov 2024 21:30:46 +0100 Subject: [PATCH 05/86] bring check_decorators from tmg --- R/utils.R | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/R/utils.R b/R/utils.R index e478b07e8..dbbd4d15c 100644 --- a/R/utils.R +++ b/R/utils.R @@ -978,3 +978,60 @@ srv_decorate_teal_data <- function(id, data, decorators, expr = NULL) { #' `ui_decorate_teal_data` is a wrapper around `ui_transform_teal_data`. #' @keywords internal ui_decorate_teal_data <- teal::ui_transform_teal_data + +#' Internal function to check if decorators is a valid object +#' @noRd +check_decorators <- function(x, names = NULL, null.ok = FALSE) { + checkmate::qassert(null.ok, "B1") + check_message <- checkmate::check_list( + x, + null.ok = null.ok, + names = "named" + ) + if (!is.null(names)) { + check_message <- if (isTRUE(check_message)) { + out_message <- checkmate::check_names(names(x), subset.of = c("default", names)) + # see https://github.com/insightsengineering/teal.logger/issues/101 + if (isTRUE(out_message)) { + out_message + } else { + gsub("\\{", "(", gsub("\\}", ")", out_message)) + } + } else { + check_message + } + } + if (!isTRUE(check_message)) { + return(check_message) + } + valid_elements <- vapply( + x, + checkmate::test_list, + types = "teal_transform_module", + null.ok = TRUE, + FUN.VALUE = logical(1L) + ) + if (all(valid_elements)) { + return(TRUE) + } + "May only contain the type 'teal_transform_module' or a named list of 'teal_transform_module'." +} +#' Internal assertion on decorators +#' @noRd +assert_decorators <- checkmate::makeAssertionFunction(check_decorators) +#' Subset decorators based on the scope +#' +#' `default` is a protected decorator name that is always included in the output, +#' if it exists +#' +#' @param scope (`character`) a character vector of decorator names to include. +#' @param decorators (named `list`) of list decorators to subset. +#' +#' @return A flat list with all decorators to include. +#' It can be an empty list if none of the scope exists in `decorators` argument. +#' @keywords internal +subset_decorators <- function(scope, decorators) { + checkmate::assert_character(scope) + scope <- intersect(union("default", scope), names(decorators)) + c(list(), unlist(decorators[scope], recursive = FALSE)) +} From 0805fa41cb09e243551381eaf0d22faa6c221d47 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:37:01 +0000 Subject: [PATCH 06/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/module_arguments.Rd | 3 +++ man/subset_decorators.Rd | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 man/subset_decorators.Rd diff --git a/man/module_arguments.Rd b/man/module_arguments.Rd index 397fb160f..d8d161b15 100644 --- a/man/module_arguments.Rd +++ b/man/module_arguments.Rd @@ -133,6 +133,9 @@ value indicating worst grade.} \item{worst_flag_var}{(\code{\link[teal.transform:choices_selected]{teal.transform::choices_selected()}})\cr object with all available choices and preselected option for variable names that can be used as worst flag variable.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. diff --git a/man/subset_decorators.Rd b/man/subset_decorators.Rd new file mode 100644 index 000000000..9b229dffe --- /dev/null +++ b/man/subset_decorators.Rd @@ -0,0 +1,22 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils.R +\name{subset_decorators} +\alias{subset_decorators} +\title{Subset decorators based on the scope} +\usage{ +subset_decorators(scope, decorators) +} +\arguments{ +\item{scope}{(\code{character}) a character vector of decorator names to include.} + +\item{decorators}{(named \code{list}) of list decorators to subset.} +} +\value{ +A flat list with all decorators to include. +It can be an empty list if none of the scope exists in \code{decorators} argument. +} +\description{ +\code{default} is a protected decorator name that is always included in the output, +if it exists +} +\keyword{internal} From 29f22c7625c15e38b526c270b740d1aab7eace23 Mon Sep 17 00:00:00 2001 From: m7pr Date: Tue, 26 Nov 2024 21:43:32 +0100 Subject: [PATCH 07/86] rename decorators to transformators in ui_decorate_teal_data --- R/utils.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/utils.R b/R/utils.R index dbbd4d15c..95b76e132 100644 --- a/R/utils.R +++ b/R/utils.R @@ -977,7 +977,9 @@ srv_decorate_teal_data <- function(id, data, decorators, expr = NULL) { #' @details #' `ui_decorate_teal_data` is a wrapper around `ui_transform_teal_data`. #' @keywords internal -ui_decorate_teal_data <- teal::ui_transform_teal_data +ui_decorate_teal_data <- function(id, decorators, ...) { + teal::ui_transform_teal_data(NS(id, "inner"), transformators = decorators, ...) +} #' Internal function to check if decorators is a valid object #' @noRd From dc682cd6e61fc1d404ef72c71bc184823ca0a26f Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:50:07 +0000 Subject: [PATCH 08/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/srv_decorate_teal_data.Rd | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/man/srv_decorate_teal_data.Rd b/man/srv_decorate_teal_data.Rd index 9290f40ab..1157c56ad 100644 --- a/man/srv_decorate_teal_data.Rd +++ b/man/srv_decorate_teal_data.Rd @@ -7,7 +7,7 @@ \usage{ srv_decorate_teal_data(id, data, decorators, expr = NULL) -ui_decorate_teal_data(id, transformators, class = "well") +ui_decorate_teal_data(id, decorators, ...) } \arguments{ \item{id}{(\code{character(1)}) Module id} @@ -17,10 +17,6 @@ ui_decorate_teal_data(id, transformators, class = "well") \item{expr}{(\code{expression}) to evaluate on the output of the decoration. Must be inline code. See \code{\link[=within]{within()}} Default is \code{NULL} which won't append any expression.} - -\item{transformators}{(\code{list} of \code{teal_transform_module}) that will be applied to transformator module's data input.} - -\item{class}{(character(1)) CSS class to be added in the \code{div} wrapper tag.} } \description{ Wrappers around \code{srv_transform_teal_data} that allows to decorate the data From 93c6af50de61458e6ee0f2f9de6d5c8ee8b72c6b Mon Sep 17 00:00:00 2001 From: m7pr Date: Wed, 27 Nov 2024 10:48:00 +0100 Subject: [PATCH 09/86] introduce decorators for `tm_g_pp_vitals` --- R/tm_g_pp_vitals.R | 45 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/R/tm_g_pp_vitals.R b/R/tm_g_pp_vitals.R index 8721b153a..84ed2e0d2 100644 --- a/R/tm_g_pp_vitals.R +++ b/R/tm_g_pp_vitals.R @@ -123,7 +123,7 @@ template_vitals <- function(dataname = "ANL", color = paramcd_levels_e ) - result_plot <- ggplot2::ggplot(data = vitals, mapping = ggplot2::aes(x = xaxis)) + # replaced VSDY + plot <- ggplot2::ggplot(data = vitals, mapping = ggplot2::aes(x = xaxis)) + # replaced VSDY ggplot2::geom_line( data = vitals, mapping = ggplot2::aes(y = aval_var, color = paramcd), @@ -172,8 +172,6 @@ template_vitals <- function(dataname = "ANL", labs + ggthemes + themes - - print(result_plot) }, env = list( dataname = as.name(dataname), @@ -211,6 +209,16 @@ template_vitals <- function(dataname = "ANL", #' #' @inherit module_arguments return #' +#' +#' @section Decorating `tm_g_pp_vitals`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -271,7 +279,8 @@ tm_g_pp_vitals <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { if (lifecycle::is_present(aval)) { aval_var <- aval warning( @@ -307,6 +316,15 @@ tm_g_pp_vitals <- function(label, checkmate::assert_multi_class(aval_var, c("choices_selected", "data_extract_spec"), null.ok = TRUE) checkmate::assert_multi_class(xaxis, c("choices_selected", "data_extract_spec"), null.ok = TRUE) + if (checkmate::test_list(decorators, "teal_transform_module", null.ok = TRUE)) { + decorators <- if (checkmate::test_names(names(decorators), subset.of = c("default", "plot"))) { + lapply(decorators, list) + } else { + list(default = decorators) + } + } + assert_decorators(decorators, null.ok = TRUE, names = c("default", "plot")) + args <- as.list(environment()) data_extract_list <- list( paramcd = `if`(is.null(paramcd), NULL, cs_to_des_select(paramcd, dataname = dataname)), @@ -328,7 +346,8 @@ tm_g_pp_vitals <- function(label, patient_col = patient_col, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = c(dataname, parentname) @@ -378,6 +397,7 @@ ui_g_vitals <- function(id, ...) { data_extract_spec = ui_args$aval_var, is_single_dataset = is_single_dataset_value ), + ui_decorate_teal_data(ns("decorator"), decorators = subset_decorators("plot", ui_args$decorators)), teal.widgets::panel_item( title = "Plot settings", collapsed = TRUE, @@ -409,7 +429,8 @@ srv_g_vitals <- function(id, plot_height, plot_width, label, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -553,7 +574,13 @@ srv_g_vitals <- function(id, teal.code::eval_code(as.expression(unlist(my_calls))) }) - plot_r <- reactive(all_q()[["result_plot"]]) + decorated_all_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = subset_decorators("plot", decorators), + expr = print(plot) + ) + plot_r <- reactive(decorated_all_q()[["plot"]]) pws <- teal.widgets::plot_with_settings_srv( id = "vitals_plot", @@ -564,7 +591,7 @@ srv_g_vitals <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = label ) @@ -583,7 +610,7 @@ srv_g_vitals <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 1899063428992fdfd4fc1057c115183e630f1cd4 Mon Sep 17 00:00:00 2001 From: m7pr Date: Wed, 27 Nov 2024 10:49:24 +0100 Subject: [PATCH 10/86] revert changes for vitals --- R/tm_g_pp_vitals.R | 71 ++++++++++++++-------------------------------- 1 file changed, 22 insertions(+), 49 deletions(-) diff --git a/R/tm_g_pp_vitals.R b/R/tm_g_pp_vitals.R index 84ed2e0d2..c19df3344 100644 --- a/R/tm_g_pp_vitals.R +++ b/R/tm_g_pp_vitals.R @@ -123,7 +123,7 @@ template_vitals <- function(dataname = "ANL", color = paramcd_levels_e ) - plot <- ggplot2::ggplot(data = vitals, mapping = ggplot2::aes(x = xaxis)) + # replaced VSDY + result_plot <- ggplot2::ggplot(data = vitals, mapping = ggplot2::aes(x = xaxis)) + # replaced VSDY ggplot2::geom_line( data = vitals, mapping = ggplot2::aes(y = aval_var, color = paramcd), @@ -172,6 +172,8 @@ template_vitals <- function(dataname = "ANL", labs + ggthemes + themes + + print(result_plot) }, env = list( dataname = as.name(dataname), @@ -209,16 +211,6 @@ template_vitals <- function(dataname = "ANL", #' #' @inherit module_arguments return #' -#' -#' @section Decorating `tm_g_pp_vitals`: -#' -#' This module generates the following objects, which can be modified in place using decorators: -#' - `plot` (`ggplot2`) -#' -#' For additional details and examples of decorators, refer to the vignette -#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. -#' -#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -279,8 +271,7 @@ tm_g_pp_vitals <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args(), - decorators = NULL) { + ggplot2_args = teal.widgets::ggplot2_args()) { if (lifecycle::is_present(aval)) { aval_var <- aval warning( @@ -316,15 +307,6 @@ tm_g_pp_vitals <- function(label, checkmate::assert_multi_class(aval_var, c("choices_selected", "data_extract_spec"), null.ok = TRUE) checkmate::assert_multi_class(xaxis, c("choices_selected", "data_extract_spec"), null.ok = TRUE) - if (checkmate::test_list(decorators, "teal_transform_module", null.ok = TRUE)) { - decorators <- if (checkmate::test_names(names(decorators), subset.of = c("default", "plot"))) { - lapply(decorators, list) - } else { - list(default = decorators) - } - } - assert_decorators(decorators, null.ok = TRUE, names = c("default", "plot")) - args <- as.list(environment()) data_extract_list <- list( paramcd = `if`(is.null(paramcd), NULL, cs_to_des_select(paramcd, dataname = dataname)), @@ -346,8 +328,7 @@ tm_g_pp_vitals <- function(label, patient_col = patient_col, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args, - decorators = decorators + ggplot2_args = ggplot2_args ) ), datanames = c(dataname, parentname) @@ -397,7 +378,6 @@ ui_g_vitals <- function(id, ...) { data_extract_spec = ui_args$aval_var, is_single_dataset = is_single_dataset_value ), - ui_decorate_teal_data(ns("decorator"), decorators = subset_decorators("plot", ui_args$decorators)), teal.widgets::panel_item( title = "Plot settings", collapsed = TRUE, @@ -429,8 +409,7 @@ srv_g_vitals <- function(id, plot_height, plot_width, label, - ggplot2_args, - decorators) { + ggplot2_args) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -450,19 +429,19 @@ srv_g_vitals <- function(id, ) observeEvent(patient_data_base(), - handlerExpr = { - teal.widgets::updateOptionalSelectInput( - session, - "patient_id", - choices = patient_data_base(), - selected = if (length(patient_data_base()) == 1) { - patient_data_base() - } else { - intersect(patient_id(), patient_data_base()) - } - ) - }, - ignoreInit = TRUE + handlerExpr = { + teal.widgets::updateOptionalSelectInput( + session, + "patient_id", + choices = patient_data_base(), + selected = if (length(patient_data_base()) == 1) { + patient_data_base() + } else { + intersect(patient_id(), patient_data_base()) + } + ) + }, + ignoreInit = TRUE ) # Vitals tab ---- @@ -574,13 +553,7 @@ srv_g_vitals <- function(id, teal.code::eval_code(as.expression(unlist(my_calls))) }) - decorated_all_q <- srv_decorate_teal_data( - id = "decorator", - data = all_q, - decorators = subset_decorators("plot", decorators), - expr = print(plot) - ) - plot_r <- reactive(decorated_all_q()[["plot"]]) + plot_r <- reactive(all_q()[["result_plot"]]) pws <- teal.widgets::plot_with_settings_srv( id = "vitals_plot", @@ -591,7 +564,7 @@ srv_g_vitals <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = reactive(teal.code::get_code(all_q())), title = label ) @@ -610,7 +583,7 @@ srv_g_vitals <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(teal.code::get_code(all_q())) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 64b9d1d947db169ad0c3820c80ad679e504df0eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Wed, 27 Nov 2024 11:40:41 +0000 Subject: [PATCH 11/86] fix: update wrapper to use 'inner' in srv_decorate_teal_data --- R/utils.R | 44 +++++++++++++++++--------- man/srv_decorate_teal_data.Rd | 12 ++++--- man/tm_a_gee.Rd | 4 +-- man/tm_a_mmrm.Rd | 4 +-- man/tm_g_barchart_simple.Rd | 4 +-- man/tm_g_ci.Rd | 4 +-- man/tm_g_forest_rsp.Rd | 4 +-- man/tm_g_forest_tte.Rd | 4 +-- man/tm_g_ipp.Rd | 4 +-- man/tm_g_km.Rd | 4 +-- man/tm_g_lineplot.Rd | 4 +-- man/tm_g_pp_adverse_events.Rd | 4 +-- man/tm_g_pp_patient_timeline.Rd | 4 +-- man/tm_g_pp_therapy.Rd | 4 +-- man/tm_g_pp_vitals.Rd | 4 +-- man/tm_t_abnormality.Rd | 4 +-- man/tm_t_abnormality_by_worst_grade.Rd | 4 +-- man/tm_t_ancova.Rd | 4 +-- man/tm_t_binary_outcome.Rd | 4 +-- man/tm_t_coxreg.Rd | 8 ++--- man/tm_t_events.Rd | 4 +-- man/tm_t_events_by_grade.Rd | 4 +-- man/tm_t_events_patyear.Rd | 8 ++--- man/tm_t_events_summary.Rd | 4 +-- man/tm_t_exposure.Rd | 4 +-- man/tm_t_logistic.Rd | 4 +-- man/tm_t_mult_events.Rd | 4 +-- man/tm_t_pp_basic_info.Rd | 4 +-- man/tm_t_pp_laboratory.Rd | 4 +-- man/tm_t_pp_medical_history.Rd | 4 +-- man/tm_t_pp_prior_medication.Rd | 4 +-- man/tm_t_shift_by_arm.Rd | 4 +-- man/tm_t_shift_by_arm_by_worst.Rd | 4 +-- man/tm_t_shift_by_grade.Rd | 4 +-- man/tm_t_smq.Rd | 4 +-- man/tm_t_summary.Rd | 4 +-- man/tm_t_summary_by.Rd | 4 +-- man/tm_t_tte.Rd | 4 +-- 38 files changed, 112 insertions(+), 96 deletions(-) diff --git a/R/utils.R b/R/utils.R index 95b76e132..888bac93d 100644 --- a/R/utils.R +++ b/R/utils.R @@ -949,27 +949,41 @@ interactive <- NULL #' Wrappers around `srv_transform_teal_data` that allows to decorate the data #' @inheritParams teal::srv_transform_teal_data -#' @param expr (`expression`) to evaluate on the output of the decoration. -#' Must be inline code. See [within()] -#' Default is `NULL` which won't append any expression. +#' @param expr (`expression` or `reactive`) to evaluate on the output of the decoration. +#' When an expression it must be inline code. See [within()] +#' Default is `NULL` which won't evaluate any appending code. +#' @param expr_is_reactive () #' @details #' `srv_decorate_teal_data` is a wrapper around `srv_transform_teal_data` that -#' allows to decorate the data with additional reactive expressions. +#' allows to decorate the data with additional expressions. #' When original `teal_data` object is in error state, it will show that error #' first. #' #' @keywords internal -srv_decorate_teal_data <- function(id, data, decorators, expr = NULL) { - expr_quosure <- rlang::enexpr(expr) - decorated_output <- srv_transform_teal_data(id, data = data, transformators = decorators) - - reactive({ - req(data(), decorated_output()) # ensure original errors are displayed - if (is.null(expr_quosure)) { - decorated_output() - } else { - eval_code(decorated_output(), expr_quosure) - } +srv_decorate_teal_data <- function(id, data, decorators, expr, expr_is_reactive = FALSE) { + assert_reactive(data) + checkmate::assert_list(decorators, "teal_transform_module") + checkmate::assert_flag(expr_is_reactive) + + missing_expr <- missing(expr) + if (!missing_expr && !expr_is_reactive) { + expr <- rlang::enexpr(expr) + } + + moduleServer(id, function(input, output, session) { + decorated_output <- srv_transform_teal_data("inner", data = data, transformators = decorators) + + reactive({ + # ensure original errors are displayed and `eval_code` is never executed with NULL + req(data(), decorated_output()) + if (missing_expr) { + decorated_output() + } else if (expr_is_reactive) { + eval_code(decorated_output(), expr()) + } else { + eval_code(decorated_output(), expr) + } + }) }) } diff --git a/man/srv_decorate_teal_data.Rd b/man/srv_decorate_teal_data.Rd index 1157c56ad..6ed8a4399 100644 --- a/man/srv_decorate_teal_data.Rd +++ b/man/srv_decorate_teal_data.Rd @@ -5,7 +5,7 @@ \alias{ui_decorate_teal_data} \title{Wrappers around \code{srv_transform_teal_data} that allows to decorate the data} \usage{ -srv_decorate_teal_data(id, data, decorators, expr = NULL) +srv_decorate_teal_data(id, data, decorators, expr, expr_is_reactive = FALSE) ui_decorate_teal_data(id, decorators, ...) } @@ -14,16 +14,18 @@ ui_decorate_teal_data(id, decorators, ...) \item{data}{(\verb{reactive teal_data})} -\item{expr}{(\code{expression}) to evaluate on the output of the decoration. -Must be inline code. See \code{\link[=within]{within()}} -Default is \code{NULL} which won't append any expression.} +\item{expr}{(\code{expression} or \code{reactive}) to evaluate on the output of the decoration. +When an expression it must be inline code. See \code{\link[=within]{within()}} +Default is \code{NULL} which won't evaluate any appending code.} + +\item{expr_is_reactive}{()} } \description{ Wrappers around \code{srv_transform_teal_data} that allows to decorate the data } \details{ \code{srv_decorate_teal_data} is a wrapper around \code{srv_transform_teal_data} that -allows to decorate the data with additional reactive expressions. +allows to decorate the data with additional expressions. When original \code{teal_data} object is in error state, it will show that error first. diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index 35dd29535..75bb4aa7f 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -127,8 +127,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeUAipV1DU2t7fwAjqI6AKQAfNM9Jca01OSM7KUAQtUAYrUAhAC8OgpgAJqnOgBkZdt7AEw6RyfnpzZzCxAlJTCCoeTsRbfUoANQAkpUwbYdMcoOJjFB1ER1qCIVC5LggSVUZDbAA5GE6ZgQADWG3BuLx73mWO+cIwCKR62pn2+bJ09IggngjBk1hmNK+7JK9MZpGR1kxQrZoNK1U2YIJx1ltT0OgArAAGHQAYh0AClBKJSByplAvq1YD5dOKdABzOAmsL0bKeHQUbxEbKkDBAllA-iMIjW7TUUTxCAAXwCACsvRAoiS4Kxw3kbMl+HAEcJSFECPxaKImnHsonk6JgNB4KnEnIALquaDoOrZdKAoV5Ql5KU-ATCMSEvhCEThoENdpRB1wdvC6hQehwaiE04AcScLjwtLyVd0x1OFQGpx77Kgmm4UTPjEJBAyXoIYiiokXcHUcH4gLAKoVeKPJloLTfQl7GcDFaVofgLxYa9bxkB8nxEV93wID8HEqBxNn1MFyl-U40IwrC3gKU5UPQzDsLAUDpTpRgYEgq9jhvO84OfRD2GQ-csAAWRwz8uIAYXIjEXlKLjCNpTRC3SOjoKY0RHxY8gkI-HEoR4lT8UI4SKVUijjzZVAWFgfMZNguT4JfRSZ2FHRGNMwkz2oQQ4DzGD7xrUJgGAfd+kqU46zrIiwAABRE0pOIEniQqwMKxKotlzMQ5cwB2ABpSEDB2AB1TZTlpSjhWITRpIY1zmIQyz2LATZSkqDdAtKNceNqgANHjqtqxB1M0vEHGqaoAjZAadACAJaGMHR2G9VREQ0bRrBsIohVELIIFYUp0HYNBUAAEkEWgCi27an0YbR-CUSMlDASM6yAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index 58225572c..ee5c3c101 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEosMAD6jHDGIcQwqPpGdKKk7Eo6OgCCWACyAMIAIjoAvDoJSSmpOuHGhToKYBmZOgBCtbhlqdGxRQTJdVnpLTW9Ddm1AakBAUr8UKRQcTpc1CHTs9ZTM3OGOgDutKQAFrQQ7CtQuDogZWm5AMoAMvOkMAQhcAAeIVD8otRXuQCKN0ez1eHy+AEdRDoAKQAPmhbRMtGo5EY7DSjTuADEHgBCIq1ACatR0ADJ0picQAmHT4wbEsA2OEIiDlJEo1TogBqAEkbjzbDCjtCdN1agB1JxOADSOgAjDpcmlCToABwDCVS2U0pUquUAVg1YElMp0AGZFcqdFSqaMmfDETBBLNyMlWWz0rz+YKilBxMYoOoiGi0l6BXJWu62aG+QKAHLVZgQADW3Njtjj9pZHvKfowAaDaKziLZeYggngjBk1hhDqjHrzBdIwZrAGIAOQ6GBQZNHADmopIojgBGdWl05crMhMgebjERAQAvgEAFZEI4hZNwViiE4bGxbfgRKDCUhRfi0UQvNcbrc74DQeC705yAC6rmg6HmRz2btSp2qU5I1SPghBEKEilA4QxD-conk+EIYBgRgYFgtlqCgeg4GoapakyTIshaEsdFOR9dAJOoARuIj61SKBNG4EIGMYaoCH2dcCDEEJhxEdQ4H4dgxTqLk0juI1sgACQAcVGc5alDUTZOI2h+CYlhWPYmQuJ4kdyAEoSHBuBxGgAKR5XIjSM0zzNkwZDOMsyLMZYCGxQtSWK6TTONEbjsN0-jBJ6eojXqPJbPkwjnOIzRLz2dyNI47S-L4-SgrDWwQvSuNwuE9MlNonRgjCCIoiIGJqiKypSpiFy2VQFhYAIfgEq0nydJStCPTYxKIJ0BjqEEOAoi8mDTmAYB5Ko2pX1fOSwAABQyNIcicubFqwZb8pzVJ2r03CwCxaV+QMLFxWaMBiIjYjiE0eLPJ63zeL0wLakaNIbhcPBBjSKTPrmj6AA0jTej7EBjb1bLjBw7juMZyjhiYlFoKp2COVFZ3HawbEud1REOCBWDSdB2DQVAABJBFoc5SbJ4dGG0fwlEXJQwEXV8gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index f1e92bc46..664cde4e3 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -182,8 +182,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTowgonk7ACStrYAYp0AvCZQ6gHsCmAAmic207MQ8-NFpWnUUPRw1MdgqypkBrZEP4xwBI6AAKRFQwgSlhumyeAHMLkEGi1Gk4uj0+oNhvFdFc5g1jLRqORGOwAITsdgo2wAeQAGgBxLA6HZ7ACMNgAZDpKU5Wk4AGrMvYnACyq3azQuOi5lKwIqFOhOjUQOmajEEsJ0tIRQQAvkEAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfSNJvNluA0HgVtycgAurEWh0urlgMAlW12icQ2GIMjUXaqjG4yjE8mlGhUF1ysVjjcdLlmWWqrg5nwhCJRBXa8IxCXbj00rC0vQWAQSiwXaJaDBInBW7cdE8XuNhWBU01oFFB6ITtXS7cBhXcv0BqQ1APUHACGPx5XEgHdDOIwm8Hjx6JXofSBX7yJ1GlRAej7eT73jQQxBWmgsLQzwiK6JR-i234nk08arjB45fmuCHzEqcoroqs4AMK2I06F4JhfLajeyEoZhWCNFhLgESc6xbNeNQnK0jSbNsGFMfYjS4QATCc0EnoiKFyPBKEvo+cD8BWSo4XhIorvx8yLEStAjhWmyNO0fIKYJtzCdBBLUNOE4eqQx7jlugy7gc+6HmZJ65OeUmzvG8mkXeD7qM+Hk2UhZENL+MgAXsQGMCB9BgQF-5WgpJ5XiJfk6L5CWobO+GMdhuFpYRTjEfFyUnBRVHsR8GxsTRYDMaxDGEZxPF8W5CE6UJeUIWJ6gSU5RGuQlSkaKpezqZpLgNfMTW6S18wWTue7vp+dnmVUjmXs02YkWRbVPnsG2zbZMXzJFQU6CFYURRBgVWqmNRfrOTg0gyWDFSifL8o9vJOA9YByHpI23BtHV7AAcg47TtBNJ69SpIhqRpWk-ToY2jdB30nkMjr-ptxmiKZClTVZb4frtcMObAF6Yam3Wid5Xmvj580-mdUWAcBoFwOBkEXStThXe8VJ0oyr3PQL70ImD7k0-9ZO3XzH2i7cEP9Tog2w2RCMNMjMG4zNBNJQhxPwE5V4U61VNbd5O06yhB0NsFzPhazVt0zBcV7bcFsJWhcnlZRmWe+lXVrclDQFZR1HpXRZV+yxEc1RRdVgC7iNw2rsvzH9kmA8DoMJ-LUMDTDw0q9pSMTawaRo3AGN0Fjjua9Z5uOw0euk1mod7Rt1OPvXCdW0zoUs2z52Upz3NKlL91Cy9XtvR9X0pw0acG29k9zwszqQ6TSsF0J2mi7X+NzXtTcGy5AfGzTHf74TCU9zbfd2wPUUN+OztJ-tT8nh7j0yVlTE5Ub+VgEKqHTC4dqpMSjmAiqtVGi8Xjq-NWCd1brW8hLIGIMV45w3vnPaqt4ZI1vIJIIQRaDGG5OUYk1ktCji+rUOYogygQFYI0dA7B8wABJBC0BqOw+8jBtAxAgLqJQYBdQhiAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index 7f3fc462f..009d28609 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -136,8 +136,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlbUAQg1NLe2d-NT0SgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5idaJTqdTqFB6HBqCS-gBhEjGWh7cy6ACSKkYmm4OgACv5SH88VSWToOpLGCSCq02qQ1MdRKg4ARmcqygV7rpsdCaoC8H0TaJOYbSCSHSJ1DF9YbjSaygQsksCGISUboVgALI8yoKnR-QZhrAAaSwACY-nJFT7qa6nXB+MG0f9w5G0xnM6SjrRUCISQAxcq1apOUuZgVtXO1+uNu3KoIm9PdsqsGJqjXJLU6qDuz0hpUms2wC0x-5ghUD6kC6jkdXYuiiUjen0brceg0zsvUtXEy1gaXlLDlCNR22zst+gNBndwbTUTYwwYAElve9H37F9M2zdR20-b9fzBQC7wfSM5GAABGZ5mzLGAKyrRc6wbJs1xNNkOS5a9qkddQdGIxA-kI6lQPPI9VBPL06JZS9uX+AA1EVqhFWxVzAn03xkD8qK-TlYKGf9yh4vjbAY88dAg8g82gyT2D-GS5P45C0IwzMsM3Stq2xPDGwMn1iM5TjyLdZ1NHOTIaLANidF7H1FPtCjnWxFSWLPMtrNIpdymgahWAAL3bLjuEEOBBPPETAyvHQQ24+to15AAJABxEs3JUqDQq4zLn3PIyNBwjt8MsllW2K8yXCEsoPJZLzqT8AJR3CcddQCg8WXneBOIBRKfRUl0fIGtzgs4vl-HVehWB0NVaHZERxszZKxPSxsAA0srAap7HKWxyhQo6Tvvc7UzADrvPs4q9tO87LvuurqUqkzcM7AiWvXWg2zUnQmrotr6O7DygiCWhjB0dhci3ScNG0awbBKJVRByCBWHKdB2ERf9BFoIoiYdCVVCCGYlDAGZniAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index c627cc585..886c467e9 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -208,8 +208,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc1YrV09fYPD-IyiOgCkAHyrEw0wgonk7I0Aao3tAMI6ALw6-GkkxGnLqGnUUPRw1Icn5zYbWxANQGFYolF5vD7sBRgM4lFhQdSqHRYMTCUgAegAYuV+OUAOZQuS-TbbEy0ajkRjsAAKjSwjQAsmdmjoAITXKEAeSOWAAkgA5I5QnQAHyaRx5rR5tiu7LAGI57XaHIA6joHFSCUoAL5BABWRHKaQA1nBWKJKokbPl+HBjFBUWkCDjRH19YaTWbgNB4ObcnIALqxFodLq5YDAKHB9pQ-2BiAtaahqrhyNTVoxuNKFgwR62x1EGCoLp0USkSEAppYelXHQlsskxi2mtQgBCiB0VNeBDg9CIUNwJOIhZrBEhYEa7eajEEuJ0AA1+zooWd22cC-RyglLBBNRW5AOK7TGczrnXy0DG8Zm+OqzoW-3BwWi9dR5Hb41F2-q2ddw0gkEs3QLpymKc8biqGtcgPHYBGEMQaz4IQRHNEkejSXE0mMAIfEeURUDAoFXneahrwxbDSyRMRUBIUQ4AfCsgVyb1dFlBN0zwEkGmzNJNBYEcSgNbtRDSWiRARfgCKBHReMYWg3hER0BJkMRDjadoalfG96U-LSmQJfdOMBL89LAQyDIYwFuMvfNh2uKy8yHVBoKk1A4V6fh+MEsQRI+OBxMkoFeOoQQ4EUrzzTYmooRpOljx0mKGQJZypKXMB+SOJxbChMzksBURBHoXFGCIQRnhkzzlOE0S-PICTDIaGS5PoBSCCUoTVI6GpmIitTCVyoFNJbeksAAaSwAAmHTWicBcwCCFLzJS0tmESHi+JfNrvOq-z6uklgmpazaes6nRNNaexGlsRoAEYpouq7JrmxaUtS866Qe7KLL-fqdEiIhSDSEo4FoXESlIEd2AANgABmh9SdHG2H4cRpHnsY217XJXM8Jo+DT1oUsAsBFsnFaaYqR5Gsz12honghqFWkSZrdGaAm4CgWidHYVpmkUPBUr5f6dCcILBHk3R2D5Jw+bRl6RG0agVhfImUuXJ8RHISicYgTn2DOLA+aisAqRYDRuC16idYlqkDampmRB0VnaI5iWecNmmjON4qirEUQtBZtmXa5qleZ0wXwZF7gxeZrmpb5j35pe2WgXSzKqYJ+svqkunlbVwsNd0ZFtd1-XDdSk3GDNkii8t3WbZln7CLgBWldOlWpLzyI4E1mvca50uw6FyPgvF2Ppfi025Orqi++pW2OKz1WvaIH3RD97RHcDuvQ-5hn7YD53dbdz6XsBROFsbnQuV5AV08Jj2c7b6LvcbNf-c3w-rZ3o3GdHp32aPjvZOUl5YfFbppKkL9fbv3-kHak39Xr7w-gA12CCoTh2FqLUektx5zV2ufM+JJE7-iULQK87BygUnhBobQ1gbB1ArKIMoEBWCNHQOwNAqAAAkghaA1E4Vw2ijBtAxAgFqJQYAtT+iAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index fd262399b..8a0c9b423 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -186,8 +186,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc22tk5dPX2Dw-yk5BMtHQAkWI0AwrP5-IxEkXDa1KLs6+1bu042AKQAfPeFxSVp1FD0cNTsCmBYKAEOD-IIAXyCACsiOU0gBrOCsC65GwHODGKDCUhpAj8WiiPrQ2EIpHAaDwZFVOQAXViVy6uWAwH+V3+1NpEBa032RkZzLAXJmbI5ShYMDSjHROKIMFQXToolIfwgDUaWAAsjoALw6BVKiYNSXGbU6f4AIUQOgACp9gfQiP9cAadMRZSaCH8BZbmoxBABzHQADUdprAO0tOxl9HKCUsEFBEzkTpVTQ1O2aJr1yoahvRJpZGp0Zsdztdcp1HoLmsaIarOh2CZTQSCovQXXKxWzOlyJtyyYafCEIlEJsHwjEXYaPTSfrSxgCPjSKzgk5zn2+1HzYAAYgvFTpWoJGJotNwSymc92quTdDqWVMhXhnQ0xWlNCx3SUYcDRGlRD84HUOB+FXS930YWgvhEHEvxkCcrhqSsBQ1WtkPVdNQSTZ8cyrDCwGwrCLxzV8jWlN0dRIqUy37S8dFQFhYFxT9vzEP8AKAkDsIad9qEEOAYJYi5BScGp-itNVGnQ5pUPE7Z1VBGjaNDAB5Vp-gIxSc1EQR6D9I5BFQN8PwrWCfzYkQONAnNwMg+hoIIUz4LadoahvITnLkQilIaJCzXVLAAGksAAJlQ1onGDMAgiUrzaMVZhEiMxhmLg39-ws8hOKIsCWFs+zHPcjpEM9Vp7EaWxGgARjCsqKtCqLYqU-5Su2Or1OynRopzLrmyUWhjXYcpyDUDRtGsGw6hTUQyggVhGnQdg0FQDZBFoGolo2f9j1UcElDAMFqSAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 907e24fc6..0ae053a1f 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -174,8 +174,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTpjMnDsAIyIAEwADDbTsxDzOvzG-QORMsVp0Nn7Tc3tAEJdPX2Dw-zU9JMzcw3GtNTkRjsBytBz3ABSAElmpNyhNbh0ACQgsFQ5o7b43BpHE5nAgXK4YvYHP4A1TsRoANUhrUhth0AEIALw6BRgVoAYSwTicADlIbyAOJsoIAXyCACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAj8WiiPpSmXyxXAaDwJW5OQAXViLQ6XVywGAbId7TZNrtEBaDydVRdbru9093qUaFQXXKxXYc1yOhZuVwcz4QhEogTOlTwjEsax3RgaQA5mlaOg8wcGtQoPQ4OMWWzIXEtLQhNwdAAFBK0CikTv+Uhs5P57FVC26BtgX0hvA-eYsQuaFiZgglaUEMRpUR1uDqOD8CuVhpL6iCOC6tdLJXTmpurAAWQ5zRFw6PDTv96abLnDTkr8rqAsLAeorpeG6iFuO57geP7zCeZ4XuuuY3qyYAdo0WCNI+z5gH+sHvlO7S2N+I46HhpFQCeaRLowoFIRB24iNBh5HjRtA1iIiFXhSwY1AQsZTpSjQengqEcgAEsKuHkW+qFUsJJFHjJlaUdwgjUcuLKrvRkFMeQMGkceLDsfQnHadxKH8W6QntA4IrKUe1nCXZs6GSYtADPumb2M4sEOfMrYabRWlgZujG7vpLGVmxHHnuZ4E8Q8fECSiELQvZ-6OWAqVokO+HuZ5-DeY4Likf5x4GhcNF0VeukRfuUUHDFplxaF168ToVmCTSdIZfl1k9cRYB+Zl8z0FAjHlOe1UhTp4XMflzVmW1iX3MlbL3I0rQuNJo0HBtW07Xt8x-IVxW+WVx0jPwaTjZN3hpCUUgTjoABiwnbcd26Acw5C3awaREPQGYsu97TbXOQS-koQS0MYOjsOUgJQBY2jWDYdQ3KIZQQKwjTlhGiKCLQNSE9ujDaDEECikoYCijaQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index 02308139e..3a5255cdb 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -171,8 +171,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlba2Tg1NLe2d-KTkSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAZDL7JH5-KqDFxgYFvFgwGKMfYnIgwVANOiiUjsPrlADCtnKWAAsoTKjoALw6HF4vplVHGGk6aHknQAIT+uEZOmImNZBHx-w55R5bNFZJ0hL+QTKcl5EDKpOltPp+OVZR0zNZf05iB0AAVqFACHB6EQeXyBVjacLoYbKoxBABzHQADQlf0JhsJGPouTClmCYHlOiCQSUaCxqVymU1ZQKrIKSrKfCEIlErIzwjEie1TRirtWMAL2rpUHocGoerAAGk0KaIAYyXBaKpjf5SNatRWCvddLToWC4WmKzokTFNCwhVklubRDFRDW4Oo4PxyxOZ4xaFWRCd5zJ8wCig6pd6pZTL0SSeTr2HFXyK+yyX9nxHxxXUCxYKc5wuYjLqu66bh+ZQztQghwIegGbDCQxFH8RqkuUFKVJeKFYGhcpfhOfwAPLVO+fbak+pFlFOzLooKtJUWitp4WUuLMOE06zvaR6LsBIigVuFY7nu9AHgQXEnjUtRniK1ROF6eCSpyZJYPWWAAExyuRE7an8MlyR+mkTgc5rHDuAHHkuK68eQYEUdqgn7jBolwewp78tJsmXopylqRpTHagAcg4tSArZ4YKn0kZKLQLLsLk5BqBo2jWDYJRaqIOQQKw5ToOwMYACSCLQRT5SujDaIEsxKGAMzPEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_lineplot.Rd b/man/tm_g_lineplot.Rd index 0f3dbdf6f..0f5d0e954 100644 --- a/man/tm_g_lineplot.Rd +++ b/man/tm_g_lineplot.Rd @@ -160,8 +160,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBbgyhHMYBsqSiQUr8UKRQ+kZc1AD6GVnW6ZnZhjoA7rSkABa0EOFluDogSjo6AIIAIgDKADI5OqQwBPlwAB75UPyi1O1d3f0AQkMjY5PT-NT0OgCkAHx7Cx0wglnk7J0AagCSvbe2OgC8zybq+YxwAfyqV3cPWwtG73R4AORaMAaciCAF8ggArIgNfIAazgrFETSyNgqv2MUGEpHyBH4tFEYyRKPRmOA0HgWKKUDkAF1XBAegMhkzgMAFGBOf1+Sy2Rylqs8WVefyeithaKlGhUEMGjV2AsmS8dEzcAs+EIRKItfrhGJ1RAOh0RvkAOb5KRwSJEUjmy2W6hQehwaha-n9Bq6AAK-lI-N1Frd2rK9N0bxl4rDJ0tolIzCyWoItWRBDE+VE3rg6jg-FdkY6mhYtE9IhJWZkZsFLQI6oFWAAsmGdDL2wBhbqdmU92ydXv9sAw8NljrdjtgJMdOSTyOsDN1nOiPMFosl+eWiuMKv0GuZ7MN8VNls3TpCvBdsDLTq9Fy3-k9gASAHEB2BA++v+PF13acBWua9+V3QCIzdVAWFgVdTw3fMRG3UsywrahBDgWsEKuc870DEdOjbPtvwIrAiP5SCpzva9bHAqDLSCN0mJ0IIgloYwdHYBpyDUDRtGsGw2gjUR6ggVhOnQdglQAEkEWgWlk-NGG0GIIFhJQwFhFkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index a5e56dd54..3656ffc29 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -140,8 +140,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUEAvkEAVkTlaQDWcFYokqiRs+X4cGMUGEpDSBH4tFEPR+f0BwOA0HgINycgAurEWlMOrlgMAFGAiZMKXiCRAWm0SVUyRSGS4wLTYmhUB1ysV2KNcjoALw6XK4UZ8IQiUQinRS4RiAUQBoNLppADmaXQC20jFEcF62jIIK2quoUHocGWotZ-D1Bp0TmNpFEFIlKtVDVyWN0tsprXZHq9DVQLAopF9ctZE2peDNoYStAj8KINp0FOe5yu7oTOkiRDhJTgtA1JVIcoI7AAbAAGWuTGoAJnrjZ0LdbcmDIagcH2MErJV+BDEaQNInUcH4ypDqoIQ5kYjlmhYtEtInhC5HILZNVZTlsTiwAFkKV28w1x3BJ-xo5SD0fT2A8+fPV7SEQBhrmJDB8PR1eN4zrOOjzv+sqiiujBrvQG5gYuO6Bnu962AA8gAGgA4lgZ7drOgHkLe-ptGhWE4c+b6qq+s6yIIojcMUrB-ghY7WtehHATRW5LpBq7roa8Hbuwu4ZveWBOHG1EgQRU53m04lxi+eGqkQgi+EQ8DMdurEThxF6gdxEE6FBMFwYZwlIaJbSoQ4ti4fpMlEVZTg2XZFGzlJXpQBYJBaQBbFAfpgk8cZfGwQJ5kifujQAMIAHL2ZRXqOXJTixQl7khp5qoaJporBaIOnsVOnEhgVy5hWZ4EWW0yGNOMtjNAAmolIE6ClxENc1FJKXmkLEE5cUOJM1KUUEDRBEEtDGDo7DlPs3kaNo1g2HUnqiGUECsI06DsNyDyCLQNT7QajB6h8ShgO8eJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 5f34a838c..a7290456d 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -187,8 +187,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUENLQDCALIz3b0DIYEGCrDZbHQwQSJcjscENH7jWzNACaOgAvDpZKI4GkCiUKLCIA1icSfp9GrZ0RiFGB4PxJDoTjSdAA-HQAJgADLg4aTvuTKWjqbS4PTlp9mWyAIwAVm5vIa9mcrJ0Ut5NnWdyKpTS1Cg9Dg1FhYHGpEE-FYOmaUEtRGMOlNLFIOjtOm+opkCUsEBpch5RJJOh+TgAcij0ZioNjcfiKgqg-yKVSdDS6QymWAVQB2TnygOBhMC5Op0UMiWZ6W5vMFxWOdpsuWc9WgrXFEq6-WG42m82W622+1OOIu+3u-iejQkX3+gs-RqI5q2X4Y+dIpczwNz0OL5dNbdL8FBAC+QSUACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAjj0Q9C9Xre97AAQxotFMNI1DSLRtJBKZgF83y+gAukoQIwDed6iB0oE0oiDgolccE0s85xEXg8GrjuxFgAiTgAIo0RSnxqhR0G2J87JMRxADM3GfAALL656XhAmH3o+UByMA0HND8TFyUhYDIR06HiaIImAVhknSbJsFsQhik0ip+S4SatgEci5FQWApGvMJPrQOgHTlMUhINLkEa5BufBCCI2EYr5whiO5xJdGkADmaToNFXoUF+GjwFIcChSSeoGsswoAApxWQdi0El5QjHgvK5NA8ALFAujCjBLglfmxJlbAOLoRGsnyfVBaoCw8XldVlETJMkG8t1Gjxd+RCZfBdnWSN-hfvitARSUzoYqBABsuaTDUXKcttHJVpMfq8sCr7EPwEYECUl4EGIaTYiI6iiqlgZXTdYgRpoLC0PqIjftdMghbkwAyYZHXIchNk-M0TifAA8s007xg9cBPRdwrQ7DCPDQ1DTHbjOhVfsIJrQDt2iPdhqo+Q-AvSSb2AwFOhfYwP30H9DPk5JIN6XVEM2W0thOFgSn4zWOgo2jl1gU4Qsiw5BZi4GRMFTioiJIwq2YmTd2SzTdPEpzH0YizbMczrD7A6DtXGZDlELgeYBKwWeuitL0EO6L6obiSKsVRQ6Pa+9FOu7T8ZG0zpu-TiEfc9brR83b0H7qLPuBqH7sISnCuBs7jXq6r90a1rEeU49+vhxbn3fdH-3B3H7VKfz8Fzp7SMEw0Gdrcardrl7BN5x5Bf+8OpPB2X1PPZXwfV6ztex1bje21D3xtGGjuD8SXeYj3q-Z073u8lVjCGvErBF06l0WxPaMGw0Eez2bMcWw3hn6c3HtIsi7fi9vZlUd-A+A804NGPqfG0vRR5B0ZjfCuHdoHk0fvPF+i836JwFtuQBm9O5Uylt3ZOYYsGHwJosE+1Az4X01lfceoc74IONszGu7Nn711QYhZe9sv4-xrH-MCC4iHANKqIMhFCA7UJgbQ6ejMkHMLrozV+7DlJJyzoQ7hLtcE00zmvFEOcSTvGJPooIQRaD2nYOUfYUALDaGsDYOoAZRBlAgKwRo6B2BoFQA8QQtAajuIeNiRg2gYgQCPEoMAR5kJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index f91584fa7..09cc86cf1 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -171,8 +171,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAwgCyyTqkMARpcAAeaVD8BDD1Tc0AygAyXT19g8P8otQ6AKQAfOsmtNTkjOwOUw4AQgBSAJLNG+U7LR0AJMdnV81BDQ-tjx2NU7bNWydfJfR5-AFAiag35OABygOBRlBjThCKUAF8gkoAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfVx+KJJOABHYCjALVmvJqvK+vLkAF0lCMxoTiaIutzef8HM0AJrXQU6XkvC7qvCavn-NF63kdKZOACKGuFtlaAEYrXybQAmB2NG0AZldNoALKKcXiIDKSWSoHJgMK2u1XZHeWKulKYEHRLF+XNKVVgOG+dMZrGJRAvl1cpmIx087E0KguuVijyIA1cjoALw6XK4CZ8IQiOUtzvCMR1hoNHppADmaXQaVKqjQHAmQ501Cg9DgaxbvNsJRnqFYgvnQ9y0Hgzf1Irw+4aqBYFFIR906+zAvP9YXOivGhvDKIa-12ree5fBdIiIekt1oUcSlIE9uQANgABjgmYaidBCkJ0FDULkdtAKHBJaEYVdoJKPECDENJRFXOB1DgfhB1fBoCGImQxBPTQWFoZcRAZJjSNJL4hUdS4sCcXMwCwi8hwokRqP4aCeUE4TRI+V9xJwhiYCpYhZJbRiSLIqSqPIWiJIYniWJbNjGA4+guN05i+MjASOmaJxWgAeWaUVsPohoDJkk8TXaFz3M8sAJNU+ixnKUYiL00RyMomS6Misyex0SzrNs1L2H4-UOkueFWi8kydD8oyArAfLCt5cLvNfMZ+CICjYvshLpKM5L6tS1j2M4uBuLinLHLyoK3LNYq1MkxLyofZyxpcMLJoi+qYFIRgoJ01K2sMmjOoXOzeJ6qy+oG+yho6Jz2nsWwJp80rppoiqOmumqlrq-aNKawQWt47akpKg7zPS3qbP6wGHIukbmjGhxbp8srHp0+S5pOP03oksZGCIQRyB+-SHuMybTLio7MrB7LcsCrA3IcWwFuW+iEe0kbqdphbaoxz7RGMRgAEc8fipm9qHcHSZO8HzvaS7oamAAxLBLTE97XyZp7RrlhXXvohmRZgURSH4VgBb+jqAe6iyQaywbKYNAEVThxmCYq8FVS1lTlfUihDeNoWzZJi3jtB07eMlgSUXhe2lZK1WH3D13Fu1-dlKCIJaGMHR2HKA4oAsbRrBsOoX1EMoIFYRp0HYStHkEWgairijGG0GIIHRJQwHRMUgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index e4562143c..94e8b93a2 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -116,8 +116,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlQBq1Q1NLe2d-JqiSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vQbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5jF0DFNJluJs+tSdNQoPQ4NQSX8BqzqNM8BzqQV7rpsdCwX88VTOTpUCwKKQpQL-jVAWLFZyVRo1SciPyZWAHNUHAAhABSAElKvLxWVUP5jlk4LQ6VlSCSCOwAGwABiDtSKACYQ2GdJGo3IFUrlSxYKc-VklgQxDFRHy4Oo4PxKYmygR0zIxCTNCxaDyRCcy5nNjDqkU-gAFcpYcoAWQAwo6wPHndScyJ8-xNR2u32B8Oh3rqW0oG1zmmM1nR3nyIXhyWGxXsVXGDX6HXS+um2DW1qAJp-efFnSb8eaqp3sBzhNKqBV2JHtflqI2a5uORbFuegGVtWtZwPWF7sM217lAM5Q6g+xbPtur4oTqc7ikEZRBEEtDGDo7C5OQagaNo1g2CUiqiDkECsOU6DsIiAAkgi0EUnE5ow2iBLMShgDMzxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index a1d061747..f51457977 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -162,8 +162,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index 555ecc0f8..c19b8e48b 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -139,8 +139,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lxrTU5IzsAISlAGoAkpU7ttPZUzoE7ApglQDCWE5OAHI79wDiFwUX-aWVTtVPLmByAIAXwCACsiNkogBrOCsUS5RI2ZL8ODGKDCUhRAj8WiiJrgyEwuHAaDweF5OQAXVcEAqNTqeWAwAudOqF0p1NpfUGyMSTJZ3PZnKUaFQdWy6XOEBKeR0AF4dHlcD0+EIRKJ5TpVcIxFKSiUGlFMVB6BAiIwYNx0qwovQbSlzaJMQBzZgovX6krUE1waiai7VE3mkLm1h2MSkHRYMQYjVpTI6AAStGdGQjOmebt0AAUiE6DP0oKJfdk4G8Fvq8qTdAqBQNy9LPToWDAopoWJqCBkIQQxFFiyJ1HB+B6m6duzIxJr24xaCaRFiJ734ayCqJBPRi5GFWcWVgALJvHR7-dXcoXQHKxtjgdwIf8f1gUoHi4VkpyK9j1AsWDYztLvtb3vUcmy7HspwVdtqEEOBF3AlduXeMBs2fUpT3PPBj2Q1DDwBT8xx0IDyAfHdzifapbCPC4bmzKiwB2Z5SgvN8dA-FiOn4I0iFCP0FQAMVKapvgrAJ33wpYVlUTVIn7OhlxAmSuknMjWToypSj4vi2Uwojh0fABNC98INOBuFk5S636OiAHl7nsWwtKPXSSKwwyAR6AIAloYwdHYbJVigCxtGsGwikbUQsggVhSnQdhRQAEkEWgCgS4tGG0fwlCBJQwCBSkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 82c76ee1c..3df258ee3 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -163,8 +163,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyARVyikrLK6v4AR1ElAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+bWxdCHp5yWm8PkoWDA-IxlhsiDBUEU6KJSOwGpksABZHQAXh08MRDQyEOMmJ0TwAQogdAAFahQAhwehEJ64PE6YgwokEJHPcnZRiCADmOgAGoziWAAMLksXQ+jxDyWCBPIYZORMiAZTJi2wo1Fi7JEnFItUZHQEon-NE6EmM5ms2FYjnm9GZEWOnRixUNIZDEHoIrxaKGjJJIlJVUZPhCESiIkR4RiQPGkp+dZQcxETRQBPG7FQehwahm54AOTFAHkAGqZOy5kTWo3ZpLHXRY-5fOvZjJQTTbaLsmJjWmiPyifNwdRwfhZjsEfsyMREjPUQRwDazwfsAG5FL-csASVyu9sirDHYyI5E4-4hYA6k4nABpHQARh02UyAE0dAAOJ7M5Un7NQT8DNGD7AcxGHUdLynbMZ3A6MsRA2gaxXOC51mF4UgdZ40RdZ5NW1XU8MI7JFRVP9jXPMdyCvFscJ1UiwAo8j62NICCShNksXYyFbQAtjF2AlgwPQyCLxomDjTQwcFxYZD6BEVd4I3L4sM5MUAAkAHFiMrV4wDkFjTzPKCaMLTSdKY1j-wo4hNCE0D7TXCCqOgiiMmk+dELklClPQlSWjU0lMlyFw8FFXJ7EyLUnzw0LhQMozjNcsy6MirBosyWKrNPJLs1QFhYE2ETBzE6iJ0kjznIQnRF2XPz103bcwApFFMgYvDWoy1Fj3cnQUonQsADF7wPAwhuvK0co7PLjXicg1HWECSpc0yKr6zyaqQ3zNoCrcWU5EkQrC5r0sy7LTqcBLDP47MBtoiKopi39rJ0JVjXer0lFoQl2Hm1QaQ0bRrBsNIjVEOIIFYTJ0HYNBUAAEkEWgUnhhGR0YbRGCGfolDAfpziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index 63d00a333..9243e48ac 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -197,8 +197,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSUwgqHk7PMlZQBqpdUAwjoAvDr8USTEUeOoUdRQ9HDU7KVbuzYzcxDrH6npGVc3d6tgHYZFhQdSqHRYMTCUgAegAYtl+NkAOYKMABD4vWZrYy0ajkRjsAAKpSwpQAsjtyjoAISHNEAeQ2WAAkgA5DZonQAH02LMqLNsB3pYDhDOq1QZAHUdA4iWiAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoNCogQkaImmqNdrdcBoPA9Xk5ABdVwQCo1Op5YDANHe6pot0er19AZGxL+wMRkNhpQsGDnE0WogwVB1OiiUird5lLCU6mHbO5xgmg46QOFnQAITRBWIGcrBABpPJZQbVbA7Z0OwVclwPV7JdoOfY5eMlbRtcQOiJ1wIcHoRC7Tczh1bgbn5UYgmROgAGl20Ts5zt0-RsiFLIF0QEAmhM8lsuk8yU8pW8kP83whCIJkOP9hDEd91gaKJSCiK9oDYE4libOAwI+a5bmoacwEhURUBIY1xgbNYP0SJ1dBFCp+gI-MPlQEFGn4FsMnVJdRCiUQ7jgMF+GQz4CEYmQxErTRuEEOALT45iHgjAo0RJMkixPMBZIpBUf0+dY2JETiMNrJxKn6IkWTRQidEHYykyiITGAYpixFY9jOO4j5eJswCdEs2gbhEMSXMk-pGzbQsFPbKkgp2WxgvKAdVLUnQNI48h6LIwKwGM0yqPWczJzTZtDky1N12ij4c2YUILJYaz+JYuKHOMkpnMqwSWA8+gvPqiTyMqfy0UqJxjzwbta3JLAAGksAAJgUskdhce9Cs+aqEowqaZtSuaPxNM18RTbCSDY1zS0c9YdL0yoDMrA7avWC4WwBC8MxEcgITEHCIDYnR2B2LBFH6mSWA0bgnp217dGJL6VMukoRG0ahXK3dKYu7O6fDgR6sJet6PrBn7FL+jz0LR3aQaJLG1pi7rQha3RyjHOAoAxypym+6TFMYIhkXLURRC0KmabponGaM+HPgxGK0oR9kNicIVR3HCGdGuzcAUqCmRB0am2L596GaZ7s2SIUgdCcITqEETyQbZJxvrFhGdChu5YcOtTT3TZHUeewn3s+nW0T1g2jeEs33ot72ccYf78fd4H3uJpm5ZKGTWfZsQue0NXeYxokBex5XA-V2n6azuWRbU621KZVkOXOsdczlhWdC3Fm2Y5lOeY1jOs+ZnPKbTtuQe18GhZQuBoYdhOm+T7me-z-mQ671W8819h++x33DeN03u-YYOFUu4v1j3kWHyUWgp3YbICVBDRtGsGwinzUQsggVhSnQdgnwAEkEWgCg-tjGG0fwShFRKDAIqN0QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index ab7fac86e..0ce204f11 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -244,13 +244,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgGK1Go0jpwAB6wqCLungC80TGxMRF2ABa6waEiOvRw1EQA7jq0ohlQonD8OiQ6pMk6gqKC3DpoqIxEUASJ+RCaRNSatBAA5joEjHBQGhVExglQOswQ-EQwOgDCACIAkgDKKzr848VwAVALlckQc2bKQ1W6TXSyExAYrtCMMAD6o8YfxDCo+iMdH87CUOh0AEEVrYIVgALLrHSRHTA0igi7guZwYxInQKMCwuE6ABC+NwYMxfwByIIoIJ8MhZLx9KJK3xigxcnJGMJuNR6MxWJxyPxxMQOgACtQ2nB6EQyRTwVTcbT8RDxWtGIIhgANJn4lbilZLej9caWCDsikcjlKfakWaGSpjagfe1Qax2g6AnQ5WhVfrsd24HQgCkQtZbAAyPtIMAIH2CHyg-FE1HDa1sticsfjiaCyf4pHISgAvhyAFZEfofADWcFYoiDBxsTv42KgwlIv34BQTVZr9cbwGg8Cb7rkAF1XhHoz73cBgGrI1H8ZPpxAI1mc22Dovl9u1xulE0ff1-QK9t7kcGKXwhCJCsj78IxJfwXGPt3iEFRgN35i0qZNQuIGkQQQ6FgcADC8eCKpi7qjroIoEpm2YKhigosJ8mgsCqiTVgQYgfCUIjqKU7Cqiy+osusNFQjC8J0WAXLMoS7LcoK4LYV82K-Es1KNO8vE-FSnFcagLCwAQZQ0gRMjEaRcDkfwAGCrh1CCHAvzyURTZbtmIb4hKsIQgiaw0SZWBmRxzIAPJbPi8Hglyzk6P4zAOh8uGMPhhGKVkynkKpblKnSKx2Q4ABy9gAJo0Vs9gQjCACMCVJTCABMtn4ol1mpU5mGYq5RVKkQmjeXhcn+aIJGBSpamUnSEIAOIuHgzLEnCWAANJYGlHWit1fXZYNYBYE4LUbHZUUDaxaptYVXE6CVy0wF2WgsLQ4zIXYjguEVHIuUoHK0Di7D9OQagaNo1g2GGGKiIk-SsBC6DsE0AAkgi0CGX0lIw2iMBypZKGApaTkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgMpxiEfjpwAB6wqCLungC80TGxsRF2ABa0ojoa8Lg6UDqirGSJcBoEOqhQtIw6RMY6AIIAIra2TgD09V4AMjr8UKTZKSZQTDI9cAHGRBUAwkRBOoxwAObzoqKWEAkA7gXzabRiWf4lmtwA+vCkiQI6MD3kjBhKdEwsHPxhrIyK6-492YZpcFO3V61iUwL+Rg2tAutAg7HBmRASh0tQaTX0RnBGGMzHg7GRKO8tgcdQAmgBJOo6SI6BRgdoOAByAHE6bgCSiagA1GqdGkEdgAFkyAGZMgBGCWZABMMtFUp00rk7IghJ0k0ZXiw1J0AslOn1+oADArjZkTTojcqObUsABZSZUmnGKDqCb41Vq3XsC2G03mgOW83Wz1q6iDODUVL8-FgGr22ps2lxhMAITpXzVIbVXicAA0dS63YwPV7vRaK4G-QbTdmveH6JHo966QAxJN0u0Zm11lHkzW2Quu0jugV0moduOT9N4ZMzzLj6eTiezunz5MruS9nKkRiwhaiGqiVvDibN1u83MEzOoxpODFzeiw-jsep3zJvpoftFOb93m+fve-xQKIJwaPQ9AiK+P43qIhQYHBozsOKAE-gAJP2XiDv8oihFBgEYQOqF3mhNTMkBRi4TAYRwOwcEAI7sAArJkADsLE6Exyo5LQABeug0hAjBEBs0H-pk8xhK6Al2I4TjEU0aEOF4DipgAUpSD6lKI5CxqIgj0Em4qIEJIliU03EEZhtiZHBqA6nSBjdp6BEAArxjUdoPm5HkOlS-x0gA8l4dIEm0nQ4QZcGkKWhKASqapwSI6g6mOYDKapGl1JOWEkhS2Wrimfk5fmk7Wcu5HOSiXwAL5fEoABWRCwicADWcCsKI8K-DY-z8HALrCKQJwEPwKQECcTUte1nXANA8BdeCcgALquBA4UPuCwDAOOdQdHSy2retP6bb8227XeB1HQkAAGXDUDdWToHQsgaCQCQGJ9X3fT9TkQB4OiMkQ5BpIkPSg7o2rEP1gRBKgEzkAE9CsDoN1eJcGw6Nq0z9Y9-BEPsEDAzosKSIIMMXLo4IJKg8wGLTRAEGIqwQAsGA6KSRCCDoULUNQOgQHAoxpEQurzCMENdL80VZKkgxENoOiNuM8wJIwZjKAskvBPDjCI1juoCHADzfCwMAnPMxgjUQ1EPnQOmvvajo6vbMWWw5RWJrOxC2zG45phmW5rWg9n-LC0KxeCOoIgSfBCCIzZx8IYixSipDm8NxBBPMCyp4SDaRh70yzFgiwPHgNoouC80yRdTRspXWSMObxwVPylwyGIJxJb4iPsGl8bFWA3H+0P24ombFsDdbvtN+blsz6gCVeqUuKjalHdM6BPfqEhjcosc1CCHAI2byn8XJu5WCeY6k5X55GYLmAwWhaGhLjzuzC9Ccrcb81W-d0jL3JCaVyrD0yIyBw7R2gf2IJoH+LA-6d23kA3eL40q5jzBVFw4DkyYMfo3GAQ0tAsFoBLGk9hnA9mvEoL4tBqjsFhHcYcWhaJbh0EiT0ohkgQFYDUdA7AQ5oUELQTIQi4KMG0J8JQNUlBgBqstIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index 88c500d09..ab1d03a12 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -139,8 +139,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyoZHxyeBoeCmkuQBdVwgcgqKk4GAFMEv8+5Ozi6aWudDb+5zm59elGhUEV4tF2A0kjoALw6JK4Bp8IQiUTQnSI4RicEQDIZEp+FZwbRkKYNHE6ahQehwaion78bSMUS6JxE0h2Skie7w7Fk2GhA66GE-d5c0k4lgwPyaFioggxYYEMR+JkidRwfjsAjgh5YACyXJ0Pz1AGFsvc5CkjfqwBaxRlqNQ2TC5QqlSq4GqNXacS6ZGJUdLGLQOXBVvK-VNfk4Ulqfk5bE49Qa49knMaAPJmm22nm8nTuz2y7XNVMZrP9PM5vMxR2y8OK0TK6ke8he3O830NgMsYP0ERh12R94x4tOABCmdyAE1csmHk5cunjeaq3n883C0L5xO8jP7t7V2Savx8URPDSYfZnNy84SKCtSKxUILDSh6aomTo72R9+2Kzp+n6WhjB0dh4nINQNG0awbDSHlRDiCBWEydB2CBAASQRaBSDCmUYBl+h6JQwB6E4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index 158dcdced..a4b5d9972 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -137,8 +137,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMoAMmE6pDAEkXAAHpFQ-KLUhToY1PTUoq1BuknEUdRQ9HD9nPWNLW1QcAFFZcVONXUNzYOLOgCkAHx7XUUwgiHkkbTG7LTiBOksUOqqeVDixs+kRP46AMQAch0kx0BFUISyOiIxh0j00WQA5iYvj9RF1RpFxpNpqsnDYkj0+gMFnAlABfAIAKyIWUiAGs4KxRDlglB8UZ+HBPsJSJECPw7g1qbSGUzgNB4MyEnIALquCBlKo1BLAYAKMCKyrqmVyhWlNbK1mq9W47W6pRoVA1LJpdhdBI6AC8OlyXT4QhEoidOndwjEdogRSKdUivLg2jIA3orEiCOYnIDQaDWKm3pN-G0jFEuicEdIXujOgA4vHdLYJiJ1bgTkGEhLdM6TfqXHga0UWDBIpoWN6HjSwQNsyIXvx2AQ7RqsABZKs6E3TgDCpXVcjy85nYFXbZ01GopF76X7YkiQ7gI8TSaDfZkYm93cYtArcD5h5vzNxeXHJqctic09n36lE4C4APLLpuW6BpeRSniOvYTmsQGgeByyXpB0HpHuB5HoOUxnuQo7bkU14DneLCPn0z4kf6H6gghTgAEJgeUACa5QARqTjlCBC4ruh0E6LBBFppxTEVGx6rbvxSZxm0Dagq+A4nnh55EQpOFkQ+T4vjh7C0V+nG2CBAAaRZYBxazlE4ABqfHVlB0FCXA-AiWsRmmeZYBSTWqEBAE1w6LcKhqBo2jWDYBRQaImQQKwxToOwloACSCLQbzoEl2aMJmARkkoYBkjKQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index d5a2b8702..a91b35fa8 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -170,13 +170,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6e4YHQAITpMh0ThasB8cBNaFQdWy6SuoJ0eRpeVwPT4QhE1JReeEYjTYPqMCiSvZlLhqBCrDgLDL5Z01Cg9Dg1Bp3x0WBCulK-D5glE5H4JiIjB0WxCtEpBgAmk3GNTSqQ+7DhXYOyInoSSnldboUZ6Xfv0+WWJXNCwaQQMoKCGIoqIu3B1HB+C3WxdHzIxBpW9GFoXc4GVf9nwlM1qgKS4XiwfZPgQo5ygBOQc0vVs3xET8J1PG5EOOa4Dx0DDSI6fgqyIUJuxRexnEw38azIOFgPvSCXxwj9xx-VsHyfQCUWA0D6BECDBOg507meSAKVYgEmN-HRuLwns5JYqkL2UkxaBaL8aQYlwsJKciTJ0etmEafC-0k193zwvjywEgDCx0W9qEEcCXKg9gKi9WSdj2VDkLAIKDkU0iSlU8d1K9R4wFIgJy2SsilACWhjB0GEVDUDRtGsGwinTUQsggVhSnQdhEwAEkEWgClqt9GG0fweSUMBuUNIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6N4YHROFqwHy6NKZepQegiHSiHzpHQkIO0xgwKKaFg6HOMWhxkSiE1oVB1bLpK6gnR5Gl5XA9PhCYs05vCMTVsH1LNK9mUuGoEKsOAsLvdnTUONwag0746LAhXSlfh8wSicj8ExERg6LYhWiUgwATVHjGppVIC9hwrsRbgT0JJTyut0KM9LsfNe7LCz+ZpBAZIKBBiFEogznA6hwPw44ThcQEyGINL5oW8ZwMqCEgRKZrVAUlwvFg+yfARRzlMRYCVE4AAaAJyI234TuBIhQVuKL4TchHkZRNFgAEcF0U+tL8PwUSkEQoSzii9jOPRcH9mQcL-mxmGgUxkGbrBE6AcBSEoih94YTp2HOnczyQBSCkArJcGJhBLFzuZ8lUl+NkmLQLTQTS0kuAxJQCb5OhDswjSsfBRlgXZGmCSU2mIdSencII6GxVh7AVF6Zk7HspHkVlBxWdFtnMZuDleo8YCCXxYJVQEAS0MYOgwioagaNo1g2EUNaiFkECsKU6DsGWAAkgi0AUw3gYw2j+DyShgNyhpAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index 8aeca58dc..e40b783d8 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -195,8 +195,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otQ6AKQAfD3FJTowgqHk7EPDOuW2ABIAYrUAvDqyonBRKRkUkxDT0wCEtOLQ7LNzszYAfjoKYACa97hTB-bOOrf33-sHNv09VLpDJRahQehwaiTMCVQT0ABWcHUMzgIQyOgWYIA5vcAtM8WVyqUnHUGk1Wu1gnBXL8MB1+M1tGQosZsaI6qZzBorLEbEVfiVYnUhQDXiVRuM4HsDsNbABZAAKSyilScWB0q2JqvVy1W9yeeDFssVyqwThWZTV5o1esezyNJXlSuqUQA4lgAKway22ADyAA13Ta7mAPfaBW9FSq5QBFAAMAEZvcdTlB2JVY4mAHKlOVyF4R6ZO6PxgBMyZOGDOGbLObzBZljqjAGF40nVimq2nW9ncwT8a9iNRBDAIKDwZD2ck6KJSNLI86VWrvfdKqpLIJ2cTwzKnabrbasJCQnB+Jadwvle6vbbXcx+LovdvDYW7FGa4nvVAxLRxxCobEwDAKumYJnW9wALoQQUgHATCoGVM2kEQfmRrFh+5arN+oi-mC-7Qg8GAAJzEaRREAPQAFpkWRlqVAAkriDYLlEPbtjo2G4ROAEhEB9xseBYBQf2OgiUOf6TrkIRyMA0DwKI7BDiOY54ZOcgQXUUDiAQGQsFA6iqIpRDDqOEnUKIImxEMAC+NIlAAxAA5DoroUKoITZFiOibqoBgPsY2SnjocBMqQJhshgQwVMSdTRSSAI6HS-AMiFFCkCybLxIEtLfu0EDRJoLBTkYcliOwcUybOLCkKIADqwLsKVCkVQU9x7i6uIQUMdI-lEhWMMVOhNeVRJOJVoSMDV9WZI1sBlS1IbFp1SjWQE8JENkUQANZwKwCl5DYyT+VAwjpQQ-AnE062bTte2yXN+2JOpNJoKgdTZOk855N6eTMXwQgiOyqz-cIZWvA0UTpalZCiFEogjjAnjztMqndLapT8NoA26E4oXsrCMCI2wF7THkpUrmAcUk8MLAwH1LDejpG0EGIcOQki5D8MjBxMzIYjev1tDgiIUS8yzCn3BUNTPGs0KlFgcoy5LCvNuUuKoa+JQbCIBlnujCs-DKGsyqyUBYvTjB5WjawZMzrPaxzp7c9MYv86sgvC5srsS5To0y3kfFgD1VsW6IyHG42Du6z9iSB8HUD5aHyHAAm0EOjoO1wKgUREIwD6MN67xOMxJu0C0QWrAspTVKqRoR9Mpvm-17Q-oztt87DUec87wzewLLBC-QIve3Lft4DoAdwT1OFJ0JKElwcXcVxPsdT5xs9QSnaeaxncBZzneeqIXjjF+nAXl3rGLV7Xr71zTyWQ0QoTW0XrwEgEAS0MYOjsNk5BqBobQ1g+RDFEFkCArBSjoHYK9AAJIIWgBQ4EbEYFjAItkIBgGshBIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 7aec2d4a8..6c6f7f5b3 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVOABp1DU2t7fytrhAlonCkGDNw-OwAjAUA1tn8OgC8OgpgALKqMxAQcAa2aaLkjPsBJRjUUPRw1KJ1xNFPL2-sFQMFYy0ajUHY6ABipWqlSc916Azq-0GAFIAHzInolfi0a7ZdTsByVBwAIQAUgBJcoFDBrOBwVDtEFg+zOGxojFTEo6GCCULkdiYrkABVKWFKBwAwuUwftbOUHFhyvtcIKSiKxQcZWAAPLaZhMoTMDQkHS5KCsUSKPCqsoANShYNEsB8cHYLUdcAAjisCgAmAAM-rkBVEtAAXrpdjlgzpGPSngRI3ZHLCVZyuXaoQ4teVzaJ9oK2ejBfRNlFGEQUqI-n1+nDPlFvq9q0ibMlHs9m0oAL4BABWRGyUVpFrNoTbRnGxigwlIUQI2NETQHQ5HomA0Hg1bycgAupM0Kg6tl0gLOXkwXk0yU+EIRO9drfhGIzxmGlE561UERRII46+Mx0JtQV2fZyj-EJLCmIhjB0JwWm-X84zsZ4RGVG08k3JN9iRdD0y5VAWFgBcwQIDJB0TUQohmER1EWADAJ0MiKLEMFNG4QQ4HnciZBfPJgGAHDa32XddwKfZ1XFKVlT2MBJIOO5r0YnQaLgOitlAsA5QVJUwBtYMbQbehWCidjGFInjKOo141PIJYbRKZjeIfHQzNoVCuKcyixygAShIGESxJUwR6BmUhSIFMAYX6GScKwBSwDkAz8IzVT1K1aKCxSnRksYisUiiYzTJYCyWKotK7IYwCvNY3Y3I87iyp8vywFwsBRJDEKwoi-YxQlFw8FkrAnAAcXJbUADllliqL7FKWxSmmwb9kyxLcuUirFi1PqBv0pSM0IxhZHC3YavKmz1KqjMzrYjjPMsvjEhatqOtk9UJXm31FIclSLrsnNGEEABzMossY9aMw6fgPyIUIQIhKEYULHp1qBagbjBSJqLobysa6XjIoqGoZsqUpwXBaoZM2jTZIATTuAIAloWD2GyG4oAsbRrBsIpOVELIIFYUp0HYQ8ABJBFoApxZmRg9QCbslDAbtdyAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 41a8e2bad..4978fb7a8 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -131,8 +131,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 7eb44136f..3dd43431a 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -126,8 +126,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAYQBZIpKyyur+AhglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdJRreyenRIoJ2BTBc2wdsgE0ASWznlOeHLkHAAhABSPz+OmemVe2VsLUhz1auScAEVEWBMrYmgBGDFYpoAJnx2IAzCSmgAWZ5DPYQW4zOaeOTAaHNBF4KGY9nPc5Fa4wBmiVwQHIFIpJYCs7kFXmXUXsiWhKVs1pykVoVBFeLRJ4QDJJHQAXh0SVwDT4QhE9xNluEYj1GQyJT86xga3K2jIswaTp01Cg9Dg1GNXKaJGIMGiUDIOhacC2sg0JHu9FYcYTMg8ln1TQDonuMf4OgACoxlqpy8WAHKwOB-X1OpLHXQm1Uc836v06FiCzQsUMEGJjAhiPyiYNwdQJ9iPaFYDtczILpq-MByf6Yhc0zvdnQTgCOfn7jEHw5kY4nImn-CeYGRaMhV6n5GLbfvLRR6M5xloFQTob2M4G6NhkMTUKQZ4jpek43o6e46EO0E2joJ60IGIgbOeo6zDkrQpHOmLYninLQtixKkURTTkpRBLUuuIFdnuz43oOd4EiRm4EhRXFkhS9FDHujF7tQEFQReojjrBr7wXuSESaGaEYXAWHIeweEtARd6tNkThNAA8mucjCQhLGvmxSItLpBlGaBOgmX6NT8K6RCeCGJpAU4u7dnAXrrKQrCoK2XKkOWHjwGQzyNoJ9lKEMtDGDo7DxOQagaNo1g2GkXaiHEECsJk6DsJqAAkgi0CkpUTow2iMEM-RKGA-TnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 9138d5e51..7cc0fe4bc 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -67,8 +67,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWolAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyto7u3uBoeD6kuQBdVwgcgqKk4GAFMF38442tiCU0VCL46PZ0nSSdAF5n0NwnviERUTedD9hGJHhAMhkSn4Jug-PQoKIZH54sYiKDweDqFB6HBqADjgAheEyHQASQgKOOXzB6I+nhWunex1OlKe6NQHloFAmxFxjLADlyDnxACkSdkWdT0ZoWP93gQYu0CGI-KIcXB1HB+GiaRl5YqxADpYxaFiRJMFTIQac5FSdRlVSINfwAQRHicsABZSk6JkAcRceB9YFyTgAGt7jgBhADyDgAcvYAJoRsBYTKRgMpY5OaO5XK2WzHZo64vg0vNZq0Yw6djxchqDTaaw2NLU0RxCCsTLodg3AAkgloKX7qsY2kYzQaSjADQ2QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index f4d00026c..86f271b96 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -119,8 +119,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NboPzUKD0IjMUgUjgNPE6Un0ODUdGPABq0W4okeiNxdPhoSOujhf0+3NpeNQHloFDWxGZwrADlyDmaACkAJLZMW8umS5ilfjoggxUYEMR+URMuDqOD8HF8vHG01idGaFi0MkidYmmTY-7NFKPAAKmSwmQAsgBhLVgOQ8h0ZS0iG2GhUhsNRmPijJx7M6PWwI0+s2iC1WlP2hNO31ouFuxge+he6sl9j+wNgdMRx65nV8pPW8ipnTB0PdsB53sOjTwVCjMi1nQt80Dit5jLLxf1xvN4t+z4dnIATR78YTq6HLKe2RPE77ObPdKgEAbEGHm7LyaHlYdm9d7s9OBvWdGZ2xHJ4ADksHVCCYync9y0vBVMigmCs3vHR4KfN1-HrIsQM-QdbR-Pk-zrACmyAzc2wPcDMlZTIXljR9+0Q20r3oxjHknFiMigHDBD8PC4Q-C9iPXJc9y3CjdxAmiWkPBj8gcU8JLE4c-iUlS7wdQY6T0zClEGWhjB0dh4nINQNG0awbDSXlRDiCBWEydB2BBAASQRaBSTzLUYbRGEGPolDAPoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 0de76f252..424ce6fbb 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -89,8 +89,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 2992351ab..6e117e107 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -102,8 +102,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMIAsmE6pDAEkXAAHpFQ-AQwhSWlAMoAMjV1Dc2t-KLUOgCkAHyTJrTU5IzsDj0OAEIAUgCSpVNZc2VVACSrGzulAUVHlcdVxT22pbbVSTfHD08vXe-3TgByz1eRnexQBQKUAF8AgArIhZSIAazgrFEOWCUBsSX4cGMUGEpEiBH4tFEDThCORqOA0HgaIScgAuko2h0kSjRDUCOwFGBHg5SgBNXa8vK8s5bEV4HS8z4Q6W8qo9JwARVFMrAxVs5QAjOrZdqAEz6zXagDMJq15QALLzYfCIOzUeiQnJgLKKpVLZ7eYyaqyYE7RK4IGV+jUEsB3Zren1fczQ56Ixiox6qvGQ2hUDUsmkeRAigkdABeHS5Lp8IQiTmlyvCMT5opFOqRQnoSKoRiWRiReAk2QaKxdJs6ahQehwCal3kABS7REYOkqcH7wUsEFFw6bCVpumnMfTeC3RVQLAopF3JY1YbjR4LI50p4056JRCnGolF0395Ha8Yk6vAh0nhAgxEiURJzgdQV0bB8iiAkCxCvTQWFoccRCJYCZAbG4xVNbYsCcW85FwY8mwgkRoP4K8DQIojeTIkiyI6HFiGo0sEOw0RwMgqjYLgzjQJrHQUK7dC4EwxC0VwjUqlKJxygAeVKO1SJ-B8KKg8h2Nkyp5KUlSwEYtSBJgLJ2kArChJ4yjtP4h9BKQ0tRLQ+gMMc6TPTwqptkBcpVLIopNKomiwB8vyGPUoomKinQOlEUh+FYSypJsrSYMCuKrKckTUPEySuPYGTZUeIUAtioLeO00K5UFSK4KuJtGoCAJaGMHR2CyJYoAsbRrBsAp71ETIIFYYp0HYLNjkEWg8imiDGG0fwoSUMBIUZIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 93d7ea80c..27026c12b 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -145,8 +145,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwHF4vHUKD0ODUdGPXIk0g6clZKl2BkiR6I3G0+GhI66OF-T4Chq0lgwPyaFjoggxMYEMR+URMuDqOD8GnCjKKxi0PlwdaqmTY54pUSCehajlwgiQp5YACyAp0fw9AGFso85HJBYaMlqRLr+Cy3Z6wDK8cH4xlUCxYBtlZb1aJNdrIwbDYrqIJzSq1dbPilHgAFTJYTLu-2BkOh8M68hRiVgAASWEeSZ0iaFtM0W2iCqVzszGtbef7Ru4xYtZdm-2alaeADUAJK5Le2JtznQz9vRqsAeVytgMACFMrknPktwA5Jw6d3Prfuhyx-uDw1QQtx0YDNlxzCN23zYVjVNegRCXK0VwrI97UdaNMifLBnwDMA-xbXMT07dDMKfbDm0NYxaAqPV0XsZxfzIvF6CgcN4nNY0QIQsC2z1SDhxYGC4NLBD2FXW0ULgJ1vTAa8MKwg8h2FY9qM7GTiNIw8KKojs7EcFwFIyXDaUELUn0yaNaGWCBWD7BShgMpQhgsnR2Hicg1A0bRrBsNIhWJeJWEydB2BBAASQRaBSUKtUYbRGCGfolDAfoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index 4672fa128..aa87f47fb 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -145,8 +145,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwPzkvwRIiMUSkHF4vHUKD0ODUdGPXIk0g6clZKl2DkiR6I3Gs+GhI66OF-T4ShqsljUzQsdEEGJjAhiPyiLlwdRwfgs6UZDWMWhiuDrHUybHPFKiQT0Q0CuEESFPLAAWQlOj+-oAwtlHnI5JKLRlDSITfweb6A2AVXio2mMqgWLANlqHXrRAajQnzRaNdRBHbtbqnZ8Uo8AAqZLCZP1hiPRmNx43kRMKsBOEPNACSADlbI3HpmdBmpaz6Yy1sZ2T0-Fb87Wiz3SzPLSwbfQRPat+x-s0Ut7HgB1ADyWFyAAYAEwAMReeCDYDvD8fAEZ3wjOcYx0Hc+yTH8nzfD8Z2A6VFyZPwVygHpN0dbcSz7MtpQrKsT3Qs96y-SCX0AsA4ItMDTSTABNZV52lYxaAqai4XsZxYK7VUK3XTUvQLfUqLNPcdCtQ9jxrAjz0vH1MgANUyfIQ0DP4xywcdw3IijpSEpN5MU5TUwYjJtIyegoDjeI7Q3fit2LeMsJEsTbXwwtCJaGTHgAIUyXIhxUsAvLUjSgK4nTMNYr8fL8wzOJnQRDTHTIk1oZYIFYacGKGEylCGVKdHYeJyDUDRtGsGw0ilYl4lYTJ0HYEEABJBFoFImsNRhtEYIZ+iUMB+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index 0af0b42f4..de64a0e34 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0Vh+ADmzEWOLxeOoUHocGo6MeAHEabp8kyiMxSHzWFl6BA+TBuNEhbYmSJHojcfT4aEjro4X9PnKGvSWDA-JoWOiCDFRgQxH5RCy4Oo4Pw6YqMkaTWJ0frGLQZXB1saZNjnilRIJ6BbSIbIU8sABZOU6P6RgDC2Uecjk8vtGQtImt-DZ4ajYC1eJTBYyqBYsA2hu9ptE5stWbt9sdPrRcP11EEnqb1fY-2aKUeAAVMlhMhGE9HB8PR0nU2mM1byNm1U98rZHsWdEWFfSInzRGtjIzKXqDXCu2b5-WNw6q87Wyx3fQRF6nTNe-7A8HQ48AOrsrD5AA8gAagAYi8eAxmAf4AYB4ETtB-4ABIAJJgRB-aIVgqHwWAyazval6Lt+WFAehSYblu9q7ow+5+IeUDHvEmyyAKjCVq+taZouDaKm2HYvs2PafJhMFkbhVFznWxHLgAmtGxi0BUNrovYziUQReJQBA-gChU1I1J6rocc2XELjavH0ueLY6K6j7PtZwktB+QZwCGZ5hpktiAQAGv+SaSYR0kqR5fzeX5WAzteJhKSFdiOC426FppGT0FAFqEkQ+lcie7FnreNZERZ0XWS6D4eoJ3bvjoAaue5OgEGGzThf5eGBYqRVLg1TUtZFeEpXiinKV1amJfa7UZDU-CZZ4rJwqBmT5LkY2Fg0kmKdQ5B5cUcDcOadDdr4+0+p5eQYVBuSZKBuH+sFXWPPJbVKIMtDGDo7DxFtUAWNo1g2GkCrEvErCZOg7AggAJIItApJDFqMNojCDH0ShgH0ZxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index cd211d8ed..843bb2d05 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -144,8 +144,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zhXCAyMaHhRP3ooUQBrOFJRIoBzRjhUdgUwAD12XIBZAEUAHwBhLbkMACoAOUyNgBJllIGxdhzmuRTNbkFdAF47RydFXp1+rAxH5RMRUGJZvNFssVpstidcntrngdHdRA8mr8Xm9Pt9nH8GhIhiNxpNpuECDEiDJgaI4CJ1HB+Et-hlKdSCBCvq9GLQoPQRH52TT0Y8nClRIJ6HTSDovoDBsNRhMps8Ghk6QzyPw5QC0UrSVMGgT-kSQWCIRSqSKQfS4IzmeqdMLOdNuSw+QK4ELra6Mc0JVKZbqFbSLaI1aydJr7dqQ-rQURwaJcE7jLQKkzdfZnMalABfP4AK2pED8E1Y6KSNnC-DgxigwlIQv4tFBfhL8XLcErwDRiVCcgAuj00KgivFoiyMkldUlU-8+EIRG6dEvhPcnSU-M3RDAAI7TjLH6j8+m65aZfjaRh0nRObRkab0Vg6OF2fkiG5OmehO4XsAxW-KMMhYGA-B5XUXVpO0HSPY9j2g1ceU9QUkIHTxgGAS88nyZYhyHQNpUmKClkArANhuHRllyJwAA1ljkSMEIQmMHQAzIKOWH8dGYlian4HciE8ahdQAMUyfJaIXFidBJFVVySLDljNeSyXwwieMTZM51CZSwDNbSxA0mSWOoahZS+JDbS1Jl4JYpDdRQz9vXQpTsMAzETOjIMSKssjmmyJw9gAeWyRi+Nkti4y+S8nCC0LwrAHi-gQ1LeKUP5aGMHR2Hicg1A0bRrBsNJ-lEOIIFYTJ0HYMdLkEWgUnqulGBvP58yUMB8yHIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index e0a427b8c..d9c1a080e 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -125,8 +125,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGIdABUZxULKBokOkTGOqQAFrrkoqQ6sqK6RoIJOgAGTgDyAMoAIgCaqTpQEPxpOQDCWVhOAIJZhZostFD0IqJhRDr8cHwQMczkOjC0oqK0EADmXQFQGEr8M-pGXNQA+gukUNbzi4Y6AO60EePsG1C4OiBKOjo1OVkAMkthMASrcAAeq1D8otTXt3uDwAJJlcnlgABGAC6zwAcjVVuNyBNVKslABfRQQABWRHGqwA1nBWKJTjMbHtusYoMJSKsCPwRm88QTiaTgNB4GSznJoa4IHdHs8zsBgAowEKHhLofyIEo0KhnuMjuwAWcdABeaabXAAvhCNpaoYCYRiNUQG43UgwVb00SCGAwFgcAFWnTUFpwajGiU5HpECbMVDhGR2FoiCV6y3unXFWC6bUSqVRt1Wli2xqMY0EcL4ghiVYJETqOD8dgENWSrAAWSjOmTtfKOQlcgujbrYDbaZuP34dqImx92vszmjsZ0DqdTQAXnBVln2trc-nC8W4KXyz2rZWJVknAANesSrA1couPANsAAIRrWAA0lgAEzHsBg-KvipVWpZV81ADiF7djGE67mA+5HpeJ5nkB27AROyRwAivpgLQNIQKwEpptiNzYtiaE6OwyKqFAFjaNYNhXDGoihhhNToOwirAoItAXExCSMNojDYhiShgBi0JAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index 91173fea1..de6b90271 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -156,8 +156,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiQQwGAsVh+egcBp4nTUKD0ODUdGPXIkslsHRUnRYIgRHQAcUYREEqDRtgZIkeiNxtPhoSOujhf0+0ppeJYMD8mhY6IIMVGBDEflETLg6jg-Bxcrx+sNYnROsYtElcHWBpk2OeKQIkKeWAAstKdH9AwBhbKPORyGU2jKmkQW-gs-1BsDqjIxjM6Gr8QlETzMuH2ZyxuVU7UsNFwu2e0Qms1J61x2tG6s6J0u+gid32mb-Zo+v0ABUyWEyaZSfwAagBJXKz2xRrOym0J83kZM1v2ZOcLpdgQY2ldr9ksWgALzdTvbreN66b2Yyd-bnddvbr7AHQ5nmReeBDMAwwACQFZcyzXRtNz1Hdpz-KNsxPOVBFNAA5TIU1oZYIFYNVVzxVAWFgDY9Q9NsG0TTdmxtF9HW4QQ3RfL9PinMBR3HAMI2DR52InKMILlB9oOVJ58gPRD1SPHRBkGLCdHYeJyDUDRtGsGw0llUQ4hwzJ0HYEEABJBFoFJDNNRhtEYQY+iUMA+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index c8d8d6f5f..30e7e1855 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -183,8 +183,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzbWycikrLK6v5SciUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urppbb0PvHnOaXGA3pcWDA-IwlusiDBUEU6KJSOwGpkAMK2TJYACyKOyOgAvDp4YiGhkIcZ8To-lidAAhR64Ek6YgwikEJFPamZemUjmYnQox6DDJyBkQDIYvkEolIsUZHRkimPGmIHQABWoUAIcHoRHpjOZsIJbL+KuyjEEAHMdAANbmPFEqlHQ+jxDyWCCChqDQZKNCw8LxaIyjJJClJUUZPhCESiClR4RiYNykp+NY9OBJuWEqD0ODURVgWy0eB2Ig6JzaMh2HMiPWyrNJI66Al-T6AiNZnSgvyaFismKjLWiPyiPNwdRwfiZzu9xi0GtwdYDmSJ54pY28u28nFb1HorE7sByEWMrNUzGPU86E-1uXdslQlkE++Qg0drOoFiwDb9wdiEdjhOU5XhkvbUIIi4EMuQ7sP8LQpI8qoYpk2LZFuSFYChgrvp2jwAPK5Jet7CjhGQIswng9n2RrQf+o4iEB05ZrO870CIS5-jMa5MuyuROLaeA8jSmJYAA0lgABMgo3p2cqPHxAlXjJnYaPAfioKMZCxjRnEAQx5BTmyACMAAcEkpBJAAsADMIo6KZEnKVmcCVmsizbFRjC-iuw70eOBlMXKLELhxPmwW2CFgE4ABqABytjZE4uQCkepFyVFcUJUlKVpRkxi0BUk4UvYzhKYyQrXkogy0OS7DxOQagaNo1g2GksqiHEECsJk6DsH6AAkgi0CkA2jow2iMIMfRKGAfRnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From b033451f65fdf7f7fc844f9051a07bf0a7b94ed5 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 13:38:17 +0000 Subject: [PATCH 12/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_a_gee.Rd | 4 ++-- man/tm_a_mmrm.Rd | 4 ++-- man/tm_g_barchart_simple.Rd | 4 ++-- man/tm_g_ci.Rd | 4 ++-- man/tm_g_forest_rsp.Rd | 4 ++-- man/tm_g_forest_tte.Rd | 4 ++-- man/tm_g_ipp.Rd | 4 ++-- man/tm_g_km.Rd | 4 ++-- man/tm_g_pp_adverse_events.Rd | 4 ++-- man/tm_g_pp_patient_timeline.Rd | 4 ++-- man/tm_g_pp_therapy.Rd | 4 ++-- man/tm_g_pp_vitals.Rd | 4 ++-- man/tm_t_abnormality.Rd | 4 ++-- man/tm_t_abnormality_by_worst_grade.Rd | 4 ++-- man/tm_t_ancova.Rd | 4 ++-- man/tm_t_binary_outcome.Rd | 4 ++-- man/tm_t_coxreg.Rd | 8 ++++---- man/tm_t_events.Rd | 4 ++-- man/tm_t_events_by_grade.Rd | 4 ++-- man/tm_t_events_patyear.Rd | 8 ++++---- man/tm_t_events_summary.Rd | 4 ++-- man/tm_t_exposure.Rd | 4 ++-- man/tm_t_logistic.Rd | 4 ++-- man/tm_t_mult_events.Rd | 4 ++-- man/tm_t_pp_basic_info.Rd | 4 ++-- man/tm_t_pp_laboratory.Rd | 4 ++-- man/tm_t_pp_medical_history.Rd | 4 ++-- man/tm_t_pp_prior_medication.Rd | 4 ++-- man/tm_t_shift_by_arm.Rd | 4 ++-- man/tm_t_shift_by_arm_by_worst.Rd | 4 ++-- man/tm_t_shift_by_grade.Rd | 4 ++-- man/tm_t_smq.Rd | 4 ++-- man/tm_t_summary.Rd | 4 ++-- man/tm_t_summary_by.Rd | 4 ++-- man/tm_t_tte.Rd | 4 ++-- 35 files changed, 74 insertions(+), 74 deletions(-) diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index 75bb4aa7f..35dd29535 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -127,8 +127,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeUAipV1DU2t7fwAjqI6AKQAfNM9Jca01OSM7KUAQtUAYrUAhAC8OgpgAJqnOgBkZdt7AEw6RyfnpzZzCxAlJTCCoeTsRbfUoANQAkpUwbYdMcoOJjFB1ER1qCIVC5LggSVUZDbAA5GE6ZgQADWG3BuLx73mWO+cIwCKR62pn2+bJ09IggngjBk1hmNK+7JK9MZpGR1kxQrZoNK1U2YIJx1ltT0OgArAAGHQAYh0AClBKJSByplAvq1YD5dOKdABzOAmsL0bKeHQUbxEbKkDBAllA-iMIjW7TUUTxCAAXwCACsvRAoiS4Kxw3kbMl+HAEcJSFECPxaKImnHsonk6JgNB4KnEnIALquaDoOrZdKAoV5Ql5KU-ATCMSEvhCEThoENdpRB1wdvC6hQehwaiE04AcScLjwtLyVd0x1OFQGpx77Kgmm4UTPjEJBAyXoIYiiokXcHUcH4gLAKoVeKPJloLTfQl7GcDFaVofgLxYa9bxkB8nxEV93wID8HEqBxNn1MFyl-U40IwrC3gKU5UPQzDsLAUDpTpRgYEgq9jhvO84OfRD2GQ-csAAWRwz8uIAYXIjEXlKLjCNpTRC3SOjoKY0RHxY8gkI-HEoR4lT8UI4SKVUijjzZVAWFgfMZNguT4JfRSZ2FHRGNMwkz2oQQ4DzGD7xrUJgGAfd+kqU46zrIiwAABRE0pOIEniQqwMKxKotlzMQ5cwB2ABpSEDB2AB1TZTlpSjhWITRpIY1zmIQyz2LATZSkqDdAtKNceNqgANHjqtqxB1M0vEHGqaoAjZAadACAJaGMHR2G9VREQ0bRrBsIohVELIIFYUp0HYNBUAAEkEWgCi27an0YbR-CUSMlDASM6yAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index ee5c3c101..58225572c 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEosMAD6jHDGIcQwqPpGdKKk7Eo6OgCCWACyAMIAIjoAvDoJSSmpOuHGhToKYBmZOgBCtbhlqdGxRQTJdVnpLTW9Ddm1AakBAUr8UKRQcTpc1CHTs9ZTM3OGOgDutKQAFrQQ7CtQuDogZWm5AMoAMvOkMAQhcAAeIVD8otRXuQCKN0ez1eHy+AEdRDoAKQAPmhbRMtGo5EY7DSjTuADEHgBCIq1ACatR0ADJ0picQAmHT4wbEsA2OEIiDlJEo1TogBqAEkbjzbDCjtCdN1agB1JxOADSOgAjDpcmlCToABwDCVS2U0pUquUAVg1YElMp0AGZFcqdFSqaMmfDETBBLNyMlWWz0rz+YKilBxMYoOoiGi0l6BXJWu62aG+QKAHLVZgQADW3Njtjj9pZHvKfowAaDaKziLZeYggngjBk1hhDqjHrzBdIwZrAGIAOQ6GBQZNHADmopIojgBGdWl05crMhMgebjERAQAvgEAFZEI4hZNwViiE4bGxbfgRKDCUhRfi0UQvNcbrc74DQeC705yAC6rmg6HmRz2btSp2qU5I1SPghBEKEilA4QxD-conk+EIYBgRgYFgtlqCgeg4GoapakyTIshaEsdFOR9dAJOoARuIj61SKBNG4EIGMYaoCH2dcCDEEJhxEdQ4H4dgxTqLk0juI1sgACQAcVGc5alDUTZOI2h+CYlhWPYmQuJ4kdyAEoSHBuBxGgAKR5XIjSM0zzNkwZDOMsyLMZYCGxQtSWK6TTONEbjsN0-jBJ6eojXqPJbPkwjnOIzRLz2dyNI47S-L4-SgrDWwQvSuNwuE9MlNonRgjCCIoiIGJqiKypSpiFy2VQFhYAIfgEq0nydJStCPTYxKIJ0BjqEEOAoi8mDTmAYB5Ko2pX1fOSwAABQyNIcicubFqwZb8pzVJ2r03CwCxaV+QMLFxWaMBiIjYjiE0eLPJ63zeL0wLakaNIbhcPBBjSKTPrmj6AA0jTej7EBjb1bLjBw7juMZyjhiYlFoKp2COVFZ3HawbEud1REOCBWDSdB2DQVAABJBFoc5SbJ4dGG0fwlEXJQwEXV8gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index 664cde4e3..f1e92bc46 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -182,8 +182,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTowgonk7ACStrYAYp0AvCZQ6gHsCmAAmic207MQ8-NFpWnUUPRw1MdgqypkBrZEP4xwBI6AAKRFQwgSlhumyeAHMLkEGi1Gk4uj0+oNhvFdFc5g1jLRqORGOwAITsdgo2wAeQAGgBxLA6HZ7ACMNgAZDpKU5Wk4AGrMvYnACyq3azQuOi5lKwIqFOhOjUQOmajEEsJ0tIRQQAvkEAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfSNJvNluA0HgVtycgAurEWh0urlgMAlW12icQ2GIMjUXaqjG4yjE8mlGhUF1ysVjjcdLlmWWqrg5nwhCJRBXa8IxCXbj00rC0vQWAQSiwXaJaDBInBW7cdE8XuNhWBU01oFFB6ITtXS7cBhXcv0BqQ1APUHACGPx5XEgHdDOIwm8Hjx6JXofSBX7yJ1GlRAej7eT73jQQxBWmgsLQzwiK6JR-i234nk08arjB45fmuCHzEqcoroqs4AMK2I06F4JhfLajeyEoZhWCNFhLgESc6xbNeNQnK0jSbNsGFMfYjS4QATCc0EnoiKFyPBKEvo+cD8BWSo4XhIorvx8yLEStAjhWmyNO0fIKYJtzCdBBLUNOE4eqQx7jlugy7gc+6HmZJ65OeUmzvG8mkXeD7qM+Hk2UhZENL+MgAXsQGMCB9BgQF-5WgpJ5XiJfk6L5CWobO+GMdhuFpYRTjEfFyUnBRVHsR8GxsTRYDMaxDGEZxPF8W5CE6UJeUIWJ6gSU5RGuQlSkaKpezqZpLgNfMTW6S18wWTue7vp+dnmVUjmXs02YkWRbVPnsG2zbZMXzJFQU6CFYURRBgVWqmNRfrOTg0gyWDFSifL8o9vJOA9YByHpI23BtHV7AAcg47TtBNJ69SpIhqRpWk-ToY2jdB30nkMjr-ptxmiKZClTVZb4frtcMObAF6Yam3Wid5Xmvj580-mdUWAcBoFwOBkEXStThXe8VJ0oyr3PQL70ImD7k0-9ZO3XzH2i7cEP9Tog2w2RCMNMjMG4zNBNJQhxPwE5V4U61VNbd5O06yhB0NsFzPhazVt0zBcV7bcFsJWhcnlZRmWe+lXVrclDQFZR1HpXRZV+yxEc1RRdVgC7iNw2rsvzH9kmA8DoMJ-LUMDTDw0q9pSMTawaRo3AGN0Fjjua9Z5uOw0euk1mod7Rt1OPvXCdW0zoUs2z52Upz3NKlL91Cy9XtvR9X0pw0acG29k9zwszqQ6TSsF0J2mi7X+NzXtTcGy5AfGzTHf74TCU9zbfd2wPUUN+OztJ-tT8nh7j0yVlTE5Ub+VgEKqHTC4dqpMSjmAiqtVGi8Xjq-NWCd1brW8hLIGIMV45w3vnPaqt4ZI1vIJIIQRaDGG5OUYk1ktCji+rUOYogygQFYI0dA7B8wABJBC0BqOw+8jBtAxAgLqJQYBdQhiAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index 009d28609..7f3fc462f 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -136,8 +136,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlbUAQg1NLe2d-NT0SgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5idaJTqdTqFB6HBqCS-gBhEjGWh7cy6ACSKkYmm4OgACv5SH88VSWToOpLGCSCq02qQ1MdRKg4ARmcqygV7rpsdCaoC8H0TaJOYbSCSHSJ1DF9YbjSaygQsksCGISUboVgALI8yoKnR-QZhrAAaSwACY-nJFT7qa6nXB+MG0f9w5G0xnM6SjrRUCISQAxcq1apOUuZgVtXO1+uNu3KoIm9PdsqsGJqjXJLU6qDuz0hpUms2wC0x-5ghUD6kC6jkdXYuiiUjen0brceg0zsvUtXEy1gaXlLDlCNR22zst+gNBndwbTUTYwwYAElve9H37F9M2zdR20-b9fzBQC7wfSM5GAABGZ5mzLGAKyrRc6wbJs1xNNkOS5a9qkddQdGIxA-kI6lQPPI9VBPL06JZS9uX+AA1EVqhFWxVzAn03xkD8qK-TlYKGf9yh4vjbAY88dAg8g82gyT2D-GS5P45C0IwzMsM3Stq2xPDGwMn1iM5TjyLdZ1NHOTIaLANidF7H1FPtCjnWxFSWLPMtrNIpdymgahWAAL3bLjuEEOBBPPETAyvHQQ24+to15AAJABxEs3JUqDQq4zLn3PIyNBwjt8MsllW2K8yXCEsoPJZLzqT8AJR3CcddQCg8WXneBOIBRKfRUl0fIGtzgs4vl-HVehWB0NVaHZERxszZKxPSxsAA0srAap7HKWxyhQo6Tvvc7UzADrvPs4q9tO87LvuurqUqkzcM7AiWvXWg2zUnQmrotr6O7DygiCWhjB0dhci3ScNG0awbBKJVRByCBWHKdB2ERf9BFoIoiYdCVVCCGYlDAGZniAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index 886c467e9..c627cc585 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -208,8 +208,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc1YrV09fYPD-IyiOgCkAHyrEw0wgonk7I0Aao3tAMI6ALw6-GkkxGnLqGnUUPRw1Icn5zYbWxANQGFYolF5vD7sBRgM4lFhQdSqHRYMTCUgAegAYuV+OUAOZQuS-TbbEy0ajkRjsAAKjSwjQAsmdmjoAITXKEAeSOWAAkgA5I5QnQAHyaRx5rR5tiu7LAGI57XaHIA6joHFSCUoAL5BABWRHKaQA1nBWKJKokbPl+HBjFBUWkCDjRH19YaTWbgNB4ObcnIALqxFodLq5YDAKHB9pQ-2BiAtaahqrhyNTVoxuNKFgwR62x1EGCoLp0USkSEAppYelXHQlsskxi2mtQgBCiB0VNeBDg9CIUNwJOIhZrBEhYEa7eajEEuJ0AA1+zooWd22cC-RyglLBBNRW5AOK7TGczrnXy0DG8Zm+OqzoW-3BwWi9dR5Hb41F2-q2ddw0gkEs3QLpymKc8biqGtcgPHYBGEMQaz4IQRHNEkejSXE0mMAIfEeURUDAoFXneahrwxbDSyRMRUBIUQ4AfCsgVyb1dFlBN0zwEkGmzNJNBYEcSgNbtRDSWiRARfgCKBHReMYWg3hER0BJkMRDjadoalfG96U-LSmQJfdOMBL89LAQyDIYwFuMvfNh2uKy8yHVBoKk1A4V6fh+MEsQRI+OBxMkoFeOoQQ4EUrzzTYmooRpOljx0mKGQJZypKXMB+SOJxbChMzksBURBHoXFGCIQRnhkzzlOE0S-PICTDIaGS5PoBSCCUoTVI6GpmIitTCVyoFNJbeksAAaSwAAmHTWicBcwCCFLzJS0tmESHi+JfNrvOq-z6uklgmpazaes6nRNNaexGlsRoAEYpouq7JrmxaUtS866Qe7KLL-fqdEiIhSDSEo4FoXESlIEd2AANgABmh9SdHG2H4cRpHnsY217XJXM8Jo+DT1oUsAsBFsnFaaYqR5Gsz12honghqFWkSZrdGaAm4CgWidHYVpmkUPBUr5f6dCcILBHk3R2D5Jw+bRl6RG0agVhfImUuXJ8RHISicYgTn2DOLA+aisAqRYDRuC16idYlqkDampmRB0VnaI5iWecNmmjON4qirEUQtBZtmXa5qleZ0wXwZF7gxeZrmpb5j35pe2WgXSzKqYJ+svqkunlbVwsNd0ZFtd1-XDdSk3GDNkii8t3WbZln7CLgBWldOlWpLzyI4E1mvca50uw6FyPgvF2Ppfi025Orqi++pW2OKz1WvaIH3RD97RHcDuvQ-5hn7YD53dbdz6XsBROFsbnQuV5AV08Jj2c7b6LvcbNf-c3w-rZ3o3GdHp32aPjvZOUl5YfFbppKkL9fbv3-kHak39Xr7w-gA12CCoTh2FqLUektx5zV2ufM+JJE7-iULQK87BygUnhBobQ1gbB1ArKIMoEBWCNHQOwNAqAAAkghaA1E4Vw2ijBtAxAgFqJQYAtT+iAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index 8a0c9b423..fd262399b 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -186,8 +186,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc22tk5dPX2Dw-yk5BMtHQAkWI0AwrP5-IxEkXDa1KLs6+1bu042AKQAfPeFxSVp1FD0cNTsCmBYKAEOD-IIAXyCACsiOU0gBrOCsC65GwHODGKDCUhpAj8WiiPrQ2EIpHAaDwZFVOQAXViVy6uWAwH+V3+1NpEBa032RkZzLAXJmbI5ShYMDSjHROKIMFQXToolIfwgDUaWAAsjoALw6BVKiYNSXGbU6f4AIUQOgACp9gfQiP9cAadMRZSaCH8BZbmoxBABzHQADUdprAO0tOxl9HKCUsEFBEzkTpVTQ1O2aJr1yoahvRJpZGp0Zsdztdcp1HoLmsaIarOh2CZTQSCovQXXKxWzOlyJtyyYafCEIlEJsHwjEXYaPTSfrSxgCPjSKzgk5zn2+1HzYAAYgvFTpWoJGJotNwSymc92quTdDqWVMhXhnQ0xWlNCx3SUYcDRGlRD84HUOB+FXS930YWgvhEHEvxkCcrhqSsBQ1WtkPVdNQSTZ8cyrDCwGwrCLxzV8jWlN0dRIqUy37S8dFQFhYFxT9vzEP8AKAkDsIad9qEEOAYJYi5BScGp-itNVGnQ5pUPE7Z1VBGjaNDAB5Vp-gIxSc1EQR6D9I5BFQN8PwrWCfzYkQONAnNwMg+hoIIUz4LadoahvITnLkQilIaJCzXVLAAGksAAJlQ1onGDMAgiUrzaMVZhEiMxhmLg39-ws8hOKIsCWFs+zHPcjpEM9Vp7EaWxGgARjCsqKtCqLYqU-5Su2Or1OynRopzLrmyUWhjXYcpyDUDRtGsGw6hTUQyggVhGnQdg0FQDZBFoGolo2f9j1UcElDAMFqSAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 0ae053a1f..907e24fc6 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -174,8 +174,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTpjMnDsAIyIAEwADDbTsxDzOvzG-QORMsVp0Nn7Tc3tAEJdPX2Dw-zU9JMzcw3GtNTkRjsBytBz3ABSAElmpNyhNbh0ACQgsFQ5o7b43BpHE5nAgXK4YvYHP4A1TsRoANUhrUhth0AEIALw6BRgVoAYSwTicADlIbyAOJsoIAXyCACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAj8WiiPpSmXyxXAaDwJW5OQAXViLQ6XVywGAbId7TZNrtEBaDydVRdbru9093qUaFQXXKxXYc1yOhZuVwcz4QhEogTOlTwjEsax3RgaQA5mlaOg8wcGtQoPQ4OMWWzIXEtLQhNwdAAFBK0CikTv+Uhs5P57FVC26BtgX0hvA-eYsQuaFiZgglaUEMRpUR1uDqOD8CuVhpL6iCOC6tdLJXTmpurAAWQ5zRFw6PDTv96abLnDTkr8rqAsLAeorpeG6iFuO57geP7zCeZ4XuuuY3qyYAdo0WCNI+z5gH+sHvlO7S2N+I46HhpFQCeaRLowoFIRB24iNBh5HjRtA1iIiFXhSwY1AQsZTpSjQengqEcgAEsKuHkW+qFUsJJFHjJlaUdwgjUcuLKrvRkFMeQMGkceLDsfQnHadxKH8W6QntA4IrKUe1nCXZs6GSYtADPumb2M4sEOfMrYabRWlgZujG7vpLGVmxHHnuZ4E8Q8fECSiELQvZ-6OWAqVokO+HuZ5-DeY4Likf5x4GhcNF0VeukRfuUUHDFplxaF168ToVmCTSdIZfl1k9cRYB+Zl8z0FAjHlOe1UhTp4XMflzVmW1iX3MlbL3I0rQuNJo0HBtW07Xt8x-IVxW+WVx0jPwaTjZN3hpCUUgTjoABiwnbcd26Acw5C3awaREPQGYsu97TbXOQS-koQS0MYOjsOUgJQBY2jWDYdQ3KIZQQKwjTlhGiKCLQNSE9ujDaDEECikoYCijaQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index 3a5255cdb..02308139e 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -171,8 +171,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlba2Tg1NLe2d-KTkSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAZDL7JH5-KqDFxgYFvFgwGKMfYnIgwVANOiiUjsPrlADCtnKWAAsoTKjoALw6HF4vplVHGGk6aHknQAIT+uEZOmImNZBHx-w55R5bNFZJ0hL+QTKcl5EDKpOltPp+OVZR0zNZf05iB0AAVqFACHB6EQeXyBVjacLoYbKoxBABzHQADQlf0JhsJGPouTClmCYHlOiCQSUaCxqVymU1ZQKrIKSrKfCEIlErIzwjEie1TRirtWMAL2rpUHocGoerAAGk0KaIAYyXBaKpjf5SNatRWCvddLToWC4WmKzokTFNCwhVklubRDFRDW4Oo4PxyxOZ4xaFWRCd5zJ8wCig6pd6pZTL0SSeTr2HFXyK+yyX9nxHxxXUCxYKc5wuYjLqu66bh+ZQztQghwIegGbDCQxFH8RqkuUFKVJeKFYGhcpfhOfwAPLVO+fbak+pFlFOzLooKtJUWitp4WUuLMOE06zvaR6LsBIigVuFY7nu9AHgQXEnjUtRniK1ROF6eCSpyZJYPWWAAExyuRE7an8MlyR+mkTgc5rHDuAHHkuK68eQYEUdqgn7jBolwewp78tJsmXopylqRpTHagAcg4tSArZ4YKn0kZKLQLLsLk5BqBo2jWDYJRaqIOQQKw5ToOwMYACSCLQRT5SujDaIEsxKGAMzPEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index 3656ffc29..a5e56dd54 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -140,8 +140,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUEAvkEAVkTlaQDWcFYokqiRs+X4cGMUGEpDSBH4tFEPR+f0BwOA0HgINycgAurEWlMOrlgMAFGAiZMKXiCRAWm0SVUyRSGS4wLTYmhUB1ysV2KNcjoALw6XK4UZ8IQiUQinRS4RiAUQBoNLppADmaXQC20jFEcF62jIIK2quoUHocGWotZ-D1Bp0TmNpFEFIlKtVDVyWN0tsprXZHq9DVQLAopF9ctZE2peDNoYStAj8KINp0FOe5yu7oTOkiRDhJTgtA1JVIcoI7AAbAAGWuTGoAJnrjZ0LdbcmDIagcH2MErJV+BDEaQNInUcH4ypDqoIQ5kYjlmhYtEtInhC5HILZNVZTlsTiwAFkKV28w1x3BJ-xo5SD0fT2A8+fPV7SEQBhrmJDB8PR1eN4zrOOjzv+sqiiujBrvQG5gYuO6Bnu962AA8gAGgA4lgZ7drOgHkLe-ptGhWE4c+b6qq+s6yIIojcMUrB-ghY7WtehHATRW5LpBq7roa8Hbuwu4ZveWBOHG1EgQRU53m04lxi+eGqkQgi+EQ8DMdurEThxF6gdxEE6FBMFwYZwlIaJbSoQ4ti4fpMlEVZTg2XZFGzlJXpQBYJBaQBbFAfpgk8cZfGwQJ5kifujQAMIAHL2ZRXqOXJTixQl7khp5qoaJporBaIOnsVOnEhgVy5hWZ4EWW0yGNOMtjNAAmolIE6ClxENc1FJKXmkLEE5cUOJM1KUUEDRBEEtDGDo7DlPs3kaNo1g2HUnqiGUECsI06DsNyDyCLQNT7QajB6h8ShgO8eJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index a7290456d..5f34a838c 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -187,8 +187,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUENLQDCALIz3b0DIYEGCrDZbHQwQSJcjscENH7jWzNACaOgAvDpZKI4GkCiUKLCIA1icSfp9GrZ0RiFGB4PxJDoTjSdAA-HQAJgADLg4aTvuTKWjqbS4PTlp9mWyAIwAVm5vIa9mcrJ0Ut5NnWdyKpTS1Cg9Dg1FhYHGpEE-FYOmaUEtRGMOlNLFIOjtOm+opkCUsEBpch5RJJOh+TgAcij0ZioNjcfiKgqg-yKVSdDS6QymWAVQB2TnygOBhMC5Op0UMiWZ6W5vMFxWOdpsuWc9WgrXFEq6-WG42m82W622+1OOIu+3u-iejQkX3+gs-RqI5q2X4Y+dIpczwNz0OL5dNbdL8FBAC+QSUACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAjj0Q9C9Xre97AAQxotFMNI1DSLRtJBKZgF83y+gAukoQIwDed6iB0oE0oiDgolccE0s85xEXg8GrjuxFgAiTgAIo0RSnxqhR0G2J87JMRxADM3GfAALL656XhAmH3o+UByMA0HND8TFyUhYDIR06HiaIImAVhknSbJsFsQhik0ip+S4SatgEci5FQWApGvMJPrQOgHTlMUhINLkEa5BufBCCI2EYr5whiO5xJdGkADmaToNFXoUF+GjwFIcChSSeoGsswoAApxWQdi0El5QjHgvK5NA8ALFAujCjBLglfmxJlbAOLoRGsnyfVBaoCw8XldVlETJMkG8t1Gjxd+RCZfBdnWSN-hfvitARSUzoYqBABsuaTDUXKcttHJVpMfq8sCr7EPwEYECUl4EGIaTYiI6iiqlgZXTdYgRpoLC0PqIjftdMghbkwAyYZHXIchNk-M0TifAA8s007xg9cBPRdwrQ7DCPDQ1DTHbjOhVfsIJrQDt2iPdhqo+Q-AvSSb2AwFOhfYwP30H9DPk5JIN6XVEM2W0thOFgSn4zWOgo2jl1gU4Qsiw5BZi4GRMFTioiJIwq2YmTd2SzTdPEpzH0YizbMczrD7A6DtXGZDlELgeYBKwWeuitL0EO6L6obiSKsVRQ6Pa+9FOu7T8ZG0zpu-TiEfc9brR83b0H7qLPuBqH7sISnCuBs7jXq6r90a1rEeU49+vhxbn3fdH-3B3H7VKfz8Fzp7SMEw0Gdrcardrl7BN5x5Bf+8OpPB2X1PPZXwfV6ztex1bje21D3xtGGjuD8SXeYj3q-Z073u8lVjCGvErBF06l0WxPaMGw0Eez2bMcWw3hn6c3HtIsi7fi9vZlUd-A+A804NGPqfG0vRR5B0ZjfCuHdoHk0fvPF+i836JwFtuQBm9O5Uylt3ZOYYsGHwJosE+1Az4X01lfceoc74IONszGu7Nn711QYhZe9sv4-xrH-MCC4iHANKqIMhFCA7UJgbQ6ejMkHMLrozV+7DlJJyzoQ7hLtcE00zmvFEOcSTvGJPooIQRaD2nYOUfYUALDaGsDYOoAZRBlAgKwRo6B2BoFQA8QQtAajuIeNiRg2gYgQCPEoMAR5kJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index 09cc86cf1..f91584fa7 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -171,8 +171,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAwgCyyTqkMARpcAAeaVD8BDD1Tc0AygAyXT19g8P8otQ6AKQAfOsmtNTkjOwOUw4AQgBSAJLNG+U7LR0AJMdnV81BDQ-tjx2NU7bNWydfJfR5-AFAiag35OABygOBRlBjThCKUAF8gkoAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfVx+KJJOABHYCjALVmvJqvK+vLkAF0lCMxoTiaIutzef8HM0AJrXQU6XkvC7qvCavn-NF63kdKZOACKGuFtlaAEYrXybQAmB2NG0AZldNoALKKcXiIDKSWSoHJgMK2u1XZHeWKulKYEHRLF+XNKVVgOG+dMZrGJRAvl1cpmIx087E0KguuVijyIA1cjoALw6XK4CZ8IQiOUtzvCMR1hoNHppADmaXQaVKqjQHAmQ501Cg9DgaxbvNsJRnqFYgvnQ9y0Hgzf1Irw+4aqBYFFIR906+zAvP9YXOivGhvDKIa-12ree5fBdIiIekt1oUcSlIE9uQANgABjgmYaidBCkJ0FDULkdtAKHBJaEYVdoJKPECDENJRFXOB1DgfhB1fBoCGImQxBPTQWFoZcRAZJjSNJL4hUdS4sCcXMwCwi8hwokRqP4aCeUE4TRI+V9xJwhiYCpYhZJbRiSLIqSqPIWiJIYniWJbNjGA4+guN05i+MjASOmaJxWgAeWaUVsPohoDJkk8TXaFz3M8sAJNU+ixnKUYiL00RyMomS6Misyex0SzrNs1L2H4-UOkueFWi8kydD8oyArAfLCt5cLvNfMZ+CICjYvshLpKM5L6tS1j2M4uBuLinLHLyoK3LNYq1MkxLyofZyxpcMLJoi+qYFIRgoJ01K2sMmjOoXOzeJ6qy+oG+yho6Jz2nsWwJp80rppoiqOmumqlrq-aNKawQWt47akpKg7zPS3qbP6wGHIukbmjGhxbp8srHp0+S5pOP03oksZGCIQRyB+-SHuMybTLio7MrB7LcsCrA3IcWwFuW+iEe0kbqdphbaoxz7RGMRgAEc8fipm9qHcHSZO8HzvaS7oamAAxLBLTE97XyZp7RrlhXXvohmRZgURSH4VgBb+jqAe6iyQaywbKYNAEVThxmCYq8FVS1lTlfUihDeNoWzZJi3jtB07eMlgSUXhe2lZK1WH3D13Fu1-dlKCIJaGMHR2HKA4oAsbRrBsOoX1EMoIFYRp0HYStHkEWgairijGG0GIIHRJQwHRMUgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index 94e8b93a2..e4562143c 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -116,8 +116,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlQBq1Q1NLe2d-JqiSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vQbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5jF0DFNJluJs+tSdNQoPQ4NQSX8BqzqNM8BzqQV7rpsdCwX88VTOTpUCwKKQpQL-jVAWLFZyVRo1SciPyZWAHNUHAAhABSAElKvLxWVUP5jlk4LQ6VlSCSCOwAGwABiDtSKACYQ2GdJGo3IFUrlSxYKc-VklgQxDFRHy4Oo4PxKYmygR0zIxCTNCxaDyRCcy5nNjDqkU-gAFcpYcoAWQAwo6wPHndScyJ8-xNR2u32B8Oh3rqW0oG1zmmM1nR3nyIXhyWGxXsVXGDX6HXS+um2DW1qAJp-efFnSb8eaqp3sBzhNKqBV2JHtflqI2a5uORbFuegGVtWtZwPWF7sM217lAM5Q6g+xbPtur4oTqc7ikEZRBEEtDGDo7C5OQagaNo1g2CUiqiDkECsOU6DsIiAAkgi0EUnE5ow2iBLMShgDMzxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index f51457977..a1d061747 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -162,8 +162,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index c19b8e48b..555ecc0f8 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -139,8 +139,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lxrTU5IzsAISlAGoAkpU7ttPZUzoE7ApglQDCWE5OAHI79wDiFwUX-aWVTtVPLmByAIAXwCACsiNkogBrOCsUS5RI2ZL8ODGKDCUhRAj8WiiJrgyEwuHAaDweF5OQAXVcEAqNTqeWAwAudOqF0p1NpfUGyMSTJZ3PZnKUaFQdWy6XOEBKeR0AF4dHlcD0+EIRKJ5TpVcIxFKSiUGlFMVB6BAiIwYNx0qwovQbSlzaJMQBzZgovX6krUE1waiai7VE3mkLm1h2MSkHRYMQYjVpTI6AAStGdGQjOmebt0AAUiE6DP0oKJfdk4G8Fvq8qTdAqBQNy9LPToWDAopoWJqCBkIQQxFFiyJ1HB+B6m6duzIxJr24xaCaRFiJ734ayCqJBPRi5GFWcWVgALJvHR7-dXcoXQHKxtjgdwIf8f1gUoHi4VkpyK9j1AsWDYztLvtb3vUcmy7HspwVdtqEEOBF3AlduXeMBs2fUpT3PPBj2Q1DDwBT8xx0IDyAfHdzifapbCPC4bmzKiwB2Z5SgvN8dA-FiOn4I0iFCP0FQAMVKapvgrAJ33wpYVlUTVIn7OhlxAmSuknMjWToypSj4vi2Uwojh0fABNC98INOBuFk5S636OiAHl7nsWwtKPXSSKwwyAR6AIAloYwdHYbJVigCxtGsGwikbUQsggVhSnQdhRQAEkEWgCgS4tGG0fwlCBJQwCBSkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 3df258ee3..82c76ee1c 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -163,8 +163,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyARVyikrLK6v4AR1ElAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+bWxdCHp5yWm8PkoWDA-IxlhsiDBUEU6KJSOwGpksABZHQAXh08MRDQyEOMmJ0TwAQogdAAFahQAhwehEJ64PE6YgwokEJHPcnZRiCADmOgAGoziWAAMLksXQ+jxDyWCBPIYZORMiAZTJi2wo1Fi7JEnFItUZHQEon-NE6EmM5ms2FYjnm9GZEWOnRixUNIZDEHoIrxaKGjJJIlJVUZPhCESiIkR4RiQPGkp+dZQcxETRQBPG7FQehwahm54AOTFAHkAGqZOy5kTWo3ZpLHXRY-5fOvZjJQTTbaLsmJjWmiPyifNwdRwfhZjsEfsyMREjPUQRwDazwfsAG5FL-csASVyu9sirDHYyI5E4-4hYA6k4nABpHQARh02UyAE0dAAOJ7M5Un7NQT8DNGD7AcxGHUdLynbMZ3A6MsRA2gaxXOC51mF4UgdZ40RdZ5NW1XU8MI7JFRVP9jXPMdyCvFscJ1UiwAo8j62NICCShNksXYyFbQAtjF2AlgwPQyCLxomDjTQwcFxYZD6BEVd4I3L4sM5MUAAkAHFiMrV4wDkFjTzPKCaMLTSdKY1j-wo4hNCE0D7TXCCqOgiiMmk+dELklClPQlSWjU0lMlyFw8FFXJ7EyLUnzw0LhQMozjNcsy6MirBosyWKrNPJLs1QFhYE2ETBzE6iJ0kjznIQnRF2XPz103bcwApFFMgYvDWoy1Fj3cnQUonQsADF7wPAwhuvK0co7PLjXicg1HWECSpc0yKr6zyaqQ3zNoCrcWU5EkQrC5r0sy7LTqcBLDP47MBtoiKopi39rJ0JVjXer0lFoQl2Hm1QaQ0bRrBsNIjVEOIIFYTJ0HYNBUAAEkEWgUnhhGR0YbRGCGfolDAfpziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index 9243e48ac..63d00a333 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -197,8 +197,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSUwgqHk7PMlZQBqpdUAwjoAvDr8USTEUeOoUdRQ9HDU7KVbuzYzcxDrH6npGVc3d6tgHYZFhQdSqHRYMTCUgAegAYtl+NkAOYKMABD4vWZrYy0ajkRjsAAKpSwpQAsjtyjoAISHNEAeQ2WAAkgA5DZonQAH02LMqLNsB3pYDhDOq1QZAHUdA4iWiAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoNCogQkaImmqNdrdcBoPA9Xk5ABdVwQCo1Op5YDANHe6pot0er19AZGxL+wMRkNhpQsGDnE0WogwVB1OiiUird5lLCU6mHbO5xgmg46QOFnQAITRBWIGcrBABpPJZQbVbA7Z0OwVclwPV7JdoOfY5eMlbRtcQOiJ1wIcHoRC7Tczh1bgbn5UYgmROgAGl20Ts5zt0-RsiFLIF0QEAmhM8lsuk8yU8pW8kP83whCIJkOP9hDEd91gaKJSCiK9oDYE4libOAwI+a5bmoacwEhURUBIY1xgbNYP0SJ1dBFCp+gI-MPlQEFGn4FsMnVJdRCiUQ7jgMF+GQz4CEYmQxErTRuEEOALT45iHgjAo0RJMkixPMBZIpBUf0+dY2JETiMNrJxKn6IkWTRQidEHYykyiITGAYpixFY9jOO4j5eJswCdEs2gbhEMSXMk-pGzbQsFPbKkgp2WxgvKAdVLUnQNI48h6LIwKwGM0yqPWczJzTZtDky1N12ij4c2YUILJYaz+JYuKHOMkpnMqwSWA8+gvPqiTyMqfy0UqJxjzwbta3JLAAGksAAJgUskdhce9Cs+aqEowqaZtSuaPxNM18RTbCSDY1zS0c9YdL0yoDMrA7avWC4WwBC8MxEcgITEHCIDYnR2B2LBFH6mSWA0bgnp217dGJL6VMukoRG0ahXK3dKYu7O6fDgR6sJet6PrBn7FL+jz0LR3aQaJLG1pi7rQha3RyjHOAoAxypym+6TFMYIhkXLURRC0KmabponGaM+HPgxGK0oR9kNicIVR3HCGdGuzcAUqCmRB0am2L596GaZ7s2SIUgdCcITqEETyQbZJxvrFhGdChu5YcOtTT3TZHUeewn3s+nW0T1g2jeEs33ot72ccYf78fd4H3uJpm5ZKGTWfZsQue0NXeYxokBex5XA-V2n6azuWRbU621KZVkOXOsdczlhWdC3Fm2Y5lOeY1jOs+ZnPKbTtuQe18GhZQuBoYdhOm+T7me-z-mQ671W8819h++x33DeN03u-YYOFUu4v1j3kWHyUWgp3YbICVBDRtGsGwinzUQsggVhSnQdgnwAEkEWgCg-tjGG0fwShFRKDAIqN0QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index 0ce204f11..ab7fac86e 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -244,13 +244,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgGK1Go0jpwAB6wqCLungC80TGxMRF2ABa6waEiOvRw1EQA7jq0ohlQonD8OiQ6pMk6gqKC3DpoqIxEUASJ+RCaRNSatBAA5joEjHBQGhVExglQOswQ-EQwOgDCACIAkgDKKzr848VwAVALlckQc2bKQ1W6TXSyExAYrtCMMAD6o8YfxDCo+iMdH87CUOh0AEEVrYIVgALLrHSRHTA0igi7guZwYxInQKMCwuE6ABC+NwYMxfwByIIoIJ8MhZLx9KJK3xigxcnJGMJuNR6MxWJxyPxxMQOgACtQ2nB6EQyRTwVTcbT8RDxWtGIIhgANJn4lbilZLej9caWCDsikcjlKfakWaGSpjagfe1Qax2g6AnQ5WhVfrsd24HQgCkQtZbAAyPtIMAIH2CHyg-FE1HDa1sticsfjiaCyf4pHISgAvhyAFZEfofADWcFYoiDBxsTv42KgwlIv34BQTVZr9cbwGg8Cb7rkAF1XhHoz73cBgGrI1H8ZPpxAI1mc22Dovl9u1xulE0ff1-QK9t7kcGKXwhCJCsj78IxJfwXGPt3iEFRgN35i0qZNQuIGkQQQ6FgcADC8eCKpi7qjroIoEpm2YKhigosJ8mgsCqiTVgQYgfCUIjqKU7Cqiy+osusNFQjC8J0WAXLMoS7LcoK4LYV82K-Es1KNO8vE-FSnFcagLCwAQZQ0gRMjEaRcDkfwAGCrh1CCHAvzyURTZbtmIb4hKsIQgiaw0SZWBmRxzIAPJbPi8Hglyzk6P4zAOh8uGMPhhGKVkynkKpblKnSKx2Q4ABy9gAJo0Vs9gQjCACMCVJTCABMtn4ol1mpU5mGYq5RVKkQmjeXhcn+aIJGBSpamUnSEIAOIuHgzLEnCWAANJYGlHWit1fXZYNYBYE4LUbHZUUDaxaptYVXE6CVy0wF2WgsLQ4zIXYjguEVHIuUoHK0Di7D9OQagaNo1g2GGGKiIk-SsBC6DsE0AAkgi0CGX0lIw2iMBypZKGApaTkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgMpxiEfjpwAB6wqCLungC80TGxsRF2ABa0ojoa8Lg6UDqirGSJcBoEOqhQtIw6RMY6AIIAIra2TgD09V4AMjr8UKTZKSZQTDI9cAHGRBUAwkRBOoxwAObzoqKWEAkA7gXzabRiWf4lmtwA+vCkiQI6MD3kjBhKdEwsHPxhrIyK6-492YZpcFO3V61iUwL+Rg2tAutAg7HBmRASh0tQaTX0RnBGGMzHg7GRKO8tgcdQAmgBJOo6SI6BRgdoOAByAHE6bgCSiagA1GqdGkEdgAFkyAGZMgBGCWZABMMtFUp00rk7IghJ0k0ZXiw1J0AslOn1+oADArjZkTTojcqObUsABZSZUmnGKDqCb41Vq3XsC2G03mgOW83Wz1q6iDODUVL8-FgGr22ps2lxhMAITpXzVIbVXicAA0dS63YwPV7vRaK4G-QbTdmveH6JHo966QAxJN0u0Zm11lHkzW2Quu0jugV0moduOT9N4ZMzzLj6eTiezunz5MruS9nKkRiwhaiGqiVvDibN1u83MEzOoxpODFzeiw-jsep3zJvpoftFOb93m+fve-xQKIJwaPQ9AiK+P43qIhQYHBozsOKAE-gAJP2XiDv8oihFBgEYQOqF3mhNTMkBRi4TAYRwOwcEAI7sAArJkADsLE6Exyo5LQABeug0hAjBEBs0H-pk8xhK6Al2I4TjEU0aEOF4DipgAUpSD6lKI5CxqIgj0Em4qIEJIliU03EEZhtiZHBqA6nSBjdp6BEAArxjUdoPm5HkOlS-x0gA8l4dIEm0nQ4QZcGkKWhKASqapwSI6g6mOYDKapGl1JOWEkhS2Wrimfk5fmk7Wcu5HOSiXwAL5fEoABWRCwicADWcCsKI8K-DY-z8HALrCKQJwEPwKQECcTUte1nXANA8BdeCcgALquBA4UPuCwDAOOdQdHSy2retP6bb8227XeB1HQkAAGXDUDdWToHQsgaCQCQGJ9X3fT9TkQB4OiMkQ5BpIkPSg7o2rEP1gRBKgEzkAE9CsDoN1eJcGw6Nq0z9Y9-BEPsEDAzosKSIIMMXLo4IJKg8wGLTRAEGIqwQAsGA6KSRCCDoULUNQOgQHAoxpEQurzCMENdL80VZKkgxENoOiNuM8wJIwZjKAskvBPDjCI1juoCHADzfCwMAnPMxgjUQ1EPnQOmvvajo6vbMWWw5RWJrOxC2zG45phmW5rWg9n-LC0KxeCOoIgSfBCCIzZx8IYixSipDm8NxBBPMCyp4SDaRh70yzFgiwPHgNoouC80yRdTRspXWSMObxwVPylwyGIJxJb4iPsGl8bFWA3H+0P24ombFsDdbvtN+blsz6gCVeqUuKjalHdM6BPfqEhjcosc1CCHAI2byn8XJu5WCeY6k5X55GYLmAwWhaGhLjzuzC9Ccrcb81W-d0jL3JCaVyrD0yIyBw7R2gf2IJoH+LA-6d23kA3eL40q5jzBVFw4DkyYMfo3GAQ0tAsFoBLGk9hnA9mvEoL4tBqjsFhHcYcWhaJbh0EiT0ohkgQFYDUdA7AQ5oUELQTIQi4KMG0J8JQNUlBgBqstIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index ab1d03a12..88c500d09 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -139,8 +139,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyoZHxyeBoeCmkuQBdVwgcgqKk4GAFMEv8+5Ozi6aWudDb+5zm59elGhUEV4tF2A0kjoALw6JK4Bp8IQiUTQnSI4RicEQDIZEp+FZwbRkKYNHE6ahQehwaion78bSMUS6JxE0h2Skie7w7Fk2GhA66GE-d5c0k4lgwPyaFioggxYYEMR+JkidRwfjsAjgh5YACyXJ0Pz1AGFsvc5CkjfqwBaxRlqNQ2TC5QqlSq4GqNXacS6ZGJUdLGLQOXBVvK-VNfk4Ulqfk5bE49Qa49knMaAPJmm22nm8nTuz2y7XNVMZrP9PM5vMxR2y8OK0TK6ke8he3O830NgMsYP0ERh12R94x4tOABCmdyAE1csmHk5cunjeaq3n883C0L5xO8jP7t7V2Savx8URPDSYfZnNy84SKCtSKxUILDSh6aomTo72R9+2Kzp+n6WhjB0dh4nINQNG0awbDSHlRDiCBWEydB2CBAASQRaBSDCmUYBl+h6JQwB6E4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index a4b5d9972..158dcdced 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -137,8 +137,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMoAMmE6pDAEkXAAHpFQ-KLUhToY1PTUoq1BuknEUdRQ9HD9nPWNLW1QcAFFZcVONXUNzYOLOgCkAHx7XUUwgiHkkbTG7LTiBOksUOqqeVDixs+kRP46AMQAch0kx0BFUISyOiIxh0j00WQA5iYvj9RF1RpFxpNpqsnDYkj0+gMFnAlABfAIAKyIWUiAGs4KxRDlglB8UZ+HBPsJSJECPw7g1qbSGUzgNB4MyEnIALquCBlKo1BLAYAKMCKyrqmVyhWlNbK1mq9W47W6pRoVA1LJpdhdBI6AC8OlyXT4QhEoidOndwjEdogRSKdUivLg2jIA3orEiCOYnIDQaDWKm3pN-G0jFEuicEdIXujOgA4vHdLYJiJ1bgTkGEhLdM6TfqXHga0UWDBIpoWN6HjSwQNsyIXvx2AQ7RqsABZKs6E3TgDCpXVcjy85nYFXbZ01GopF76X7YkiQ7gI8TSaDfZkYm93cYtArcD5h5vzNxeXHJqctic09n36lE4C4APLLpuW6BpeRSniOvYTmsQGgeByyXpB0HpHuB5HoOUxnuQo7bkU14DneLCPn0z4kf6H6gghTgAEJgeUACa5QARqTjlCBC4ruh0E6LBBFppxTEVGx6rbvxSZxm0Dagq+A4nnh55EQpOFkQ+T4vjh7C0V+nG2CBAAaRZYBxazlE4ABqfHVlB0FCXA-AiWsRmmeZYBSTWqEBAE1w6LcKhqBo2jWDYBRQaImQQKwxToOwloACSCLQbzoEl2aMJmARkkoYBkjKQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index a91b35fa8..d5a2b8702 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -170,13 +170,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6e4YHQAITpMh0ThasB8cBNaFQdWy6SuoJ0eRpeVwPT4QhE1JReeEYjTYPqMCiSvZlLhqBCrDgLDL5Z01Cg9Dg1Bp3x0WBCulK-D5glE5H4JiIjB0WxCtEpBgAmk3GNTSqQ+7DhXYOyInoSSnldboUZ6Xfv0+WWJXNCwaQQMoKCGIoqIu3B1HB+C3WxdHzIxBpW9GFoXc4GVf9nwlM1qgKS4XiwfZPgQo5ygBOQc0vVs3xET8J1PG5EOOa4Dx0DDSI6fgqyIUJuxRexnEw38azIOFgPvSCXxwj9xx-VsHyfQCUWA0D6BECDBOg507meSAKVYgEmN-HRuLwns5JYqkL2UkxaBaL8aQYlwsJKciTJ0etmEafC-0k193zwvjywEgDCx0W9qEEcCXKg9gKi9WSdj2VDkLAIKDkU0iSlU8d1K9R4wFIgJy2SsilACWhjB0GEVDUDRtGsGwinTUQsggVhSnQdhEwAEkEWgClqt9GG0fweSUMBuUNIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6N4YHROFqwHy6NKZepQegiHSiHzpHQkIO0xgwKKaFg6HOMWhxkSiE1oVB1bLpK6gnR5Gl5XA9PhCYs05vCMTVsH1LNK9mUuGoEKsOAsLvdnTUONwag0746LAhXSlfh8wSicj8ExERg6LYhWiUgwATVHjGppVIC9hwrsRbgT0JJTyut0KM9LsfNe7LCz+ZpBAZIKBBiFEogznA6hwPw44ThcQEyGINL5oW8ZwMqCEgRKZrVAUlwvFg+yfARRzlMRYCVE4AAaAJyI234TuBIhQVuKL4TchHkZRNFgAEcF0U+tL8PwUSkEQoSzii9jOPRcH9mQcL-mxmGgUxkGbrBE6AcBSEoih94YTp2HOnczyQBSCkArJcGJhBLFzuZ8lUl+NkmLQLTQTS0kuAxJQCb5OhDswjSsfBRlgXZGmCSU2mIdSencII6GxVh7AVF6Zk7HspHkVlBxWdFtnMZuDleo8YCCXxYJVQEAS0MYOgwioagaNo1g2EUNaiFkECsKU6DsGWAAkgi0AUw3gYw2j+DyShgNyhpAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index e40b783d8..8aeca58dc 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -195,8 +195,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otQ6AKQAfD3FJTowgqHk7EPDOuW2ABIAYrUAvDqyonBRKRkUkxDT0wCEtOLQ7LNzszYAfjoKYACa97hTB-bOOrf33-sHNv09VLpDJRahQehwaiTMCVQT0ABWcHUMzgIQyOgWYIA5vcAtM8WVyqUnHUGk1Wu1gnBXL8MB1+M1tGQosZsaI6qZzBorLEbEVfiVYnUhQDXiVRuM4HsDsNbABZAAKSyilScWB0q2JqvVy1W9yeeDFssVyqwThWZTV5o1esezyNJXlSuqUQA4lgAKway22ADyAA13Ta7mAPfaBW9FSq5QBFAAMAEZvcdTlB2JVY4mAHKlOVyF4R6ZO6PxgBMyZOGDOGbLObzBZljqjAGF40nVimq2nW9ncwT8a9iNRBDAIKDwZD2ck6KJSNLI86VWrvfdKqpLIJ2cTwzKnabrbasJCQnB+Jadwvle6vbbXcx+LovdvDYW7FGa4nvVAxLRxxCobEwDAKumYJnW9wALoQQUgHATCoGVM2kEQfmRrFh+5arN+oi-mC-7Qg8GAAJzEaRREAPQAFpkWRlqVAAkriDYLlEPbtjo2G4ROAEhEB9xseBYBQf2OgiUOf6TrkIRyMA0DwKI7BDiOY54ZOcgQXUUDiAQGQsFA6iqIpRDDqOEnUKIImxEMAC+NIlAAxAA5DoroUKoITZFiOibqoBgPsY2SnjocBMqQJhshgQwVMSdTRSSAI6HS-AMiFFCkCybLxIEtLfu0EDRJoLBTkYcliOwcUybOLCkKIADqwLsKVCkVQU9x7i6uIQUMdI-lEhWMMVOhNeVRJOJVoSMDV9WZI1sBlS1IbFp1SjWQE8JENkUQANZwKwCl5DYyT+VAwjpQQ-AnE062bTte2yXN+2JOpNJoKgdTZOk855N6eTMXwQgiOyqz-cIZWvA0UTpalZCiFEogjjAnjztMqndLapT8NoA26E4oXsrCMCI2wF7THkpUrmAcUk8MLAwH1LDejpG0EGIcOQki5D8MjBxMzIYjev1tDgiIUS8yzCn3BUNTPGs0KlFgcoy5LCvNuUuKoa+JQbCIBlnujCs-DKGsyqyUBYvTjB5WjawZMzrPaxzp7c9MYv86sgvC5srsS5To0y3kfFgD1VsW6IyHG42Du6z9iSB8HUD5aHyHAAm0EOjoO1wKgUREIwD6MN67xOMxJu0C0QWrAspTVKqRoR9Mpvm-17Q-oztt87DUec87wzewLLBC-QIve3Lft4DoAdwT1OFJ0JKElwcXcVxPsdT5xs9QSnaeaxncBZzneeqIXjjF+nAXl3rGLV7Xr71zTyWQ0QoTW0XrwEgEAS0MYOjsNk5BqBobQ1g+RDFEFkCArBSjoHYK9AAJIIWgBQ4EbEYFjAItkIBgGshBIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 6c6f7f5b3..7aec2d4a8 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVOABp1DU2t7fytrhAlonCkGDNw-OwAjAUA1tn8OgC8OgpgALKqMxAQcAa2aaLkjPsBJRjUUPRw1KJ1xNFPL2-sFQMFYy0ajUHY6ABipWqlSc916Azq-0GAFIAHzInolfi0a7ZdTsByVBwAIQAUgBJcoFDBrOBwVDtEFg+zOGxojFTEo6GCCULkdiYrkABVKWFKBwAwuUwftbOUHFhyvtcIKSiKxQcZWAAPLaZhMoTMDQkHS5KCsUSKPCqsoANShYNEsB8cHYLUdcAAjisCgAmAAM-rkBVEtAAXrpdjlgzpGPSngRI3ZHLCVZyuXaoQ4teVzaJ9oK2ejBfRNlFGEQUqI-n1+nDPlFvq9q0ibMlHs9m0oAL4BABWRGyUVpFrNoTbRnGxigwlIUQI2NETQHQ5HomA0Hg1bycgAupM0Kg6tl0gLOXkwXk0yU+EIRO9drfhGIzxmGlE561UERRII46+Mx0JtQV2fZyj-EJLCmIhjB0JwWm-X84zsZ4RGVG08k3JN9iRdD0y5VAWFgBcwQIDJB0TUQohmER1EWADAJ0MiKLEMFNG4QQ4HnciZBfPJgGAHDa32XddwKfZ1XFKVlT2MBJIOO5r0YnQaLgOitlAsA5QVJUwBtYMbQbehWCidjGFInjKOo141PIJYbRKZjeIfHQzNoVCuKcyixygAShIGESxJUwR6BmUhSIFMAYX6GScKwBSwDkAz8IzVT1K1aKCxSnRksYisUiiYzTJYCyWKotK7IYwCvNY3Y3I87iyp8vywFwsBRJDEKwoi-YxQlFw8FkrAnAAcXJbUADllliqL7FKWxSmmwb9kyxLcuUirFi1PqBv0pSM0IxhZHC3YavKmz1KqjMzrYjjPMsvjEhatqOtk9UJXm31FIclSLrsnNGEEABzMossY9aMw6fgPyIUIQIhKEYULHp1qBagbjBSJqLobysa6XjIoqGoZsqUpwXBaoZM2jTZIATTuAIAloWD2GyG4oAsbRrBsIpOVELIIFYUp0HYQ8ABJBFoApxZmRg9QCbslDAbtdyAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 4978fb7a8..41a8e2bad 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -131,8 +131,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 3dd43431a..7eb44136f 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -126,8 +126,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAYQBZIpKyyur+AhglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdJRreyenRIoJ2BTBc2wdsgE0ASWznlOeHLkHAAhABSPz+OmemVe2VsLUhz1auScAEVEWBMrYmgBGDFYpoAJnx2IAzCSmgAWZ5DPYQW4zOaeOTAaHNBF4KGY9nPc5Fa4wBmiVwQHIFIpJYCs7kFXmXUXsiWhKVs1pykVoVBFeLRJ4QDJJHQAXh0SVwDT4QhE9xNluEYj1GQyJT86xga3K2jIswaTp01Cg9Dg1GNXKaJGIMGiUDIOhacC2sg0JHu9FYcYTMg8ln1TQDonuMf4OgACoxlqpy8WAHKwOB-X1OpLHXQm1Uc836v06FiCzQsUMEGJjAhiPyiYNwdQJ9iPaFYDtczILpq-MByf6Yhc0zvdnQTgCOfn7jEHw5kY4nImn-CeYGRaMhV6n5GLbfvLRR6M5xloFQTob2M4G6NhkMTUKQZ4jpek43o6e46EO0E2joJ60IGIgbOeo6zDkrQpHOmLYninLQtixKkURTTkpRBLUuuIFdnuz43oOd4EiRm4EhRXFkhS9FDHujF7tQEFQReojjrBr7wXuSESaGaEYXAWHIeweEtARd6tNkThNAA8mucjCQhLGvmxSItLpBlGaBOgmX6NT8K6RCeCGJpAU4u7dnAXrrKQrCoK2XKkOWHjwGQzyNoJ9lKEMtDGDo7DxOQagaNo1g2GkXaiHEECsJk6DsJqAAkgi0CkpUTow2iMEM-RKGA-TnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 7cc0fe4bc..9138d5e51 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -67,8 +67,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWolAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyto7u3uBoeD6kuQBdVwgcgqKk4GAFMF38442tiCU0VCL46PZ0nSSdAF5n0NwnviERUTedD9hGJHhAMhkSn4Jug-PQoKIZH54sYiKDweDqFB6HBqADjgAheEyHQASQgKOOXzB6I+nhWunex1OlKe6NQHloFAmxFxjLADlyDnxACkSdkWdT0ZoWP93gQYu0CGI-KIcXB1HB+GiaRl5YqxADpYxaFiRJMFTIQac5FSdRlVSINfwAQRHicsABZSk6JkAcRceB9YFyTgAGt7jgBhADyDgAcvYAJoRsBYTKRgMpY5OaO5XK2WzHZo64vg0vNZq0Yw6djxchqDTaaw2NLU0RxCCsTLodg3AAkgloKX7qsY2kYzQaSjADQ2QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index 86f271b96..f4d00026c 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -119,8 +119,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NboPzUKD0IjMUgUjgNPE6Un0ODUdGPABq0W4okeiNxdPhoSOujhf0+3NpeNQHloFDWxGZwrADlyDmaACkAJLZMW8umS5ilfjoggxUYEMR+URMuDqOD8HF8vHG01idGaFi0MkidYmmTY-7NFKPAAKmSwmQAsgBhLVgOQ8h0ZS0iG2GhUhsNRmPijJx7M6PWwI0+s2iC1WlP2hNO31ouFuxge+he6sl9j+wNgdMRx65nV8pPW8ipnTB0PdsB53sOjTwVCjMi1nQt80Dit5jLLxf1xvN4t+z4dnIATR78YTq6HLKe2RPE77ObPdKgEAbEGHm7LyaHlYdm9d7s9OBvWdGZ2xHJ4ADksHVCCYync9y0vBVMigmCs3vHR4KfN1-HrIsQM-QdbR-Pk-zrACmyAzc2wPcDMlZTIXljR9+0Q20r3oxjHknFiMigHDBD8PC4Q-C9iPXJc9y3CjdxAmiWkPBj8gcU8JLE4c-iUlS7wdQY6T0zClEGWhjB0dh4nINQNG0awbDSXlRDiCBWEydB2BBAASQRaBSTzLUYbRGEGPolDAPoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 424ce6fbb..0de76f252 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -89,8 +89,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 6e117e107..2992351ab 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -102,8 +102,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMIAsmE6pDAEkXAAHpFQ-AQwhSWlAMoAMjV1Dc2t-KLUOgCkAHyTJrTU5IzsDj0OAEIAUgCSpVNZc2VVACSrGzulAUVHlcdVxT22pbbVSTfHD08vXe-3TgByz1eRnexQBQKUAF8AgArIhZSIAazgrFEOWCUBsSX4cGMUGEpEiBH4tFEDThCORqOA0HgaIScgAuko2h0kSjRDUCOwFGBHg5SgBNXa8vK8s5bEV4HS8z4Q6W8qo9JwARVFMrAxVs5QAjOrZdqAEz6zXagDMJq15QALLzYfCIOzUeiQnJgLKKpVLZ7eYyaqyYE7RK4IGV+jUEsB3Zren1fczQ56Ixiox6qvGQ2hUDUsmkeRAigkdABeHS5Lp8IQiTmlyvCMT5opFOqRQnoSKoRiWRiReAk2QaKxdJs6ahQehwCal3kABS7REYOkqcH7wUsEFFw6bCVpumnMfTeC3RVQLAopF3JY1YbjR4LI50p4056JRCnGolF0395Ha8Yk6vAh0nhAgxEiURJzgdQV0bB8iiAkCxCvTQWFoccRCJYCZAbG4xVNbYsCcW85FwY8mwgkRoP4K8DQIojeTIkiyI6HFiGo0sEOw0RwMgqjYLgzjQJrHQUK7dC4EwxC0VwjUqlKJxygAeVKO1SJ-B8KKg8h2Nkyp5KUlSwEYtSBJgLJ2kArChJ4yjtP4h9BKQ0tRLQ+gMMc6TPTwqptkBcpVLIopNKomiwB8vyGPUoomKinQOlEUh+FYSypJsrSYMCuKrKckTUPEySuPYGTZUeIUAtioLeO00K5UFSK4KuJtGoCAJaGMHR2CyJYoAsbRrBsAp71ETIIFYYp0HYLNjkEWg8imiDGG0fwoSUMBIUZIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 27026c12b..93d7ea80c 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -145,8 +145,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwHF4vHUKD0ODUdGPXIk0g6clZKl2BkiR6I3G0+GhI66OF-T4Chq0lgwPyaFjoggxMYEMR+URMuDqOD8GnCjKKxi0PlwdaqmTY54pUSCehajlwgiQp5YACyAp0fw9AGFso85HJBYaMlqRLr+Cy3Z6wDK8cH4xlUCxYBtlZb1aJNdrIwbDYrqIJzSq1dbPilHgAFTJYTLu-2BkOh8M68hRiVgAASWEeSZ0iaFtM0W2iCqVzszGtbef7Ru4xYtZdm-2alaeADUAJK5Le2JtznQz9vRqsAeVytgMACFMrknPktwA5Jw6d3Prfuhyx-uDw1QQtx0YDNlxzCN23zYVjVNegRCXK0VwrI97UdaNMifLBnwDMA-xbXMT07dDMKfbDm0NYxaAqPV0XsZxfzIvF6CgcN4nNY0QIQsC2z1SDhxYGC4NLBD2FXW0ULgJ1vTAa8MKwg8h2FY9qM7GTiNIw8KKojs7EcFwFIyXDaUELUn0yaNaGWCBWD7BShgMpQhgsnR2Hicg1A0bRrBsNIhWJeJWEydB2BBAASQRaBSUKtUYbRGCGfolDAfoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index aa87f47fb..4672fa128 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -145,8 +145,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwPzkvwRIiMUSkHF4vHUKD0ODUdGPXIk0g6clZKl2DkiR6I3Gs+GhI66OF-T4ShqsljUzQsdEEGJjAhiPyiLlwdRwfgs6UZDWMWhiuDrHUybHPFKiQT0Q0CuEESFPLAAWQlOj+-oAwtlHnI5JKLRlDSITfweb6A2AVXio2mMqgWLANlqHXrRAajQnzRaNdRBHbtbqnZ8Uo8AAqZLCZP1hiPRmNx43kRMKsBOEPNACSADlbI3HpmdBmpaz6Yy1sZ2T0-Fb87Wiz3SzPLSwbfQRPat+x-s0Ut7HgB1ADyWFyAAYAEwAMReeCDYDvD8fAEZ3wjOcYx0Hc+yTH8nzfD8Z2A6VFyZPwVygHpN0dbcSz7MtpQrKsT3Qs96y-SCX0AsA4ItMDTSTABNZV52lYxaAqai4XsZxYK7VUK3XTUvQLfUqLNPcdCtQ9jxrAjz0vH1MgANUyfIQ0DP4xywcdw3IijpSEpN5MU5TUwYjJtIyegoDjeI7Q3fit2LeMsJEsTbXwwtCJaGTHgAIUyXIhxUsAvLUjSgK4nTMNYr8fL8wzOJnQRDTHTIk1oZYIFYacGKGEylCGVKdHYeJyDUDRtGsGw0ilYl4lYTJ0HYEEABJBFoFImsNRhtEYIZ+iUMB+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index de64a0e34..0af0b42f4 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0Vh+ADmzEWOLxeOoUHocGo6MeAHEabp8kyiMxSHzWFl6BA+TBuNEhbYmSJHojcfT4aEjro4X9PnKGvSWDA-JoWOiCDFRgQxH5RCy4Oo4Pw6YqMkaTWJ0frGLQZXB1saZNjnilRIJ6BbSIbIU8sABZOU6P6RgDC2Uecjk8vtGQtImt-DZ4ajYC1eJTBYyqBYsA2hu9ptE5stWbt9sdPrRcP11EEnqb1fY-2aKUeAAVMlhMhGE9HB8PR0nU2mM1byNm1U98rZHsWdEWFfSInzRGtjIzKXqDXCu2b5-WNw6q87Wyx3fQRF6nTNe-7A8HQ48AOrsrD5AA8gAagAYi8eAxmAf4AYB4ETtB-4ABIAJJgRB-aIVgqHwWAyazval6Lt+WFAehSYblu9q7ow+5+IeUDHvEmyyAKjCVq+taZouDaKm2HYvs2PafJhMFkbhVFznWxHLgAmtGxi0BUNrovYziUQReJQBA-gChU1I1J6rocc2XELjavH0ueLY6K6j7PtZwktB+QZwCGZ5hpktiAQAGv+SaSYR0kqR5fzeX5WAzteJhKSFdiOC426FppGT0FAFqEkQ+lcie7FnreNZERZ0XWS6D4eoJ3bvjoAaue5OgEGGzThf5eGBYqRVLg1TUtZFeEpXiinKV1amJfa7UZDU-CZZ4rJwqBmT5LkY2Fg0kmKdQ5B5cUcDcOadDdr4+0+p5eQYVBuSZKBuH+sFXWPPJbVKIMtDGDo7DxFtUAWNo1g2GkCrEvErCZOg7AggAJIItApJDFqMNojCDH0ShgH0ZxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index 843bb2d05..cd211d8ed 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -144,8 +144,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zhXCAyMaHhRP3ooUQBrOFJRIoBzRjhUdgUwAD12XIBZAEUAHwBhLbkMACoAOUyNgBJllIGxdhzmuRTNbkFdAF47RydFXp1+rAxH5RMRUGJZvNFssVpstidcntrngdHdRA8mr8Xm9Pt9nH8GhIhiNxpNpuECDEiDJgaI4CJ1HB+Et-hlKdSCBCvq9GLQoPQRH52TT0Y8nClRIJ6HTSDovoDBsNRhMps8Ghk6QzyPw5QC0UrSVMGgT-kSQWCIRSqSKQfS4IzmeqdMLOdNuSw+QK4ELra6Mc0JVKZbqFbSLaI1aydJr7dqQ-rQURwaJcE7jLQKkzdfZnMalABfP4AK2pED8E1Y6KSNnC-DgxigwlIQv4tFBfhL8XLcErwDRiVCcgAuj00KgivFoiyMkldUlU-8+EIRG6dEvhPcnSU-M3RDAAI7TjLH6j8+m65aZfjaRh0nRObRkab0Vg6OF2fkiG5OmehO4XsAxW-KMMhYGA-B5XUXVpO0HSPY9j2g1ceU9QUkIHTxgGAS88nyZYhyHQNpUmKClkArANhuHRllyJwAA1ljkSMEIQmMHQAzIKOWH8dGYlian4HciE8ahdQAMUyfJaIXFidBJFVVySLDljNeSyXwwieMTZM51CZSwDNbSxA0mSWOoahZS+JDbS1Jl4JYpDdRQz9vXQpTsMAzETOjIMSKssjmmyJw9gAeWyRi+Nkti4y+S8nCC0LwrAHi-gQ1LeKUP5aGMHR2Hicg1A0bRrBsNJ-lEOIIFYTJ0HYMdLkEWgUnqulGBvP58yUMB8yHIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index d9c1a080e..e0a427b8c 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -125,8 +125,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGIdABUZxULKBokOkTGOqQAFrrkoqQ6sqK6RoIJOgAGTgDyAMoAIgCaqTpQEPxpOQDCWVhOAIJZhZostFD0IqJhRDr8cHwQMczkOjC0oqK0EADmXQFQGEr8M-pGXNQA+gukUNbzi4Y6AO60EePsG1C4OiBKOjo1OVkAMkthMASrcAAeq1D8otTXt3uDwAJJlcnlgABGAC6zwAcjVVuNyBNVKslABfRQQABWRHGqwA1nBWKJTjMbHtusYoMJSKsCPwRm88QTiaTgNB4GSznJoa4IHdHs8zsBgAowEKHhLofyIEo0KhnuMjuwAWcdABeaabXAAvhCNpaoYCYRiNUQG43UgwVb00SCGAwFgcAFWnTUFpwajGiU5HpECbMVDhGR2FoiCV6y3unXFWC6bUSqVRt1Wli2xqMY0EcL4ghiVYJETqOD8dgENWSrAAWSjOmTtfKOQlcgujbrYDbaZuP34dqImx92vszmjsZ0DqdTQAXnBVln2trc-nC8W4KXyz2rZWJVknAANesSrA1couPANsAAIRrWAA0lgAEzHsBg-KvipVWpZV81ADiF7djGE67mA+5HpeJ5nkB27AROyRwAivpgLQNIQKwEpptiNzYtiaE6OwyKqFAFjaNYNhXDGoihhhNToOwirAoItAXExCSMNojDYhiShgBi0JAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index de6b90271..91173fea1 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -156,8 +156,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiQQwGAsVh+egcBp4nTUKD0ODUdGPXIkslsHRUnRYIgRHQAcUYREEqDRtgZIkeiNxtPhoSOujhf0+0ppeJYMD8mhY6IIMVGBDEflETLg6jg-Bxcrx+sNYnROsYtElcHWBpk2OeKQIkKeWAAstKdH9AwBhbKPORyGU2jKmkQW-gs-1BsDqjIxjM6Gr8QlETzMuH2ZyxuVU7UsNFwu2e0Qms1J61x2tG6s6J0u+gid32mb-Zo+v0ABUyWEyaZSfwAagBJXKz2xRrOym0J83kZM1v2ZOcLpdgQY2ldr9ksWgALzdTvbreN66b2Yyd-bnddvbr7AHQ5nmReeBDMAwwACQFZcyzXRtNz1Hdpz-KNsxPOVBFNAA5TIU1oZYIFYNVVzxVAWFgDY9Q9NsG0TTdmxtF9HW4QQ3RfL9PinMBR3HAMI2DR52InKMILlB9oOVJ58gPRD1SPHRBkGLCdHYeJyDUDRtGsGw0llUQ4hwzJ0HYEEABJBFoFJDNNRhtEYQY+iUMA+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index 30e7e1855..c8d8d6f5f 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -183,8 +183,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzbWycikrLK6v5SciUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urppbb0PvHnOaXGA3pcWDA-IwlusiDBUEU6KJSOwGpkAMK2TJYACyKOyOgAvDp4YiGhkIcZ8To-lidAAhR64Ek6YgwikEJFPamZemUjmYnQox6DDJyBkQDIYvkEolIsUZHRkimPGmIHQABWoUAIcHoRHpjOZsIJbL+KuyjEEAHMdAANbmPFEqlHQ+jxDyWCCChqDQZKNCw8LxaIyjJJClJUUZPhCESiClR4RiYNykp+NY9OBJuWEqD0ODURVgWy0eB2Ig6JzaMh2HMiPWyrNJI66Al-T6AiNZnSgvyaFismKjLWiPyiPNwdRwfiZzu9xi0GtwdYDmSJ54pY28u28nFb1HorE7sByEWMrNUzGPU86E-1uXdslQlkE++Qg0drOoFiwDb9wdiEdjhOU5XhkvbUIIi4EMuQ7sP8LQpI8qoYpk2LZFuSFYChgrvp2jwAPK5Jet7CjhGQIswng9n2RrQf+o4iEB05ZrO870CIS5-jMa5MuyuROLaeA8jSmJYAA0lgABMgo3p2cqPHxAlXjJnYaPAfioKMZCxjRnEAQx5BTmyACMAAcEkpBJAAsADMIo6KZEnKVmcCVmsizbFRjC-iuw70eOBlMXKLELhxPmwW2CFgE4ABqABytjZE4uQCkepFyVFcUJUlKVpRkxi0BUk4UvYzhKYyQrXkogy0OS7DxOQagaNo1g2GksqiHEECsJk6DsH6AAkgi0CkA2jow2iMIMfRKGAfRnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 064bcb2998e107aac006ee94c931d91d66571791 Mon Sep 17 00:00:00 2001 From: m7pr Date: Wed, 27 Nov 2024 21:35:00 +0100 Subject: [PATCH 13/86] add normalize_decorators --- R/utils.R | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/R/utils.R b/R/utils.R index 888bac93d..7038815c0 100644 --- a/R/utils.R +++ b/R/utils.R @@ -1051,3 +1051,22 @@ subset_decorators <- function(scope, decorators) { scope <- intersect(union("default", scope), names(decorators)) c(list(), unlist(decorators[scope], recursive = FALSE)) } + +#' Convert flat list of `teal_transform_module` to named lists +#' +#' @param decorators (list of `teal_transformodules`) to normalize. +#' @param available_decorators (`character`) a character vector of available decorator names. +#' When `NULL` it assumes that all decorators should be applied, which can be used +#' when module only has 1 object. +#' @return A named list of lists with `teal_transform_module` objects. +#' @keywords internal +normalize_decorators <- function(decorators, available_decorators = NULL) { + available_decorators <- union("default", available_decorators) + if (checkmate::test_list(decorators, "teal_transform_module", null.ok = TRUE)) { + decorators <- if (checkmate::test_names(names(decorators), subset.of = available_decorators)) { + lapply(decorators, list) + } else { + list(default = decorators) + } + } +} From a677777f94de48002fe91cb274b7114f008a2e31 Mon Sep 17 00:00:00 2001 From: m7pr Date: Wed, 27 Nov 2024 21:38:17 +0100 Subject: [PATCH 14/86] fix normalize_decorators --- R/utils.R | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/R/utils.R b/R/utils.R index 7038815c0..573e4e2a0 100644 --- a/R/utils.R +++ b/R/utils.R @@ -997,7 +997,7 @@ ui_decorate_teal_data <- function(id, decorators, ...) { #' Internal function to check if decorators is a valid object #' @noRd -check_decorators <- function(x, names = NULL, null.ok = FALSE) { +check_decorators <- function(x, names = NULL, null.ok = FALSE) {# nolint: object_name. checkmate::qassert(null.ok, "B1") check_message <- checkmate::check_list( x, @@ -1055,18 +1055,16 @@ subset_decorators <- function(scope, decorators) { #' Convert flat list of `teal_transform_module` to named lists #' #' @param decorators (list of `teal_transformodules`) to normalize. -#' @param available_decorators (`character`) a character vector of available decorator names. -#' When `NULL` it assumes that all decorators should be applied, which can be used -#' when module only has 1 object. #' @return A named list of lists with `teal_transform_module` objects. #' @keywords internal -normalize_decorators <- function(decorators, available_decorators = NULL) { - available_decorators <- union("default", available_decorators) +normalize_decorators <- function(decorators) { if (checkmate::test_list(decorators, "teal_transform_module", null.ok = TRUE)) { - decorators <- if (checkmate::test_names(names(decorators), subset.of = available_decorators)) { + if (checkmate::test_names(names(decorators))) { lapply(decorators, list) } else { list(default = decorators) } + } else { + decorators } } From 1e9a78c62fc8bda49164aa529c99b04edbe2a70e Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:46:14 +0000 Subject: [PATCH 15/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/normalize_decorators.Rd | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 man/normalize_decorators.Rd diff --git a/man/normalize_decorators.Rd b/man/normalize_decorators.Rd new file mode 100644 index 000000000..a58207f16 --- /dev/null +++ b/man/normalize_decorators.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/utils.R +\name{normalize_decorators} +\alias{normalize_decorators} +\title{Convert flat list of \code{teal_transform_module} to named lists} +\usage{ +normalize_decorators(decorators) +} +\arguments{ +\item{decorators}{(list of \code{teal_transformodules}) to normalize.} +} +\value{ +A named list of lists with \code{teal_transform_module} objects. +} +\description{ +Convert flat list of \code{teal_transform_module} to named lists +} +\keyword{internal} From 55cd3d307f3b3486468a7f060a423877247bdeae Mon Sep 17 00:00:00 2001 From: m7pr Date: Thu, 28 Nov 2024 15:17:20 +0100 Subject: [PATCH 16/86] update utils from tmg --- R/utils.R | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/R/utils.R b/R/utils.R index 573e4e2a0..a1658919d 100644 --- a/R/utils.R +++ b/R/utils.R @@ -952,7 +952,8 @@ interactive <- NULL #' @param expr (`expression` or `reactive`) to evaluate on the output of the decoration. #' When an expression it must be inline code. See [within()] #' Default is `NULL` which won't evaluate any appending code. -#' @param expr_is_reactive () +#' @param expr_is_reactive (`logical(1)`) whether `expr` is a reactive expression +#' that skips defusing the argument. #' @details #' `srv_decorate_teal_data` is a wrapper around `srv_transform_teal_data` that #' allows to decorate the data with additional expressions. @@ -997,13 +998,15 @@ ui_decorate_teal_data <- function(id, decorators, ...) { #' Internal function to check if decorators is a valid object #' @noRd -check_decorators <- function(x, names = NULL, null.ok = FALSE) {# nolint: object_name. +check_decorators <- function(x, names = NULL, null.ok = FALSE) { # nolint: object_name. checkmate::qassert(null.ok, "B1") + check_message <- checkmate::check_list( x, null.ok = null.ok, names = "named" ) + if (!is.null(names)) { check_message <- if (isTRUE(check_message)) { out_message <- checkmate::check_names(names(x), subset.of = c("default", names)) @@ -1017,9 +1020,11 @@ check_decorators <- function(x, names = NULL, null.ok = FALSE) {# nolint: object check_message } } + if (!isTRUE(check_message)) { return(check_message) } + valid_elements <- vapply( x, checkmate::test_list, @@ -1027,14 +1032,18 @@ check_decorators <- function(x, names = NULL, null.ok = FALSE) {# nolint: object null.ok = TRUE, FUN.VALUE = logical(1L) ) + if (all(valid_elements)) { return(TRUE) } + "May only contain the type 'teal_transform_module' or a named list of 'teal_transform_module'." } + #' Internal assertion on decorators #' @noRd assert_decorators <- checkmate::makeAssertionFunction(check_decorators) + #' Subset decorators based on the scope #' #' `default` is a protected decorator name that is always included in the output, @@ -1046,8 +1055,8 @@ assert_decorators <- checkmate::makeAssertionFunction(check_decorators) #' @return A flat list with all decorators to include. #' It can be an empty list if none of the scope exists in `decorators` argument. #' @keywords internal -subset_decorators <- function(scope, decorators) { - checkmate::assert_character(scope) +select_decorators <- function(decorators, scope) { + checkmate::assert_character(scope, null.ok = TRUE) scope <- intersect(union("default", scope), names(decorators)) c(list(), unlist(decorators[scope], recursive = FALSE)) } From b5653100954964f4d78635d22b1d8383122f21e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:20:57 +0100 Subject: [PATCH 17/86] introduce decorators for `tm_g_ci` (#1265) Part of https://github.com/insightsengineering/teal/issues/1371 WIP
Example with decorator ```r devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADLB <- tmc_ex_adlb }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] caption_decorator <- function(default_caption = "I am a good decorator", .var_to_replace = "plot") { teal_transform_module( label = "Caption", ui = function(id) shiny::textInput(shiny::NS(id, "footnote"), "Footnote", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::labs(caption = footnote) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } app <- init( data = data, modules = modules( tm_g_ci( label = "Confidence Interval Plot", x_var = data_extract_spec( dataname = "ADSL", select = select_spec( choices = c("ARMCD", "BMRKR2"), selected = c("ARMCD"), multiple = FALSE, fixed = FALSE ) ), y_var = data_extract_spec( dataname = "ADLB", filter = list( filter_spec( vars = "PARAMCD", choices = levels(ADLB$PARAMCD), selected = levels(ADLB$PARAMCD)[1], multiple = FALSE, label = "Select lab:" ), filter_spec( vars = "AVISIT", choices = levels(ADLB$AVISIT), selected = levels(ADLB$AVISIT)[1], multiple = FALSE, label = "Select visit:" ) ), select = select_spec( label = "Analyzed Value", choices = c("AVAL", "CHG"), selected = "AVAL", multiple = FALSE, fixed = FALSE ) ), color = data_extract_spec( dataname = "ADSL", select = select_spec( label = "Color by variable", choices = c("SEX", "STRATA1", "STRATA2"), selected = c("STRATA1"), multiple = FALSE, fixed = FALSE ) ), decorators = list(caption_decorator(.var_to_replace = "plot")) ) ) ) shinyApp(app$ui, app$server) ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> Co-authored-by: m7pr --- R/tm_g_ci.R | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/R/tm_g_ci.R b/R/tm_g_ci.R index 46d4ee865..bc21c259c 100644 --- a/R/tm_g_ci.R +++ b/R/tm_g_ci.R @@ -171,8 +171,7 @@ template_g_ci <- function(dataname, substitute( expr = { - gg <- graph_expr - print(gg) + plot <- graph_expr }, env = list(graph_expr = pipe_expr(graph_list, pipe_str = "+")) ) @@ -189,6 +188,14 @@ template_g_ci <- function(dataname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_g_ci`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -275,7 +282,8 @@ tm_g_ci <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { message("Initializing tm_g_ci") checkmate::assert_string(label) stat <- match.arg(stat) @@ -293,6 +301,8 @@ tm_g_ci <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "plot") args <- as.list(environment()) @@ -306,7 +316,8 @@ tm_g_ci <- function(label, label = label, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ), ui = ui_g_ci, ui_args = args, @@ -355,7 +366,8 @@ ui_g_ci <- function(id, ...) { label = "Statistic to use", choices = c("mean", "median"), selected = args$stat - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(args$decorators, "plot")) ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), "Show R code") @@ -376,7 +388,8 @@ srv_g_ci <- function(id, label, plot_height, plot_width, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -466,11 +479,18 @@ srv_g_ci <- function(id, teal.code::eval_code(anl_q(), list_calls) }) - plot_r <- reactive(all_q()[["gg"]]) + decorated_plot_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + # Outputs to render. + plot_r <- reactive(decorated_plot_q()[["plot"]]) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_plot_q()))), title = label ) @@ -497,7 +517,7 @@ srv_g_ci <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_plot_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 2276fca10e68dabf06fd50708c467af3bd8d0916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:28:00 +0100 Subject: [PATCH 18/86] Introduce decorators to `tm_g_forest_rsp` (#1266) Part of https://github.com/insightsengineering/teal/issues/1371 This module also returns a plot from `cowplot`, and I am not sure if the example I got works well (I am not that familiar with it).
Draft of an example ````r devtools::load_all("../teal.reporter") devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) library(dplyr) caption_decorator <- function(annotation = "I am a good decorator", var_to_decorate = "plot") { teal_transform_module( label = "Annotation", ui = function(id) shiny::textInput(shiny::NS(id, "annotation"), "Annotation", value = annotation), server = make_teal_transform_server( substitute({ var_to_decorate <- cowplot::add_sub(var_to_decorate, annotation) }, env = list(var_to_decorate = as.name(var_to_decorate))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADRS <- tmc_ex_adrs %>% mutate(AVALC = d_onco_rsp_label(AVALC) %>% with_label("Character Result/Finding")) %>% filter(PARAMCD != "OVRINV" | AVISIT == "FOLLOW UP") }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADRS <- data[["ADRS"]] arm_ref_comp <- list( ARM = list( ref = "B: Placebo", comp = c("A: Drug X", "C: Combination") ), ARMCD = list( ref = "ARM B", comp = c("ARM A", "ARM C") ) ) app <- init( data = data, modules = modules( tm_g_forest_rsp( label = "Forest Response", dataname = "ADRS", arm_var = choices_selected( variable_choices(ADSL, c("ARM", "ARMCD")), "ARMCD" ), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( value_choices(ADRS, "PARAMCD", "PARAM"), "INVET" ), subgroup_var = choices_selected( variable_choices(ADSL, names(ADSL)), c("BMRKR2", "SEX") ), strata_var = choices_selected( variable_choices(ADSL, c("STRATA1", "STRATA2")), "STRATA2" ), plot_height = c(600L, 200L, 2000L), default_responses = list( BESRSPI = list( rsp = c("Stable Disease (SD)", "Not Evaluable (NE)"), levels = c( "Complete Response (CR)", "Partial Response (PR)", "Stable Disease (SD)", "Progressive Disease (PD)", "Not Evaluable (NE)" ) ), INVET = list( rsp = c("Complete Response (CR)", "Partial Response (PR)"), levels = c( "Complete Response (CR)", "Not Evaluable (NE)", "Partial Response (PR)", "Progressive Disease (PD)", "Stable Disease (SD)" ) ), OVRINV = list( rsp = c("Progressive Disease (PD)", "Stable Disease (SD)"), levels = c("Progressive Disease (PD)", "Stable Disease (SD)", "Not Evaluable (NE)") ) ), decorators = list(caption_decorator()) ) ) ) shinyApp(app$ui, app$server) ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> Co-authored-by: m7pr --- R/tm_g_forest_rsp.R | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/R/tm_g_forest_rsp.R b/R/tm_g_forest_rsp.R index 27fadd25e..820505d83 100644 --- a/R/tm_g_forest_rsp.R +++ b/R/tm_g_forest_rsp.R @@ -211,7 +211,7 @@ template_forest_rsp <- function(dataname = "ANL", plot_list, substitute( expr = { - p <- cowplot::plot_grid( + plot <- cowplot::plot_grid( f[["table"]] + ggplot2::labs(title = ggplot2_args_title), f[["plot"]] + ggplot2::labs(caption = ggplot2_args_caption), align = "h", @@ -243,6 +243,14 @@ template_forest_rsp <- function(dataname = "ANL", #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_g_forest_tte`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`gg`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -355,7 +363,8 @@ tm_g_forest_rsp <- function(label, font_size = c(15L, 1L, 30L), pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { message("Initializing tm_g_forest_rsp") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -381,6 +390,8 @@ tm_g_forest_rsp <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "plot") args <- as.list(environment()) @@ -409,7 +420,8 @@ tm_g_forest_rsp <- function(label, default_responses = default_responses, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -475,6 +487,7 @@ ui_g_forest_rsp <- function(id, ...) { data_extract_spec = a$strata_var, is_single_dataset = is_single_dataset_value ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "plot")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional plot settings", @@ -529,7 +542,8 @@ srv_g_forest_rsp <- function(id, plot_width, label, default_responses, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -761,7 +775,13 @@ srv_g_forest_rsp <- function(id, teal.code::eval_code(anl_q(), as.expression(unlist(my_calls))) }) - plot_r <- reactive(all_q()[["p"]]) + decorated_all_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + plot_r <- reactive(decorated_all_q()[["plot"]]) pws <- teal.widgets::plot_with_settings_srv( id = "myplot", @@ -772,7 +792,7 @@ srv_g_forest_rsp <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = label ) @@ -791,7 +811,7 @@ srv_g_forest_rsp <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From fd17aedc76840bc7f7fcfe76b507b033e5fea28f Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:30:52 +0100 Subject: [PATCH 19/86] introduce decorators for `tm_g_forest_tte` (#1264) Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal.reporter") devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) library(dplyr) caption_decorator <- function(annotation = "I am a good decorator", var_to_decorate = "plot") { teal_transform_module( label = "Annotation", ui = function(id) shiny::textInput(shiny::NS(id, "annotation"), "Annotation", value = annotation), server = make_teal_transform_server( substitute({ var_to_decorate <- cowplot::add_sub(var_to_decorate, annotation) }, env = list(var_to_decorate = as.name(var_to_decorate))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADTTE <- tmc_ex_adtte ADSL$RACE <- droplevels(ADSL$RACE) %>% with_label("Race") }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADTTE <- data[["ADTTE"]] arm_ref_comp <- list( ARM = list( ref = "B: Placebo", comp = c("A: Drug X", "C: Combination") ), ARMCD = list( ref = "ARM B", comp = c("ARM A", "ARM C") ) ) app <- init( data = data, modules = modules( tm_g_forest_tte( label = "Forest Survival", dataname = "ADTTE", arm_var = choices_selected( variable_choices(ADSL, c("ARM", "ARMCD")), "ARMCD" ), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( value_choices(ADTTE, "PARAMCD", "PARAM"), "OS" ), subgroup_var = choices_selected( variable_choices(ADSL, names(ADSL)), c("BMRKR2", "SEX") ), strata_var = choices_selected( variable_choices(ADSL, c("STRATA1", "STRATA2")), "STRATA2" ), decorators = list(caption_decorator()) ) ) ) shinyApp(app$ui, app$server) ```
--- R/tm_g_forest_tte.R | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/R/tm_g_forest_tte.R b/R/tm_g_forest_tte.R index f4c3c86f4..34e14b274 100644 --- a/R/tm_g_forest_tte.R +++ b/R/tm_g_forest_tte.R @@ -210,7 +210,7 @@ template_forest_tte <- function(dataname = "ANL", plot_list, substitute( expr = { - p <- cowplot::plot_grid( + plot <- cowplot::plot_grid( f[["table"]] + ggplot2::labs(title = ggplot2_args_title, subtitle = ggplot2_args_subtitle), f[["plot"]] + ggplot2::labs(caption = ggplot2_args_caption), align = "h", @@ -243,6 +243,14 @@ template_forest_tte <- function(dataname = "ANL", #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_g_forest_tte`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -339,7 +347,8 @@ tm_g_forest_tte <- function(label, font_size = c(15L, 1L, 30L), pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { message("Initializing tm_g_forest_tte") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -367,6 +376,8 @@ tm_g_forest_tte <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "plot") args <- as.list(environment()) @@ -395,7 +406,8 @@ tm_g_forest_tte <- function(label, riskdiff = riskdiff, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -468,6 +480,7 @@ ui_g_forest_tte <- function(id, ...) { data_extract_spec = a$strata_var, is_single_dataset = is_single_dataset_value ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "plot")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional plot settings", @@ -528,7 +541,8 @@ srv_g_forest_tte <- function(id, riskdiff, plot_height, plot_width, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -691,7 +705,13 @@ srv_g_forest_tte <- function(id, }) # Outputs to render. - plot_r <- reactive(all_q()[["p"]]) + decorated_all_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + plot_r <- reactive(decorated_all_q()[["plot"]]) pws <- teal.widgets::plot_with_settings_srv( id = "myplot", @@ -702,7 +722,7 @@ srv_g_forest_tte <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = "R Code for the Current Time-to-Event Forest Plot" ) @@ -721,7 +741,7 @@ srv_g_forest_tte <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 4e747f9e653f28f30fb281007d8046ce3e016e82 Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:33:05 +0100 Subject: [PATCH 20/86] introduce decorators for `tm_a_gee` (#1262) Part of https://github.com/insightsengineering/teal/issues/1371 Alternative to https://github.com/insightsengineering/teal.modules.clinical/pull/1259
Working Example ```r devtools::load_all("../teal.reporter") devtools::load_all("../teal") devtools::load_all(".") insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADQS <- tmc_ex_adqs %>% filter(ABLFL != "Y" & ABLFL2 != "Y") %>% mutate( AVISIT = as.factor(AVISIT), AVISITN = rank(AVISITN) %>% as.factor() %>% as.numeric() %>% as.factor(), AVALBIN = AVAL < 50 # Just as an example to get a binary endpoint. ) %>% droplevels() }) join_keys(data) <- default_cdisc_join_keys[names(data)] app <- init( data = data, modules = modules( tm_a_gee( label = "GEE", dataname = "ADQS", aval_var = choices_selected("AVALBIN", fixed = TRUE), id_var = choices_selected(c("USUBJID", "SUBJID"), "USUBJID"), arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), visit_var = choices_selected(c("AVISIT", "AVISITN"), "AVISIT"), paramcd = choices_selected( choices = value_choices(data[["ADQS"]], "PARAMCD", "PARAM"), selected = "FKSI-FWB" ), cov_var = choices_selected(c("BASE", "AGE", "SEX", "BASE:AVISIT"), NULL), decorators = list(insert_rrow_decorator("Hello world", "table")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--- R/tm_a_gee.R | 57 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/R/tm_a_gee.R b/R/tm_a_gee.R index 8426a7266..b164fec43 100644 --- a/R/tm_a_gee.R +++ b/R/tm_a_gee.R @@ -69,9 +69,9 @@ template_a_gee <- function(output_table, if (output_table == "t_gee_cov") { substitute( expr = { - result_table <- tern.gee::as.rtable(model_fit, type = "cov") - subtitles(result_table) <- st - main_footer(result_table) <- mf + table <- tern.gee::as.rtable(model_fit, type = "cov") + subtitles(table) <- st + main_footer(table) <- mf }, env = list( st = basic_table_args$subtitles, @@ -81,9 +81,9 @@ template_a_gee <- function(output_table, } else if (output_table == "t_gee_coef") { substitute( expr = { - result_table <- tern.gee::as.rtable(data.frame(Coefficient = model_fit$coefficients)) - subtitles(result_table) <- st - main_footer(result_table) <- mf + table <- tern.gee::as.rtable(data.frame(Coefficient = model_fit$coefficients)) + subtitles(table) <- st + main_footer(table) <- mf }, env = list( conf_level = conf_level, @@ -95,7 +95,7 @@ template_a_gee <- function(output_table, substitute( expr = { lsmeans_fit_model <- tern.gee::lsmeans(model_fit, conf_level) - result_table <- rtables::basic_table(show_colcounts = TRUE) %>% + table <- rtables::basic_table(show_colcounts = TRUE) %>% rtables::split_cols_by(var = input_arm_var, ref_group = model_fit$ref_level) %>% tern.gee::summarize_gee_logistic() %>% rtables::build_table( @@ -103,9 +103,8 @@ template_a_gee <- function(output_table, alt_counts_df = dataname_lsmeans ) - subtitles(result_table) <- st - main_footer(result_table) <- mf - result_table + subtitles(table) <- st + main_footer(table) <- mf }, env = list( dataname_lsmeans = as.name(dataname_lsmeans), @@ -135,6 +134,14 @@ template_a_gee <- function(output_table, #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_a_gee`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`ElementaryTable` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -200,7 +207,8 @@ tm_a_gee <- function(label, conf_level = teal.transform::choices_selected(c(0.95, 0.9, 0.8), 0.95, keep_order = TRUE), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_a_gee (prototype)") cov_var <- teal.transform::add_no_selected_choices(cov_var, multiple = TRUE) @@ -218,6 +226,8 @@ tm_a_gee <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) @@ -243,7 +253,8 @@ tm_a_gee <- function(label, parentname = parentname, arm_ref_comp = arm_ref_comp, label = label, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -358,7 +369,8 @@ ui_gee <- function(id, ...) { "Coefficients" = "t_gee_coef" ), selected = "t_gee_lsmeans" - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")) ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -385,7 +397,8 @@ srv_gee <- function(id, label, plot_height, plot_width, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -546,9 +559,15 @@ srv_gee <- function(id, output_title }) - table_r <- reactive({ - table_q()[["result_table"]] - }) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = table_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + + # Outputs to render. + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -558,7 +577,7 @@ srv_gee <- function(id, # Render R code teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(table_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -582,7 +601,7 @@ srv_gee <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(table_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From fcc3682fbf2c77c3a04262a73a0d2a286490d1df Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:35:24 +0100 Subject: [PATCH 21/86] introduce decorators for `tm_g_ipp` (#1263) Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl %>% slice(1:20) %>% df_explicit_na() ADLB <- tmc_ex_adlb %>% filter(USUBJID %in% ADSL$USUBJID) %>% df_explicit_na() %>% filter(AVISIT != "SCREENING") }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] caption_decorator <- function(default_caption = "I am a good decorator", .var_to_replace = "plot") { teal_transform_module( label = "Caption", ui = function(id) shiny::textInput(shiny::NS(id, "footnote"), "Footnote", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::labs(caption = footnote) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } app <- init( data = data, modules = modules( tm_g_ipp( label = "Individual Patient Plot", dataname = "ADLB", arm_var = choices_selected( value_choices(ADLB, "ARMCD"), "ARM A" ), paramcd = choices_selected( value_choices(ADLB, "PARAMCD"), "ALT" ), aval_var = choices_selected( variable_choices(ADLB, c("AVAL", "CHG")), "AVAL" ), avalu_var = choices_selected( variable_choices(ADLB, c("AVALU")), "AVALU", fixed = TRUE ), id_var = choices_selected( variable_choices(ADLB, c("USUBJID")), "USUBJID", fixed = TRUE ), visit_var = choices_selected( variable_choices(ADLB, c("AVISIT")), "AVISIT" ), baseline_var = choices_selected( variable_choices(ADLB, c("BASE")), "BASE", fixed = TRUE ), add_baseline_hline = FALSE, separate_by_obs = FALSE, decorators = list(caption_decorator(.var_to_replace = "plot")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--- R/tm_g_ipp.R | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/R/tm_g_ipp.R b/R/tm_g_ipp.R index 3c6a7be5f..e45959bb7 100644 --- a/R/tm_g_ipp.R +++ b/R/tm_g_ipp.R @@ -179,6 +179,15 @@ template_g_ipp <- function(dataname = "ANL", #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_g_ipp`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -293,7 +302,8 @@ tm_g_ipp <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { if (lifecycle::is_present(base_var)) { baseline_var <- base_var warning( @@ -329,6 +339,8 @@ tm_g_ipp <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "plot") args <- as.list(environment()) data_extract_list <- list( @@ -354,7 +366,8 @@ tm_g_ipp <- function(label, parentname = parentname, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -428,6 +441,7 @@ ui_g_ipp <- function(id, ...) { data_extract_spec = a$baseline_var, is_single_dataset = is_single_dataset_value ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "plot")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional plot settings", @@ -479,7 +493,8 @@ srv_g_ipp <- function(id, plot_height, plot_width, label, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -611,7 +626,13 @@ srv_g_ipp <- function(id, }) # Outputs to render. - plot_r <- reactive(all_q()[["plot"]]) + decorated_all_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + plot_r <- reactive(decorated_all_q()[["plot"]]) # Insert the plot into a plot with settings module from teal.widgets pws <- teal.widgets::plot_with_settings_srv( @@ -623,7 +644,7 @@ srv_g_ipp <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = label ) @@ -642,7 +663,7 @@ srv_g_ipp <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 31fdab6955cb88e113d571ee6e378977a8cf1d2c Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 14:44:47 +0000 Subject: [PATCH 22/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- ...bset_decorators.Rd => select_decorators.Rd} | 10 +++++----- man/srv_decorate_teal_data.Rd | 3 ++- man/tm_a_gee.Rd | 18 +++++++++++++++++- man/tm_g_ci.Rd | 18 +++++++++++++++++- man/tm_g_forest_rsp.Rd | 18 +++++++++++++++++- man/tm_g_forest_tte.Rd | 18 +++++++++++++++++- man/tm_g_ipp.Rd | 18 +++++++++++++++++- 7 files changed, 92 insertions(+), 11 deletions(-) rename man/{subset_decorators.Rd => select_decorators.Rd} (86%) diff --git a/man/subset_decorators.Rd b/man/select_decorators.Rd similarity index 86% rename from man/subset_decorators.Rd rename to man/select_decorators.Rd index 9b229dffe..2c7403dca 100644 --- a/man/subset_decorators.Rd +++ b/man/select_decorators.Rd @@ -1,15 +1,15 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R -\name{subset_decorators} -\alias{subset_decorators} +\name{select_decorators} +\alias{select_decorators} \title{Subset decorators based on the scope} \usage{ -subset_decorators(scope, decorators) +select_decorators(decorators, scope) } \arguments{ -\item{scope}{(\code{character}) a character vector of decorator names to include.} - \item{decorators}{(named \code{list}) of list decorators to subset.} + +\item{scope}{(\code{character}) a character vector of decorator names to include.} } \value{ A flat list with all decorators to include. diff --git a/man/srv_decorate_teal_data.Rd b/man/srv_decorate_teal_data.Rd index 6ed8a4399..18201124e 100644 --- a/man/srv_decorate_teal_data.Rd +++ b/man/srv_decorate_teal_data.Rd @@ -18,7 +18,8 @@ ui_decorate_teal_data(id, decorators, ...) When an expression it must be inline code. See \code{\link[=within]{within()}} Default is \code{NULL} which won't evaluate any appending code.} -\item{expr_is_reactive}{()} +\item{expr_is_reactive}{(\code{logical(1)}) whether \code{expr} is a reactive expression +that skips defusing the argument.} } \description{ Wrappers around \code{srv_transform_teal_data} that allows to decorate the data diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index 35dd29535..bd4eea70d 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -20,7 +20,8 @@ tm_a_gee( TRUE), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -69,6 +70,9 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. @@ -76,6 +80,18 @@ a \code{teal_module} object. \description{ This module produces an analysis table using Generalized Estimating Equations (GEE). } +\section{Decorating \code{tm_a_gee}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{ElementaryTable} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index 7f3fc462f..0495f52da 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -16,7 +16,8 @@ tm_g_ci( plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -49,6 +50,9 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use for the module plot. The argument is merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. @@ -57,6 +61,18 @@ a \code{teal_module} object. This module produces a \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type confidence interval plot consistent with the TLG Catalog template \code{CIG01} available \href{https://insightsengineering.github.io/tlg-catalog/stable/graphs/other/cig01.html}{here}. } +\section{Decorating \code{tm_g_ci}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index c627cc585..301d2e9aa 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -29,7 +29,8 @@ tm_g_forest_rsp( font_size = c(15L, 1L, 30L), pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -113,6 +114,9 @@ elements: \code{title}, \code{caption}. No other elements would be taken into ac merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. @@ -120,6 +124,18 @@ a \code{teal_module} object. \description{ This module produces a grid-style forest plot for response data with ADaM structure. } +\section{Decorating \code{tm_g_forest_tte}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{gg}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) library(dplyr) diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index fd262399b..28eb1bd0d 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -32,7 +32,8 @@ tm_g_forest_tte( font_size = c(15L, 1L, 30L), pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -114,6 +115,9 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use for the module plot. The argument is merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. @@ -121,6 +125,18 @@ a \code{teal_module} object. \description{ This module produces a grid-style forest plot for time-to-event data with ADaM structure. } +\section{Decorating \code{tm_g_forest_tte}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) library(dplyr) diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 907e24fc6..194cd9e4e 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -31,7 +31,8 @@ tm_g_ipp( plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -92,6 +93,9 @@ argument is merged with option \code{teal.ggplot2_args} and with default module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. @@ -100,6 +104,18 @@ a \code{teal_module} object. This module produces \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type individual patient plots that display trends in parameter values over time for each patient, using data with ADaM structure. } +\section{Decorating \code{tm_g_ipp}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) library(dplyr) From 98520eb29043d5a71cdf5ecc1f08c8a3bf1655cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Fri, 29 Nov 2024 11:01:45 +0100 Subject: [PATCH 23/86] introduce decorators to `tm_g_pp_patient_timeline` (#1270) Part of https://github.com/insightsengineering/teal/issues/1371
Example using cowplot::add_sub with ggplot2 ```r devtools::load_all("../teal.modules.general") devtools::load_all("../teal.reporter") devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) library(dplyr) data <- teal_data() data <- within(data, { ADAE <- tmc_ex_adae ADSL <- tmc_ex_adsl %>% filter(USUBJID %in% ADAE$USUBJID) ADCM <- tmc_ex_adcm %>% mutate( CMSTDY = case_when( CMCAT == "medcl B" ~ 20, CMCAT == "medcl C" ~ 150, TRUE ~ 1 ) %>% with_label("Study Day of Start of Medication"), CMENDY = case_when( CMCAT == "medcl B" ~ 700, CMCAT == "medcl C" ~ 1000, TRUE ~ 500 ) %>% with_label("Study Day of End of Medication"), CMASTDTM = ASTDTM, CMAENDTM = AENDTM ) }) join_keys(data) <- default_cdisc_join_keys[c("ADSL", "ADAE", "ADCM")] adcm_keys <- c("STUDYID", "USUBJID", "ASTDTM", "CMSEQ", "ATC1", "ATC2", "ATC3", "ATC4") join_keys(data)["ADCM", "ADCM"] <- adcm_keys join_keys(data)["ADAE", "ADCM"] <- c("STUDYID", "USUBJID") caption_decorator <- function(annotation = "I am a good decorator", var_to_decorate = "plot") { teal_transform_module( label = "Annotation", ui = function(id) shiny::textInput(shiny::NS(id, "annotation"), "Annotation", value = annotation), server = make_teal_transform_server( substitute({ var_to_decorate <- cowplot::add_sub(var_to_decorate, annotation) }, env = list(var_to_decorate = as.name(var_to_decorate))) ) ) } app <- init( data = data, modules = modules( tm_g_pp_patient_timeline( label = "Patient Timeline", dataname_adae = "ADAE", dataname_adcm = "ADCM", parentname = "ADSL", patient_col = "USUBJID", plot_height = c(600L, 200L, 2000L), cmdecod = choices_selected( choices = variable_choices(data[["ADCM"]], "CMDECOD"), selected = "CMDECOD", ), aeterm = choices_selected( choices = variable_choices(data[["ADAE"]], "AETERM"), selected = c("AETERM") ), aetime_start = choices_selected( choices = variable_choices(data[["ADAE"]], "ASTDTM"), selected = c("ASTDTM") ), aetime_end = choices_selected( choices = variable_choices(data[["ADAE"]], "AENDTM"), selected = c("AENDTM") ), dstime_start = choices_selected( choices = variable_choices(data[["ADCM"]], "CMASTDTM"), selected = c("CMASTDTM") ), dstime_end = choices_selected( choices = variable_choices(data[["ADCM"]], "CMAENDTM"), selected = c("CMAENDTM") ), aerelday_start = choices_selected( choices = variable_choices(data[["ADAE"]], "ASTDY"), selected = c("ASTDY") ), aerelday_end = choices_selected( choices = variable_choices(data[["ADAE"]], "AENDY"), selected = c("AENDY") ), dsrelday_start = choices_selected( choices = variable_choices(data[["ADCM"]], "ASTDY"), selected = c("ASTDY") ), dsrelday_end = choices_selected( choices = variable_choices(data[["ADCM"]], "AENDY"), selected = c("AENDY") ), decorators = list(caption_decorator()) ) ) ) shinyApp(app$ui, app$server) ```
--------- Co-authored-by: m7pr --- R/tm_g_pp_patient_timeline.R | 37 ++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/R/tm_g_pp_patient_timeline.R b/R/tm_g_pp_patient_timeline.R index 1c7ff8c3b..663a10afd 100644 --- a/R/tm_g_pp_patient_timeline.R +++ b/R/tm_g_pp_patient_timeline.R @@ -16,6 +16,14 @@ #' #' @inherit template_arguments return #' +#' @section Decorating `tm_g_pp_patient_timeline`: +#' +#' This module generates the following objects, which can be modified in place using decorators:: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @seealso [tm_g_pp_patient_timeline()] #' #' @keywords internal @@ -175,7 +183,7 @@ template_patient_timeline <- function(dataname = "ANL", ) + ggplot2::scale_x_datetime(labels = scales::date_format("%b-%Y")) + labs + themes } - patient_timeline_plot + plot <- patient_timeline_plot }, env = list( font_size_var = font_size, @@ -303,7 +311,7 @@ template_patient_timeline <- function(dataname = "ANL", ggthemes + themes } - patient_timeline_plot + plot <- patient_timeline_plot }, env = list( labs = parsed_ggplot2_args$labs, @@ -461,7 +469,8 @@ tm_g_pp_patient_timeline <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { message("Initializing tm_g_pp_patient_timeline") checkmate::assert_string(label) checkmate::assert_string(dataname_adcm) @@ -487,6 +496,8 @@ tm_g_pp_patient_timeline <- function(label, plot_width[1], lower = plot_width[2], upper = plot_width[3], null.ok = TRUE, .var.name = "plot_width" ) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "plot") xor_error_string <- function(x, y) { paste( @@ -543,7 +554,8 @@ tm_g_pp_patient_timeline <- function(label, patient_col = patient_col, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = c(dataname_adcm, dataname_adae, parentname) @@ -670,6 +682,7 @@ ui_g_patient_timeline <- function(id, ...) { is_single_dataset = is_single_dataset_value ) ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(ui_args$decorators, "plot")), teal.widgets::panel_item( title = "Plot settings", collapsed = TRUE, @@ -712,7 +725,8 @@ srv_g_patient_timeline <- function(id, plot_height, plot_width, label, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -909,7 +923,14 @@ srv_g_patient_timeline <- function(id, teal.code::eval_code(object = qenv, as.expression(patient_timeline_calls)) }) - plot_r <- reactive(all_q()[["patient_timeline_plot"]]) + decorated_all_q <- srv_decorate_teal_data( + "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = plot + ) + + plot_r <- reactive(decorated_all_q()[["plot"]]) pws <- teal.widgets::plot_with_settings_srv( id = "patient_timeline_plot", @@ -920,7 +941,7 @@ srv_g_patient_timeline <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = label ) @@ -939,7 +960,7 @@ srv_g_patient_timeline <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 5cf21669b90917c20e121a1b14772018c81de4c0 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 10:10:27 +0000 Subject: [PATCH 24/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/template_patient_timeline.Rd | 12 ++++++++++++ man/tm_g_pp_patient_timeline.Rd | 6 +++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/man/template_patient_timeline.Rd b/man/template_patient_timeline.Rd index b86eaa482..24b297571 100644 --- a/man/template_patient_timeline.Rd +++ b/man/template_patient_timeline.Rd @@ -62,6 +62,18 @@ a \code{list} of expressions to generate a table or plot object. \description{ Creates a valid expression to generate a patient profile timeline \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} plot using ADaM datasets. } +\section{Decorating \code{tm_g_pp_patient_timeline}}{ + + +This module generates the following objects, which can be modified in place using decorators:: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \seealso{ \code{\link[=tm_g_pp_patient_timeline]{tm_g_pp_patient_timeline()}} } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 5f34a838c..6047e0107 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -25,7 +25,8 @@ tm_g_pp_patient_timeline( plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -87,6 +88,9 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use for the module plot. The argument is merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. From f462d60258fe311a47d5eb7f776f120e38e58fbb Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Fri, 29 Nov 2024 13:29:56 +0100 Subject: [PATCH 25/86] introduce decorators for `tm_g_pp_therapy` (#1268) Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal.reporter") devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) library(dplyr) data <- teal_data() data <- within(data, { ADCM <- tmc_ex_adcm ADSL <- tmc_ex_adsl %>% filter(USUBJID %in% ADCM$USUBJID) ADCM$CMASTDTM <- ADCM$ASTDTM ADCM$CMAENDTM <- ADCM$AENDTM }) join_keys(data) <- default_cdisc_join_keys[c("ADSL", "ADCM")] adcm_keys <- c("STUDYID", "USUBJID", "ASTDTM", "CMSEQ", "ATC1", "ATC2", "ATC3", "ATC4") join_keys(data)["ADCM", "ADCM"] <- adcm_keys ADSL <- data[["ADSL"]] ADCM <- data[["ADCM"]] caption_decorator <- function(default_caption = "I am a good decorator", .var_to_replace = "plot") { teal_transform_module( label = "Caption", ui = function(id) shiny::textInput(shiny::NS(id, "footnote"), "Footnote", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::labs(caption = footnote) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } head_decorator <- function(default_value = 6, .var_to_replace = "object") { teal_transform_module( label = "Head", ui = function(id) shiny::numericInput(shiny::NS(id, "n"), "N rows", value = default_value), server = make_teal_transform_server( substitute({ .var_to_replace <- utils::head(.var_to_replace, n = n) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } app <- init( data = data, modules = modules( tm_g_pp_therapy( label = "Therapy", dataname = "ADCM", parentname = "ADSL", patient_col = "USUBJID", plot_height = c(600L, 200L, 2000L), atirel = choices_selected( choices = variable_choices(ADCM, "ATIREL"), selected = c("ATIREL") ), cmdecod = choices_selected( choices = variable_choices(ADCM, "CMDECOD"), selected = "CMDECOD" ), cmindc = choices_selected( choices = variable_choices(ADCM, "CMINDC"), selected = "CMINDC" ), cmdose = choices_selected( choices = variable_choices(ADCM, "CMDOSE"), selected = "CMDOSE" ), cmtrt = choices_selected( choices = variable_choices(ADCM, "CMTRT"), selected = "CMTRT" ), cmdosu = choices_selected( choices = variable_choices(ADCM, "CMDOSU"), selected = c("CMDOSU") ), cmroute = choices_selected( choices = variable_choices(ADCM, "CMROUTE"), selected = "CMROUTE" ), cmdosfrq = choices_selected( choices = variable_choices(ADCM, "CMDOSFRQ"), selected = "CMDOSFRQ" ), cmstdy = choices_selected( choices = variable_choices(ADCM, "ASTDY"), selected = "ASTDY" ), cmendy = choices_selected( choices = variable_choices(ADCM, "AENDY"), selected = "AENDY" ), decorators = list(plot = caption_decorator('Marcin', 'plot'), table = head_decorator(2, 'table')) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--- R/tm_g_pp_therapy.R | 74 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 15 deletions(-) diff --git a/R/tm_g_pp_therapy.R b/R/tm_g_pp_therapy.R index ca6b9cb3c..2f8fac209 100644 --- a/R/tm_g_pp_therapy.R +++ b/R/tm_g_pp_therapy.R @@ -65,7 +65,7 @@ template_therapy <- function(dataname = "ANL", dataname[setdiff(cols_to_include, names(dataname))] <- NA - therapy_table <- dataname %>% + table <- dataname %>% dplyr::filter(atirel %in% c("CONCOMITANT", "PRIOR")) %>% # removed PRIOR_CONCOMITANT dplyr::select(dplyr::all_of(cols_to_include)) %>% dplyr::filter(!is.na(cmdecod)) %>% @@ -84,14 +84,13 @@ template_therapy <- function(dataname = "ANL", col_labels(dataname, fill = TRUE)[c(cmstdy_char, cmendy_char)] )) - therapy_table <- rlistings::as_listing( - therapy_table, + table <- rlistings::as_listing( + table, key_cols = NULL, default_formatting = list(all = fmt_config(align = "left")) ) - main_title(therapy_table) <- paste("Patient ID:", patient_id) + main_title(table) <- paste("Patient ID:", patient_id) - therapy_table }, env = list( dataname = as.name(dataname), atirel = as.name(atirel), @@ -173,7 +172,7 @@ template_therapy <- function(dataname = "ANL", TRUE ~ as.character(cmdecod) )) - therapy_plot <- + plot <- ggplot2::ggplot(data = data, ggplot2::aes(fill = cmindc, color = cmindc, y = CMDECOD, x = CMSTDY)) + ggplot2::geom_segment(ggplot2::aes(xend = CMENDY, yend = CMDECOD), size = 2) + ggplot2::geom_text( @@ -192,7 +191,6 @@ template_therapy <- function(dataname = "ANL", ggtheme + theme - therapy_plot }, env = c( list( dataname = as.name(dataname), @@ -247,6 +245,31 @@ template_therapy <- function(dataname = "ANL", #' #' @inherit module_arguments return #' +#' @section Decorating `tm_g_pp_therapy`: +#' +#' This module generates the following objects, which can be modified in place using decorators:: +#' - `plot` (`ggplot2`) +#' - `table` (`listing_df` - output of `rlistings::as_listing`) +#' +#' Decorators can be applied to all outputs or only to specific objects using a +#' named list of `teal_transform_module` objects. +#' The `"default"` name is reserved for decorators that are applied to all outputs. +#' See code snippet below: +#' +#' ``` +#' tm_g_pp_therapy( +#' ..., # arguments for module +#' decorators = list( +#' default = list(teal_transform_module(...)), # applied to all outputs +#' plot = list(teal_transform_module(...)), # applied only to `plot` output +#' table = list(teal_transform_module(...)) # applied only to `table` output +#' ) +#' ) +#' ``` +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -347,7 +370,8 @@ tm_g_pp_therapy <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { message("Initializing tm_g_pp_therapy") checkmate::assert_class(atirel, "choices_selected", null.ok = TRUE) checkmate::assert_class(cmdecod, "choices_selected", null.ok = TRUE) @@ -375,6 +399,8 @@ tm_g_pp_therapy <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, names = c('plot', 'table')) args <- as.list(environment()) data_extract_list <- list( @@ -404,7 +430,8 @@ tm_g_pp_therapy <- function(label, patient_col = patient_col, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = c(dataname, parentname) @@ -510,6 +537,8 @@ ui_g_therapy <- function(id, ...) { data_extract_spec = ui_args$cmendy, is_single_dataset = is_single_dataset_value ), + ui_decorate_teal_data(ns("d_table"), decorators = select_decorators(ui_args$decorators, "table")), + ui_decorate_teal_data(ns("d_plot"), decorators = select_decorators(ui_args$decorators, "plot")), teal.widgets::panel_item( title = "Plot settings", collapsed = TRUE, @@ -551,7 +580,8 @@ srv_g_therapy <- function(id, plot_height, plot_width, label, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -673,16 +703,30 @@ srv_g_therapy <- function(id, paste("
Patient ID:", all_q()[["pt_id"]], "
") }) + decorated_all_q_table <- srv_decorate_teal_data( + "d_table", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + output$therapy_table <- DT::renderDataTable( expr = { - teal.code::dev_suppress(all_q()[["therapy_table"]]) + teal.code::dev_suppress(decorated_all_q_table()[["table"]]) }, options = list(pageLength = input$therapy_table_rows) ) + decorated_all_q_plot <- srv_decorate_teal_data( + "d_plot", + data = decorated_all_q_table, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + plot_r <- reactive({ req(iv_r()$is_valid()) - all_q()[["therapy_plot"]] + decorated_all_q_plot()[["plot"]] }) pws <- teal.widgets::plot_with_settings_srv( @@ -694,7 +738,7 @@ srv_g_therapy <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q_plot()))), title = label ) @@ -708,14 +752,14 @@ srv_g_therapy <- function(id, filter_panel_api = filter_panel_api ) card$append_text("Table", "header3") - card$append_table(teal.code::dev_suppress(all_q()[["therapy_table"]])) + card$append_table(teal.code::dev_suppress(all_q()[["table"]])) card$append_text("Plot", "header3") card$append_plot(plot_r(), dim = pws$dim()) if (!comment == "") { card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q_plot()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From d6416e13ab41b9ee201c325e02fd26929a150b97 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 12:39:28 +0000 Subject: [PATCH 26/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_g_pp_therapy.Rd | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index f91584fa7..7ec959d29 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -24,7 +24,8 @@ tm_g_pp_therapy( plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -84,6 +85,9 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use for the module plot. The argument is merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. @@ -91,6 +95,34 @@ a \code{teal_module} object. \description{ This module produces a patient profile therapy table and \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type plot using ADaM datasets. } +\section{Decorating \code{tm_g_pp_therapy}}{ + + +This module generates the following objects, which can be modified in place using decorators:: +\itemize{ +\item \code{plot} (\code{ggplot2}) +\item \code{table} (\code{listing_df} - output of \code{rlistings::as_listing}) +} + +Decorators can be applied to all outputs or only to specific objects using a +named list of \code{teal_transform_module} objects. +The \code{"default"} name is reserved for decorators that are applied to all outputs. +See code snippet below: + +\if{html}{\out{
}}\preformatted{tm_g_pp_therapy( + ..., # arguments for module + decorators = list( + default = list(teal_transform_module(...)), # applied to all outputs + plot = list(teal_transform_module(...)), # applied only to `plot` output + table = list(teal_transform_module(...)) # applied only to `table` output + ) +) +}\if{html}{\out{
}} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) library(dplyr) From 25d922097004275ddc8cd6de84371195eb45d14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Fri, 29 Nov 2024 18:09:41 +0000 Subject: [PATCH 27/86] chore: necessary for pre-commit --- .pre-commit-config.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 30be9922f..dc5788b75 100755 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -33,7 +33,6 @@ repos: - methods - rlistings - rmarkdown - - rtables - scales - shiny - shinyjs @@ -48,6 +47,9 @@ repos: - insightsengineering/teal.widgets - insightsengineering/tern.gee - insightsengineering/tern.mmrm + - insightsengineering/rtables + - insightsengineering/rtables.officer + - insightsengineering/formatters - utils - vistime - id: spell-check From 956bc9e0560054889156c02a8fb9d173350e6a07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Fri, 29 Nov 2024 18:10:30 +0000 Subject: [PATCH 28/86] chore: remove print plot expression --- R/tm_g_lineplot.R | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/R/tm_g_lineplot.R b/R/tm_g_lineplot.R index bcaa321eb..0f9bd2a9d 100644 --- a/R/tm_g_lineplot.R +++ b/R/tm_g_lineplot.R @@ -195,10 +195,7 @@ template_g_lineplot <- function(dataname = "ANL", graph_list <- add_expr( graph_list, substitute( - expr = { - plot <- plot_call - plot - }, + expr = plot <- plot_call, env = list(plot_call = plot_call) ) ) From e7132b5dabc926d5d5946766b424705094514b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Fri, 29 Nov 2024 18:11:06 +0000 Subject: [PATCH 29/86] Revert "chore: remove print plot expression" This reverts commit 956bc9e0560054889156c02a8fb9d173350e6a07. --- R/tm_g_lineplot.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/tm_g_lineplot.R b/R/tm_g_lineplot.R index 0f9bd2a9d..bcaa321eb 100644 --- a/R/tm_g_lineplot.R +++ b/R/tm_g_lineplot.R @@ -195,7 +195,10 @@ template_g_lineplot <- function(dataname = "ANL", graph_list <- add_expr( graph_list, substitute( - expr = plot <- plot_call, + expr = { + plot <- plot_call + plot + }, env = list(plot_call = plot_call) ) ) From 444cd0b7869d33eb0ba882fe66f119c2a34590cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Fri, 29 Nov 2024 18:25:20 +0000 Subject: [PATCH 30/86] feat: add template for decorators parameter --- R/roxygen2_templates.R | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 R/roxygen2_templates.R diff --git a/R/roxygen2_templates.R b/R/roxygen2_templates.R new file mode 100644 index 000000000..4d96c6158 --- /dev/null +++ b/R/roxygen2_templates.R @@ -0,0 +1,15 @@ +# nocov start +roxygen_decorators_param <- function(module_name) { + paste( + sep = " ", + lifecycle::badge("experimental"), + " (`list` of `teal_transform_module`, named `list` of `teal_transform_module` or", + "`NULL`) optional, if not `NULL`, decorator for tables or plots included in the module.", + "When a named list of `teal_transform_module`, the decorators are applied to the", + "respective output objects.\n\n", + "Otherwise, the decorators are applied to all objects, which is equivalent as using the name `default`.\n\n", + sprintf("See section \"Decorating `%s`\"", module_name), + "below for more details." + ) +} +# nocov start From bb3ae23940f95b1393f06a23e9cda3f27e1c0b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Fri, 29 Nov 2024 18:32:05 +0000 Subject: [PATCH 31/86] chore: use decorators template instead of shared parameter --- R/argument_convention.R | 2 -- R/tm_a_gee.R | 1 + R/tm_g_ci.R | 1 + R/tm_g_forest_rsp.R | 1 + R/tm_g_forest_tte.R | 1 + R/tm_g_ipp.R | 1 + R/tm_g_pp_patient_timeline.R | 1 + R/tm_g_pp_therapy.R | 5 ++--- man/module_arguments.Rd | 3 --- man/tm_a_gee.Rd | 7 +++++-- man/tm_g_ci.Rd | 7 +++++-- man/tm_g_forest_rsp.Rd | 7 +++++-- man/tm_g_forest_tte.Rd | 7 +++++-- man/tm_g_ipp.Rd | 7 +++++-- man/tm_g_pp_patient_timeline.Rd | 7 +++++-- man/tm_g_pp_therapy.Rd | 7 +++++-- 16 files changed, 43 insertions(+), 22 deletions(-) diff --git a/R/argument_convention.R b/R/argument_convention.R index 81240958e..f9cbcfb96 100644 --- a/R/argument_convention.R +++ b/R/argument_convention.R @@ -203,8 +203,6 @@ NULL #' value indicating worst grade. #' @param worst_flag_var ([teal.transform::choices_selected()])\cr object #' with all available choices and preselected option for variable names that can be used as worst flag variable. -#' @param decorators `r lifecycle::badge("experimental")` (`list` of `teal_transform_module` or `NULL`) optional, -#' if not `NULL`, decorator for tables or plots included in the module. #' #' @return a `teal_module` object. #' diff --git a/R/tm_a_gee.R b/R/tm_a_gee.R index b164fec43..627e9c579 100644 --- a/R/tm_a_gee.R +++ b/R/tm_a_gee.R @@ -131,6 +131,7 @@ template_a_gee <- function(output_table, #' @inheritParams module_arguments #' @inheritParams template_arguments #' @inheritParams template_a_gee +#' @param decorators `r roxygen_decorators_param("tm_a_gee")` #' #' @inherit module_arguments return seealso #' diff --git a/R/tm_g_ci.R b/R/tm_g_ci.R index bc21c259c..6ac4cfd5e 100644 --- a/R/tm_g_ci.R +++ b/R/tm_g_ci.R @@ -185,6 +185,7 @@ template_g_ci <- function(dataname, #' @inheritParams module_arguments #' @inheritParams template_g_ci #' @param color (`data_extract_spec`)\cr the group variable used to determine the plot colors, shapes, and line types. +#' @param decorators `r roxygen_decorators_param("tm_g_ci")` #' #' @inherit module_arguments return seealso #' diff --git a/R/tm_g_forest_rsp.R b/R/tm_g_forest_rsp.R index 820505d83..43a511d96 100644 --- a/R/tm_g_forest_rsp.R +++ b/R/tm_g_forest_rsp.R @@ -240,6 +240,7 @@ template_forest_rsp <- function(dataname = "ANL", #' @inheritParams tern::g_forest #' @inheritParams module_arguments #' @inheritParams template_forest_rsp +#' @param decorators `r roxygen_decorators_param("tm_g_forest_rsp")` #' #' @inherit module_arguments return seealso #' diff --git a/R/tm_g_forest_tte.R b/R/tm_g_forest_tte.R index 34e14b274..81a59475f 100644 --- a/R/tm_g_forest_tte.R +++ b/R/tm_g_forest_tte.R @@ -240,6 +240,7 @@ template_forest_tte <- function(dataname = "ANL", #' @inheritParams tern::g_forest #' @inheritParams module_arguments #' @inheritParams template_forest_tte +#' @param decorators `r roxygen_decorators_param("tm_g_forest_tte")` #' #' @inherit module_arguments return seealso #' diff --git a/R/tm_g_ipp.R b/R/tm_g_ipp.R index e45959bb7..3e569e27c 100644 --- a/R/tm_g_ipp.R +++ b/R/tm_g_ipp.R @@ -176,6 +176,7 @@ template_g_ipp <- function(dataname = "ANL", #' @inheritParams template_g_ipp #' @param arm_var ([teal.transform::choices_selected()])\cr object with #' all available choices and preselected option for variable values that can be used as arm variable. +#' @param decorators `r roxygen_decorators_param("tm_g_ipp")` #' #' @inherit module_arguments return seealso #' diff --git a/R/tm_g_pp_patient_timeline.R b/R/tm_g_pp_patient_timeline.R index 663a10afd..099e6738b 100644 --- a/R/tm_g_pp_patient_timeline.R +++ b/R/tm_g_pp_patient_timeline.R @@ -352,6 +352,7 @@ template_patient_timeline <- function(dataname = "ANL", #' all available choices and preselected option for the `CMASTDTM` variable from `dataname_adcm`. #' @param dstime_end ([teal.transform::choices_selected()])\cr object with all #' available choices and preselected option for the `CMAENDTM` variable from `dataname_adcm`. +#' @param decorators `r roxygen_decorators_param("tm_")` #' #' @inherit module_arguments return #' diff --git a/R/tm_g_pp_therapy.R b/R/tm_g_pp_therapy.R index 2f8fac209..4b72df5d1 100644 --- a/R/tm_g_pp_therapy.R +++ b/R/tm_g_pp_therapy.R @@ -90,7 +90,6 @@ template_therapy <- function(dataname = "ANL", default_formatting = list(all = fmt_config(align = "left")) ) main_title(table) <- paste("Patient ID:", patient_id) - }, env = list( dataname = as.name(dataname), atirel = as.name(atirel), @@ -190,7 +189,6 @@ template_therapy <- function(dataname = "ANL", labs + ggtheme + theme - }, env = c( list( dataname = as.name(dataname), @@ -242,6 +240,7 @@ template_therapy <- function(dataname = "ANL", #' available choices and preselected option for the `CMDOSFRQ` variable from `dataname`. #' @param cmendy ([teal.transform::choices_selected()])\cr object with all #' available choices and preselected option for the `CMENDY` variable from `dataname`. +#' @param decorators `r roxygen_decorators_param("tm_g_pp_therapy")` #' #' @inherit module_arguments return #' @@ -400,7 +399,7 @@ tm_g_pp_therapy <- function(label, checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") decorators <- normalize_decorators(decorators) - assert_decorators(decorators, null.ok = TRUE, names = c('plot', 'table')) + assert_decorators(decorators, null.ok = TRUE, names = c("plot", "table")) args <- as.list(environment()) data_extract_list <- list( diff --git a/man/module_arguments.Rd b/man/module_arguments.Rd index d8d161b15..397fb160f 100644 --- a/man/module_arguments.Rd +++ b/man/module_arguments.Rd @@ -133,9 +133,6 @@ value indicating worst grade.} \item{worst_flag_var}{(\code{\link[teal.transform:choices_selected]{teal.transform::choices_selected()}})\cr object with all available choices and preselected option for variable names that can be used as worst flag variable.} - -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module.} } \value{ a \code{teal_module} object. diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index bd4eea70d..f69462a7e 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -71,8 +71,11 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module.} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_a_gee}" below for more details.} } \value{ a \code{teal_module} object. diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index 0495f52da..ddd272ff5 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -51,8 +51,11 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module.} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_ci}" below for more details.} } \value{ a \code{teal_module} object. diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index 301d2e9aa..814401616 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -115,8 +115,11 @@ merged with option \code{teal.ggplot2_args} and with default module arguments (h For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module.} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_forest_rsp}" below for more details.} } \value{ a \code{teal_module} object. diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index 28eb1bd0d..8e23d990e 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -116,8 +116,11 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module.} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_forest_tte}" below for more details.} } \value{ a \code{teal_module} object. diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 194cd9e4e..10fb62a13 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -94,8 +94,11 @@ body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module.} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_ipp}" below for more details.} } \value{ a \code{teal_module} object. diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 6047e0107..62c8d702a 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -89,8 +89,11 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module.} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_}" below for more details.} } \value{ a \code{teal_module} object. diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index 7ec959d29..9938b5547 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -86,8 +86,11 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module} or \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module.} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_pp_therapy}" below for more details.} } \value{ a \code{teal_module} object. From e1976b6e96f4addddff3eabc2a3df575308800c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Fri, 29 Nov 2024 18:33:05 +0000 Subject: [PATCH 32/86] chore: change order of null.ok --- R/tm_a_gee.R | 2 +- R/tm_g_ci.R | 2 +- R/tm_g_forest_rsp.R | 2 +- R/tm_g_forest_tte.R | 2 +- R/tm_g_ipp.R | 2 +- R/tm_g_pp_patient_timeline.R | 2 +- R/tm_g_pp_therapy.R | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/R/tm_a_gee.R b/R/tm_a_gee.R index 627e9c579..2a9bc87a2 100644 --- a/R/tm_a_gee.R +++ b/R/tm_a_gee.R @@ -228,7 +228,7 @@ tm_a_gee <- function(label, checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") decorators <- normalize_decorators(decorators) - assert_decorators(decorators, null.ok = TRUE, "table") + assert_decorators(decorators, "table", null.ok = TRUE) args <- as.list(environment()) diff --git a/R/tm_g_ci.R b/R/tm_g_ci.R index 6ac4cfd5e..a4979a8e1 100644 --- a/R/tm_g_ci.R +++ b/R/tm_g_ci.R @@ -303,7 +303,7 @@ tm_g_ci <- function(label, checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") decorators <- normalize_decorators(decorators) - assert_decorators(decorators, null.ok = TRUE, "plot") + assert_decorators(decorators, "plot", null.ok = TRUE) args <- as.list(environment()) diff --git a/R/tm_g_forest_rsp.R b/R/tm_g_forest_rsp.R index 43a511d96..e764ad453 100644 --- a/R/tm_g_forest_rsp.R +++ b/R/tm_g_forest_rsp.R @@ -392,7 +392,7 @@ tm_g_forest_rsp <- function(label, checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") decorators <- normalize_decorators(decorators) - assert_decorators(decorators, null.ok = TRUE, "plot") + assert_decorators(decorators, "plot", null.ok = TRUE) args <- as.list(environment()) diff --git a/R/tm_g_forest_tte.R b/R/tm_g_forest_tte.R index 81a59475f..dccde847a 100644 --- a/R/tm_g_forest_tte.R +++ b/R/tm_g_forest_tte.R @@ -378,7 +378,7 @@ tm_g_forest_tte <- function(label, checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") decorators <- normalize_decorators(decorators) - assert_decorators(decorators, null.ok = TRUE, "plot") + assert_decorators(decorators, "plot", null.ok = TRUE) args <- as.list(environment()) diff --git a/R/tm_g_ipp.R b/R/tm_g_ipp.R index 3e569e27c..ab673a20d 100644 --- a/R/tm_g_ipp.R +++ b/R/tm_g_ipp.R @@ -341,7 +341,7 @@ tm_g_ipp <- function(label, checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") decorators <- normalize_decorators(decorators) - assert_decorators(decorators, null.ok = TRUE, "plot") + assert_decorators(decorators, "plot", null.ok = TRUE) args <- as.list(environment()) data_extract_list <- list( diff --git a/R/tm_g_pp_patient_timeline.R b/R/tm_g_pp_patient_timeline.R index 099e6738b..ddf2511a0 100644 --- a/R/tm_g_pp_patient_timeline.R +++ b/R/tm_g_pp_patient_timeline.R @@ -498,7 +498,7 @@ tm_g_pp_patient_timeline <- function(label, lower = plot_width[2], upper = plot_width[3], null.ok = TRUE, .var.name = "plot_width" ) decorators <- normalize_decorators(decorators) - assert_decorators(decorators, null.ok = TRUE, "plot") + assert_decorators(decorators, "plot", null.ok = TRUE) xor_error_string <- function(x, y) { paste( diff --git a/R/tm_g_pp_therapy.R b/R/tm_g_pp_therapy.R index 4b72df5d1..7145474a9 100644 --- a/R/tm_g_pp_therapy.R +++ b/R/tm_g_pp_therapy.R @@ -399,7 +399,7 @@ tm_g_pp_therapy <- function(label, checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") decorators <- normalize_decorators(decorators) - assert_decorators(decorators, null.ok = TRUE, names = c("plot", "table")) + assert_decorators(decorators, names = c("plot", "table"), null.ok = TRUE) args <- as.list(environment()) data_extract_list <- list( From 3ae43d2fef2766cd5b72abf4d468426f78965296 Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Fri, 29 Nov 2024 21:20:53 +0100 Subject: [PATCH 33/86] introduce decorators for `tm_g_pp_vitals` (#1261) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADVS <- tmc_ex_advs }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADVS <- data[["ADVS"]] change_theme_decorator <- function(default_check = TRUE, .var_to_replace = "plot") { teal_transform_module( label = "Theme", server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::theme_void() }, env = list(.var_to_replace = as.name(.var_to_replace)) ) ) ) } app <- init( data = data, modules = modules( tm_g_pp_vitals( label = "Vitals", dataname = "ADVS", parentname = "ADSL", patient_col = "USUBJID", plot_height = c(600L, 200L, 2000L), paramcd = choices_selected( choices = variable_choices(ADVS, "PARAMCD"), selected = "PARAMCD" ), xaxis = choices_selected( choices = variable_choices(ADVS, "ADY"), selected = "ADY" ), aval_var = choices_selected( choices = variable_choices(ADVS, "AVAL"), selected = "AVAL" )#, #decorators = list(plot = change_theme_decorator(TRUE, "plot")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) }devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) library(dplyr) library(forcats) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADLB <- tmc_ex_adlb %>% mutate(AVISIT == fct_reorder(AVISIT, AVISITN, min)) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] change_theme_decorator <- function(default_check = TRUE, .var_to_replace = "plot") { teal_transform_module( label = "Theme", server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::theme_void() }, env = list(.var_to_replace = as.name(.var_to_replace)) ) ) ) } app <- init( data = data, modules = modules( tm_g_lineplot( label = "Line Plot", dataname = "ADLB", strata = choices_selected( variable_choices(ADSL, c("ARM", "ARMCD", "ACTARMCD")), "ARM" ), y = choices_selected( variable_choices(ADLB, c("AVAL", "BASE", "CHG", "PCHG")), "AVAL" ), param = choices_selected( value_choices(ADLB, "PARAMCD", "PARAM"), "ALT" ), decorators = list(plot = change_theme_decorator(TRUE, "plot")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_g_pp_vitals.R | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/R/tm_g_pp_vitals.R b/R/tm_g_pp_vitals.R index c19df3344..f84adb1d7 100644 --- a/R/tm_g_pp_vitals.R +++ b/R/tm_g_pp_vitals.R @@ -123,7 +123,7 @@ template_vitals <- function(dataname = "ANL", color = paramcd_levels_e ) - result_plot <- ggplot2::ggplot(data = vitals, mapping = ggplot2::aes(x = xaxis)) + # replaced VSDY + plot <- ggplot2::ggplot(data = vitals, mapping = ggplot2::aes(x = xaxis)) + # replaced VSDY ggplot2::geom_line( data = vitals, mapping = ggplot2::aes(y = aval_var, color = paramcd), @@ -172,8 +172,6 @@ template_vitals <- function(dataname = "ANL", labs + ggthemes + themes - - print(result_plot) }, env = list( dataname = as.name(dataname), @@ -211,6 +209,16 @@ template_vitals <- function(dataname = "ANL", #' #' @inherit module_arguments return #' +#' +#' @section Decorating `tm_g_pp_vitals`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -271,7 +279,8 @@ tm_g_pp_vitals <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { if (lifecycle::is_present(aval)) { aval_var <- aval warning( @@ -306,6 +315,8 @@ tm_g_pp_vitals <- function(label, checkmate::assert_multi_class(paramcd, c("choices_selected", "data_extract_spec"), null.ok = TRUE) checkmate::assert_multi_class(aval_var, c("choices_selected", "data_extract_spec"), null.ok = TRUE) checkmate::assert_multi_class(xaxis, c("choices_selected", "data_extract_spec"), null.ok = TRUE) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "plot") args <- as.list(environment()) data_extract_list <- list( @@ -328,7 +339,8 @@ tm_g_pp_vitals <- function(label, patient_col = patient_col, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = c(dataname, parentname) @@ -378,6 +390,7 @@ ui_g_vitals <- function(id, ...) { data_extract_spec = ui_args$aval_var, is_single_dataset = is_single_dataset_value ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(ui_args$decorators, "plot")), teal.widgets::panel_item( title = "Plot settings", collapsed = TRUE, @@ -409,7 +422,8 @@ srv_g_vitals <- function(id, plot_height, plot_width, label, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -553,7 +567,13 @@ srv_g_vitals <- function(id, teal.code::eval_code(as.expression(unlist(my_calls))) }) - plot_r <- reactive(all_q()[["result_plot"]]) + decorated_all_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + plot_r <- reactive(decorated_all_q()[["plot"]]) pws <- teal.widgets::plot_with_settings_srv( id = "vitals_plot", @@ -564,7 +584,7 @@ srv_g_vitals <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = label ) @@ -583,7 +603,7 @@ srv_g_vitals <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From d7b036e597826cb5aa4eef95f272dbcc3e5858ef Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Fri, 29 Nov 2024 21:21:32 +0100 Subject: [PATCH 34/86] introduce decorators for `tm_t_abnormality` (#1257) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal") devtools::load_all(".") insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADLB <- tmc_ex_adlb %>% mutate( ONTRTFL = case_when( AVISIT %in% c("SCREENING", "BASELINE") ~ "", TRUE ~ "Y" ) %>% with_label("On Treatment Record Flag") ) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] app <- init( data = data, modules = modules( tm_t_abnormality( label = "Abnormality Table", dataname = "ADLB", arm_var = choices_selected( choices = variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), add_total = FALSE, by_vars = choices_selected( choices = variable_choices(ADLB, subset = c("LBCAT", "PARAM", "AVISIT")), selected = c("LBCAT", "PARAM"), keep_order = TRUE ), baseline_var = choices_selected( variable_choices(ADLB, subset = "BNRIND"), selected = "BNRIND", fixed = TRUE ), grade = choices_selected( choices = variable_choices(ADLB, subset = "ANRIND"), selected = "ANRIND", fixed = TRUE ), abnormal = list(low = "LOW", high = "HIGH"), exclude_base_abn = FALSE, decorators = list(insert_rrow_decorator("I am a good new row")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Co-authored-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_t_abnormality.R | 37 +++++++++++++++++++++++++++++-------- man/tm_t_abnormality.Rd | 25 ++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/R/tm_t_abnormality.R b/R/tm_t_abnormality.R index fa24c9727..24bdfcb0d 100644 --- a/R/tm_t_abnormality.R +++ b/R/tm_t_abnormality.R @@ -211,9 +211,8 @@ template_abnormality <- function(parentname, y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) %>% + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) %>% rtables::prune_table() - result }, env = list(parent = as.name(parentname)) ) @@ -234,9 +233,18 @@ template_abnormality <- function(parentname, #' @param baseline_var ([teal.transform::choices_selected()])\cr #' variable for baseline abnormality grade. #' @param na_level (`character`)\cr the NA level in the input dataset, default to `""`. +#' @param decorators `r roxygen_decorators_param("tm_t_abnormality")` #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_t_abnormality`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`ElementaryTable` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @note Patients with the same abnormality at baseline as on the treatment visit can be #' excluded in accordance with GDSR specifications by using `exclude_base_abn`. #' @@ -330,7 +338,8 @@ tm_t_abnormality <- function(label, pre_output = NULL, post_output = NULL, na_level = default_na_str(), - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_abnormality") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -351,6 +360,8 @@ tm_t_abnormality <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "table", null.ok = TRUE) data_extract_list <- list( arm_var = cs_to_des_select(arm_var, dataname = parentname), @@ -378,7 +389,8 @@ tm_t_abnormality <- function(label, label = label, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -434,6 +446,7 @@ ui_t_abnormality <- function(id, ...) { "Exclude subjects whose baseline grade is the same as abnormal grade", value = a$exclude_base_abn ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional table settings", @@ -502,7 +515,8 @@ srv_t_abnormality <- function(id, drop_arm_levels, label, na_level, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -644,8 +658,15 @@ srv_t_abnormality <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -655,7 +676,7 @@ srv_t_abnormality <- function(id, # Render R code. teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -674,7 +695,7 @@ srv_t_abnormality <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index a1d061747..76c95da76 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -29,7 +29,8 @@ tm_t_abnormality( pre_output = NULL, post_output = NULL, na_level = default_na_str(), - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -89,6 +90,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_abnormality}" below for more details.} } \value{ a \code{teal_module} object. @@ -100,6 +107,18 @@ This module produces a table to summarize abnormality. Patients with the same abnormality at baseline as on the treatment visit can be excluded in accordance with GDSR specifications by using \code{exclude_base_abn}. } +\section{Decorating \code{tm_t_abnormality}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{ElementaryTable} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) @@ -162,8 +181,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From af7ecff24f686c3077896cbd1a9a4a40636eebe5 Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Fri, 29 Nov 2024 21:23:23 +0100 Subject: [PATCH 35/86] Introduce decorators for `tm_g_km` (#1254) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADTTE <- tmc_ex_adtte }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADTTE <- data[["ADTTE"]] arm_ref_comp <- list( ACTARMCD = list( ref = "ARM B", comp = c("ARM A", "ARM C") ), ARM = list( ref = "B: Placebo", comp = c("A: Drug X", "C: Combination") ) ) change_theme_decorator <- function(default_check = TRUE, .var_to_replace = "plot") { teal_transform_module( label = "Theme", server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::theme_void() }, env = list(.var_to_replace = as.name(.var_to_replace)) ) ) ) } app <- init( data = data, modules = modules( tm_g_km( label = "Kaplan-Meier Plot", dataname = "ADTTE", arm_var = choices_selected( variable_choices(ADSL, c("ARM", "ARMCD", "ACTARMCD")), "ARM" ), paramcd = choices_selected( value_choices(ADTTE, "PARAMCD", "PARAM"), "OS" ), arm_ref_comp = arm_ref_comp, strata_var = choices_selected( variable_choices(ADSL, c("SEX", "BMRKR2")), "SEX" ), facet_var = choices_selected( variable_choices(ADSL, c("SEX", "BMRKR2")), NULL ), decorators = list(plot = change_theme_decorator(TRUE, "plot")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_g_km.R | 35 ++++++++++++++++++++++++++++------- man/tm_g_km.Rd | 21 ++++++++++++++++++++- 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/R/tm_g_km.R b/R/tm_g_km.R index 861baab81..6c7745d6c 100644 --- a/R/tm_g_km.R +++ b/R/tm_g_km.R @@ -230,7 +230,6 @@ template_g_km <- function(dataname = "ANL", plotlist = plot_list, ncol = 1 ) - plot }, env = list( facet_var = if (length(facet_var) != 0L) as.name(facet_var), @@ -268,9 +267,19 @@ template_g_km <- function(dataname = "ANL", #' @inheritParams template_g_km #' @param facet_var ([teal.transform::choices_selected()])\cr object with #' all available choices and preselected option for names of variable that can be used for plot faceting. +#' @param decorators `r roxygen_decorators_param("tm_g_km")` #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_g_km`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -364,7 +373,8 @@ tm_g_km <- function(label, plot_height = c(800L, 400L, 5000L), plot_width = NULL, pre_output = NULL, - post_output = NULL) { + post_output = NULL, + decorators = NULL) { message("Initializing tm_g_km") checkmate::assert_string(label) @@ -387,6 +397,8 @@ tm_g_km <- function(label, ) checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "plot", null.ok = TRUE) args <- as.list(environment()) data_extract_list <- list( @@ -415,7 +427,8 @@ tm_g_km <- function(label, plot_width = plot_width, control_annot_surv_med = control_annot_surv_med, control_annot_coxph = control_annot_coxph, - legend_pos = legend_pos + legend_pos = legend_pos, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -512,6 +525,7 @@ ui_g_km <- function(id, ...) { ) ) ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "plot")), conditionalPanel( condition = paste0("input['", ns("compare_arms"), "']"), teal.widgets::panel_group( @@ -635,7 +649,8 @@ srv_g_km <- function(id, plot_width, control_annot_surv_med, control_annot_coxph, - legend_pos) { + legend_pos, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -809,7 +824,13 @@ srv_g_km <- function(id, teal.code::eval_code(anl_q(), as.expression(unlist(my_calls))) }) - plot_r <- reactive(all_q()[["plot"]]) + decorated_all_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + plot_r <- reactive(decorated_all_q()[["plot"]]) # Insert the plot into a plot with settings module from teal.widgets pws <- teal.widgets::plot_with_settings_srv( @@ -821,7 +842,7 @@ srv_g_km <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = label ) @@ -841,7 +862,7 @@ srv_g_km <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index 02308139e..67f6e17dc 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -31,7 +31,8 @@ tm_g_km( plot_height = c(800L, 400L, 5000L), plot_width = NULL, pre_output = NULL, - post_output = NULL + post_output = NULL, + decorators = NULL ) } \arguments{ @@ -101,6 +102,12 @@ For example a title.} \item{post_output}{(\code{shiny.tag}) optional,\cr with text placed after the output to put the output into context. For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are useful.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_km}" below for more details.} } \value{ a \code{teal_module} object. @@ -108,6 +115,18 @@ a \code{teal_module} object. \description{ This module produces a \code{ggplot}-style Kaplan-Meier plot for data with ADaM structure. } +\section{Decorating \code{tm_g_km}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) From 078fc5143aadb034bb891530c5adb99b2d190501 Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Fri, 29 Nov 2024 21:23:46 +0100 Subject: [PATCH 36/86] Introduce decorators for `tm_g_lineplot` (#1255) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) library(dplyr) library(forcats) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADLB <- tmc_ex_adlb %>% mutate(AVISIT == fct_reorder(AVISIT, AVISITN, min)) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] change_theme_decorator <- function(default_check = TRUE, .var_to_replace = "plot") { teal_transform_module( label = "Theme", server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::theme_void() }, env = list(.var_to_replace = as.name(.var_to_replace)) ) ) ) } app <- init( data = data, modules = modules( tm_g_lineplot( label = "Line Plot", dataname = "ADLB", strata = choices_selected( variable_choices(ADSL, c("ARM", "ARMCD", "ACTARMCD")), "ARM" ), y = choices_selected( variable_choices(ADLB, c("AVAL", "BASE", "CHG", "PCHG")), "AVAL" ), param = choices_selected( value_choices(ADLB, "PARAMCD", "PARAM"), "ALT" ), decorators = list(plot = change_theme_decorator(TRUE, "plot")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Signed-off-by: Marcin <133694481+m7pr@users.noreply.github.com> Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_g_lineplot.R | 39 +++++++++++++++++++++++++++++---------- man/tm_g_lineplot.Rd | 21 ++++++++++++++++++++- 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/R/tm_g_lineplot.R b/R/tm_g_lineplot.R index bcaa321eb..f9950344c 100644 --- a/R/tm_g_lineplot.R +++ b/R/tm_g_lineplot.R @@ -195,10 +195,7 @@ template_g_lineplot <- function(dataname = "ANL", graph_list <- add_expr( graph_list, substitute( - expr = { - plot <- plot_call - plot - }, + expr = plot <- plot_call, env = list(plot_call = plot_call) ) ) @@ -214,9 +211,18 @@ template_g_lineplot <- function(dataname = "ANL", #' #' @inheritParams module_arguments #' @inheritParams template_g_lineplot +#' @param decorators `r roxygen_decorators_param("tm_g_lineplot")` #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_g_lineplot`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -301,7 +307,8 @@ tm_g_lineplot <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { if (lifecycle::is_present(strata)) { warning( "The `strata` argument of `tm_g_lineplot()` is deprecated as of teal.modules.clinical 0.9.1. ", @@ -341,6 +348,9 @@ tm_g_lineplot <- function(label, checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "plot", null.ok = TRUE) + args <- as.list(environment()) data_extract_list <- list( group_var = cs_to_des_select(group_var, dataname = parentname), @@ -364,7 +374,8 @@ tm_g_lineplot <- function(label, parentname = parentname, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -446,6 +457,7 @@ ui_g_lineplot <- function(id, ...) { "Include screening visit", value = TRUE ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "plot")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional plot settings", @@ -543,7 +555,8 @@ srv_g_lineplot <- function(id, label, plot_height, plot_width, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -658,7 +671,13 @@ srv_g_lineplot <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) - plot_r <- reactive(all_q()[["plot"]]) + decorated_all_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + plot_r <- reactive(decorated_all_q()[["plot"]]) # Insert the plot into a plot with settings module from teal.widgets pws <- teal.widgets::plot_with_settings_srv( @@ -670,7 +689,7 @@ srv_g_lineplot <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = label ) @@ -689,7 +708,7 @@ srv_g_lineplot <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_g_lineplot.Rd b/man/tm_g_lineplot.Rd index 84504eb8d..75b9a6329 100644 --- a/man/tm_g_lineplot.Rd +++ b/man/tm_g_lineplot.Rd @@ -35,7 +35,8 @@ tm_g_lineplot( plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -106,6 +107,12 @@ account. The argument is merged with option \code{teal.ggplot2_args} and with de the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_lineplot}" below for more details.} } \value{ a \code{teal_module} object. @@ -113,6 +120,18 @@ a \code{teal_module} object. \description{ This module produces a \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type line plot, with optional summary table, for standard ADaM data. } +\section{Decorating \code{tm_g_lineplot}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) library(dplyr) From dab7f4eba14a6ec936d2641d598bf21e3b58b6b8 Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Fri, 29 Nov 2024 21:26:46 +0100 Subject: [PATCH 37/86] introduce decorators for `tm_t_ancova` (#1256) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal") devtools::load_all(".") insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADQS <- tmc_ex_adqs }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADQS <- data[["ADQS"]] arm_ref_comp <- list( ARM = list( ref = "B: Placebo", comp = c("A: Drug X", "C: Combination") ), ACTARMCD = list( ref = "ARM B", comp = c("ARM A", "ARM C") ) ) app <- init( data = data, modules = modules( tm_t_ancova( label = "ANCOVA Table", dataname = "ADQS", avisit = choices_selected( choices = value_choices(ADQS, "AVISIT"), selected = "WEEK 1 DAY 8" ), arm_var = choices_selected( choices = variable_choices(ADSL, c("ARM", "ACTARMCD", "ARMCD")), selected = "ARMCD" ), arm_ref_comp = arm_ref_comp, aval_var = choices_selected( choices = variable_choices(ADQS, c("CHG", "AVAL")), selected = "CHG" ), cov_var = choices_selected( choices = variable_choices(ADQS, c("BASE", "STRATA1", "SEX")), selected = "STRATA1" ), paramcd = choices_selected( choices = value_choices(ADQS, "PARAMCD", "PARAM"), selected = "FKSI-FWB" ), interact_var = choices_selected( choices = variable_choices(ADQS, c("BASE", "STRATA1", "SEX")), selected = "STRATA1" ), decorators = list(insert_rrow_decorator("I am a good new row")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> Co-authored-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> --- R/tm_t_ancova.R | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/R/tm_t_ancova.R b/R/tm_t_ancova.R index 9a5efebc0..20743cddd 100644 --- a/R/tm_t_ancova.R +++ b/R/tm_t_ancova.R @@ -401,8 +401,7 @@ template_ancova <- function(dataname = "ANL", # Build table. y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) }, env = list( anl = as.name(dataname), @@ -425,6 +424,14 @@ template_ancova <- function(dataname = "ANL", #' #' @inherit module_arguments return #' +#' @section Decorating `tm_t_ancova`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`ElementaryTable` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @details #' When a single endpoint is selected, both unadjusted and adjusted comparison are provided. This modules #' expects that the analysis data has the following variables: @@ -520,7 +527,8 @@ tm_t_ancova <- function(label, conf_level = teal.transform::choices_selected(c(0.95, 0.9, 0.8), 0.95, keep_order = TRUE), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_ancova") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -534,6 +542,8 @@ tm_t_ancova <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- c(as.list(environment())) @@ -566,7 +576,8 @@ tm_t_ancova <- function(label, arm_ref_comp = arm_ref_comp, include_interact = include_interact, label = label, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -666,7 +677,8 @@ ui_ancova <- function(id, ...) { fixed = FALSE ) ) - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")) ) ), forms = tagList( @@ -693,7 +705,8 @@ srv_ancova <- function(id, paramcd, avisit, label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -940,9 +953,16 @@ srv_ancova <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = table_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Output to render. table_r <- reactive({ - table_q()[["result"]] + decorated_table_q()[["table"]] }) teal.widgets::table_with_settings_srv( @@ -953,7 +973,7 @@ srv_ancova <- function(id, # Render R code. teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(table_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -973,7 +993,7 @@ srv_ancova <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(table_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From e3bc080be10444d58de759aa44693119dd02d785 Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Fri, 29 Nov 2024 21:27:01 +0100 Subject: [PATCH 38/86] introduce decorators for `tm_t_abnormality_by_worst_grade` (#1260) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r devtools::load_all("../teal") devtools::load_all(".") insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADLB <- tmc_ex_adlb %>% filter(!AVISIT %in% c("SCREENING", "BASELINE")) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] app <- init( data = data, modules = modules( tm_t_abnormality_by_worst_grade( label = "Laboratory Test Results with Highest Grade Post-Baseline", dataname = "ADLB", arm_var = choices_selected( choices = variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), paramcd = choices_selected( choices = value_choices(ADLB, "PARAMCD", "PARAM"), selected = c("ALT", "CRP", "IGA") ), add_total = FALSE, decorators = list(insert_rrow_decorator("I am a good new row")) ) ), filter = teal_slices( teal_slice("ADSL", "SAFFL", selected = "Y"), teal_slice("ADLB", "ONTRTFL", selected = "Y") ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Co-authored-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> --- R/tm_t_abnormality_by_worst_grade.R | 36 ++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/R/tm_t_abnormality_by_worst_grade.R b/R/tm_t_abnormality_by_worst_grade.R index 979f7ea58..fc0740c93 100644 --- a/R/tm_t_abnormality_by_worst_grade.R +++ b/R/tm_t_abnormality_by_worst_grade.R @@ -221,8 +221,7 @@ template_abnormality_by_worst_grade <- function(parentname, # nolint: object_len y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) }, env = list(parent = as.name(parentname)) ) @@ -249,6 +248,14 @@ template_abnormality_by_worst_grade <- function(parentname, # nolint: object_len #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_t_abnormality_by_worst_grade`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`ElementaryTable` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @export #' #' @examplesShinylive @@ -339,7 +346,8 @@ tm_t_abnormality_by_worst_grade <- function(label, # nolint: object_length. drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_abnormality_by_worst_grade") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -355,6 +363,8 @@ tm_t_abnormality_by_worst_grade <- function(label, # nolint: object_length. checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") data_extract_list <- list( arm_var = cs_to_des_select(arm_var, dataname = parentname), @@ -380,7 +390,8 @@ tm_t_abnormality_by_worst_grade <- function(label, # nolint: object_length. label = label, worst_flag_indicator = worst_flag_indicator, total_label = total_label, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -452,6 +463,7 @@ ui_t_abnormality_by_worst_grade <- function(id, ...) { # nolint: object_length. data_extract_spec = a$worst_high_flag_var, is_single_dataset = is_single_dataset_value ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional table settings", @@ -501,7 +513,8 @@ srv_t_abnormality_by_worst_grade <- function(id, # nolint: object_length. total_label, drop_arm_levels, label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -664,8 +677,15 @@ srv_t_abnormality_by_worst_grade <- function(id, # nolint: object_length. teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -675,7 +695,7 @@ srv_t_abnormality_by_worst_grade <- function(id, # nolint: object_length. # Render R code. teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -695,7 +715,7 @@ srv_t_abnormality_by_worst_grade <- function(id, # nolint: object_length. card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 69659e7df1a227431342b4cb361739bc15cdda47 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 20:33:16 +0000 Subject: [PATCH 39/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_g_pp_vitals.Rd | 15 ++++++++++++++- man/tm_t_abnormality.Rd | 4 ++-- man/tm_t_abnormality_by_worst_grade.Rd | 15 ++++++++++++++- man/tm_t_ancova.Rd | 15 ++++++++++++++- 4 files changed, 44 insertions(+), 5 deletions(-) diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index e4562143c..91de739d5 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -18,7 +18,8 @@ tm_g_pp_vitals( plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -70,6 +71,18 @@ This module produces a patient profile vitals \code{\link[ggplot2:ggplot]{ggplot This plot supports horizontal lines for the following 6 \code{PARAMCD} levels when they are present in \code{dataname}: \code{"SYSBP"}, \code{"DIABP"}, \code{"TEMP"}, \code{"RESP"}, \code{"OXYSAT"}. } +\section{Decorating \code{tm_g_pp_vitals}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index 76c95da76..adfd7b3e1 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -181,8 +181,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index 555ecc0f8..eebea1eab 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -28,7 +28,8 @@ tm_t_abnormality_by_worst_grade( drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -90,6 +91,18 @@ a \code{teal_module} object. \description{ This module produces a table to summarize laboratory test results with highest grade post-baseline } +\section{Decorating \code{tm_t_abnormality_by_worst_grade}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{ElementaryTable} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 82c76ee1c..1d2043ae6 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -22,7 +22,8 @@ tm_t_ancova( TRUE), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -94,6 +95,18 @@ expects that the analysis data has the following variables: observation per patient is expected for the analysis to be meaningful. } } +\section{Decorating \code{tm_t_ancova}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{ElementaryTable} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From 132c4e6b14c3cadfb88327598b0b4025e348798d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 3 Dec 2024 14:55:52 +0000 Subject: [PATCH 40/86] fix: remove teal-only function --- R/utils.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/utils.R b/R/utils.R index a1658919d..05a2c7333 100644 --- a/R/utils.R +++ b/R/utils.R @@ -962,7 +962,7 @@ interactive <- NULL #' #' @keywords internal srv_decorate_teal_data <- function(id, data, decorators, expr, expr_is_reactive = FALSE) { - assert_reactive(data) + checkmate::assert_class(data, classes = "reactive") checkmate::assert_list(decorators, "teal_transform_module") checkmate::assert_flag(expr_is_reactive) From 070e12974d8eaa54435f56f6a94583d593a26142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:27:32 +0100 Subject: [PATCH 41/86] Include decorators for `tm_t_events_summary` (#1278) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Example with decorator ```r pkgload::load_all("./tern", export_all = FALSE) pkgload::load_all("../teal", export_all = FALSE) pkgload::load_all(".", export_all = FALSE) library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl %>% mutate( DTHFL = case_when( !is.na(DTHDT) ~ "Y", TRUE ~ "" ) %>% with_label("Subject Death Flag") ) ADAE <- tmc_ex_adae .add_event_flags <- function(dat) { dat <- dat %>% mutate( TMPFL_SER = AESER == "Y", TMPFL_REL = AEREL == "Y", TMPFL_GR5 = AETOXGR == "5", TMP_SMQ01 = !is.na(SMQ01NAM), TMP_SMQ02 = !is.na(SMQ02NAM), TMP_CQ01 = !is.na(CQ01NAM) ) column_labels <- list( TMPFL_SER = "Serious AE", TMPFL_REL = "Related AE", TMPFL_GR5 = "Grade 5 AE", TMP_SMQ01 = aesi_label(dat[["SMQ01NAM"]], dat[["SMQ01SC"]]), TMP_SMQ02 = aesi_label("Y.9.9.9.9/Z.9.9.9.9 AESI"), TMP_CQ01 = aesi_label(dat[["CQ01NAM"]]) ) col_labels(dat)[names(column_labels)] <- as.character(column_labels) dat } #' Generating user-defined event flags. ADAE <- ADAE %>% .add_event_flags() .ae_anl_vars <- names(ADAE)[startsWith(names(ADAE), "TMPFL_")] .aesi_vars <- names(ADAE)[startsWith(names(ADAE), "TMP_")] }) join_keys(data) <- default_cdisc_join_keys[names(data)] insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } app <- init( data = data, modules = modules( tm_t_events_summary( label = "Adverse Events Summary", dataname = "ADAE", arm_var = choices_selected( choices = variable_choices("ADSL", c("ARM", "ARMCD")), selected = "ARM" ), flag_var_anl = choices_selected( choices = variable_choices("ADAE", data[[".ae_anl_vars"]]), selected = data[[".ae_anl_vars"]][1], keep_order = TRUE, fixed = FALSE ), flag_var_aesi = choices_selected( choices = variable_choices("ADAE", data[[".aesi_vars"]]), selected = data[[".aesi_vars"]][1], keep_order = TRUE, fixed = FALSE ), add_total = TRUE, decorators = list(insert_rrow_decorator()) ) ) ) shinyApp(app$ui, app$server) ```
--------- Signed-off-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_t_events_summary.R | 68 ++++++++++++++++++++++++++++------------- 1 file changed, 46 insertions(+), 22 deletions(-) diff --git a/R/tm_t_events_summary.R b/R/tm_t_events_summary.R index 49709bbee..d392bdbda 100644 --- a/R/tm_t_events_summary.R +++ b/R/tm_t_events_summary.R @@ -244,7 +244,7 @@ template_events_summary <- function(anl_name, table_parent_list <- add_expr( table_parent_list, substitute( - expr = result_parent <- rtables::build_table(lyt = lyt_parent, df = df_parent, alt_counts_df = df_parent), + expr = table_parent <- rtables::build_table(lyt = lyt_parent, df = df_parent, alt_counts_df = df_parent), env = list(df_parent = as.name(parentname)) ) ) @@ -310,7 +310,7 @@ template_events_summary <- function(anl_name, table_anl_list <- add_expr( table_anl_list, substitute( - expr = result_anl <- rtables::build_table(lyt = lyt_anl, df = anl, alt_counts_df = df_parent), + expr = table_anl <- rtables::build_table(lyt = lyt_anl, df = anl, alt_counts_df = df_parent), env = list(df_parent = as.name(parentname)) ) ) @@ -444,7 +444,7 @@ template_events_summary <- function(anl_name, table_list <- add_expr( table_list, quote( - rtables::col_info(result_parent) <- rtables::col_info(result_anl) + rtables::col_info(table_parent) <- rtables::col_info(table_anl) ) ) @@ -461,10 +461,10 @@ template_events_summary <- function(anl_name, table_list <- add_expr( table_list, quote( - expr = result <- rtables::rbind( - result_anl[1:2, ], - result_parent, - result_anl[3:nrow(result_anl), ] + expr = table <- rtables::rbind( + table_anl[1:2, ], + table_parent, + table_anl[3:nrow(table_anl), ] ) ) ) @@ -472,9 +472,9 @@ template_events_summary <- function(anl_name, table_list <- add_expr( table_list, quote( - expr = result <- rtables::rbind( - result_anl[1:2, ], - result_anl[3:nrow(result_anl), ] + expr = table <- rtables::rbind( + table_anl[1:2, ], + table_anl[3:nrow(table_anl), ] ) ) ) @@ -482,7 +482,7 @@ template_events_summary <- function(anl_name, table_list <- add_expr( table_list, quote( - result <- rtables::rbind(result_anl, result_parent) + table <- rtables::rbind(table_anl, table_parent) ) ) } @@ -522,6 +522,17 @@ template_events_summary <- function(anl_name, #' #' @inherit module_arguments return seealso #' +#' @param decorators `r roxygen_decorators_param("tm_t_events_summary")` +#' +#' +#' @section Decorating `tm_t_events_summary`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` as created from `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -638,7 +649,8 @@ tm_t_events_summary <- function(label, count_events = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_events_summary") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -661,6 +673,8 @@ tm_t_events_summary <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "table", null.ok = TRUE) args <- c(as.list(environment())) @@ -695,7 +709,8 @@ tm_t_events_summary <- function(label, label = label, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -758,6 +773,7 @@ ui_t_events_summary <- function(id, ...) { "Add All Patients column", value = a$add_total ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_item( "Table Settings", checkboxInput( @@ -841,7 +857,8 @@ srv_t_events_summary <- function(id, label, total_label, na_level, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -990,11 +1007,10 @@ srv_t_events_summary <- function(id, teal.code::eval_code( substitute( expr = { - rtables::main_title(result) <- title - rtables::main_footer(result) <- footer - rtables::prov_footer(result) <- p_footer - rtables::subtitles(result) <- subtitle - result + rtables::main_title(table) <- title + rtables::main_footer(table) <- footer + rtables::prov_footer(table) <- p_footer + rtables::subtitles(table) <- subtitle }, env = list( title = `if`(is.null(all_basic_table_args$title), label, all_basic_table_args$title), footer = `if`(is.null(all_basic_table_args$main_footer), "", all_basic_table_args$main_footer), @@ -1006,7 +1022,15 @@ srv_t_events_summary <- function(id, }) # Outputs to render. - table_r <- reactive(table_q()[["result"]]) + + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = table_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -1015,7 +1039,7 @@ srv_t_events_summary <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(table_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -1034,7 +1058,7 @@ srv_t_events_summary <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(table_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 6ddb425717664dbe28c7ac30f6654ca1da5696ad Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 11:37:32 +0000 Subject: [PATCH 42/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_t_events_summary.Rd | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index 8aeca58dc..47215d489 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -32,7 +32,8 @@ tm_t_events_summary( count_events = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -105,6 +106,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_events_summary}" below for more details.} } \value{ a \code{teal_module} object. @@ -112,6 +119,18 @@ a \code{teal_module} object. \description{ This module produces an adverse events summary table. } +\section{Decorating \code{tm_t_events_summary}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} as created from \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) From 37e42a207c40ef1df3d27902459d4bce362cb9db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:39:40 +0100 Subject: [PATCH 43/86] Introduce decorators for `tm_t_coxreg` (#1274) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Example with decorator ```r load_all("../teal.code") load_all("../teal.data") load_all("../teal") load_all(".") arm_ref_comp <- list( ACTARMCD = list( ref = "ARM B", comp = c("ARM A", "ARM C") ), ARM = list( ref = "B: Placebo", comp = c("A: Drug X", "C: Combination") ) ) insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- within(teal_data(), { ADSL <- tmc_ex_adsl ADTTE <- tmc_ex_adtte }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADTTE <- data[["ADTTE"]] app <- init( data = data, modules = modules( tm_t_coxreg( label = "Cox Reg.", dataname = "ADTTE", arm_var = choices_selected(c("ARM", "ARMCD", "ACTARMCD"), "ARM"), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( value_choices(ADTTE, "PARAMCD", "PARAM"), "OS" ), strata_var = choices_selected( c("COUNTRY", "STRATA1", "STRATA2"), "STRATA1" ), cov_var = choices_selected( c("AGE", "BMRKR1", "BMRKR2", "REGION1"), "AGE" ), multivariate = TRUE, decorators = list(insert_rrow_decorator()) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ## Second example library(dplyr) data <- teal_data() data <- within(data, { ADTTE <- data.frame( STUDYID = "LUNG", AVAL = c(4, 3, 1, 1, 2, 2, 3, 1, 2), CNSR = c(1, 1, 1, 0, 1, 1, 0, 0, 0), ARMCD = factor( c(0, 1, 1, 1, 1, 0, 0, 0, 0), labels = c("ARM A", "ARM B") ), SEX = factor( c(0, 0, 0, 0, 1, 1, 1, 1, 1), labels = c("F", "M") ), INST = factor(c("A", "A", "B", "B", "A", "B", "A", "B", "A")), stringsAsFactors = FALSE ) ADTTE <- rbind(ADTTE, ADTTE, ADTTE, ADTTE) ADTTE <- as_tibble(ADTTE) set.seed(1) ADTTE$INST <- sample(ADTTE$INST) ADTTE$AGE <- sample(seq(5, 75, 5), size = nrow(ADTTE), replace = TRUE) ADTTE$USUBJID <- paste("sub", 1:nrow(ADTTE), ADTTE$INST, sep = "-") ADTTE$PARAM <- ADTTE$PARAMCD <- "OS" ADSL <- subset( ADTTE, select = c("USUBJID", "STUDYID", "ARMCD", "SEX", "INST", "AGE") ) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADTTE <- data[["ADTTE"]] ## `teal` application ## ---------------- ## Note that the R code exported by `Show R Code` does not include the data ## pre-processing. You will need to create the dataset as above before ## running the exported R code. arm_ref_comp <- list(ARMCD = list(ref = "ARM A", comp = c("ARM B"))) app <- init( data = data, modules = modules( tm_t_coxreg( label = "Cox Reg.", dataname = "ADTTE", arm_var = choices_selected(c("ARMCD"), "ARMCD"), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( value_choices(ADTTE, "PARAMCD", "PARAM"), "OS" ), strata_var = choices_selected(c("INST"), NULL), cov_var = choices_selected(c("SEX", "AGE"), "SEX"), multivariate = TRUE, decorators = list(insert_rrow_decorator()) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Signed-off-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_t_coxreg.R | 52 +++++++++++++++++++++++++++++++++------------- man/tm_t_coxreg.Rd | 21 ++++++++++++++++++- 2 files changed, 57 insertions(+), 16 deletions(-) diff --git a/R/tm_t_coxreg.R b/R/tm_t_coxreg.R index 4df6ea848..0f0389e55 100644 --- a/R/tm_t_coxreg.R +++ b/R/tm_t_coxreg.R @@ -161,9 +161,9 @@ template_coxreg_u <- function(dataname, ) y$table <- if (append) { - quote(result <- c(result, rtables::build_table(lyt = lyt, df = anl))) + quote(table <- c(table, rtables::build_table(lyt = lyt, df = anl))) } else { - quote(result <- rtables::build_table(lyt = lyt, df = anl)) + quote(table <- rtables::build_table(lyt = lyt, df = anl)) } y @@ -318,8 +318,7 @@ template_coxreg_m <- function(dataname, ) y$table <- quote({ - result <- rtables::build_table(lyt = lyt, df = anl) - result + table <- rtables::build_table(lyt = lyt, df = anl) }) y @@ -337,6 +336,7 @@ template_coxreg_m <- function(dataname, #' @inheritParams template_coxreg_m #' @param multivariate (`logical`)\cr if `FALSE`, the univariable approach is used instead of the #' multi-variable model. +#' @param decorators `r roxygen_decorators_param("tm_t_coxreg")` #' #' @details #' The Cox Proportional Hazards (PH) model is the most commonly used method to @@ -361,6 +361,14 @@ template_coxreg_m <- function(dataname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_t_coxreg`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` as created from `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -520,7 +528,8 @@ tm_t_coxreg <- function(label, conf_level = teal.transform::choices_selected(c(0.95, 0.9, 0.8), 0.95, keep_order = TRUE), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_coxreg") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -536,6 +545,8 @@ tm_t_coxreg <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "table", null.ok = TRUE) args <- as.list(environment()) @@ -561,7 +572,8 @@ tm_t_coxreg <- function(label, parentname = parentname, label = label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -694,7 +706,8 @@ ui_t_coxreg <- function(id, ...) { fixed = a$conf_level$fixed ) ) - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")) ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -720,7 +733,8 @@ srv_t_coxreg <- function(id, arm_ref_comp, label, na_level, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -831,10 +845,7 @@ srv_t_coxreg <- function(id, merge_function = "dplyr::inner_join" ) - anl_q <- reactive({ - data() %>% - teal.code::eval_code(as.expression(anl_inputs()$expr)) - }) + anl_q <- reactive(teal.code::eval_code(data(), as.expression(anl_inputs()$expr))) merged <- list( anl_input_r = anl_inputs, @@ -1080,7 +1091,18 @@ srv_t_coxreg <- function(id, } }) - table_r <- reactive(all_q()[["result"]]) + + + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + + # Outputs to render. + table_r <- reactive({ + decorated_table_q()[["table"]]}) teal.widgets::table_with_settings_srv( id = "table", @@ -1089,7 +1111,7 @@ srv_t_coxreg <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = "R Code for the Current (Multi-Variable) Cox proportional hazard regression model" ) @@ -1108,7 +1130,7 @@ srv_t_coxreg <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index ab7fac86e..84e31e892 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -24,7 +24,8 @@ tm_t_coxreg( TRUE), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -79,6 +80,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_coxreg}" below for more details.} } \value{ a \code{teal_module} object. @@ -113,6 +120,18 @@ test will be substituted in these cases. \item Multi-variable is the default choice for backward compatibility. } } +\section{Decorating \code{tm_t_coxreg}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} as created from \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ ## First example ## ============= From 28ba4c4be23d9c5fca3cd3150564c47d9864f1e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:43:54 +0100 Subject: [PATCH 44/86] Introduce decorator for `tm_t_events_patyear` (#1277) Part of https://github.com/insightsengineering/teal/issues/1371
Example with decorator ```r devtools::load_all("../tern") devtools::load_all("../teal") devtools::load_all(".") library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADAETTE <- tmc_ex_adaette %>% filter(PARAMCD %in% c("AETTE1", "AETTE2", "AETTE3")) %>% mutate(is_event = CNSR == 0) %>% mutate(n_events = as.integer(is_event)) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADAETTE <- data[["ADAETTE"]] insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } # 1. Basic Example app <- init( data = data, modules = modules( tm_t_events_patyear( label = "AE Rate Adjusted for Patient-Years At Risk Table", dataname = "ADAETTE", arm_var = choices_selected( choices = variable_choices(ADSL, c("ARM", "ARMCD")), selected = "ARMCD" ), add_total = TRUE, events_var = choices_selected( choices = variable_choices(ADAETTE, "n_events"), selected = "n_events", fixed = TRUE ), paramcd = choices_selected( choices = value_choices(ADAETTE, "PARAMCD", "PARAM"), selected = "AETTE1" ), decorators = list(insert_rrow_decorator()) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--- R/tm_t_events_patyear.R | 41 ++++++++++++++++++++++++++++---------- man/tm_t_events_patyear.Rd | 21 ++++++++++++++++++- 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/R/tm_t_events_patyear.R b/R/tm_t_events_patyear.R index 301cae730..6aa2bfdcc 100644 --- a/R/tm_t_events_patyear.R +++ b/R/tm_t_events_patyear.R @@ -168,8 +168,7 @@ template_events_patyear <- function(dataname, # table y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) }, env = list(parent = as.name(parentname)) ) @@ -190,9 +189,19 @@ template_events_patyear <- function(dataname, #' second variable will be nested under the first variable. #' @param events_var ([teal.transform::choices_selected()])\cr object with #' all available choices and preselected option for the variable with all event counts. +#' @param decorators `r roxygen_decorators_param("tm_t_events_patyear")` #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_t_events_patyear`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` as created from `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' +#' #' @examples #' library(dplyr) #' @@ -310,7 +319,8 @@ tm_t_events_patyear <- function(label, drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_events_patyear") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -328,6 +338,8 @@ tm_t_events_patyear <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "table", null.ok = TRUE) args <- c(as.list(environment())) @@ -352,7 +364,8 @@ tm_t_events_patyear <- function(label, label = label, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -422,6 +435,7 @@ ui_events_patyear <- function(id, ...) { multiple = FALSE, fixed = FALSE ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional table settings", @@ -473,7 +487,8 @@ srv_events_patyear <- function(id, na_level, drop_arm_levels, label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -627,10 +642,16 @@ srv_events_patyear <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = table_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive({ - table_q()[["result"]] - }) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "patyear_table", @@ -640,7 +661,7 @@ srv_events_patyear <- function(id, # Render R code. teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(table_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -659,7 +680,7 @@ srv_events_patyear <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(table_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index d5a2b8702..df2907006 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -24,7 +24,8 @@ tm_t_events_patyear( drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -80,6 +81,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_events_patyear}" below for more details.} } \value{ a \code{teal_module} object. @@ -87,6 +94,18 @@ a \code{teal_module} object. \description{ This module produces a table of event rates adjusted for patient-years. } +\section{Decorating \code{tm_t_events_patyear}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} as created from \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) From 5b87fdc8e342bd57fb217f92321d8dfca3d1818f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:44:42 +0100 Subject: [PATCH 45/86] Introduce decorator for `tm_t_events` (#1275) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Example with decorator ```r load_all("../teal") load_all(".") data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADAE <- tmc_ex_adae }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADAE <- data[["ADAE"]] insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } app <- init( data = data, modules = modules( tm_t_events( label = "Adverse Event Table", dataname = "ADAE", arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), llt = choices_selected( choices = variable_choices(ADAE, c("AETERM", "AEDECOD")), selected = c("AEDECOD") ), hlt = choices_selected( choices = variable_choices(ADAE, c("AEBODSYS", "AESOC")), selected = "AEBODSYS" ), add_total = TRUE, event_type = "adverse event", decorators = list(insert_rrow_decorator()) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_t_events.R | 46 +++++++++++++++++++++++++++++++++------------- man/tm_t_events.Rd | 21 ++++++++++++++++++++- 2 files changed, 53 insertions(+), 14 deletions(-) diff --git a/R/tm_t_events.R b/R/tm_t_events.R index c5b353a80..31efb865d 100644 --- a/R/tm_t_events.R +++ b/R/tm_t_events.R @@ -266,7 +266,7 @@ template_events <- function(dataname, # Full table. y$table <- substitute( - expr = result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent), + expr = table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent), env = list(parent = as.name(parentname)) ) @@ -275,7 +275,7 @@ template_events <- function(dataname, prune_list <- add_expr( prune_list, quote( - pruned_result <- result %>% rtables::prune_table() + pruned_result <- rtables::prune_table(table) ) ) @@ -284,7 +284,7 @@ template_events <- function(dataname, prune_list <- add_expr( prune_list, substitute( - expr = col_indices <- 1:(ncol(result) - add_total), + expr = col_indices <- 1:(ncol(table) - add_total), env = list(add_total = add_total) ) ) @@ -366,7 +366,7 @@ template_events <- function(dataname, sort_list <- add_expr( sort_list, substitute( - expr = idx_split_col <- which(sapply(col_paths(result), tail, 1) == sort_freq_col), + expr = idx_split_col <- which(sapply(col_paths(table), tail, 1) == sort_freq_col), env = list(sort_freq_col = sort_freq_col) ) ) @@ -378,7 +378,7 @@ template_events <- function(dataname, quote(cont_n_allcols) } scorefun_llt <- if (add_total) { - quote(score_occurrences_cols(col_indices = seq(1, ncol(result)))) + quote(score_occurrences_cols(col_indices = seq(1, ncol(table)))) } else { quote(score_occurrences) } @@ -458,9 +458,18 @@ template_events <- function(dataname, #' It defines the grouping variable(s) in the results table. #' If there are two elements selected for `arm_var`, #' second variable will be nested under the first variable. +#' @param decorators `r roxygen_decorators_param("tm_t_events")` #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_t_events`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` as created from `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -524,7 +533,8 @@ tm_t_events <- function(label, incl_overall_sum = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_events") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -545,6 +555,8 @@ tm_t_events <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "table", null.ok = TRUE) args <- as.list(environment()) @@ -570,7 +582,8 @@ tm_t_events <- function(label, na_level = na_level, sort_freq_col = sort_freq_col, incl_overall_sum = incl_overall_sum, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -612,6 +625,7 @@ ui_t_events_byterm <- function(id, ...) { is_single_dataset = is_single_dataset_value ), checkboxInput(ns("add_total"), "Add All Patients columns", value = a$add_total), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_item( "Additional table settings", checkboxInput( @@ -675,7 +689,8 @@ srv_t_events_byterm <- function(id, total_label, na_level, sort_freq_col, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -808,10 +823,15 @@ srv_t_events_byterm <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = table_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive({ - table_q()[["pruned_and_sorted_result"]] - }) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -821,7 +841,7 @@ srv_t_events_byterm <- function(id, # Render R code. teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(table_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -840,7 +860,7 @@ srv_t_events_byterm <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(table_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index 88c500d09..08a0a9768 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -24,7 +24,8 @@ tm_t_events( incl_overall_sum = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -88,6 +89,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_events}" below for more details.} } \value{ a \code{teal_module} object. @@ -95,6 +102,18 @@ a \code{teal_module} object. \description{ This module produces a table of events by term. } +\section{Decorating \code{tm_t_events}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} as created from \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From 78c451d906c0519cc2fb49cfcd84cdd1a272c913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Wed, 4 Dec 2024 13:29:15 +0100 Subject: [PATCH 46/86] Introduce decorators for `tm_t_binary_outcome` (#1273) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working example of the decorators ````r load_all("../teal.code") load_all("../teal.data") load_all("../teal.reporter") load_all("../teal") load_all(".") library(dplyr) data <- within(teal_data(), { ADSL <- tmc_ex_adsl ADRS <- tmc_ex_adrs %>% mutate( AVALC = d_onco_rsp_label(AVALC) %>% with_label("Character Result/Finding") ) %>% filter(PARAMCD != "OVRINV" | AVISIT == "FOLLOW UP") }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADRS <- data[["ADRS"]] insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } arm_ref_comp <- list( ARMCD = list(ref = "ARM B", comp = c("ARM A", "ARM C")), ARM = list(ref = "B: Placebo", comp = c("A: Drug X", "C: Combination")) ) app <- init( data = data, modules = modules( tm_t_binary_outcome( label = "Responders", dataname = "ADRS", paramcd = choices_selected( choices = value_choices(ADRS, "PARAMCD", "PARAM"), selected = "BESRSPI" ), arm_var = choices_selected( choices = variable_choices(ADRS, c("ARM", "ARMCD", "ACTARMCD")), selected = "ARM" ), arm_ref_comp = arm_ref_comp, strata_var = choices_selected( choices = variable_choices(ADRS, c("SEX", "BMRKR2", "RACE")), selected = "RACE" ), default_responses = list( BESRSPI = list( rsp = c("Complete Response (CR)", "Partial Response (PR)"), levels = c( "Complete Response (CR)", "Partial Response (PR)", "Stable Disease (SD)", "Progressive Disease (PD)" ) ), INVET = list( rsp = c("Stable Disease (SD)", "Not Evaluable (NE)"), levels = c( "Complete Response (CR)", "Not Evaluable (NE)", "Partial Response (PR)", "Progressive Disease (PD)", "Stable Disease (SD)" ) ), OVRINV = list( rsp = c("Progressive Disease (PD)", "Stable Disease (SD)"), levels = c("Progressive Disease (PD)", "Stable Disease (SD)", "Not Evaluable (NE)") ) ), decorators = list(insert_rrow_decorator("I am a new row")) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Signed-off-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_t_binary_outcome.R | 38 ++++++++++++++++++++++++++++++-------- man/tm_t_binary_outcome.Rd | 27 +++++++++++++++++++++++---- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/R/tm_t_binary_outcome.R b/R/tm_t_binary_outcome.R index 43c7b0a0f..cbf637dbf 100644 --- a/R/tm_t_binary_outcome.R +++ b/R/tm_t_binary_outcome.R @@ -314,8 +314,7 @@ template_binary_outcome <- function(dataname, y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parentname) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parentname) }, env = list(parentname = as.name(parentname)) ) @@ -348,9 +347,18 @@ template_binary_outcome <- function(dataname, #' `"Not Evaluable (NE)"`, or `"Missing or unevaluable"`, 95% confidence interval will not be calculated. #' #' * Reference arms are automatically combined if multiple arms selected as reference group. +#' @param decorators `r roxygen_decorators_param("tm_t_binary_outcome")` #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_t_binary_outcome`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -464,7 +472,8 @@ tm_t_binary_outcome <- function(label, na_level = default_na_str(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_binary_outcome") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -504,6 +513,8 @@ tm_t_binary_outcome <- function(label, control$strat$method_ci, c("wald", "waldcc", "cmh", "ha", "strat_newcombe", "strat_newcombecc") ) checkmate::assert_subset(control$strat$method_test, c("cmh")) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "table", null.ok = TRUE) args <- as.list(environment()) @@ -531,7 +542,8 @@ tm_t_binary_outcome <- function(label, control = control, rsp_table = rsp_table, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -678,6 +690,7 @@ ui_t_binary_outcome <- function(id, ...) { condition = paste0("!input['", ns("compare_arms"), "']"), checkboxInput(ns("add_total"), "Add All Patients column", value = a$add_total) ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_item( "Additional table settings", teal.widgets::optionalSelectInput( @@ -745,7 +758,8 @@ srv_t_binary_outcome <- function(id, default_responses, rsp_table, na_level, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -995,8 +1009,16 @@ srv_t_binary_outcome <- function(id, teal.code::eval_code(qenv, as.expression(unlist(my_calls))) }) + + decorated_all_q <- srv_decorate_teal_data( + id = "decorator", + data = table_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(table_q()[["result"]]) + table_r <- reactive(decorated_all_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -1007,7 +1029,7 @@ srv_t_binary_outcome <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", verbatim_content = reactive({ - teal.code::get_code(table_q()) + teal.code::get_code(req(decorated_all_q())) }), title = label ) @@ -1027,7 +1049,7 @@ srv_t_binary_outcome <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(table_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index 63d00a333..a8b1a5323 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -30,7 +30,8 @@ tm_t_binary_outcome( na_level = default_na_str(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -75,11 +76,11 @@ values and \code{levels} of default level choices.} \itemize{ \item \code{global}: a list of settings for overall analysis with 2 named elements \code{method} and \code{conf_level}. \item \code{unstrat}: a list of settings for unstratified analysis with 3 named elements \code{method_ci} and \code{method_test}, and -\code{odds}. See \code{\link[tern:prop_diff]{tern::estimate_proportion_diff()}}, \code{\link[tern:prop_diff_test]{tern::test_proportion_diff()}}, and -\code{\link[tern:odds_ratio]{tern::estimate_odds_ratio()}}, respectively, for options and details on how these settings are implemented in the +\code{odds}. See \code{\link[tern:estimate_proportion_diff]{tern::estimate_proportion_diff()}}, \code{\link[tern:test_proportion_diff]{tern::test_proportion_diff()}}, and +\code{\link[tern:estimate_odds_ratio]{tern::estimate_odds_ratio()}}, respectively, for options and details on how these settings are implemented in the analysis. \item \code{strat}: a list of settings for stratified analysis with elements \code{method_ci} and \code{method_test}. See -\code{\link[tern:prop_diff]{tern::estimate_proportion_diff()}} and \code{\link[tern:prop_diff_test]{tern::test_proportion_diff()}}, respectively, for options and details on +\code{\link[tern:estimate_proportion_diff]{tern::estimate_proportion_diff()}} and \code{\link[tern:test_proportion_diff]{tern::test_proportion_diff()}}, respectively, for options and details on how these settings are implemented in the analysis. }} @@ -103,6 +104,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_binary_outcome}" below for more details.} } \value{ a \code{teal_module} object. @@ -120,6 +127,18 @@ or re-categorize response categories and arrange the display order. If response \item Reference arms are automatically combined if multiple arms selected as reference group. } } +\section{Decorating \code{tm_t_binary_outcome}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) From 5fdc43e2f46cfee755f768cd000ff58daf46e9a1 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 12:37:52 +0000 Subject: [PATCH 47/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_t_binary_outcome.Rd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index a8b1a5323..aaf102c18 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -76,11 +76,11 @@ values and \code{levels} of default level choices.} \itemize{ \item \code{global}: a list of settings for overall analysis with 2 named elements \code{method} and \code{conf_level}. \item \code{unstrat}: a list of settings for unstratified analysis with 3 named elements \code{method_ci} and \code{method_test}, and -\code{odds}. See \code{\link[tern:estimate_proportion_diff]{tern::estimate_proportion_diff()}}, \code{\link[tern:test_proportion_diff]{tern::test_proportion_diff()}}, and -\code{\link[tern:estimate_odds_ratio]{tern::estimate_odds_ratio()}}, respectively, for options and details on how these settings are implemented in the +\code{odds}. See \code{\link[tern:prop_diff]{tern::estimate_proportion_diff()}}, \code{\link[tern:prop_diff_test]{tern::test_proportion_diff()}}, and +\code{\link[tern:odds_ratio]{tern::estimate_odds_ratio()}}, respectively, for options and details on how these settings are implemented in the analysis. \item \code{strat}: a list of settings for stratified analysis with elements \code{method_ci} and \code{method_test}. See -\code{\link[tern:estimate_proportion_diff]{tern::estimate_proportion_diff()}} and \code{\link[tern:test_proportion_diff]{tern::test_proportion_diff()}}, respectively, for options and details on +\code{\link[tern:prop_diff]{tern::estimate_proportion_diff()}} and \code{\link[tern:prop_diff_test]{tern::test_proportion_diff()}}, respectively, for options and details on how these settings are implemented in the analysis. }} From 1ac634ca4840d49c1b8866feca264558cea5d0dd Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Wed, 4 Dec 2024 15:06:09 +0100 Subject: [PATCH 48/86] introduce decorators for `tm_g_barchart_simple` (#1267) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371 #### Checklist for final review: - Has documentation: - [ ] `` #' @param decorators `r roxygen_decorators_param("tm_X_XXX")` `` - [ ] Section for decorators - [ ] In case of multiple decorators, section has pseudo code explaining how to limit calls - [ ] Code shows in "Show R code" - [ ] Reporter shows both the outputs and code - [ ] Fix order of `assert_decorators` function (`null.ok = TRUE` is sometimes second argument and looks better at 3^rd) #### Example
Working Example ```r devtools::load_all("../teal.reporter") devtools::load_all("../teal") devtools::load_all(".") library(nestcolor) library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl %>% mutate(ITTFL = factor("Y") %>% with_label("Intent-To-Treat Population Flag")) ADAE <- tmc_ex_adae %>% filter(!((AETOXGR == 1) & (AESEV == "MILD") & (ARM == "A: Drug X"))) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADAE <- data[["ADAE"]] caption_decorator <- function(default_caption = "I am a good decorator", .var_to_replace = "plot") { teal_transform_module( label = "Caption", ui = function(id) shiny::textInput(shiny::NS(id, "footnote"), "Footnote", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::labs(caption = footnote) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } head_decorator <- function(default_value = 6, .var_to_replace = "object") { teal_transform_module( label = "Head", ui = function(id) shiny::numericInput(shiny::NS(id, "n"), "N rows", value = default_value), server = make_teal_transform_server( substitute({ .var_to_replace <- utils::head(.var_to_replace, n = n) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } app <- init( data = data, modules = modules( tm_g_barchart_simple( label = "ADAE Analysis", x = data_extract_spec( dataname = "ADSL", select = select_spec( choices = variable_choices( ADSL, c( "ARM", "ACTARM", "SEX", "RACE", "ITTFL", "SAFFL", "STRATA2" ) ), selected = "ACTARM", multiple = FALSE ) ), fill = list( data_extract_spec( dataname = "ADSL", select = select_spec( choices = variable_choices( ADSL, c( "ARM", "ACTARM", "SEX", "RACE", "ITTFL", "SAFFL", "STRATA2" ) ), selected = "SEX", multiple = FALSE ) ), data_extract_spec( dataname = "ADAE", select = select_spec( choices = variable_choices(ADAE, c("AETOXGR", "AESEV", "AESER")), selected = NULL, multiple = FALSE ) ) ), x_facet = list( data_extract_spec( dataname = "ADAE", select = select_spec( choices = variable_choices(ADAE, c("AETOXGR", "AESEV", "AESER")), selected = "AETOXGR", multiple = FALSE ) ), data_extract_spec( dataname = "ADSL", select = select_spec( choices = variable_choices( ADSL, c( "ARM", "ACTARM", "SEX", "RACE", "ITTFL", "SAFFL", "STRATA2" ) ), selected = NULL, multiple = FALSE ) ) ), y_facet = list( data_extract_spec( dataname = "ADAE", select = select_spec( choices = variable_choices(ADAE, c("AETOXGR", "AESEV", "AESER")), selected = "AESEV", multiple = FALSE ) ), data_extract_spec( dataname = "ADSL", select = select_spec( choices = variable_choices( ADSL, c( "ARM", "ACTARM", "SEX", "RACE", "ITTFL", "SAFFL", "STRATA2" ) ), selected = NULL, multiple = FALSE ) ) ), decorators = list(plot = caption_decorator('Marcin', 'plot')) ) ) ) if (interactive()) { shinyApp(app$ui, app$server) } ```
--------- Signed-off-by: André Veríssimo <211358+averissimo@users.noreply.github.com> Co-authored-by: Lluís Revilla Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> Co-authored-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> --- R/tm_g_barchart_simple.R | 38 +++++++++++++++++++++++++++---------- man/tm_g_barchart_simple.Rd | 21 +++++++++++++++++++- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/R/tm_g_barchart_simple.R b/R/tm_g_barchart_simple.R index ecd8d463a..dfa3d65b7 100644 --- a/R/tm_g_barchart_simple.R +++ b/R/tm_g_barchart_simple.R @@ -12,9 +12,18 @@ #' @param x_facet (`data_extract_spec`)\cr row-wise faceting groups. #' @param y_facet (`data_extract_spec`)\cr column-wise faceting groups. #' @param plot_options (`list`)\cr list of plot options. +#' @param decorators `r roxygen_decorators_param("tm_g_barchart_simple")` #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_g_barchart_simple`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -146,7 +155,8 @@ tm_g_barchart_simple <- function(x = NULL, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { message("Initializing tm_g_barchart_simple") checkmate::assert_string(label) checkmate::assert_list(plot_options, null.ok = TRUE) @@ -171,6 +181,8 @@ tm_g_barchart_simple <- function(x = NULL, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, names = "plot", null.ok = TRUE) plot_options <- utils::modifyList( list(stacked = FALSE), # default @@ -190,7 +202,8 @@ tm_g_barchart_simple <- function(x = NULL, y_facet = y_facet, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ), datanames = "all" ) @@ -249,6 +262,7 @@ ui_g_barchart_simple <- function(id, ...) { is_single_dataset = is_single_dataset_value ) }, + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(args$decorators, "plot")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional plot settings", @@ -336,7 +350,8 @@ srv_g_barchart_simple <- function(id, y_facet, plot_height, plot_width, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -506,13 +521,16 @@ srv_g_barchart_simple <- function(id, ) )) %>% teal.code::eval_code(code = plot_call) - - # explicitly calling print on the plot inside the qenv evaluates - # the ggplot call and therefore catches errors - teal.code::eval_code(all_q, code = quote(print(plot))) }) - plot_r <- reactive(all_q()[["plot"]]) + decorated_all_q_code <- srv_decorate_teal_data( + "decorator", + data = all_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) + ) + + plot_r <- reactive(decorated_all_q_code()[["plot"]]) output$table <- renderTable({ req(iv_r()$is_valid()) @@ -550,7 +568,7 @@ srv_g_barchart_simple <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q_code()))), title = "Bar Chart" ) @@ -569,7 +587,7 @@ srv_g_barchart_simple <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q_code()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index f1e92bc46..1a436a496 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -15,7 +15,8 @@ tm_g_barchart_simple( plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -47,6 +48,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use for the module plot. The argument is merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_barchart_simple}" below for more details.} } \value{ a \code{teal_module} object. @@ -58,6 +65,18 @@ This module produces a \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type bar Categories can be defined up to four levels deep and are defined through the \code{x}, \code{fill}, \code{x_facet}, and \code{y_facet} parameters. Any parameters set to \code{NULL} (default) are ignored. } +\section{Decorating \code{tm_g_barchart_simple}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) library(dplyr) From a9eb913fda24f3047467bacd08946faaa36365df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:27:15 +0000 Subject: [PATCH 49/86] chore: fix R CMD check with missing arguments and using rlang that is not in dependencies --- R/tm_g_pp_vitals.R | 27 +++++++++++++------------- R/tm_t_abnormality_by_worst_grade.R | 1 + R/tm_t_ancova.R | 1 + R/utils.R | 6 +++--- man/tm_a_gee.Rd | 4 ++-- man/tm_a_mmrm.Rd | 4 ++-- man/tm_g_barchart_simple.Rd | 4 ++-- man/tm_g_ci.Rd | 4 ++-- man/tm_g_forest_rsp.Rd | 4 ++-- man/tm_g_forest_tte.Rd | 4 ++-- man/tm_g_ipp.Rd | 4 ++-- man/tm_g_km.Rd | 4 ++-- man/tm_g_lineplot.Rd | 4 ++-- man/tm_g_pp_adverse_events.Rd | 4 ++-- man/tm_g_pp_patient_timeline.Rd | 4 ++-- man/tm_g_pp_therapy.Rd | 4 ++-- man/tm_g_pp_vitals.Rd | 10 ++++++++-- man/tm_t_abnormality.Rd | 4 ++-- man/tm_t_abnormality_by_worst_grade.Rd | 10 ++++++++-- man/tm_t_ancova.Rd | 10 ++++++++-- man/tm_t_binary_outcome.Rd | 4 ++-- man/tm_t_coxreg.Rd | 8 ++++---- man/tm_t_events.Rd | 4 ++-- man/tm_t_events_by_grade.Rd | 4 ++-- man/tm_t_events_patyear.Rd | 8 ++++---- man/tm_t_events_summary.Rd | 4 ++-- man/tm_t_exposure.Rd | 4 ++-- man/tm_t_logistic.Rd | 4 ++-- man/tm_t_mult_events.Rd | 4 ++-- man/tm_t_pp_basic_info.Rd | 4 ++-- man/tm_t_pp_laboratory.Rd | 4 ++-- man/tm_t_pp_medical_history.Rd | 4 ++-- man/tm_t_pp_prior_medication.Rd | 4 ++-- man/tm_t_shift_by_arm.Rd | 4 ++-- man/tm_t_shift_by_arm_by_worst.Rd | 4 ++-- man/tm_t_shift_by_grade.Rd | 4 ++-- man/tm_t_smq.Rd | 4 ++-- man/tm_t_summary.Rd | 4 ++-- man/tm_t_summary_by.Rd | 4 ++-- man/tm_t_tte.Rd | 4 ++-- 40 files changed, 113 insertions(+), 92 deletions(-) diff --git a/R/tm_g_pp_vitals.R b/R/tm_g_pp_vitals.R index f84adb1d7..8b3a76cbd 100644 --- a/R/tm_g_pp_vitals.R +++ b/R/tm_g_pp_vitals.R @@ -206,6 +206,7 @@ template_vitals <- function(dataname = "ANL", #' @inheritParams template_vitals #' @param xaxis ([teal.transform::choices_selected()])\cr object with all #' available choices and preselected option for the time variable from `dataname` to be put on the plot x-axis. +#' @param decorators `r roxygen_decorators_param("tm_g_pp_vitals")` #' #' @inherit module_arguments return #' @@ -443,19 +444,19 @@ srv_g_vitals <- function(id, ) observeEvent(patient_data_base(), - handlerExpr = { - teal.widgets::updateOptionalSelectInput( - session, - "patient_id", - choices = patient_data_base(), - selected = if (length(patient_data_base()) == 1) { - patient_data_base() - } else { - intersect(patient_id(), patient_data_base()) - } - ) - }, - ignoreInit = TRUE + handlerExpr = { + teal.widgets::updateOptionalSelectInput( + session, + "patient_id", + choices = patient_data_base(), + selected = if (length(patient_data_base()) == 1) { + patient_data_base() + } else { + intersect(patient_id(), patient_data_base()) + } + ) + }, + ignoreInit = TRUE ) # Vitals tab ---- diff --git a/R/tm_t_abnormality_by_worst_grade.R b/R/tm_t_abnormality_by_worst_grade.R index fc0740c93..62892d367 100644 --- a/R/tm_t_abnormality_by_worst_grade.R +++ b/R/tm_t_abnormality_by_worst_grade.R @@ -245,6 +245,7 @@ template_abnormality_by_worst_grade <- function(parentname, # nolint: object_len #' object with all available choices and preselected option for variable names that can be used as Worst Low Grade flag. #' @param worst_flag_indicator ([teal.transform::choices_selected()])\cr #' value indicating worst grade. +#' @param decorators `r roxygen_decorators_param("tm_t_abnormality_by_worst_grade")` #' #' @inherit module_arguments return seealso #' diff --git a/R/tm_t_ancova.R b/R/tm_t_ancova.R index 20743cddd..80813ed88 100644 --- a/R/tm_t_ancova.R +++ b/R/tm_t_ancova.R @@ -421,6 +421,7 @@ template_ancova <- function(dataname = "ANL", #' #' @inheritParams module_arguments #' @inheritParams template_ancova +#' @param decorators `r roxygen_decorators_param("tm_t_ancova")` #' #' @inherit module_arguments return #' diff --git a/R/utils.R b/R/utils.R index 05a2c7333..72657f370 100644 --- a/R/utils.R +++ b/R/utils.R @@ -968,7 +968,7 @@ srv_decorate_teal_data <- function(id, data, decorators, expr, expr_is_reactive missing_expr <- missing(expr) if (!missing_expr && !expr_is_reactive) { - expr <- rlang::enexpr(expr) + expr <- dplyr::enexpr(expr) # Using dplyr re-export to avoid adding rlang to Imports } moduleServer(id, function(input, output, session) { @@ -980,9 +980,9 @@ srv_decorate_teal_data <- function(id, data, decorators, expr, expr_is_reactive if (missing_expr) { decorated_output() } else if (expr_is_reactive) { - eval_code(decorated_output(), expr()) + teal.code::eval_code(decorated_output(), expr()) } else { - eval_code(decorated_output(), expr) + teal.code::eval_code(decorated_output(), expr) } }) }) diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index f69462a7e..720872be7 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -146,8 +146,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeUAipV1DU2t7fwAjqI6AKQAfNM9Jca01OSM7KUAQtUAYrUAhAC8OgpgAJqnOgBkZdt7AEw6RyfnpzZzCxAlJTCCoeTsRbfUoANQAkpUwbYdMcoOJjFB1ER1qCIVC5LggSVUZDbAA5GE6ZgQADWG3BuLx73mWO+cIwCKR62pn2+bJ09IggngjBk1hmNK+7JK9MZpGR1kxQrZoNK1U2YIJx1ltT0OgArAAGHQAYh0AClBKJSByplAvq1YD5dOKdABzOAmsL0bKeHQUbxEbKkDBAllA-iMIjW7TUUTxCAAXwCACsvRAoiS4Kxw3kbMl+HAEcJSFECPxaKImnHsonk6JgNB4KnEnIALquaDoOrZdKAoV5Ql5KU-ATCMSEvhCEThoENdpRB1wdvC6hQehwaiE04AcScLjwtLyVd0x1OFQGpx77Kgmm4UTPjEJBAyXoIYiiokXcHUcH4gLAKoVeKPJloLTfQl7GcDFaVofgLxYa9bxkB8nxEV93wID8HEqBxNn1MFyl-U40IwrC3gKU5UPQzDsLAUDpTpRgYEgq9jhvO84OfRD2GQ-csAAWRwz8uIAYXIjEXlKLjCNpTRC3SOjoKY0RHxY8gkI-HEoR4lT8UI4SKVUijjzZVAWFgfMZNguT4JfRSZ2FHRGNMwkz2oQQ4DzGD7xrUJgGAfd+kqU46zrIiwAABRE0pOIEniQqwMKxKotlzMQ5cwB2ABpSEDB2AB1TZTlpSjhWITRpIY1zmIQyz2LATZSkqDdAtKNceNqgANHjqtqxB1M0vEHGqaoAjZAadACAJaGMHR2G9VREQ0bRrBsIohVELIIFYUp0HYNBUAAEkEWgCi27an0YbR-CUSMlDASM6yAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index 58225572c..ee5c3c101 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEosMAD6jHDGIcQwqPpGdKKk7Eo6OgCCWACyAMIAIjoAvDoJSSmpOuHGhToKYBmZOgBCtbhlqdGxRQTJdVnpLTW9Ddm1AakBAUr8UKRQcTpc1CHTs9ZTM3OGOgDutKQAFrQQ7CtQuDogZWm5AMoAMvOkMAQhcAAeIVD8otRXuQCKN0ez1eHy+AEdRDoAKQAPmhbRMtGo5EY7DSjTuADEHgBCIq1ACatR0ADJ0picQAmHT4wbEsA2OEIiDlJEo1TogBqAEkbjzbDCjtCdN1agB1JxOADSOgAjDpcmlCToABwDCVS2U0pUquUAVg1YElMp0AGZFcqdFSqaMmfDETBBLNyMlWWz0rz+YKilBxMYoOoiGi0l6BXJWu62aG+QKAHLVZgQADW3Njtjj9pZHvKfowAaDaKziLZeYggngjBk1hhDqjHrzBdIwZrAGIAOQ6GBQZNHADmopIojgBGdWl05crMhMgebjERAQAvgEAFZEI4hZNwViiE4bGxbfgRKDCUhRfi0UQvNcbrc74DQeC705yAC6rmg6HmRz2btSp2qU5I1SPghBEKEilA4QxD-conk+EIYBgRgYFgtlqCgeg4GoapakyTIshaEsdFOR9dAJOoARuIj61SKBNG4EIGMYaoCH2dcCDEEJhxEdQ4H4dgxTqLk0juI1sgACQAcVGc5alDUTZOI2h+CYlhWPYmQuJ4kdyAEoSHBuBxGgAKR5XIjSM0zzNkwZDOMsyLMZYCGxQtSWK6TTONEbjsN0-jBJ6eojXqPJbPkwjnOIzRLz2dyNI47S-L4-SgrDWwQvSuNwuE9MlNonRgjCCIoiIGJqiKypSpiFy2VQFhYAIfgEq0nydJStCPTYxKIJ0BjqEEOAoi8mDTmAYB5Ko2pX1fOSwAABQyNIcicubFqwZb8pzVJ2r03CwCxaV+QMLFxWaMBiIjYjiE0eLPJ63zeL0wLakaNIbhcPBBjSKTPrmj6AA0jTej7EBjb1bLjBw7juMZyjhiYlFoKp2COVFZ3HawbEud1REOCBWDSdB2DQVAABJBFoc5SbJ4dGG0fwlEXJQwEXV8gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index 1a436a496..27dae170c 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -201,8 +201,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTowgonk7ACStrYAYp0AvCZQ6gHsCmAAmic207MQ8-NFpWnUUPRw1MdgqypkBrZEP4xwBI6AAKRFQwgSlhumyeAHMLkEGi1Gk4uj0+oNhvFdFc5g1jLRqORGOwAITsdgo2wAeQAGgBxLA6HZ7ACMNgAZDpKU5Wk4AGrMvYnACyq3azQuOi5lKwIqFOhOjUQOmajEEsJ0tIRQQAvkEAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfSNJvNluA0HgVtycgAurEWh0urlgMAlW12icQ2GIMjUXaqjG4yjE8mlGhUF1ysVjjcdLlmWWqrg5nwhCJRBXa8IxCXbj00rC0vQWAQSiwXaJaDBInBW7cdE8XuNhWBU01oFFB6ITtXS7cBhXcv0BqQ1APUHACGPx5XEgHdDOIwm8Hjx6JXofSBX7yJ1GlRAej7eT73jQQxBWmgsLQzwiK6JR-i234nk08arjB45fmuCHzEqcoroqs4AMK2I06F4JhfLajeyEoZhWCNFhLgESc6xbNeNQnK0jSbNsGFMfYjS4QATCc0EnoiKFyPBKEvo+cD8BWSo4XhIorvx8yLEStAjhWmyNO0fIKYJtzCdBBLUNOE4eqQx7jlugy7gc+6HmZJ65OeUmzvG8mkXeD7qM+Hk2UhZENL+MgAXsQGMCB9BgQF-5WgpJ5XiJfk6L5CWobO+GMdhuFpYRTjEfFyUnBRVHsR8GxsTRYDMaxDGEZxPF8W5CE6UJeUIWJ6gSU5RGuQlSkaKpezqZpLgNfMTW6S18wWTue7vp+dnmVUjmXs02YkWRbVPnsG2zbZMXzJFQU6CFYURRBgVWqmNRfrOTg0gyWDFSifL8o9vJOA9YByHpI23BtHV7AAcg47TtBNJ69SpIhqRpWk-ToY2jdB30nkMjr-ptxmiKZClTVZb4frtcMObAF6Yam3Wid5Xmvj580-mdUWAcBoFwOBkEXStThXe8VJ0oyr3PQL70ImD7k0-9ZO3XzH2i7cEP9Tog2w2RCMNMjMG4zNBNJQhxPwE5V4U61VNbd5O06yhB0NsFzPhazVt0zBcV7bcFsJWhcnlZRmWe+lXVrclDQFZR1HpXRZV+yxEc1RRdVgC7iNw2rsvzH9kmA8DoMJ-LUMDTDw0q9pSMTawaRo3AGN0Fjjua9Z5uOw0euk1mod7Rt1OPvXCdW0zoUs2z52Upz3NKlL91Cy9XtvR9X0pw0acG29k9zwszqQ6TSsF0J2mi7X+NzXtTcGy5AfGzTHf74TCU9zbfd2wPUUN+OztJ-tT8nh7j0yVlTE5Ub+VgEKqHTC4dqpMSjmAiqtVGi8Xjq-NWCd1brW8hLIGIMV45w3vnPaqt4ZI1vIJIIQRaDGG5OUYk1ktCji+rUOYogygQFYI0dA7B8wABJBC0BqOw+8jBtAxAgLqJQYBdQhiAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index ddd272ff5..9fa41d38e 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -155,8 +155,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlbUAQg1NLe2d-NT0SgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5idaJTqdTqFB6HBqCS-gBhEjGWh7cy6ACSKkYmm4OgACv5SH88VSWToOpLGCSCq02qQ1MdRKg4ARmcqygV7rpsdCaoC8H0TaJOYbSCSHSJ1DF9YbjSaygQsksCGISUboVgALI8yoKnR-QZhrAAaSwACY-nJFT7qa6nXB+MG0f9w5G0xnM6SjrRUCISQAxcq1apOUuZgVtXO1+uNu3KoIm9PdsqsGJqjXJLU6qDuz0hpUms2wC0x-5ghUD6kC6jkdXYuiiUjen0brceg0zsvUtXEy1gaXlLDlCNR22zst+gNBndwbTUTYwwYAElve9H37F9M2zdR20-b9fzBQC7wfSM5GAABGZ5mzLGAKyrRc6wbJs1xNNkOS5a9qkddQdGIxA-kI6lQPPI9VBPL06JZS9uX+AA1EVqhFWxVzAn03xkD8qK-TlYKGf9yh4vjbAY88dAg8g82gyT2D-GS5P45C0IwzMsM3Stq2xPDGwMn1iM5TjyLdZ1NHOTIaLANidF7H1FPtCjnWxFSWLPMtrNIpdymgahWAAL3bLjuEEOBBPPETAyvHQQ24+to15AAJABxEs3JUqDQq4zLn3PIyNBwjt8MsllW2K8yXCEsoPJZLzqT8AJR3CcddQCg8WXneBOIBRKfRUl0fIGtzgs4vl-HVehWB0NVaHZERxszZKxPSxsAA0srAap7HKWxyhQo6Tvvc7UzADrvPs4q9tO87LvuurqUqkzcM7AiWvXWg2zUnQmrotr6O7DygiCWhjB0dhci3ScNG0awbBKJVRByCBWHKdB2ERf9BFoIoiYdCVVCCGYlDAGZniAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index 814401616..2e8d0d970 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -227,8 +227,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc1YrV09fYPD-IyiOgCkAHyrEw0wgonk7I0Aao3tAMI6ALw6-GkkxGnLqGnUUPRw1Icn5zYbWxANQGFYolF5vD7sBRgM4lFhQdSqHRYMTCUgAegAYuV+OUAOZQuS-TbbEy0ajkRjsAAKjSwjQAsmdmjoAITXKEAeSOWAAkgA5I5QnQAHyaRx5rR5tiu7LAGI57XaHIA6joHFSCUoAL5BABWRHKaQA1nBWKJKokbPl+HBjFBUWkCDjRH19YaTWbgNB4ObcnIALqxFodLq5YDAKHB9pQ-2BiAtaahqrhyNTVoxuNKFgwR62x1EGCoLp0USkSEAppYelXHQlsskxi2mtQgBCiB0VNeBDg9CIUNwJOIhZrBEhYEa7eajEEuJ0AA1+zooWd22cC-RyglLBBNRW5AOK7TGczrnXy0DG8Zm+OqzoW-3BwWi9dR5Hb41F2-q2ddw0gkEs3QLpymKc8biqGtcgPHYBGEMQaz4IQRHNEkejSXE0mMAIfEeURUDAoFXneahrwxbDSyRMRUBIUQ4AfCsgVyb1dFlBN0zwEkGmzNJNBYEcSgNbtRDSWiRARfgCKBHReMYWg3hER0BJkMRDjadoalfG96U-LSmQJfdOMBL89LAQyDIYwFuMvfNh2uKy8yHVBoKk1A4V6fh+MEsQRI+OBxMkoFeOoQQ4EUrzzTYmooRpOljx0mKGQJZypKXMB+SOJxbChMzksBURBHoXFGCIQRnhkzzlOE0S-PICTDIaGS5PoBSCCUoTVI6GpmIitTCVyoFNJbeksAAaSwAAmHTWicBcwCCFLzJS0tmESHi+JfNrvOq-z6uklgmpazaes6nRNNaexGlsRoAEYpouq7JrmxaUtS866Qe7KLL-fqdEiIhSDSEo4FoXESlIEd2AANgABmh9SdHG2H4cRpHnsY217XJXM8Jo+DT1oUsAsBFsnFaaYqR5Gsz12honghqFWkSZrdGaAm4CgWidHYVpmkUPBUr5f6dCcILBHk3R2D5Jw+bRl6RG0agVhfImUuXJ8RHISicYgTn2DOLA+aisAqRYDRuC16idYlqkDampmRB0VnaI5iWecNmmjON4qirEUQtBZtmXa5qleZ0wXwZF7gxeZrmpb5j35pe2WgXSzKqYJ+svqkunlbVwsNd0ZFtd1-XDdSk3GDNkii8t3WbZln7CLgBWldOlWpLzyI4E1mvca50uw6FyPgvF2Ppfi025Orqi++pW2OKz1WvaIH3RD97RHcDuvQ-5hn7YD53dbdz6XsBROFsbnQuV5AV08Jj2c7b6LvcbNf-c3w-rZ3o3GdHp32aPjvZOUl5YfFbppKkL9fbv3-kHak39Xr7w-gA12CCoTh2FqLUektx5zV2ufM+JJE7-iULQK87BygUnhBobQ1gbB1ArKIMoEBWCNHQOwNAqAAAkghaA1E4Vw2ijBtAxAgFqJQYAtT+iAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index 8e23d990e..e1d1a9525 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -205,8 +205,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc22tk5dPX2Dw-yk5BMtHQAkWI0AwrP5-IxEkXDa1KLs6+1bu042AKQAfPeFxSVp1FD0cNTsCmBYKAEOD-IIAXyCACsiOU0gBrOCsC65GwHODGKDCUhpAj8WiiPrQ2EIpHAaDwZFVOQAXViVy6uWAwH+V3+1NpEBa032RkZzLAXJmbI5ShYMDSjHROKIMFQXToolIfwgDUaWAAsjoALw6BVKiYNSXGbU6f4AIUQOgACp9gfQiP9cAadMRZSaCH8BZbmoxBABzHQADUdprAO0tOxl9HKCUsEFBEzkTpVTQ1O2aJr1yoahvRJpZGp0Zsdztdcp1HoLmsaIarOh2CZTQSCovQXXKxWzOlyJtyyYafCEIlEJsHwjEXYaPTSfrSxgCPjSKzgk5zn2+1HzYAAYgvFTpWoJGJotNwSymc92quTdDqWVMhXhnQ0xWlNCx3SUYcDRGlRD84HUOB+FXS930YWgvhEHEvxkCcrhqSsBQ1WtkPVdNQSTZ8cyrDCwGwrCLxzV8jWlN0dRIqUy37S8dFQFhYFxT9vzEP8AKAkDsIad9qEEOAYJYi5BScGp-itNVGnQ5pUPE7Z1VBGjaNDAB5Vp-gIxSc1EQR6D9I5BFQN8PwrWCfzYkQONAnNwMg+hoIIUz4LadoahvITnLkQilIaJCzXVLAAGksAAJlQ1onGDMAgiUrzaMVZhEiMxhmLg39-ws8hOKIsCWFs+zHPcjpEM9Vp7EaWxGgARjCsqKtCqLYqU-5Su2Or1OynRopzLrmyUWhjXYcpyDUDRtGsGw6hTUQyggVhGnQdg0FQDZBFoGolo2f9j1UcElDAMFqSAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 10fb62a13..9d8fd2687 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -193,8 +193,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTpjMnDsAIyIAEwADDbTsxDzOvzG-QORMsVp0Nn7Tc3tAEJdPX2Dw-zU9JMzcw3GtNTkRjsBytBz3ABSAElmpNyhNbh0ACQgsFQ5o7b43BpHE5nAgXK4YvYHP4A1TsRoANUhrUhth0AEIALw6BRgVoAYSwTicADlIbyAOJsoIAXyCACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAj8WiiPpSmXyxXAaDwJW5OQAXViLQ6XVywGAbId7TZNrtEBaDydVRdbru9093qUaFQXXKxXYc1yOhZuVwcz4QhEogTOlTwjEsax3RgaQA5mlaOg8wcGtQoPQ4OMWWzIXEtLQhNwdAAFBK0CikTv+Uhs5P57FVC26BtgX0hvA-eYsQuaFiZgglaUEMRpUR1uDqOD8CuVhpL6iCOC6tdLJXTmpurAAWQ5zRFw6PDTv96abLnDTkr8rqAsLAeorpeG6iFuO57geP7zCeZ4XuuuY3qyYAdo0WCNI+z5gH+sHvlO7S2N+I46HhpFQCeaRLowoFIRB24iNBh5HjRtA1iIiFXhSwY1AQsZTpSjQengqEcgAEsKuHkW+qFUsJJFHjJlaUdwgjUcuLKrvRkFMeQMGkceLDsfQnHadxKH8W6QntA4IrKUe1nCXZs6GSYtADPumb2M4sEOfMrYabRWlgZujG7vpLGVmxHHnuZ4E8Q8fECSiELQvZ-6OWAqVokO+HuZ5-DeY4Likf5x4GhcNF0VeukRfuUUHDFplxaF168ToVmCTSdIZfl1k9cRYB+Zl8z0FAjHlOe1UhTp4XMflzVmW1iX3MlbL3I0rQuNJo0HBtW07Xt8x-IVxW+WVx0jPwaTjZN3hpCUUgTjoABiwnbcd26Acw5C3awaREPQGYsu97TbXOQS-koQS0MYOjsOUgJQBY2jWDYdQ3KIZQQKwjTlhGiKCLQNSE9ujDaDEECikoYCijaQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index 67f6e17dc..4fe9ffa41 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -190,8 +190,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlba2Tg1NLe2d-KTkSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAZDL7JH5-KqDFxgYFvFgwGKMfYnIgwVANOiiUjsPrlADCtnKWAAsoTKjoALw6HF4vplVHGGk6aHknQAIT+uEZOmImNZBHx-w55R5bNFZJ0hL+QTKcl5EDKpOltPp+OVZR0zNZf05iB0AAVqFACHB6EQeXyBVjacLoYbKoxBABzHQADQlf0JhsJGPouTClmCYHlOiCQSUaCxqVymU1ZQKrIKSrKfCEIlErIzwjEie1TRirtWMAL2rpUHocGoerAAGk0KaIAYyXBaKpjf5SNatRWCvddLToWC4WmKzokTFNCwhVklubRDFRDW4Oo4PxyxOZ4xaFWRCd5zJ8wCig6pd6pZTL0SSeTr2HFXyK+yyX9nxHxxXUCxYKc5wuYjLqu66bh+ZQztQghwIegGbDCQxFH8RqkuUFKVJeKFYGhcpfhOfwAPLVO+fbak+pFlFOzLooKtJUWitp4WUuLMOE06zvaR6LsBIigVuFY7nu9AHgQXEnjUtRniK1ROF6eCSpyZJYPWWAAExyuRE7an8MlyR+mkTgc5rHDuAHHkuK68eQYEUdqgn7jBolwewp78tJsmXopylqRpTHagAcg4tSArZ4YKn0kZKLQLLsLk5BqBo2jWDYJRaqIOQQKw5ToOwMYACSCLQRT5SujDaIEsxKGAMzPEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_lineplot.Rd b/man/tm_g_lineplot.Rd index 75b9a6329..9df9e1cbb 100644 --- a/man/tm_g_lineplot.Rd +++ b/man/tm_g_lineplot.Rd @@ -182,8 +182,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBbgyhHMYBsqSiQUr8UKRQ+kZc1AD6GVnW6ZnZhjoA7rSkABa0EOFluDogSjo6AIIAIgDKADI5OqQwBPlwAB75UPyi1O1d3f0AQkMjY5PT-NT0OgCkAHx7Cx0wglnk7J0AagCSvbe2OgC8zybq+YxwAfyqV3cPWwtG73R4AORaMAaciCAF8ggArIgNfIAazgrFETSyNgqv2MUGEpHyBH4tFEYyRKPRmOA0HgWKKUDkAF1XBAegMhkzgMAFGBOf1+Sy2Rylqs8WVefyeithaKlGhUEMGjV2AsmS8dEzcAs+EIRKItfrhGJ1RAOh0RvkAOb5KRwSJEUjmy2W6hQehwaha-n9Bq6AAK-lI-N1Frd2rK9N0bxl4rDJ0tNsYREEqHymhYWoItWRBDE+VE3rg6jg-FdkY6WcYtE9IhJeZkZsFLQI6oFWAAsmGdDLuwBhbq9mUD2ydQfDsAw8NVjr9ntgJMdOSzyOsHNNguiIslssV5eWmt1+gN3P5lvitsdm6dIV4PtgZadXouB-8gcACQA4iOwIGv1-adV0PecBWuO9+UPECIzdVAWFgTcLx3YsRH3SsqyzahBDgRtkKuK9H0DCdOi7Ic-2IrBSP5GC50fO9bCg2DLSCN1WJ0IIgloYwdHYBpyDUDRtGsGw2gjUR6ggVhOnQdglQAEkEWgWgU4tGG0GIIFhJQwFhFkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index a5e56dd54..3656ffc29 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -140,8 +140,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUEAvkEAVkTlaQDWcFYokqiRs+X4cGMUGEpDSBH4tFEPR+f0BwOA0HgINycgAurEWlMOrlgMAFGAiZMKXiCRAWm0SVUyRSGS4wLTYmhUB1ysV2KNcjoALw6XK4UZ8IQiUQinRS4RiAUQBoNLppADmaXQC20jFEcF62jIIK2quoUHocGWotZ-D1Bp0TmNpFEFIlKtVDVyWN0tsprXZHq9DVQLAopF9ctZE2peDNoYStAj8KINp0FOe5yu7oTOkiRDhJTgtA1JVIcoI7AAbAAGWuTGoAJnrjZ0LdbcmDIagcH2MErJV+BDEaQNInUcH4ypDqoIQ5kYjlmhYtEtInhC5HILZNVZTlsTiwAFkKV28w1x3BJ-xo5SD0fT2A8+fPV7SEQBhrmJDB8PR1eN4zrOOjzv+sqiiujBrvQG5gYuO6Bnu962AA8gAGgA4lgZ7drOgHkLe-ptGhWE4c+b6qq+s6yIIojcMUrB-ghY7WtehHATRW5LpBq7roa8Hbuwu4ZveWBOHG1EgQRU53m04lxi+eGqkQgi+EQ8DMdurEThxF6gdxEE6FBMFwYZwlIaJbSoQ4ti4fpMlEVZTg2XZFGzlJXpQBYJBaQBbFAfpgk8cZfGwQJ5kifujQAMIAHL2ZRXqOXJTixQl7khp5qoaJporBaIOnsVOnEhgVy5hWZ4EWW0yGNOMtjNAAmolIE6ClxENc1FJKXmkLEE5cUOJM1KUUEDRBEEtDGDo7DlPs3kaNo1g2HUnqiGUECsI06DsNyDyCLQNT7QajB6h8ShgO8eJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 62c8d702a..45d50a437 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -194,8 +194,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUENLQDCALIz3b0DIYEGCrDZbHQwQSJcjscENH7jWzNACaOgAvDpZKI4GkCiUKLCIA1icSfp9GrZ0RiFGB4PxJDoTjSdAA-HQAJgADLg4aTvuTKWjqbS4PTlp9mWyAIwAVm5vIa9mcrJ0Ut5NnWdyKpTS1Cg9Dg1FhYHGpEE-FYOmaUEtRGMOlNLFIOjtOm+opkCUsEBpch5RJJOh+TgAcij0ZioNjcfiKgqg-yKVSdDS6QymWAVQB2TnygOBhMC5Op0UMiWZ6W5vMFxWOdpsuWc9WgrXFEq6-WG42m82W622+1OOIu+3u-iejQkX3+gs-RqI5q2X4Y+dIpczwNz0OL5dNbdL8FBAC+QSUACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAjj0Q9C9Xre97AAQxotFMNI1DSLRtJBKZgF83y+gAukoQIwDed6iB0oE0oiDgolccE0s85xEXg8GrjuxFgAiTgAIo0RSnxqhR0G2J87JMRxADM3GfAALL656XhAmH3o+UByMA0HND8TFyUhYDIR06HiaIImAVhknSbJsFsQhik0ip+S4SatgEci5FQWApGvMJPrQOgHTlMUhINLkEa5BufBCCI2EYr5whiO5xJdGkADmaToNFXoUF+GjwFIcChSSeoGsswoAApxWQdi0El5QjHgvK5NA8ALFAujCjBLglfmxJlbAOLoRGsnyfVBaoCw8XldVlETJMkG8t1Gjxd+RCZfBdnWSN-hfvitARSUzoYqBABsuaTDUXKcttHJVpMfq8sCr7EPwEYECUl4EGIaTYiI6iiqlgZXTdYgRpoLC0PqIjftdMghbkwAyYZHXIchNk-M0TifAA8s007xg9cBPRdwrQ7DCPDQ1DTHbjOhVfsIJrQDt2iPdhqo+Q-AvSSb2AwFOhfYwP30H9DPk5JIN6XVEM2W0thOFgSn4zWOgo2jl1gU4Qsiw5BZi4GRMFTioiJIwq2YmTd2SzTdPEpzH0YizbMczrD7A6DtXGZDlELgeYBKwWeuitL0EO6L6obiSKsVRQ6Pa+9FOu7T8ZG0zpu-TiEfc9brR83b0H7qLPuBqH7sISnCuBs7jXq6r90a1rEeU49+vhxbn3fdH-3B3H7VKfz8Fzp7SMEw0Gdrcardrl7BN5x5Bf+8OpPB2X1PPZXwfV6ztex1bje21D3xtGGjuD8SXeYj3q-Z073u8lVjCGvErBF06l0WxPaMGw0Eez2bMcWw3hn6c3HtIsi7fi9vZlUd-A+A804NGPqfG0vRR5B0ZjfCuHdoHk0fvPF+i836JwFtuQBm9O5Uylt3ZOYYsGHwJosE+1Az4X01lfceoc74IONszGu7Nn711QYhZe9sv4-xrH-MCC4iHANKqIMhFCA7UJgbQ6ejMkHMLrozV+7DlJJyzoQ7hLtcE00zmvFEOcSTvGJPooIQRaD2nYOUfYUALDaGsDYOoAZRBlAgKwRo6B2BoFQA8QQtAajuIeNiRg2gYgQCPEoMAR5kJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index 9938b5547..e33ff4ebd 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -206,8 +206,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAwgCyyTqkMARpcAAeaVD8BDD1Tc0AygAyXT19g8P8otQ6AKQAfOsmtNTkjOwOUw4AQgBSAJLNG+U7LR0AJMdnV81BDQ-tjx2NU7bNWydfJfR5-AFAiag35OABygOBRlBjThCKUAF8gkoAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfVx+KJJOABHYCjALVmvJqvK+vLkAF0lCMxoTiaIutzef8HM0AJrXQU6XkvC7qvCavn-NF63kdKZOACKGuFtlaAEYrXybQAmB2NG0AZldNoALKKcXiIDKSWSoHJgMK2u1XZHeWKulKYEHRLF+XNKVVgOG+dMZrGJRAvl1cpmIx087E0KguuVijyIA1cjoALw6XK4CZ8IQiOUtzvCMR1hoNHppADmaXQaVKqjQHAmQ501Cg9DgaxbvNsJRnqFYgvnQ9y0Hgzf1Irw+4aqBYFFIR906+zAvP9YXOivGhvDKIa-12ree5fBdIiIekt1oUcSlIE9uQANgABjgmYaidBCkJ0FDULkdtAKHBJaEYVdoJKPECDENJRFXOB1DgfhB1fBoCGImQxBPTQWFoZcRAZJjSNJL4hUdS4sCcXMwCwi8hwokRqP4aCeUE4TRI+V9xJwhiYCpYhZJbRiSLIqSqPIWiJIYniWJbNjGA4+guN05i+MjASOmaJxWgAeWaUVsPohoDJkk8TXaFz3M8sAJNU+ixnKUYiL00RyMomS6Misyex0SzrNs1L2H4-UOkueFWi8kydD8oyArAfLCt5cLvNfMZ+CICjYvshLpKM5L6tS1j2M4uBuLinLHLyoK3LNYq1MkxLyofZyxpcMLJoi+qYFIRgoJ01K2sMmjOoXOzeJ6qy+oG+yho6Jz2nsWwJp80rppoiqOmumqlrq-aNKawQWt47akpKg7zPS3qbP6wGHIukbmjGhxbp8srHp0+S5pOP03oksZGCIQRyB+-SHuMybTLio7MrB7LcsCrA3IcWwFuW+iEe0kbqdphbaoxz7RGMRgAEc8fipm9qHcHSZO8HzvaS7oamAAxLBLTE97XyZp7RrlhXXvohmRZgURSH4VgBb+jqAe6iyQaywbKYNAEVThxmCYq8FVS1lTlfUihDeNoWzZJi3jtB07eMlgSUXhe2lZK1WH3D13Fu1-dlKCIJaGMHR2HKA4oAsbRrBsOoX1EMoIFYRp0HYStHkEWgairijGG0GIIHRJQwHRMUgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index 91de739d5..3fe2596ec 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -60,6 +60,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use for the module plot. The argument is merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_pp_vitals}" below for more details.} } \value{ a \code{teal_module} object. @@ -129,8 +135,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlQBq1Q1NLe2d-JqiSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vQbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5jF0DFNJluJs+tSdNQoPQ4NQSX8BqzqNM8BzqQV7rpsdCwX88VTOTpUCwKKQpQL-jVAWLFZyVRo1SciPyZWAHNUHAAhABSAElKvLxWVUP5jlk4LQ6VlSCSCOwAGwABiDtSKACYQ2GdJGo3IFUrlSxYKc-VklgQxDFRHy4Oo4PxKYmygR0zIxCTNCxaDyRCcy5nNjDqkU-gAFcpYcoAWQAwo6wPHndScyJ8-xNR2u32B8Oh3rqW0oG1zmmM1nR3nyIXhyWGxXsVXGDX6HXS+um2DW1qAJp-efFnSb8eaqp3sBzhNKqBV2JHtflqI2a5uORbFuegGVtWtZwPWF7sM217lAM5Q6g+xbPtur4oTqc7ikEZRBEEtDGDo7C5OQagaNo1g2CUiqiDkECsOU6DsIiAAkgi0EUnE5ow2iBLMShgDMzxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index adfd7b3e1..76c95da76 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -181,8 +181,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index eebea1eab..056ecf249 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -84,6 +84,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_abnormality_by_worst_grade}" below for more details.} } \value{ a \code{teal_module} object. @@ -152,8 +158,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lxrTU5IzsAISlAGoAkpU7ttPZUzoE7ApglQDCWE5OAHI79wDiFwUX-aWVTtVPLmByAIAXwCACsiNkogBrOCsUS5RI2ZL8ODGKDCUhRAj8WiiJrgyEwuHAaDweF5OQAXVcEAqNTqeWAwAudOqF0p1NpfUGyMSTJZ3PZnKUaFQdWy6XOEBKeR0AF4dHlcD0+EIRKJ5TpVcIxFKSiUGlFMVB6BAiIwYNx0qwovQbSlzaJMQBzZgovX6krUE1waiai7VE3mkLm1h2MSkHRYMQYjVpTI6AAStGdGQjOmebt0AAUiE6DP0oKJfdk4G8Fvq8qTdAqBQNy9LPToWDAopoWJqCBkIQQxFFiyJ1HB+B6m6duzIxJr24xaCaRFiJ734ayCqJBPRi5GFWcWVgALJvHR7-dXcoXQHKxtjgdwIf8f1gUoHi4VkpyK9j1AsWDYztLvtb3vUcmy7HspwVdtqEEOBF3AlduXeMBs2fUpT3PPBj2Q1DDwBT8xx0IDyAfHdzifapbCPC4bmzKiwB2Z5SgvN8dA-FiOn4I0iFCP0FQAMVKapvgrAJ33wpYVlUTVIn7OhlxAmSuknMjWToypSj4vi2Uwojh0fABNC98INOBuFk5S636OiAHl7nsWwtKPXSSKwwyAR6AIAloYwdHYbJVigCxtGsGwikbUQsggVhSnQdhRQAEkEWgCgS4tGG0fwlCBJQwCBSkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 1d2043ae6..89ab0cd4b 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -77,6 +77,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_ancova}" below for more details.} } \value{ a \code{teal_module} object. @@ -176,8 +182,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyARVyikrLK6v4AR1ElAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+bWxdCHp5yWm8PkoWDA-IxlhsiDBUEU6KJSOwGpksABZHQAXh08MRDQyEOMmJ0TwAQogdAAFahQAhwehEJ64PE6YgwokEJHPcnZRiCADmOgAGoziWAAMLksXQ+jxDyWCBPIYZORMiAZTJi2wo1Fi7JEnFItUZHQEon-NE6EmM5ms2FYjnm9GZEWOnRixUNIZDEHoIrxaKGjJJIlJVUZPhCESiIkR4RiQPGkp+dZQcxETRQBPG7FQehwahm54AOTFAHkAGqZOy5kTWo3ZpLHXRY-5fOvZjJQTTbaLsmJjWmiPyifNwdRwfhZjsEfsyMREjPUQRwDazwfsAG5FL-csASVyu9sirDHYyI5E4-4hYA6k4nABpHQARh02UyAE0dAAOJ7M5Un7NQT8DNGD7AcxGHUdLynbMZ3A6MsRA2gaxXOC51mF4UgdZ40RdZ5NW1XU8MI7JFRVP9jXPMdyCvFscJ1UiwAo8j62NICCShNksXYyFbQAtjF2AlgwPQyCLxomDjTQwcFxYZD6BEVd4I3L4sM5MUAAkAHFiMrV4wDkFjTzPKCaMLTSdKY1j-wo4hNCE0D7TXCCqOgiiMmk+dELklClPQlSWjU0lMlyFw8FFXJ7EyLUnzw0LhQMozjNcsy6MirBosyWKrNPJLs1QFhYE2ETBzE6iJ0kjznIQnRF2XPz103bcwApFFMgYvDWoy1Fj3cnQUonQsADF7wPAwhuvK0co7PLjXicg1HWECSpc0yKr6zyaqQ3zNoCrcWU5EkQrC5r0sy7LTqcBLDP47MBtoiKopi39rJ0JVjXer0lFoQl2Hm1QaQ0bRrBsNIjVEOIIFYTJ0HYNBUAAEkEWgUnhhGR0YbRGCGfolDAfpziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index aaf102c18..9d95b6dca 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -216,8 +216,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSUwgqHk7PMlZQBqpdUAwjoAvDr8USTEUeOoUdRQ9HDU7KVbuzYzcxDrH6npGVc3d6tgHYZFhQdSqHRYMTCUgAegAYtl+NkAOYKMABD4vWZrYy0ajkRjsAAKpSwpQAsjtyjoAISHNEAeQ2WAAkgA5DZonQAH02LMqLNsB3pYDhDOq1QZAHUdA4iWiAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoNCogQkaImmqNdrdcBoPA9Xk5ABdVwQCo1Op5YDANHe6pot0er19AZGxL+wMRkNhpQsGDnE0WogwVB1OiiUird5lLCU6mHbO5xgmg46QOFnQAITRBWIGcrBABpPJZQbVbA7Z0OwVclwPV7JdoOfY5eMlbRtcQOiJ1wIcHoRC7Tczh1bgbn5UYgmROgAGl20Ts5zt0-RsiFLIF0QEAmhM8lsuk8yU8pW8kP83whCIJkOP9hDEd91gaKJSCiK9oDYE4libOAwI+a5bmoacwEhURUBIY1xgbNYP0SJ1dBFCp+gI-MPlQEFGn4FsMnVJdRCiUQ7jgMF+GQz4CEYmQxErTRuEEOALT45iHgjAo0RJMkixPMBZIpBUf0+dY2JETiMNrJxKn6IkWTRQidEHYykyiITGAYpixFY9jOO4j5eJswCdEs2gbhEMSXMk-pGzbQsFPbKkgp2WxgvKAdVLUnQNI48h6LIwKwGM0yqPWczJzTZtDky1N12ij4c2YUILJYaz+JYuKHOMkpnMqwSWA8+gvPqiTyMqfy0UqJxjzwbta3JLAAGksAAJgUskdhce9Cs+aqEowqaZtSuaPxNM18RTbCSDY1zS0c9YdL0yoDMrA7avWC4WwBC8MxEcgITEHCIDYnR2B2LBFH6mSWA0bgnp217dGJL6VMukoRG0ahXK3dKYu7O6fDgR6sJet6PrBn7FL+jz0LR3aQaJLG1pi7rQha3RyjHOAoAxypym+6TFMYIhkXLURRC0KmabponGaM+HPgxGK0oR9kNicIVR3HCGdGuzcAUqCmRB0am2L596GaZ7s2SIUgdCcITqEETyQbZJxvrFhGdChu5YcOtTT3TZHUeewn3s+nW0T1g2jeEs33ot72ccYf78fd4H3uJpm5ZKGTWfZsQue0NXeYxokBex5XA-V2n6azuWRbU621KZVkOXOsdczlhWdC3Fm2Y5lOeY1jOs+ZnPKbTtuQe18GhZQuBoYdhOm+T7me-z-mQ671W8819h++x33DeN03u-YYOFUu4v1j3kWHyUWgp3YbICVBDRtGsGwinzUQsggVhSnQdgnwAEkEWgCg-tjGG0fwShFRKDAIqN0QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index 84e31e892..6bf526134 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -263,13 +263,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgGK1Go0jpwAB6wqCLungC80TGxMRF2ABa6waEiOvRw1EQA7jq0ohlQonD8OiQ6pMk6gqKC3DpoqIxEUASJ+RCaRNSatBAA5joEjHBQGhVExglQOswQ-EQwOgDCACIAkgDKKzr848VwAVALlckQc2bKQ1W6TXSyExAYrtCMMAD6o8YfxDCo+iMdH87CUOh0AEEVrYIVgALLrHSRHTA0igi7guZwYxInQKMCwuE6ABC+NwYMxfwByIIoIJ8MhZLx9KJK3xigxcnJGMJuNR6MxWJxyPxxMQOgACtQ2nB6EQyRTwVTcbT8RDxWtGIIhgANJn4lbilZLej9caWCDsikcjlKfakWaGSpjagfe1Qax2g6AnQ5WhVfrsd24HQgCkQtZbAAyPtIMAIH2CHyg-FE1HDa1sticsfjiaCyf4pHISgAvhyAFZEfofADWcFYoiDBxsTv42KgwlIv34BQTVZr9cbwGg8Cb7rkAF1XhHoz73cBgGrI1H8ZPpxAI1mc22Dovl9u1xulE0ff1-QK9t7kcGKXwhCJCsj78IxJfwXGPt3iEFRgN35i0qZNQuIGkQQQ6FgcADC8eCKpi7qjroIoEpm2YKhigosJ8mgsCqiTVgQYgfCUIjqKU7Cqiy+osusNFQjC8J0WAXLMoS7LcoK4LYV82K-Es1KNO8vE-FSnFcagLCwAQZQ0gRMjEaRcDkfwAGCrh1CCHAvzyURTZbtmIb4hKsIQgiaw0SZWBmRxzIAPJbPi8Hglyzk6P4zAOh8uGMPhhGKVkynkKpblKnSKx2Q4ABy9gAJo0Vs9gQjCACMCVJTCABMtn4ol1mpU5mGYq5RVKkQmjeXhcn+aIJGBSpamUnSEIAOIuHgzLEnCWAANJYGlHWit1fXZYNYBYE4LUbHZUUDaxaptYVXE6CVy0wF2WgsLQ4zIXYjguEVHIuUoHK0Di7D9OQagaNo1g2GGGKiIk-SsBC6DsE0AAkgi0CGX0lIw2iMBypZKGApaTkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgMpxiEfjpwAB6wqCLungC80TGxsRF2ABa0ojoa8Lg6UDqirGSJcBoEOqhQtIw6RMY6AIIAIra2TgD09V4AMjr8UKTZKSZQTDI9cAHGRBUAwkRBOoxwAObzoqKWEAkA7gXzabRiWf4lmtwA+vCkiQI6MD3kjBhKdEwsHPxhrIyK6-492YZpcFO3V61iUwL+Rg2tAutAg7HBmRASh0tQaTX0RnBGGMzHg7GRKO8tgcdQAmgBJOo6SI6BRgdoOAByAHE6bgCSiagA1GqdGkEdgAFkyAGZMgBGCWZABMMtFUp00rk7IghJ0k0ZXiw1J0AslOn1+oADArjZkTTojcqObUsABZSZUmnGKDqCb41Vq3XsC2G03mgOW83Wz1q6iDODUVL8-FgGr22ps2lxhMAITpXzVIbVXicAA0dS63YwPV7vRaK4G-QbTdmveH6JHo966QAxJN0u0Zm11lHkzW2Quu0jugV0moduOT9N4ZMzzLj6eTiezunz5MruS9nKkRiwhaiGqiVvDibN1u83MEzOoxpODFzeiw-jsep3zJvpoftFOb93m+fve-xQKIJwaPQ9AiK+P43qIhQYHBozsOKAE-gAJP2XiDv8oihFBgEYQOqF3mhNTMkBRi4TAYRwOwcEAI7sAArJkADsLE6Exyo5LQABeug0hAjBEBs0H-pk8xhK6Al2I4TjEU0aEOF4DipgAUpSD6lKI5CxqIgj0Em4qIEJIliU03EEZhtiZHBqA6nSBjdp6BEAArxjUdoPm5HkOlS-x0gA8l4dIEm0nQ4QZcGkKWhKASqapwSI6g6mOYDKapGl1JOWEkhS2Wrimfk5fmk7Wcu5HOSiXwAL5fEoABWRCwicADWcCsKI8K-DY-z8HALrCKQJwEPwKQECcTUte1nXANA8BdeCcgALquBA4UPuCwDAOOdQdHSy2retP6bb8227XeB1HQkAAGXDUDdWToHQsgaCQCQGJ9X3fT9TkQB4OiMkQ5BpIkPSg7o2rEP1gRBKgEzkAE9CsDoN1eJcGw6Nq0z9Y9-BEPsEDAzosKSIIMMXLo4IJKg8wGLTRAEGIqwQAsGA6KSRCCDoULUNQOgQHAoxpEQurzCMENdL80VZKkgxENoOiNuM8wJIwZjKAskvBPDjCI1juoCHADzfCwMAnPMxgjUQ1EPnQOmvvajo6vbMWWw5RWJrOxC2zG45phmW5rWg9n-LC0KxeCOoIgSfBCCIzZx8IYixSipDm8NxBBPMCyp4SDaRh70yzFgiwPHgNoouC80yRdTRspXWSMObxwVPylwyGIJxJb4iPsGl8bFWA3H+0P24ombFsDdbvtN+blsz6gCVeqUuKjalHdM6BPfqEhjcosc1CCHAI2byn8XJu5WCeY6k5X55GYLmAwWhaGhLjzuzC9Ccrcb81W-d0jL3JCaVyrD0yIyBw7R2gf2IJoH+LA-6d23kA3eL40q5jzBVFw4DkyYMfo3GAQ0tAsFoBLGk9hnA9mvEoL4tBqjsFhHcYcWhaJbh0EiT0ohkgQFYDUdA7AQ5oUELQTIQi4KMG0J8JQNUlBgBqstIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index 08a0a9768..de754fc12 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -158,8 +158,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyoZHxyeBoeCmkuQBdVwgcgqKk4GAFMEv8+5Ozi6aWudDb+5zm59elGhUEV4tF2A0kjoALw6JK4Bp8IQiUTQnSI4RicEQDIZEp+FZwbRkKYNHE6ahQehwaion78bSMUS6JxE0h2Skie7w7Fk2GhA66GE-d5c0k4lgwPyaFioggxYYEMR+JkidRwfjsAjgh5YACyXJ0Pz1AGFsvc5CkjfqwBaxRlqNQ2TC5QqlSq4GqNXacS6ZGJUdLGLQOXBVvK-VNfk4Ulqfk5bE49Qa49knMaAPJmm22nm8nTuz2y7XNVMZrP9PM5vMxR2y8OK0TK6ke8he3O830NgMsYP0ERh12R94x4tOABCmdyAE1csmHk5cunjeaq3n883C0L5xO8jP7t7V2Savx8URPDSYfZnNy84SKCtSKxUILDSh6aomTo72R9+2Kzp+n6WhjB0dh4nINQNG0awbDSHlRDiCBWEydB2CBAASQRaBSDCmUYBl+h6JQwB6E4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index 158dcdced..a4b5d9972 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -137,8 +137,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMoAMmE6pDAEkXAAHpFQ-KLUhToY1PTUoq1BuknEUdRQ9HD9nPWNLW1QcAFFZcVONXUNzYOLOgCkAHx7XUUwgiHkkbTG7LTiBOksUOqqeVDixs+kRP46AMQAch0kx0BFUISyOiIxh0j00WQA5iYvj9RF1RpFxpNpqsnDYkj0+gMFnAlABfAIAKyIWUiAGs4KxRDlglB8UZ+HBPsJSJECPw7g1qbSGUzgNB4MyEnIALquCBlKo1BLAYAKMCKyrqmVyhWlNbK1mq9W47W6pRoVA1LJpdhdBI6AC8OlyXT4QhEoidOndwjEdogRSKdUivLg2jIA3orEiCOYnIDQaDWKm3pN-G0jFEuicEdIXujOgA4vHdLYJiJ1bgTkGEhLdM6TfqXHga0UWDBIpoWN6HjSwQNsyIXvx2AQ7RqsABZKs6E3TgDCpXVcjy85nYFXbZ01GopF76X7YkiQ7gI8TSaDfZkYm93cYtArcD5h5vzNxeXHJqctic09n36lE4C4APLLpuW6BpeRSniOvYTmsQGgeByyXpB0HpHuB5HoOUxnuQo7bkU14DneLCPn0z4kf6H6gghTgAEJgeUACa5QARqTjlCBC4ruh0E6LBBFppxTEVGx6rbvxSZxm0Dagq+A4nnh55EQpOFkQ+T4vjh7C0V+nG2CBAAaRZYBxazlE4ABqfHVlB0FCXA-AiWsRmmeZYBSTWqEBAE1w6LcKhqBo2jWDYBRQaImQQKwxToOwloACSCLQbzoEl2aMJmARkkoYBkjKQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index df2907006..2159c6460 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -189,13 +189,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6e4YHQAITpMh0ThasB8cBNaFQdWy6SuoJ0eRpeVwPT4QhE1JReeEYjTYPqMCiSvZlLhqBCrDgLDL5Z01Cg9Dg1Bp3x0WBCulK-D5glE5H4JiIjB0WxCtEpBgAmk3GNTSqQ+7DhXYOyInoSSnldboUZ6Xfv0+WWJXNCwaQQMoKCGIoqIu3B1HB+C3WxdHzIxBpW9GFoXc4GVf9nwlM1qgKS4XiwfZPgQo5ygBOQc0vVs3xET8J1PG5EOOa4Dx0DDSI6fgqyIUJuxRexnEw38azIOFgPvSCXxwj9xx-VsHyfQCUWA0D6BECDBOg507meSAKVYgEmN-HRuLwns5JYqkL2UkxaBaL8aQYlwsJKciTJ0etmEafC-0k193zwvjywEgDCx0W9qEEcCXKg9gKi9WSdj2VDkLAIKDkU0iSlU8d1K9R4wFIgJy2SsilACWhjB0GEVDUDRtGsGwinTUQsggVhSnQdhEwAEkEWgClqt9GG0fweSUMBuUNIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6N4YHROFqwHy6NKZepQegiHSiHzpHQkIO0xgwKKaFg6HOMWhxkSiE1oVB1bLpK6gnR5Gl5XA9PhCYs05vCMTVsH1LNK9mUuGoEKsOAsLvdnTUONwag0746LAhXSlfh8wSicj8ExERg6LYhWiUgwATVHjGppVIC9hwrsRbgT0JJTyut0KM9LsfNe7LCz+ZpBAZIKBBiFEogznA6hwPw44ThcQEyGINL5oW8ZwMqCEgRKZrVAUlwvFg+yfARRzlMRYCVE4AAaAJyI234TuBIhQVuKL4TchHkZRNFgAEcF0U+tL8PwUSkEQoSzii9jOPRcH9mQcL-mxmGgUxkGbrBE6AcBSEoih94YTp2HOnczyQBSCkArJcGJhBLFzuZ8lUl+NkmLQLTQTS0kuAxJQCb5OhDswjSsfBRlgXZGmCSU2mIdSencII6GxVh7AVF6Zk7HspHkVlBxWdFtnMZuDleo8YCCXxYJVQEAS0MYOgwioagaNo1g2EUNaiFkECsKU6DsGWAAkgi0AUw3gYw2j+DyShgNyhpAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index 47215d489..33d010714 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -214,8 +214,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otQ6AKQAfD3FJTowgqHk7EPDOuW2ABIAYrUAvDqyonBRKRkUkxDT0wCEtOLQ7LNzszYAfjoKYACa97hTB-bOOrf33-sHNv09VLpDJRahQehwaiTMCVQT0ABWcHUMzgIQyOgWYIA5vcAtM8WVyqUnHUGk1Wu1gnBXL8MB1+M1tGQosZsaI6qZzBorLEbEVfiVYnUhQDXiVRuM4HsDsNbABZAAKSyilScWB0q2JqvVy1W9yeeDFssVyqwThWZTV5o1esezyNJXlSuqUQA4lgAKway22ADyAA13Ta7mAPfaBW9FSq5QBFAAMAEZvcdTlB2JVY4mAHKlOVyF4R6ZO6PxgBMyZOGDOGbLObzBZljqjAGF40nVimq2nW9ncwT8a9iNRBDAIKDwZD2ck6KJSNLI86VWrvfdKqpLIJ2cTwzKnabrbasJCQnB+Jadwvle6vbbXcx+LovdvDYW7FGa4nvVAxLRxxCobEwDAKumYJnW9wALoQQUgHATCoGVM2kEQfmRrFh+5arN+oi-mC-7Qg8GAAJzEaRREAPQAFpkWRlqVAAkriDYLlEPbtjo2G4ROAEhEB9xseBYBQf2OgiUOf6TrkIRyMA0DwKI7BDiOY54ZOcgQXUUDiAQGQsFA6iqIpRDDqOEnUKIImxEMAC+NIlAAxAA5DoroUKoITZFiOibqoBgPsY2SnjocBMqQJhshgQwVMSdTRSSAI6HS-AMiFFCkCybLxIEtLfu0EDRJoLBTkYcliOwcUybOLCkKIADqwLsKVCkVQU9x7i6uIQUMdI-lEhWMMVOhNeVRJOJVoSMDV9WZI1sBlS1IbFp1SjWQE8JENkUQANZwKwCl5DYyT+VAwjpQQ-AnE062bTte2yXN+2JOpNJoKgdTZOk855N6eTMXwQgiOyqz-cIZWvA0UTpalZCiFEogjjAnjztMqndLapT8NoA26E4oXsrCMCI2wF7THkpUrmAcUk8MLAwH1LDejpG0EGIcOQki5D8MjBxMzIYjev1tDgiIUS8yzCn3BUNTPGs0KlFgcoy5LCvNuUuKoa+JQbCIBlnujCs-DKGsyqyUBYvTjB5WjawZMzrPaxzp7c9MYv86sgvC5srsS5To0y3kfFgD1VsW6IyHG42Du6z9iSB8HUD5aHyHAAm0EOjoO1wKgUREIwD6MN67xOMxJu0C0QWrAspTVKqRoR9Mpvm-17Q-oztt87DUec87wzewLLBC-QIve3Lft4DoAdwT1OFJ0JKElwcXcVxPsdT5xs9QSnaeaxncBZzneeqIXjjF+nAXl3rGLV7Xr71zTyWQ0QoTW0XrwEgEAS0MYOjsNk5BqBobQ1g+RDFEFkCArBSjoHYK9AAJIIWgBQ4EbEYFjAItkIBgGshBIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 7aec2d4a8..6c6f7f5b3 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVOABp1DU2t7fytrhAlonCkGDNw-OwAjAUA1tn8OgC8OgpgALKqMxAQcAa2aaLkjPsBJRjUUPRw1KJ1xNFPL2-sFQMFYy0ajUHY6ABipWqlSc916Azq-0GAFIAHzInolfi0a7ZdTsByVBwAIQAUgBJcoFDBrOBwVDtEFg+zOGxojFTEo6GCCULkdiYrkABVKWFKBwAwuUwftbOUHFhyvtcIKSiKxQcZWAAPLaZhMoTMDQkHS5KCsUSKPCqsoANShYNEsB8cHYLUdcAAjisCgAmAAM-rkBVEtAAXrpdjlgzpGPSngRI3ZHLCVZyuXaoQ4teVzaJ9oK2ejBfRNlFGEQUqI-n1+nDPlFvq9q0ibMlHs9m0oAL4BABWRGyUVpFrNoTbRnGxigwlIUQI2NETQHQ5HomA0Hg1bycgAupM0Kg6tl0gLOXkwXk0yU+EIRO9drfhGIzxmGlE561UERRII46+Mx0JtQV2fZyj-EJLCmIhjB0JwWm-X84zsZ4RGVG08k3JN9iRdD0y5VAWFgBcwQIDJB0TUQohmER1EWADAJ0MiKLEMFNG4QQ4HnciZBfPJgGAHDa32XddwKfZ1XFKVlT2MBJIOO5r0YnQaLgOitlAsA5QVJUwBtYMbQbehWCidjGFInjKOo141PIJYbRKZjeIfHQzNoVCuKcyixygAShIGESxJUwR6BmUhSIFMAYX6GScKwBSwDkAz8IzVT1K1aKCxSnRksYisUiiYzTJYCyWKotK7IYwCvNY3Y3I87iyp8vywFwsBRJDEKwoi-YxQlFw8FkrAnAAcXJbUADllliqL7FKWxSmmwb9kyxLcuUirFi1PqBv0pSM0IxhZHC3YavKmz1KqjMzrYjjPMsvjEhatqOtk9UJXm31FIclSLrsnNGEEABzMossY9aMw6fgPyIUIQIhKEYULHp1qBagbjBSJqLobysa6XjIoqGoZsqUpwXBaoZM2jTZIATTuAIAloWD2GyG4oAsbRrBsIpOVELIIFYUp0HYQ8ABJBFoApxZmRg9QCbslDAbtdyAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 41a8e2bad..4978fb7a8 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -131,8 +131,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 7eb44136f..3dd43431a 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -126,8 +126,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAYQBZIpKyyur+AhglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdJRreyenRIoJ2BTBc2wdsgE0ASWznlOeHLkHAAhABSPz+OmemVe2VsLUhz1auScAEVEWBMrYmgBGDFYpoAJnx2IAzCSmgAWZ5DPYQW4zOaeOTAaHNBF4KGY9nPc5Fa4wBmiVwQHIFIpJYCs7kFXmXUXsiWhKVs1pykVoVBFeLRJ4QDJJHQAXh0SVwDT4QhE9xNluEYj1GQyJT86xga3K2jIswaTp01Cg9Dg1GNXKaJGIMGiUDIOhacC2sg0JHu9FYcYTMg8ln1TQDonuMf4OgACoxlqpy8WAHKwOB-X1OpLHXQm1Uc836v06FiCzQsUMEGJjAhiPyiYNwdQJ9iPaFYDtczILpq-MByf6Yhc0zvdnQTgCOfn7jEHw5kY4nImn-CeYGRaMhV6n5GLbfvLRR6M5xloFQTob2M4G6NhkMTUKQZ4jpek43o6e46EO0E2joJ60IGIgbOeo6zDkrQpHOmLYninLQtixKkURTTkpRBLUuuIFdnuz43oOd4EiRm4EhRXFkhS9FDHujF7tQEFQReojjrBr7wXuSESaGaEYXAWHIeweEtARd6tNkThNAA8mucjCQhLGvmxSItLpBlGaBOgmX6NT8K6RCeCGJpAU4u7dnAXrrKQrCoK2XKkOWHjwGQzyNoJ9lKEMtDGDo7DxOQagaNo1g2GkXaiHEECsJk6DsJqAAkgi0CkpUTow2iMEM-RKGA-TnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 9138d5e51..7cc0fe4bc 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -67,8 +67,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWolAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyto7u3uBoeD6kuQBdVwgcgqKk4GAFMF38442tiCU0VCL46PZ0nSSdAF5n0NwnviERUTedD9hGJHhAMhkSn4Jug-PQoKIZH54sYiKDweDqFB6HBqADjgAheEyHQASQgKOOXzB6I+nhWunex1OlKe6NQHloFAmxFxjLADlyDnxACkSdkWdT0ZoWP93gQYu0CGI-KIcXB1HB+GiaRl5YqxADpYxaFiRJMFTIQac5FSdRlVSINfwAQRHicsABZSk6JkAcRceB9YFyTgAGt7jgBhADyDgAcvYAJoRsBYTKRgMpY5OaO5XK2WzHZo64vg0vNZq0Yw6djxchqDTaaw2NLU0RxCCsTLodg3AAkgloKX7qsY2kYzQaSjADQ2QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index f4d00026c..86f271b96 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -119,8 +119,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NboPzUKD0IjMUgUjgNPE6Un0ODUdGPABq0W4okeiNxdPhoSOujhf0+3NpeNQHloFDWxGZwrADlyDmaACkAJLZMW8umS5ilfjoggxUYEMR+URMuDqOD8HF8vHG01idGaFi0MkidYmmTY-7NFKPAAKmSwmQAsgBhLVgOQ8h0ZS0iG2GhUhsNRmPijJx7M6PWwI0+s2iC1WlP2hNO31ouFuxge+he6sl9j+wNgdMRx65nV8pPW8ipnTB0PdsB53sOjTwVCjMi1nQt80Dit5jLLxf1xvN4t+z4dnIATR78YTq6HLKe2RPE77ObPdKgEAbEGHm7LyaHlYdm9d7s9OBvWdGZ2xHJ4ADksHVCCYync9y0vBVMigmCs3vHR4KfN1-HrIsQM-QdbR-Pk-zrACmyAzc2wPcDMlZTIXljR9+0Q20r3oxjHknFiMigHDBD8PC4Q-C9iPXJc9y3CjdxAmiWkPBj8gcU8JLE4c-iUlS7wdQY6T0zClEGWhjB0dh4nINQNG0awbDSXlRDiCBWEydB2BBAASQRaBSTzLUYbRGEGPolDAPoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 0de76f252..424ce6fbb 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -89,8 +89,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 2992351ab..6e117e107 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -102,8 +102,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMIAsmE6pDAEkXAAHpFQ-AQwhSWlAMoAMjV1Dc2t-KLUOgCkAHyTJrTU5IzsDj0OAEIAUgCSpVNZc2VVACSrGzulAUVHlcdVxT22pbbVSTfHD08vXe-3TgByz1eRnexQBQKUAF8AgArIhZSIAazgrFEOWCUBsSX4cGMUGEpEiBH4tFEDThCORqOA0HgaIScgAuko2h0kSjRDUCOwFGBHg5SgBNXa8vK8s5bEV4HS8z4Q6W8qo9JwARVFMrAxVs5QAjOrZdqAEz6zXagDMJq15QALLzYfCIOzUeiQnJgLKKpVLZ7eYyaqyYE7RK4IGV+jUEsB3Zren1fczQ56Ixiox6qvGQ2hUDUsmkeRAigkdABeHS5Lp8IQiTmlyvCMT5opFOqRQnoSKoRiWRiReAk2QaKxdJs6ahQehwCal3kABS7REYOkqcH7wUsEFFw6bCVpumnMfTeC3RVQLAopF3JY1YbjR4LI50p4056JRCnGolF0395Ha8Yk6vAh0nhAgxEiURJzgdQV0bB8iiAkCxCvTQWFoccRCJYCZAbG4xVNbYsCcW85FwY8mwgkRoP4K8DQIojeTIkiyI6HFiGo0sEOw0RwMgqjYLgzjQJrHQUK7dC4EwxC0VwjUqlKJxygAeVKO1SJ-B8KKg8h2Nkyp5KUlSwEYtSBJgLJ2kArChJ4yjtP4h9BKQ0tRLQ+gMMc6TPTwqptkBcpVLIopNKomiwB8vyGPUoomKinQOlEUh+FYSypJsrSYMCuKrKckTUPEySuPYGTZUeIUAtioLeO00K5UFSK4KuJtGoCAJaGMHR2CyJYoAsbRrBsAp71ETIIFYYp0HYLNjkEWg8imiDGG0fwoSUMBIUZIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 93d7ea80c..27026c12b 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -145,8 +145,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwHF4vHUKD0ODUdGPXIk0g6clZKl2BkiR6I3G0+GhI66OF-T4Chq0lgwPyaFjoggxMYEMR+URMuDqOD8GnCjKKxi0PlwdaqmTY54pUSCehajlwgiQp5YACyAp0fw9AGFso85HJBYaMlqRLr+Cy3Z6wDK8cH4xlUCxYBtlZb1aJNdrIwbDYrqIJzSq1dbPilHgAFTJYTLu-2BkOh8M68hRiVgAASWEeSZ0iaFtM0W2iCqVzszGtbef7Ru4xYtZdm-2alaeADUAJK5Le2JtznQz9vRqsAeVytgMACFMrknPktwA5Jw6d3Prfuhyx-uDw1QQtx0YDNlxzCN23zYVjVNegRCXK0VwrI97UdaNMifLBnwDMA-xbXMT07dDMKfbDm0NYxaAqPV0XsZxfzIvF6CgcN4nNY0QIQsC2z1SDhxYGC4NLBD2FXW0ULgJ1vTAa8MKwg8h2FY9qM7GTiNIw8KKojs7EcFwFIyXDaUELUn0yaNaGWCBWD7BShgMpQhgsnR2Hicg1A0bRrBsNIhWJeJWEydB2BBAASQRaBSUKtUYbRGCGfolDAfoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index 4672fa128..aa87f47fb 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -145,8 +145,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwPzkvwRIiMUSkHF4vHUKD0ODUdGPXIk0g6clZKl2DkiR6I3Gs+GhI66OF-T4ShqsljUzQsdEEGJjAhiPyiLlwdRwfgs6UZDWMWhiuDrHUybHPFKiQT0Q0CuEESFPLAAWQlOj+-oAwtlHnI5JKLRlDSITfweb6A2AVXio2mMqgWLANlqHXrRAajQnzRaNdRBHbtbqnZ8Uo8AAqZLCZP1hiPRmNx43kRMKsBOEPNACSADlbI3HpmdBmpaz6Yy1sZ2T0-Fb87Wiz3SzPLSwbfQRPat+x-s0Ut7HgB1ADyWFyAAYAEwAMReeCDYDvD8fAEZ3wjOcYx0Hc+yTH8nzfD8Z2A6VFyZPwVygHpN0dbcSz7MtpQrKsT3Qs96y-SCX0AsA4ItMDTSTABNZV52lYxaAqai4XsZxYK7VUK3XTUvQLfUqLNPcdCtQ9jxrAjz0vH1MgANUyfIQ0DP4xywcdw3IijpSEpN5MU5TUwYjJtIyegoDjeI7Q3fit2LeMsJEsTbXwwtCJaGTHgAIUyXIhxUsAvLUjSgK4nTMNYr8fL8wzOJnQRDTHTIk1oZYIFYacGKGEylCGVKdHYeJyDUDRtGsGw0ilYl4lYTJ0HYEEABJBFoFImsNRhtEYIZ+iUMB+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index 0af0b42f4..de64a0e34 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0Vh+ADmzEWOLxeOoUHocGo6MeAHEabp8kyiMxSHzWFl6BA+TBuNEhbYmSJHojcfT4aEjro4X9PnKGvSWDA-JoWOiCDFRgQxH5RCy4Oo4Pw6YqMkaTWJ0frGLQZXB1saZNjnilRIJ6BbSIbIU8sABZOU6P6RgDC2Uecjk8vtGQtImt-DZ4ajYC1eJTBYyqBYsA2hu9ptE5stWbt9sdPrRcP11EEnqb1fY-2aKUeAAVMlhMhGE9HB8PR0nU2mM1byNm1U98rZHsWdEWFfSInzRGtjIzKXqDXCu2b5-WNw6q87Wyx3fQRF6nTNe-7A8HQ48AOrsrD5AA8gAagAYi8eAxmAf4AYB4ETtB-4ABIAJJgRB-aIVgqHwWAyazval6Lt+WFAehSYblu9q7ow+5+IeUDHvEmyyAKjCVq+taZouDaKm2HYvs2PafJhMFkbhVFznWxHLgAmtGxi0BUNrovYziUQReJQBA-gChU1I1J6rocc2XELjavH0ueLY6K6j7PtZwktB+QZwCGZ5hpktiAQAGv+SaSYR0kqR5fzeX5WAzteJhKSFdiOC426FppGT0FAFqEkQ+lcie7FnreNZERZ0XWS6D4eoJ3bvjoAaue5OgEGGzThf5eGBYqRVLg1TUtZFeEpXiinKV1amJfa7UZDU-CZZ4rJwqBmT5LkY2Fg0kmKdQ5B5cUcDcOadDdr4+0+p5eQYVBuSZKBuH+sFXWPPJbVKIMtDGDo7DxFtUAWNo1g2GkCrEvErCZOg7AggAJIItApJDFqMNojCDH0ShgH0ZxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index cd211d8ed..843bb2d05 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -144,8 +144,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zhXCAyMaHhRP3ooUQBrOFJRIoBzRjhUdgUwAD12XIBZAEUAHwBhLbkMACoAOUyNgBJllIGxdhzmuRTNbkFdAF47RydFXp1+rAxH5RMRUGJZvNFssVpstidcntrngdHdRA8mr8Xm9Pt9nH8GhIhiNxpNpuECDEiDJgaI4CJ1HB+Et-hlKdSCBCvq9GLQoPQRH52TT0Y8nClRIJ6HTSDovoDBsNRhMps8Ghk6QzyPw5QC0UrSVMGgT-kSQWCIRSqSKQfS4IzmeqdMLOdNuSw+QK4ELra6Mc0JVKZbqFbSLaI1aydJr7dqQ-rQURwaJcE7jLQKkzdfZnMalABfP4AK2pED8E1Y6KSNnC-DgxigwlIQv4tFBfhL8XLcErwDRiVCcgAuj00KgivFoiyMkldUlU-8+EIRG6dEvhPcnSU-M3RDAAI7TjLH6j8+m65aZfjaRh0nRObRkab0Vg6OF2fkiG5OmehO4XsAxW-KMMhYGA-B5XUXVpO0HSPY9j2g1ceU9QUkIHTxgGAS88nyZYhyHQNpUmKClkArANhuHRllyJwAA1ljkSMEIQmMHQAzIKOWH8dGYlian4HciE8ahdQAMUyfJaIXFidBJFVVySLDljNeSyXwwieMTZM51CZSwDNbSxA0mSWOoahZS+JDbS1Jl4JYpDdRQz9vXQpTsMAzETOjIMSKssjmmyJw9gAeWyRi+Nkti4y+S8nCC0LwrAHi-gQ1LeKUP5aGMHR2Hicg1A0bRrBsNJ-lEOIIFYTJ0HYMdLkEWgUnqulGBvP58yUMB8yHIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index e0a427b8c..d9c1a080e 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -125,8 +125,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGIdABUZxULKBokOkTGOqQAFrrkoqQ6sqK6RoIJOgAGTgDyAMoAIgCaqTpQEPxpOQDCWVhOAIJZhZostFD0IqJhRDr8cHwQMczkOjC0oqK0EADmXQFQGEr8M-pGXNQA+gukUNbzi4Y6AO60EePsG1C4OiBKOjo1OVkAMkthMASrcAAeq1D8otTXt3uDwAJJlcnlgABGAC6zwAcjVVuNyBNVKslABfRQQABWRHGqwA1nBWKJTjMbHtusYoMJSKsCPwRm88QTiaTgNB4GSznJoa4IHdHs8zsBgAowEKHhLofyIEo0KhnuMjuwAWcdABeaabXAAvhCNpaoYCYRiNUQG43UgwVb00SCGAwFgcAFWnTUFpwajGiU5HpECbMVDhGR2FoiCV6y3unXFWC6bUSqVRt1Wli2xqMY0EcL4ghiVYJETqOD8dgENWSrAAWSjOmTtfKOQlcgujbrYDbaZuP34dqImx92vszmjsZ0DqdTQAXnBVln2trc-nC8W4KXyz2rZWJVknAANesSrA1couPANsAAIRrWAA0lgAEzHsBg-KvipVWpZV81ADiF7djGE67mA+5HpeJ5nkB27AROyRwAivpgLQNIQKwEpptiNzYtiaE6OwyKqFAFjaNYNhXDGoihhhNToOwirAoItAXExCSMNojDYhiShgBi0JAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index 91173fea1..de6b90271 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -156,8 +156,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiQQwGAsVh+egcBp4nTUKD0ODUdGPXIkslsHRUnRYIgRHQAcUYREEqDRtgZIkeiNxtPhoSOujhf0+0ppeJYMD8mhY6IIMVGBDEflETLg6jg-Bxcrx+sNYnROsYtElcHWBpk2OeKQIkKeWAAstKdH9AwBhbKPORyGU2jKmkQW-gs-1BsDqjIxjM6Gr8QlETzMuH2ZyxuVU7UsNFwu2e0Qms1J61x2tG6s6J0u+gid32mb-Zo+v0ABUyWEyaZSfwAagBJXKz2xRrOym0J83kZM1v2ZOcLpdgQY2ldr9ksWgALzdTvbreN66b2Yyd-bnddvbr7AHQ5nmReeBDMAwwACQFZcyzXRtNz1Hdpz-KNsxPOVBFNAA5TIU1oZYIFYNVVzxVAWFgDY9Q9NsG0TTdmxtF9HW4QQ3RfL9PinMBR3HAMI2DR52InKMILlB9oOVJ58gPRD1SPHRBkGLCdHYeJyDUDRtGsGw0llUQ4hwzJ0HYEEABJBFoFJDNNRhtEYQY+iUMA+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index c8d8d6f5f..30e7e1855 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -183,8 +183,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzbWycikrLK6v5SciUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urppbb0PvHnOaXGA3pcWDA-IwlusiDBUEU6KJSOwGpkAMK2TJYACyKOyOgAvDp4YiGhkIcZ8To-lidAAhR64Ek6YgwikEJFPamZemUjmYnQox6DDJyBkQDIYvkEolIsUZHRkimPGmIHQABWoUAIcHoRHpjOZsIJbL+KuyjEEAHMdAANbmPFEqlHQ+jxDyWCCChqDQZKNCw8LxaIyjJJClJUUZPhCESiClR4RiYNykp+NY9OBJuWEqD0ODURVgWy0eB2Ig6JzaMh2HMiPWyrNJI66Al-T6AiNZnSgvyaFismKjLWiPyiPNwdRwfiZzu9xi0GtwdYDmSJ54pY28u28nFb1HorE7sByEWMrNUzGPU86E-1uXdslQlkE++Qg0drOoFiwDb9wdiEdjhOU5XhkvbUIIi4EMuQ7sP8LQpI8qoYpk2LZFuSFYChgrvp2jwAPK5Jet7CjhGQIswng9n2RrQf+o4iEB05ZrO870CIS5-jMa5MuyuROLaeA8jSmJYAA0lgABMgo3p2cqPHxAlXjJnYaPAfioKMZCxjRnEAQx5BTmyACMAAcEkpBJAAsADMIo6KZEnKVmcCVmsizbFRjC-iuw70eOBlMXKLELhxPmwW2CFgE4ABqABytjZE4uQCkepFyVFcUJUlKVpRkxi0BUk4UvYzhKYyQrXkogy0OS7DxOQagaNo1g2GksqiHEECsJk6DsH6AAkgi0CkA2jow2iMIMfRKGAfRnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From a78c0baa0996fb30fdff551bccb7bab0ec86caa6 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:36:08 +0000 Subject: [PATCH 50/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_a_gee.Rd | 4 ++-- man/tm_a_mmrm.Rd | 4 ++-- man/tm_g_barchart_simple.Rd | 4 ++-- man/tm_g_ci.Rd | 4 ++-- man/tm_g_forest_rsp.Rd | 4 ++-- man/tm_g_forest_tte.Rd | 4 ++-- man/tm_g_ipp.Rd | 4 ++-- man/tm_g_km.Rd | 4 ++-- man/tm_g_lineplot.Rd | 4 ++-- man/tm_g_pp_adverse_events.Rd | 4 ++-- man/tm_g_pp_patient_timeline.Rd | 4 ++-- man/tm_g_pp_therapy.Rd | 4 ++-- man/tm_g_pp_vitals.Rd | 4 ++-- man/tm_t_abnormality.Rd | 4 ++-- man/tm_t_abnormality_by_worst_grade.Rd | 4 ++-- man/tm_t_ancova.Rd | 4 ++-- man/tm_t_binary_outcome.Rd | 4 ++-- man/tm_t_coxreg.Rd | 8 ++++---- man/tm_t_events.Rd | 4 ++-- man/tm_t_events_by_grade.Rd | 4 ++-- man/tm_t_events_patyear.Rd | 8 ++++---- man/tm_t_events_summary.Rd | 4 ++-- man/tm_t_exposure.Rd | 4 ++-- man/tm_t_logistic.Rd | 4 ++-- man/tm_t_mult_events.Rd | 4 ++-- man/tm_t_pp_basic_info.Rd | 4 ++-- man/tm_t_pp_laboratory.Rd | 4 ++-- man/tm_t_pp_medical_history.Rd | 4 ++-- man/tm_t_pp_prior_medication.Rd | 4 ++-- man/tm_t_shift_by_arm.Rd | 4 ++-- man/tm_t_shift_by_arm_by_worst.Rd | 4 ++-- man/tm_t_shift_by_grade.Rd | 4 ++-- man/tm_t_smq.Rd | 4 ++-- man/tm_t_summary.Rd | 4 ++-- man/tm_t_summary_by.Rd | 4 ++-- man/tm_t_tte.Rd | 4 ++-- 36 files changed, 76 insertions(+), 76 deletions(-) diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index 720872be7..f69462a7e 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -146,8 +146,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeUAipV1DU2t7fwAjqI6AKQAfNM9Jca01OSM7KUAQtUAYrUAhAC8OgpgAJqnOgBkZdt7AEw6RyfnpzZzCxAlJTCCoeTsRbfUoANQAkpUwbYdMcoOJjFB1ER1qCIVC5LggSVUZDbAA5GE6ZgQADWG3BuLx73mWO+cIwCKR62pn2+bJ09IggngjBk1hmNK+7JK9MZpGR1kxQrZoNK1U2YIJx1ltT0OgArAAGHQAYh0AClBKJSByplAvq1YD5dOKdABzOAmsL0bKeHQUbxEbKkDBAllA-iMIjW7TUUTxCAAXwCACsvRAoiS4Kxw3kbMl+HAEcJSFECPxaKImnHsonk6JgNB4KnEnIALquaDoOrZdKAoV5Ql5KU-ATCMSEvhCEThoENdpRB1wdvC6hQehwaiE04AcScLjwtLyVd0x1OFQGpx77Kgmm4UTPjEJBAyXoIYiiokXcHUcH4gLAKoVeKPJloLTfQl7GcDFaVofgLxYa9bxkB8nxEV93wID8HEqBxNn1MFyl-U40IwrC3gKU5UPQzDsLAUDpTpRgYEgq9jhvO84OfRD2GQ-csAAWRwz8uIAYXIjEXlKLjCNpTRC3SOjoKY0RHxY8gkI-HEoR4lT8UI4SKVUijjzZVAWFgfMZNguT4JfRSZ2FHRGNMwkz2oQQ4DzGD7xrUJgGAfd+kqU46zrIiwAABRE0pOIEniQqwMKxKotlzMQ5cwB2ABpSEDB2AB1TZTlpSjhWITRpIY1zmIQyz2LATZSkqDdAtKNceNqgANHjqtqxB1M0vEHGqaoAjZAadACAJaGMHR2G9VREQ0bRrBsIohVELIIFYUp0HYNBUAAEkEWgCi27an0YbR-CUSMlDASM6yAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index ee5c3c101..58225572c 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEosMAD6jHDGIcQwqPpGdKKk7Eo6OgCCWACyAMIAIjoAvDoJSSmpOuHGhToKYBmZOgBCtbhlqdGxRQTJdVnpLTW9Ddm1AakBAUr8UKRQcTpc1CHTs9ZTM3OGOgDutKQAFrQQ7CtQuDogZWm5AMoAMvOkMAQhcAAeIVD8otRXuQCKN0ez1eHy+AEdRDoAKQAPmhbRMtGo5EY7DSjTuADEHgBCIq1ACatR0ADJ0picQAmHT4wbEsA2OEIiDlJEo1TogBqAEkbjzbDCjtCdN1agB1JxOADSOgAjDpcmlCToABwDCVS2U0pUquUAVg1YElMp0AGZFcqdFSqaMmfDETBBLNyMlWWz0rz+YKilBxMYoOoiGi0l6BXJWu62aG+QKAHLVZgQADW3Njtjj9pZHvKfowAaDaKziLZeYggngjBk1hhDqjHrzBdIwZrAGIAOQ6GBQZNHADmopIojgBGdWl05crMhMgebjERAQAvgEAFZEI4hZNwViiE4bGxbfgRKDCUhRfi0UQvNcbrc74DQeC705yAC6rmg6HmRz2btSp2qU5I1SPghBEKEilA4QxD-conk+EIYBgRgYFgtlqCgeg4GoapakyTIshaEsdFOR9dAJOoARuIj61SKBNG4EIGMYaoCH2dcCDEEJhxEdQ4H4dgxTqLk0juI1sgACQAcVGc5alDUTZOI2h+CYlhWPYmQuJ4kdyAEoSHBuBxGgAKR5XIjSM0zzNkwZDOMsyLMZYCGxQtSWK6TTONEbjsN0-jBJ6eojXqPJbPkwjnOIzRLz2dyNI47S-L4-SgrDWwQvSuNwuE9MlNonRgjCCIoiIGJqiKypSpiFy2VQFhYAIfgEq0nydJStCPTYxKIJ0BjqEEOAoi8mDTmAYB5Ko2pX1fOSwAABQyNIcicubFqwZb8pzVJ2r03CwCxaV+QMLFxWaMBiIjYjiE0eLPJ63zeL0wLakaNIbhcPBBjSKTPrmj6AA0jTej7EBjb1bLjBw7juMZyjhiYlFoKp2COVFZ3HawbEud1REOCBWDSdB2DQVAABJBFoc5SbJ4dGG0fwlEXJQwEXV8gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index 27dae170c..1a436a496 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -201,8 +201,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTowgonk7ACStrYAYp0AvCZQ6gHsCmAAmic207MQ8-NFpWnUUPRw1MdgqypkBrZEP4xwBI6AAKRFQwgSlhumyeAHMLkEGi1Gk4uj0+oNhvFdFc5g1jLRqORGOwAITsdgo2wAeQAGgBxLA6HZ7ACMNgAZDpKU5Wk4AGrMvYnACyq3azQuOi5lKwIqFOhOjUQOmajEEsJ0tIRQQAvkEAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfSNJvNluA0HgVtycgAurEWh0urlgMAlW12icQ2GIMjUXaqjG4yjE8mlGhUF1ysVjjcdLlmWWqrg5nwhCJRBXa8IxCXbj00rC0vQWAQSiwXaJaDBInBW7cdE8XuNhWBU01oFFB6ITtXS7cBhXcv0BqQ1APUHACGPx5XEgHdDOIwm8Hjx6JXofSBX7yJ1GlRAej7eT73jQQxBWmgsLQzwiK6JR-i234nk08arjB45fmuCHzEqcoroqs4AMK2I06F4JhfLajeyEoZhWCNFhLgESc6xbNeNQnK0jSbNsGFMfYjS4QATCc0EnoiKFyPBKEvo+cD8BWSo4XhIorvx8yLEStAjhWmyNO0fIKYJtzCdBBLUNOE4eqQx7jlugy7gc+6HmZJ65OeUmzvG8mkXeD7qM+Hk2UhZENL+MgAXsQGMCB9BgQF-5WgpJ5XiJfk6L5CWobO+GMdhuFpYRTjEfFyUnBRVHsR8GxsTRYDMaxDGEZxPF8W5CE6UJeUIWJ6gSU5RGuQlSkaKpezqZpLgNfMTW6S18wWTue7vp+dnmVUjmXs02YkWRbVPnsG2zbZMXzJFQU6CFYURRBgVWqmNRfrOTg0gyWDFSifL8o9vJOA9YByHpI23BtHV7AAcg47TtBNJ69SpIhqRpWk-ToY2jdB30nkMjr-ptxmiKZClTVZb4frtcMObAF6Yam3Wid5Xmvj580-mdUWAcBoFwOBkEXStThXe8VJ0oyr3PQL70ImD7k0-9ZO3XzH2i7cEP9Tog2w2RCMNMjMG4zNBNJQhxPwE5V4U61VNbd5O06yhB0NsFzPhazVt0zBcV7bcFsJWhcnlZRmWe+lXVrclDQFZR1HpXRZV+yxEc1RRdVgC7iNw2rsvzH9kmA8DoMJ-LUMDTDw0q9pSMTawaRo3AGN0Fjjua9Z5uOw0euk1mod7Rt1OPvXCdW0zoUs2z52Upz3NKlL91Cy9XtvR9X0pw0acG29k9zwszqQ6TSsF0J2mi7X+NzXtTcGy5AfGzTHf74TCU9zbfd2wPUUN+OztJ-tT8nh7j0yVlTE5Ub+VgEKqHTC4dqpMSjmAiqtVGi8Xjq-NWCd1brW8hLIGIMV45w3vnPaqt4ZI1vIJIIQRaDGG5OUYk1ktCji+rUOYogygQFYI0dA7B8wABJBC0BqOw+8jBtAxAgLqJQYBdQhiAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index 9fa41d38e..ddd272ff5 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -155,8 +155,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlbUAQg1NLe2d-NT0SgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5idaJTqdTqFB6HBqCS-gBhEjGWh7cy6ACSKkYmm4OgACv5SH88VSWToOpLGCSCq02qQ1MdRKg4ARmcqygV7rpsdCaoC8H0TaJOYbSCSHSJ1DF9YbjSaygQsksCGISUboVgALI8yoKnR-QZhrAAaSwACY-nJFT7qa6nXB+MG0f9w5G0xnM6SjrRUCISQAxcq1apOUuZgVtXO1+uNu3KoIm9PdsqsGJqjXJLU6qDuz0hpUms2wC0x-5ghUD6kC6jkdXYuiiUjen0brceg0zsvUtXEy1gaXlLDlCNR22zst+gNBndwbTUTYwwYAElve9H37F9M2zdR20-b9fzBQC7wfSM5GAABGZ5mzLGAKyrRc6wbJs1xNNkOS5a9qkddQdGIxA-kI6lQPPI9VBPL06JZS9uX+AA1EVqhFWxVzAn03xkD8qK-TlYKGf9yh4vjbAY88dAg8g82gyT2D-GS5P45C0IwzMsM3Stq2xPDGwMn1iM5TjyLdZ1NHOTIaLANidF7H1FPtCjnWxFSWLPMtrNIpdymgahWAAL3bLjuEEOBBPPETAyvHQQ24+to15AAJABxEs3JUqDQq4zLn3PIyNBwjt8MsllW2K8yXCEsoPJZLzqT8AJR3CcddQCg8WXneBOIBRKfRUl0fIGtzgs4vl-HVehWB0NVaHZERxszZKxPSxsAA0srAap7HKWxyhQo6Tvvc7UzADrvPs4q9tO87LvuurqUqkzcM7AiWvXWg2zUnQmrotr6O7DygiCWhjB0dhci3ScNG0awbBKJVRByCBWHKdB2ERf9BFoIoiYdCVVCCGYlDAGZniAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index 2e8d0d970..814401616 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -227,8 +227,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc1YrV09fYPD-IyiOgCkAHyrEw0wgonk7I0Aao3tAMI6ALw6-GkkxGnLqGnUUPRw1Icn5zYbWxANQGFYolF5vD7sBRgM4lFhQdSqHRYMTCUgAegAYuV+OUAOZQuS-TbbEy0ajkRjsAAKjSwjQAsmdmjoAITXKEAeSOWAAkgA5I5QnQAHyaRx5rR5tiu7LAGI57XaHIA6joHFSCUoAL5BABWRHKaQA1nBWKJKokbPl+HBjFBUWkCDjRH19YaTWbgNB4ObcnIALqxFodLq5YDAKHB9pQ-2BiAtaahqrhyNTVoxuNKFgwR62x1EGCoLp0USkSEAppYelXHQlsskxi2mtQgBCiB0VNeBDg9CIUNwJOIhZrBEhYEa7eajEEuJ0AA1+zooWd22cC-RyglLBBNRW5AOK7TGczrnXy0DG8Zm+OqzoW-3BwWi9dR5Hb41F2-q2ddw0gkEs3QLpymKc8biqGtcgPHYBGEMQaz4IQRHNEkejSXE0mMAIfEeURUDAoFXneahrwxbDSyRMRUBIUQ4AfCsgVyb1dFlBN0zwEkGmzNJNBYEcSgNbtRDSWiRARfgCKBHReMYWg3hER0BJkMRDjadoalfG96U-LSmQJfdOMBL89LAQyDIYwFuMvfNh2uKy8yHVBoKk1A4V6fh+MEsQRI+OBxMkoFeOoQQ4EUrzzTYmooRpOljx0mKGQJZypKXMB+SOJxbChMzksBURBHoXFGCIQRnhkzzlOE0S-PICTDIaGS5PoBSCCUoTVI6GpmIitTCVyoFNJbeksAAaSwAAmHTWicBcwCCFLzJS0tmESHi+JfNrvOq-z6uklgmpazaes6nRNNaexGlsRoAEYpouq7JrmxaUtS866Qe7KLL-fqdEiIhSDSEo4FoXESlIEd2AANgABmh9SdHG2H4cRpHnsY217XJXM8Jo+DT1oUsAsBFsnFaaYqR5Gsz12honghqFWkSZrdGaAm4CgWidHYVpmkUPBUr5f6dCcILBHk3R2D5Jw+bRl6RG0agVhfImUuXJ8RHISicYgTn2DOLA+aisAqRYDRuC16idYlqkDampmRB0VnaI5iWecNmmjON4qirEUQtBZtmXa5qleZ0wXwZF7gxeZrmpb5j35pe2WgXSzKqYJ+svqkunlbVwsNd0ZFtd1-XDdSk3GDNkii8t3WbZln7CLgBWldOlWpLzyI4E1mvca50uw6FyPgvF2Ppfi025Orqi++pW2OKz1WvaIH3RD97RHcDuvQ-5hn7YD53dbdz6XsBROFsbnQuV5AV08Jj2c7b6LvcbNf-c3w-rZ3o3GdHp32aPjvZOUl5YfFbppKkL9fbv3-kHak39Xr7w-gA12CCoTh2FqLUektx5zV2ufM+JJE7-iULQK87BygUnhBobQ1gbB1ArKIMoEBWCNHQOwNAqAAAkghaA1E4Vw2ijBtAxAgFqJQYAtT+iAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index e1d1a9525..8e23d990e 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -205,8 +205,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc22tk5dPX2Dw-yk5BMtHQAkWI0AwrP5-IxEkXDa1KLs6+1bu042AKQAfPeFxSVp1FD0cNTsCmBYKAEOD-IIAXyCACsiOU0gBrOCsC65GwHODGKDCUhpAj8WiiPrQ2EIpHAaDwZFVOQAXViVy6uWAwH+V3+1NpEBa032RkZzLAXJmbI5ShYMDSjHROKIMFQXToolIfwgDUaWAAsjoALw6BVKiYNSXGbU6f4AIUQOgACp9gfQiP9cAadMRZSaCH8BZbmoxBABzHQADUdprAO0tOxl9HKCUsEFBEzkTpVTQ1O2aJr1yoahvRJpZGp0Zsdztdcp1HoLmsaIarOh2CZTQSCovQXXKxWzOlyJtyyYafCEIlEJsHwjEXYaPTSfrSxgCPjSKzgk5zn2+1HzYAAYgvFTpWoJGJotNwSymc92quTdDqWVMhXhnQ0xWlNCx3SUYcDRGlRD84HUOB+FXS930YWgvhEHEvxkCcrhqSsBQ1WtkPVdNQSTZ8cyrDCwGwrCLxzV8jWlN0dRIqUy37S8dFQFhYFxT9vzEP8AKAkDsIad9qEEOAYJYi5BScGp-itNVGnQ5pUPE7Z1VBGjaNDAB5Vp-gIxSc1EQR6D9I5BFQN8PwrWCfzYkQONAnNwMg+hoIIUz4LadoahvITnLkQilIaJCzXVLAAGksAAJlQ1onGDMAgiUrzaMVZhEiMxhmLg39-ws8hOKIsCWFs+zHPcjpEM9Vp7EaWxGgARjCsqKtCqLYqU-5Su2Or1OynRopzLrmyUWhjXYcpyDUDRtGsGw6hTUQyggVhGnQdg0FQDZBFoGolo2f9j1UcElDAMFqSAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 9d8fd2687..10fb62a13 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -193,8 +193,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTpjMnDsAIyIAEwADDbTsxDzOvzG-QORMsVp0Nn7Tc3tAEJdPX2Dw-zU9JMzcw3GtNTkRjsBytBz3ABSAElmpNyhNbh0ACQgsFQ5o7b43BpHE5nAgXK4YvYHP4A1TsRoANUhrUhth0AEIALw6BRgVoAYSwTicADlIbyAOJsoIAXyCACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAj8WiiPpSmXyxXAaDwJW5OQAXViLQ6XVywGAbId7TZNrtEBaDydVRdbru9093qUaFQXXKxXYc1yOhZuVwcz4QhEogTOlTwjEsax3RgaQA5mlaOg8wcGtQoPQ4OMWWzIXEtLQhNwdAAFBK0CikTv+Uhs5P57FVC26BtgX0hvA-eYsQuaFiZgglaUEMRpUR1uDqOD8CuVhpL6iCOC6tdLJXTmpurAAWQ5zRFw6PDTv96abLnDTkr8rqAsLAeorpeG6iFuO57geP7zCeZ4XuuuY3qyYAdo0WCNI+z5gH+sHvlO7S2N+I46HhpFQCeaRLowoFIRB24iNBh5HjRtA1iIiFXhSwY1AQsZTpSjQengqEcgAEsKuHkW+qFUsJJFHjJlaUdwgjUcuLKrvRkFMeQMGkceLDsfQnHadxKH8W6QntA4IrKUe1nCXZs6GSYtADPumb2M4sEOfMrYabRWlgZujG7vpLGVmxHHnuZ4E8Q8fECSiELQvZ-6OWAqVokO+HuZ5-DeY4Likf5x4GhcNF0VeukRfuUUHDFplxaF168ToVmCTSdIZfl1k9cRYB+Zl8z0FAjHlOe1UhTp4XMflzVmW1iX3MlbL3I0rQuNJo0HBtW07Xt8x-IVxW+WVx0jPwaTjZN3hpCUUgTjoABiwnbcd26Acw5C3awaREPQGYsu97TbXOQS-koQS0MYOjsOUgJQBY2jWDYdQ3KIZQQKwjTlhGiKCLQNSE9ujDaDEECikoYCijaQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index 4fe9ffa41..67f6e17dc 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -190,8 +190,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlba2Tg1NLe2d-KTkSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAZDL7JH5-KqDFxgYFvFgwGKMfYnIgwVANOiiUjsPrlADCtnKWAAsoTKjoALw6HF4vplVHGGk6aHknQAIT+uEZOmImNZBHx-w55R5bNFZJ0hL+QTKcl5EDKpOltPp+OVZR0zNZf05iB0AAVqFACHB6EQeXyBVjacLoYbKoxBABzHQADQlf0JhsJGPouTClmCYHlOiCQSUaCxqVymU1ZQKrIKSrKfCEIlErIzwjEie1TRirtWMAL2rpUHocGoerAAGk0KaIAYyXBaKpjf5SNatRWCvddLToWC4WmKzokTFNCwhVklubRDFRDW4Oo4PxyxOZ4xaFWRCd5zJ8wCig6pd6pZTL0SSeTr2HFXyK+yyX9nxHxxXUCxYKc5wuYjLqu66bh+ZQztQghwIegGbDCQxFH8RqkuUFKVJeKFYGhcpfhOfwAPLVO+fbak+pFlFOzLooKtJUWitp4WUuLMOE06zvaR6LsBIigVuFY7nu9AHgQXEnjUtRniK1ROF6eCSpyZJYPWWAAExyuRE7an8MlyR+mkTgc5rHDuAHHkuK68eQYEUdqgn7jBolwewp78tJsmXopylqRpTHagAcg4tSArZ4YKn0kZKLQLLsLk5BqBo2jWDYJRaqIOQQKw5ToOwMYACSCLQRT5SujDaIEsxKGAMzPEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_lineplot.Rd b/man/tm_g_lineplot.Rd index 9df9e1cbb..75b9a6329 100644 --- a/man/tm_g_lineplot.Rd +++ b/man/tm_g_lineplot.Rd @@ -182,8 +182,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBbgyhHMYBsqSiQUr8UKRQ+kZc1AD6GVnW6ZnZhjoA7rSkABa0EOFluDogSjo6AIIAIgDKADI5OqQwBPlwAB75UPyi1O1d3f0AQkMjY5PT-NT0OgCkAHx7Cx0wglnk7J0AagCSvbe2OgC8zybq+YxwAfyqV3cPWwtG73R4AORaMAaciCAF8ggArIgNfIAazgrFETSyNgqv2MUGEpHyBH4tFEYyRKPRmOA0HgWKKUDkAF1XBAegMhkzgMAFGBOf1+Sy2Rylqs8WVefyeithaKlGhUEMGjV2AsmS8dEzcAs+EIRKItfrhGJ1RAOh0RvkAOb5KRwSJEUjmy2W6hQehwaha-n9Bq6AAK-lI-N1Frd2rK9N0bxl4rDJ0tNsYREEqHymhYWoItWRBDE+VE3rg6jg-FdkY6WcYtE9IhJeZkZsFLQI6oFWAAsmGdDLuwBhbq9mUD2ydQfDsAw8NVjr9ntgJMdOSzyOsHNNguiIslssV5eWmt1+gN3P5lvitsdm6dIV4PtgZadXouB-8gcACQA4iOwIGv1-adV0PecBWuO9+UPECIzdVAWFgTcLx3YsRH3SsqyzahBDgRtkKuK9H0DCdOi7Ic-2IrBSP5GC50fO9bCg2DLSCN1WJ0IIgloYwdHYBpyDUDRtGsGw2gjUR6ggVhOnQdglQAEkEWgWgU4tGG0GIIFhJQwFhFkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index 3656ffc29..a5e56dd54 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -140,8 +140,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUEAvkEAVkTlaQDWcFYokqiRs+X4cGMUGEpDSBH4tFEPR+f0BwOA0HgINycgAurEWlMOrlgMAFGAiZMKXiCRAWm0SVUyRSGS4wLTYmhUB1ysV2KNcjoALw6XK4UZ8IQiUQinRS4RiAUQBoNLppADmaXQC20jFEcF62jIIK2quoUHocGWotZ-D1Bp0TmNpFEFIlKtVDVyWN0tsprXZHq9DVQLAopF9ctZE2peDNoYStAj8KINp0FOe5yu7oTOkiRDhJTgtA1JVIcoI7AAbAAGWuTGoAJnrjZ0LdbcmDIagcH2MErJV+BDEaQNInUcH4ypDqoIQ5kYjlmhYtEtInhC5HILZNVZTlsTiwAFkKV28w1x3BJ-xo5SD0fT2A8+fPV7SEQBhrmJDB8PR1eN4zrOOjzv+sqiiujBrvQG5gYuO6Bnu962AA8gAGgA4lgZ7drOgHkLe-ptGhWE4c+b6qq+s6yIIojcMUrB-ghY7WtehHATRW5LpBq7roa8Hbuwu4ZveWBOHG1EgQRU53m04lxi+eGqkQgi+EQ8DMdurEThxF6gdxEE6FBMFwYZwlIaJbSoQ4ti4fpMlEVZTg2XZFGzlJXpQBYJBaQBbFAfpgk8cZfGwQJ5kifujQAMIAHL2ZRXqOXJTixQl7khp5qoaJporBaIOnsVOnEhgVy5hWZ4EWW0yGNOMtjNAAmolIE6ClxENc1FJKXmkLEE5cUOJM1KUUEDRBEEtDGDo7DlPs3kaNo1g2HUnqiGUECsI06DsNyDyCLQNT7QajB6h8ShgO8eJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 45d50a437..62c8d702a 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -194,8 +194,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUENLQDCALIz3b0DIYEGCrDZbHQwQSJcjscENH7jWzNACaOgAvDpZKI4GkCiUKLCIA1icSfp9GrZ0RiFGB4PxJDoTjSdAA-HQAJgADLg4aTvuTKWjqbS4PTlp9mWyAIwAVm5vIa9mcrJ0Ut5NnWdyKpTS1Cg9Dg1FhYHGpEE-FYOmaUEtRGMOlNLFIOjtOm+opkCUsEBpch5RJJOh+TgAcij0ZioNjcfiKgqg-yKVSdDS6QymWAVQB2TnygOBhMC5Op0UMiWZ6W5vMFxWOdpsuWc9WgrXFEq6-WG42m82W622+1OOIu+3u-iejQkX3+gs-RqI5q2X4Y+dIpczwNz0OL5dNbdL8FBAC+QSUACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAjj0Q9C9Xre97AAQxotFMNI1DSLRtJBKZgF83y+gAukoQIwDed6iB0oE0oiDgolccE0s85xEXg8GrjuxFgAiTgAIo0RSnxqhR0G2J87JMRxADM3GfAALL656XhAmH3o+UByMA0HND8TFyUhYDIR06HiaIImAVhknSbJsFsQhik0ip+S4SatgEci5FQWApGvMJPrQOgHTlMUhINLkEa5BufBCCI2EYr5whiO5xJdGkADmaToNFXoUF+GjwFIcChSSeoGsswoAApxWQdi0El5QjHgvK5NA8ALFAujCjBLglfmxJlbAOLoRGsnyfVBaoCw8XldVlETJMkG8t1Gjxd+RCZfBdnWSN-hfvitARSUzoYqBABsuaTDUXKcttHJVpMfq8sCr7EPwEYECUl4EGIaTYiI6iiqlgZXTdYgRpoLC0PqIjftdMghbkwAyYZHXIchNk-M0TifAA8s007xg9cBPRdwrQ7DCPDQ1DTHbjOhVfsIJrQDt2iPdhqo+Q-AvSSb2AwFOhfYwP30H9DPk5JIN6XVEM2W0thOFgSn4zWOgo2jl1gU4Qsiw5BZi4GRMFTioiJIwq2YmTd2SzTdPEpzH0YizbMczrD7A6DtXGZDlELgeYBKwWeuitL0EO6L6obiSKsVRQ6Pa+9FOu7T8ZG0zpu-TiEfc9brR83b0H7qLPuBqH7sISnCuBs7jXq6r90a1rEeU49+vhxbn3fdH-3B3H7VKfz8Fzp7SMEw0Gdrcardrl7BN5x5Bf+8OpPB2X1PPZXwfV6ztex1bje21D3xtGGjuD8SXeYj3q-Z073u8lVjCGvErBF06l0WxPaMGw0Eez2bMcWw3hn6c3HtIsi7fi9vZlUd-A+A804NGPqfG0vRR5B0ZjfCuHdoHk0fvPF+i836JwFtuQBm9O5Uylt3ZOYYsGHwJosE+1Az4X01lfceoc74IONszGu7Nn711QYhZe9sv4-xrH-MCC4iHANKqIMhFCA7UJgbQ6ejMkHMLrozV+7DlJJyzoQ7hLtcE00zmvFEOcSTvGJPooIQRaD2nYOUfYUALDaGsDYOoAZRBlAgKwRo6B2BoFQA8QQtAajuIeNiRg2gYgQCPEoMAR5kJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index e33ff4ebd..9938b5547 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -206,8 +206,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAwgCyyTqkMARpcAAeaVD8BDD1Tc0AygAyXT19g8P8otQ6AKQAfOsmtNTkjOwOUw4AQgBSAJLNG+U7LR0AJMdnV81BDQ-tjx2NU7bNWydfJfR5-AFAiag35OABygOBRlBjThCKUAF8gkoAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfVx+KJJOABHYCjALVmvJqvK+vLkAF0lCMxoTiaIutzef8HM0AJrXQU6XkvC7qvCavn-NF63kdKZOACKGuFtlaAEYrXybQAmB2NG0AZldNoALKKcXiIDKSWSoHJgMK2u1XZHeWKulKYEHRLF+XNKVVgOG+dMZrGJRAvl1cpmIx087E0KguuVijyIA1cjoALw6XK4CZ8IQiOUtzvCMR1hoNHppADmaXQaVKqjQHAmQ501Cg9DgaxbvNsJRnqFYgvnQ9y0Hgzf1Irw+4aqBYFFIR906+zAvP9YXOivGhvDKIa-12ree5fBdIiIekt1oUcSlIE9uQANgABjgmYaidBCkJ0FDULkdtAKHBJaEYVdoJKPECDENJRFXOB1DgfhB1fBoCGImQxBPTQWFoZcRAZJjSNJL4hUdS4sCcXMwCwi8hwokRqP4aCeUE4TRI+V9xJwhiYCpYhZJbRiSLIqSqPIWiJIYniWJbNjGA4+guN05i+MjASOmaJxWgAeWaUVsPohoDJkk8TXaFz3M8sAJNU+ixnKUYiL00RyMomS6Misyex0SzrNs1L2H4-UOkueFWi8kydD8oyArAfLCt5cLvNfMZ+CICjYvshLpKM5L6tS1j2M4uBuLinLHLyoK3LNYq1MkxLyofZyxpcMLJoi+qYFIRgoJ01K2sMmjOoXOzeJ6qy+oG+yho6Jz2nsWwJp80rppoiqOmumqlrq-aNKawQWt47akpKg7zPS3qbP6wGHIukbmjGhxbp8srHp0+S5pOP03oksZGCIQRyB+-SHuMybTLio7MrB7LcsCrA3IcWwFuW+iEe0kbqdphbaoxz7RGMRgAEc8fipm9qHcHSZO8HzvaS7oamAAxLBLTE97XyZp7RrlhXXvohmRZgURSH4VgBb+jqAe6iyQaywbKYNAEVThxmCYq8FVS1lTlfUihDeNoWzZJi3jtB07eMlgSUXhe2lZK1WH3D13Fu1-dlKCIJaGMHR2HKA4oAsbRrBsOoX1EMoIFYRp0HYStHkEWgairijGG0GIIHRJQwHRMUgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index 3fe2596ec..8d8931f2f 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -135,8 +135,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlQBq1Q1NLe2d-JqiSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vQbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5jF0DFNJluJs+tSdNQoPQ4NQSX8BqzqNM8BzqQV7rpsdCwX88VTOTpUCwKKQpQL-jVAWLFZyVRo1SciPyZWAHNUHAAhABSAElKvLxWVUP5jlk4LQ6VlSCSCOwAGwABiDtSKACYQ2GdJGo3IFUrlSxYKc-VklgQxDFRHy4Oo4PxKYmygR0zIxCTNCxaDyRCcy5nNjDqkU-gAFcpYcoAWQAwo6wPHndScyJ8-xNR2u32B8Oh3rqW0oG1zmmM1nR3nyIXhyWGxXsVXGDX6HXS+um2DW1qAJp-efFnSb8eaqp3sBzhNKqBV2JHtflqI2a5uORbFuegGVtWtZwPWF7sM217lAM5Q6g+xbPtur4oTqc7ikEZRBEEtDGDo7C5OQagaNo1g2CUiqiDkECsOU6DsIiAAkgi0EUnE5ow2iBLMShgDMzxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index 76c95da76..adfd7b3e1 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -181,8 +181,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index 056ecf249..fbb89aefb 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -158,8 +158,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lxrTU5IzsAISlAGoAkpU7ttPZUzoE7ApglQDCWE5OAHI79wDiFwUX-aWVTtVPLmByAIAXwCACsiNkogBrOCsUS5RI2ZL8ODGKDCUhRAj8WiiJrgyEwuHAaDweF5OQAXVcEAqNTqeWAwAudOqF0p1NpfUGyMSTJZ3PZnKUaFQdWy6XOEBKeR0AF4dHlcD0+EIRKJ5TpVcIxFKSiUGlFMVB6BAiIwYNx0qwovQbSlzaJMQBzZgovX6krUE1waiai7VE3mkLm1h2MSkHRYMQYjVpTI6AAStGdGQjOmebt0AAUiE6DP0oKJfdk4G8Fvq8qTdAqBQNy9LPToWDAopoWJqCBkIQQxFFiyJ1HB+B6m6duzIxJr24xaCaRFiJ734ayCqJBPRi5GFWcWVgALJvHR7-dXcoXQHKxtjgdwIf8f1gUoHi4VkpyK9j1AsWDYztLvtb3vUcmy7HspwVdtqEEOBF3AlduXeMBs2fUpT3PPBj2Q1DDwBT8xx0IDyAfHdzifapbCPC4bmzKiwB2Z5SgvN8dA-FiOn4I0iFCP0FQAMVKapvgrAJ33wpYVlUTVIn7OhlxAmSuknMjWToypSj4vi2Uwojh0fABNC98INOBuFk5S636OiAHl7nsWwtKPXSSKwwyAR6AIAloYwdHYbJVigCxtGsGwikbUQsggVhSnQdhRQAEkEWgCgS4tGG0fwlCBJQwCBSkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 89ab0cd4b..48cadf2ca 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -182,8 +182,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyARVyikrLK6v4AR1ElAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+bWxdCHp5yWm8PkoWDA-IxlhsiDBUEU6KJSOwGpksABZHQAXh08MRDQyEOMmJ0TwAQogdAAFahQAhwehEJ64PE6YgwokEJHPcnZRiCADmOgAGoziWAAMLksXQ+jxDyWCBPIYZORMiAZTJi2wo1Fi7JEnFItUZHQEon-NE6EmM5ms2FYjnm9GZEWOnRixUNIZDEHoIrxaKGjJJIlJVUZPhCESiIkR4RiQPGkp+dZQcxETRQBPG7FQehwahm54AOTFAHkAGqZOy5kTWo3ZpLHXRY-5fOvZjJQTTbaLsmJjWmiPyifNwdRwfhZjsEfsyMREjPUQRwDazwfsAG5FL-csASVyu9sirDHYyI5E4-4hYA6k4nABpHQARh02UyAE0dAAOJ7M5Un7NQT8DNGD7AcxGHUdLynbMZ3A6MsRA2gaxXOC51mF4UgdZ40RdZ5NW1XU8MI7JFRVP9jXPMdyCvFscJ1UiwAo8j62NICCShNksXYyFbQAtjF2AlgwPQyCLxomDjTQwcFxYZD6BEVd4I3L4sM5MUAAkAHFiMrV4wDkFjTzPKCaMLTSdKY1j-wo4hNCE0D7TXCCqOgiiMmk+dELklClPQlSWjU0lMlyFw8FFXJ7EyLUnzw0LhQMozjNcsy6MirBosyWKrNPJLs1QFhYE2ETBzE6iJ0kjznIQnRF2XPz103bcwApFFMgYvDWoy1Fj3cnQUonQsADF7wPAwhuvK0co7PLjXicg1HWECSpc0yKr6zyaqQ3zNoCrcWU5EkQrC5r0sy7LTqcBLDP47MBtoiKopi39rJ0JVjXer0lFoQl2Hm1QaQ0bRrBsNIjVEOIIFYTJ0HYNBUAAEkEWgUnhhGR0YbRGCGfolDAfpziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index 9d95b6dca..aaf102c18 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -216,8 +216,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSUwgqHk7PMlZQBqpdUAwjoAvDr8USTEUeOoUdRQ9HDU7KVbuzYzcxDrH6npGVc3d6tgHYZFhQdSqHRYMTCUgAegAYtl+NkAOYKMABD4vWZrYy0ajkRjsAAKpSwpQAsjtyjoAISHNEAeQ2WAAkgA5DZonQAH02LMqLNsB3pYDhDOq1QZAHUdA4iWiAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoNCogQkaImmqNdrdcBoPA9Xk5ABdVwQCo1Op5YDANHe6pot0er19AZGxL+wMRkNhpQsGDnE0WogwVB1OiiUird5lLCU6mHbO5xgmg46QOFnQAITRBWIGcrBABpPJZQbVbA7Z0OwVclwPV7JdoOfY5eMlbRtcQOiJ1wIcHoRC7Tczh1bgbn5UYgmROgAGl20Ts5zt0-RsiFLIF0QEAmhM8lsuk8yU8pW8kP83whCIJkOP9hDEd91gaKJSCiK9oDYE4libOAwI+a5bmoacwEhURUBIY1xgbNYP0SJ1dBFCp+gI-MPlQEFGn4FsMnVJdRCiUQ7jgMF+GQz4CEYmQxErTRuEEOALT45iHgjAo0RJMkixPMBZIpBUf0+dY2JETiMNrJxKn6IkWTRQidEHYykyiITGAYpixFY9jOO4j5eJswCdEs2gbhEMSXMk-pGzbQsFPbKkgp2WxgvKAdVLUnQNI48h6LIwKwGM0yqPWczJzTZtDky1N12ij4c2YUILJYaz+JYuKHOMkpnMqwSWA8+gvPqiTyMqfy0UqJxjzwbta3JLAAGksAAJgUskdhce9Cs+aqEowqaZtSuaPxNM18RTbCSDY1zS0c9YdL0yoDMrA7avWC4WwBC8MxEcgITEHCIDYnR2B2LBFH6mSWA0bgnp217dGJL6VMukoRG0ahXK3dKYu7O6fDgR6sJet6PrBn7FL+jz0LR3aQaJLG1pi7rQha3RyjHOAoAxypym+6TFMYIhkXLURRC0KmabponGaM+HPgxGK0oR9kNicIVR3HCGdGuzcAUqCmRB0am2L596GaZ7s2SIUgdCcITqEETyQbZJxvrFhGdChu5YcOtTT3TZHUeewn3s+nW0T1g2jeEs33ot72ccYf78fd4H3uJpm5ZKGTWfZsQue0NXeYxokBex5XA-V2n6azuWRbU621KZVkOXOsdczlhWdC3Fm2Y5lOeY1jOs+ZnPKbTtuQe18GhZQuBoYdhOm+T7me-z-mQ671W8819h++x33DeN03u-YYOFUu4v1j3kWHyUWgp3YbICVBDRtGsGwinzUQsggVhSnQdgnwAEkEWgCg-tjGG0fwShFRKDAIqN0QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index 6bf526134..84e31e892 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -263,13 +263,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgGK1Go0jpwAB6wqCLungC80TGxMRF2ABa6waEiOvRw1EQA7jq0ohlQonD8OiQ6pMk6gqKC3DpoqIxEUASJ+RCaRNSatBAA5joEjHBQGhVExglQOswQ-EQwOgDCACIAkgDKKzr848VwAVALlckQc2bKQ1W6TXSyExAYrtCMMAD6o8YfxDCo+iMdH87CUOh0AEEVrYIVgALLrHSRHTA0igi7guZwYxInQKMCwuE6ABC+NwYMxfwByIIoIJ8MhZLx9KJK3xigxcnJGMJuNR6MxWJxyPxxMQOgACtQ2nB6EQyRTwVTcbT8RDxWtGIIhgANJn4lbilZLej9caWCDsikcjlKfakWaGSpjagfe1Qax2g6AnQ5WhVfrsd24HQgCkQtZbAAyPtIMAIH2CHyg-FE1HDa1sticsfjiaCyf4pHISgAvhyAFZEfofADWcFYoiDBxsTv42KgwlIv34BQTVZr9cbwGg8Cb7rkAF1XhHoz73cBgGrI1H8ZPpxAI1mc22Dovl9u1xulE0ff1-QK9t7kcGKXwhCJCsj78IxJfwXGPt3iEFRgN35i0qZNQuIGkQQQ6FgcADC8eCKpi7qjroIoEpm2YKhigosJ8mgsCqiTVgQYgfCUIjqKU7Cqiy+osusNFQjC8J0WAXLMoS7LcoK4LYV82K-Es1KNO8vE-FSnFcagLCwAQZQ0gRMjEaRcDkfwAGCrh1CCHAvzyURTZbtmIb4hKsIQgiaw0SZWBmRxzIAPJbPi8Hglyzk6P4zAOh8uGMPhhGKVkynkKpblKnSKx2Q4ABy9gAJo0Vs9gQjCACMCVJTCABMtn4ol1mpU5mGYq5RVKkQmjeXhcn+aIJGBSpamUnSEIAOIuHgzLEnCWAANJYGlHWit1fXZYNYBYE4LUbHZUUDaxaptYVXE6CVy0wF2WgsLQ4zIXYjguEVHIuUoHK0Di7D9OQagaNo1g2GGGKiIk-SsBC6DsE0AAkgi0CGX0lIw2iMBypZKGApaTkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgMpxiEfjpwAB6wqCLungC80TGxsRF2ABa0ojoa8Lg6UDqirGSJcBoEOqhQtIw6RMY6AIIAIra2TgD09V4AMjr8UKTZKSZQTDI9cAHGRBUAwkRBOoxwAObzoqKWEAkA7gXzabRiWf4lmtwA+vCkiQI6MD3kjBhKdEwsHPxhrIyK6-492YZpcFO3V61iUwL+Rg2tAutAg7HBmRASh0tQaTX0RnBGGMzHg7GRKO8tgcdQAmgBJOo6SI6BRgdoOAByAHE6bgCSiagA1GqdGkEdgAFkyAGZMgBGCWZABMMtFUp00rk7IghJ0k0ZXiw1J0AslOn1+oADArjZkTTojcqObUsABZSZUmnGKDqCb41Vq3XsC2G03mgOW83Wz1q6iDODUVL8-FgGr22ps2lxhMAITpXzVIbVXicAA0dS63YwPV7vRaK4G-QbTdmveH6JHo966QAxJN0u0Zm11lHkzW2Quu0jugV0moduOT9N4ZMzzLj6eTiezunz5MruS9nKkRiwhaiGqiVvDibN1u83MEzOoxpODFzeiw-jsep3zJvpoftFOb93m+fve-xQKIJwaPQ9AiK+P43qIhQYHBozsOKAE-gAJP2XiDv8oihFBgEYQOqF3mhNTMkBRi4TAYRwOwcEAI7sAArJkADsLE6Exyo5LQABeug0hAjBEBs0H-pk8xhK6Al2I4TjEU0aEOF4DipgAUpSD6lKI5CxqIgj0Em4qIEJIliU03EEZhtiZHBqA6nSBjdp6BEAArxjUdoPm5HkOlS-x0gA8l4dIEm0nQ4QZcGkKWhKASqapwSI6g6mOYDKapGl1JOWEkhS2Wrimfk5fmk7Wcu5HOSiXwAL5fEoABWRCwicADWcCsKI8K-DY-z8HALrCKQJwEPwKQECcTUte1nXANA8BdeCcgALquBA4UPuCwDAOOdQdHSy2retP6bb8227XeB1HQkAAGXDUDdWToHQsgaCQCQGJ9X3fT9TkQB4OiMkQ5BpIkPSg7o2rEP1gRBKgEzkAE9CsDoN1eJcGw6Nq0z9Y9-BEPsEDAzosKSIIMMXLo4IJKg8wGLTRAEGIqwQAsGA6KSRCCDoULUNQOgQHAoxpEQurzCMENdL80VZKkgxENoOiNuM8wJIwZjKAskvBPDjCI1juoCHADzfCwMAnPMxgjUQ1EPnQOmvvajo6vbMWWw5RWJrOxC2zG45phmW5rWg9n-LC0KxeCOoIgSfBCCIzZx8IYixSipDm8NxBBPMCyp4SDaRh70yzFgiwPHgNoouC80yRdTRspXWSMObxwVPylwyGIJxJb4iPsGl8bFWA3H+0P24ombFsDdbvtN+blsz6gCVeqUuKjalHdM6BPfqEhjcosc1CCHAI2byn8XJu5WCeY6k5X55GYLmAwWhaGhLjzuzC9Ccrcb81W-d0jL3JCaVyrD0yIyBw7R2gf2IJoH+LA-6d23kA3eL40q5jzBVFw4DkyYMfo3GAQ0tAsFoBLGk9hnA9mvEoL4tBqjsFhHcYcWhaJbh0EiT0ohkgQFYDUdA7AQ5oUELQTIQi4KMG0J8JQNUlBgBqstIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index de754fc12..08a0a9768 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -158,8 +158,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyoZHxyeBoeCmkuQBdVwgcgqKk4GAFMEv8+5Ozi6aWudDb+5zm59elGhUEV4tF2A0kjoALw6JK4Bp8IQiUTQnSI4RicEQDIZEp+FZwbRkKYNHE6ahQehwaion78bSMUS6JxE0h2Skie7w7Fk2GhA66GE-d5c0k4lgwPyaFioggxYYEMR+JkidRwfjsAjgh5YACyXJ0Pz1AGFsvc5CkjfqwBaxRlqNQ2TC5QqlSq4GqNXacS6ZGJUdLGLQOXBVvK-VNfk4Ulqfk5bE49Qa49knMaAPJmm22nm8nTuz2y7XNVMZrP9PM5vMxR2y8OK0TK6ke8he3O830NgMsYP0ERh12R94x4tOABCmdyAE1csmHk5cunjeaq3n883C0L5xO8jP7t7V2Savx8URPDSYfZnNy84SKCtSKxUILDSh6aomTo72R9+2Kzp+n6WhjB0dh4nINQNG0awbDSHlRDiCBWEydB2CBAASQRaBSDCmUYBl+h6JQwB6E4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index a4b5d9972..158dcdced 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -137,8 +137,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMoAMmE6pDAEkXAAHpFQ-KLUhToY1PTUoq1BuknEUdRQ9HD9nPWNLW1QcAFFZcVONXUNzYOLOgCkAHx7XUUwgiHkkbTG7LTiBOksUOqqeVDixs+kRP46AMQAch0kx0BFUISyOiIxh0j00WQA5iYvj9RF1RpFxpNpqsnDYkj0+gMFnAlABfAIAKyIWUiAGs4KxRDlglB8UZ+HBPsJSJECPw7g1qbSGUzgNB4MyEnIALquCBlKo1BLAYAKMCKyrqmVyhWlNbK1mq9W47W6pRoVA1LJpdhdBI6AC8OlyXT4QhEoidOndwjEdogRSKdUivLg2jIA3orEiCOYnIDQaDWKm3pN-G0jFEuicEdIXujOgA4vHdLYJiJ1bgTkGEhLdM6TfqXHga0UWDBIpoWN6HjSwQNsyIXvx2AQ7RqsABZKs6E3TgDCpXVcjy85nYFXbZ01GopF76X7YkiQ7gI8TSaDfZkYm93cYtArcD5h5vzNxeXHJqctic09n36lE4C4APLLpuW6BpeRSniOvYTmsQGgeByyXpB0HpHuB5HoOUxnuQo7bkU14DneLCPn0z4kf6H6gghTgAEJgeUACa5QARqTjlCBC4ruh0E6LBBFppxTEVGx6rbvxSZxm0Dagq+A4nnh55EQpOFkQ+T4vjh7C0V+nG2CBAAaRZYBxazlE4ABqfHVlB0FCXA-AiWsRmmeZYBSTWqEBAE1w6LcKhqBo2jWDYBRQaImQQKwxToOwloACSCLQbzoEl2aMJmARkkoYBkjKQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index 2159c6460..df2907006 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -189,13 +189,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6e4YHQAITpMh0ThasB8cBNaFQdWy6SuoJ0eRpeVwPT4QhE1JReeEYjTYPqMCiSvZlLhqBCrDgLDL5Z01Cg9Dg1Bp3x0WBCulK-D5glE5H4JiIjB0WxCtEpBgAmk3GNTSqQ+7DhXYOyInoSSnldboUZ6Xfv0+WWJXNCwaQQMoKCGIoqIu3B1HB+C3WxdHzIxBpW9GFoXc4GVf9nwlM1qgKS4XiwfZPgQo5ygBOQc0vVs3xET8J1PG5EOOa4Dx0DDSI6fgqyIUJuxRexnEw38azIOFgPvSCXxwj9xx-VsHyfQCUWA0D6BECDBOg507meSAKVYgEmN-HRuLwns5JYqkL2UkxaBaL8aQYlwsJKciTJ0etmEafC-0k193zwvjywEgDCx0W9qEEcCXKg9gKi9WSdj2VDkLAIKDkU0iSlU8d1K9R4wFIgJy2SsilACWhjB0GEVDUDRtGsGwinTUQsggVhSnQdhEwAEkEWgClqt9GG0fweSUMBuUNIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6N4YHROFqwHy6NKZepQegiHSiHzpHQkIO0xgwKKaFg6HOMWhxkSiE1oVB1bLpK6gnR5Gl5XA9PhCYs05vCMTVsH1LNK9mUuGoEKsOAsLvdnTUONwag0746LAhXSlfh8wSicj8ExERg6LYhWiUgwATVHjGppVIC9hwrsRbgT0JJTyut0KM9LsfNe7LCz+ZpBAZIKBBiFEogznA6hwPw44ThcQEyGINL5oW8ZwMqCEgRKZrVAUlwvFg+yfARRzlMRYCVE4AAaAJyI234TuBIhQVuKL4TchHkZRNFgAEcF0U+tL8PwUSkEQoSzii9jOPRcH9mQcL-mxmGgUxkGbrBE6AcBSEoih94YTp2HOnczyQBSCkArJcGJhBLFzuZ8lUl+NkmLQLTQTS0kuAxJQCb5OhDswjSsfBRlgXZGmCSU2mIdSencII6GxVh7AVF6Zk7HspHkVlBxWdFtnMZuDleo8YCCXxYJVQEAS0MYOgwioagaNo1g2EUNaiFkECsKU6DsGWAAkgi0AUw3gYw2j+DyShgNyhpAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index 33d010714..47215d489 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -214,8 +214,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otQ6AKQAfD3FJTowgqHk7EPDOuW2ABIAYrUAvDqyonBRKRkUkxDT0wCEtOLQ7LNzszYAfjoKYACa97hTB-bOOrf33-sHNv09VLpDJRahQehwaiTMCVQT0ABWcHUMzgIQyOgWYIA5vcAtM8WVyqUnHUGk1Wu1gnBXL8MB1+M1tGQosZsaI6qZzBorLEbEVfiVYnUhQDXiVRuM4HsDsNbABZAAKSyilScWB0q2JqvVy1W9yeeDFssVyqwThWZTV5o1esezyNJXlSuqUQA4lgAKway22ADyAA13Ta7mAPfaBW9FSq5QBFAAMAEZvcdTlB2JVY4mAHKlOVyF4R6ZO6PxgBMyZOGDOGbLObzBZljqjAGF40nVimq2nW9ncwT8a9iNRBDAIKDwZD2ck6KJSNLI86VWrvfdKqpLIJ2cTwzKnabrbasJCQnB+Jadwvle6vbbXcx+LovdvDYW7FGa4nvVAxLRxxCobEwDAKumYJnW9wALoQQUgHATCoGVM2kEQfmRrFh+5arN+oi-mC-7Qg8GAAJzEaRREAPQAFpkWRlqVAAkriDYLlEPbtjo2G4ROAEhEB9xseBYBQf2OgiUOf6TrkIRyMA0DwKI7BDiOY54ZOcgQXUUDiAQGQsFA6iqIpRDDqOEnUKIImxEMAC+NIlAAxAA5DoroUKoITZFiOibqoBgPsY2SnjocBMqQJhshgQwVMSdTRSSAI6HS-AMiFFCkCybLxIEtLfu0EDRJoLBTkYcliOwcUybOLCkKIADqwLsKVCkVQU9x7i6uIQUMdI-lEhWMMVOhNeVRJOJVoSMDV9WZI1sBlS1IbFp1SjWQE8JENkUQANZwKwCl5DYyT+VAwjpQQ-AnE062bTte2yXN+2JOpNJoKgdTZOk855N6eTMXwQgiOyqz-cIZWvA0UTpalZCiFEogjjAnjztMqndLapT8NoA26E4oXsrCMCI2wF7THkpUrmAcUk8MLAwH1LDejpG0EGIcOQki5D8MjBxMzIYjev1tDgiIUS8yzCn3BUNTPGs0KlFgcoy5LCvNuUuKoa+JQbCIBlnujCs-DKGsyqyUBYvTjB5WjawZMzrPaxzp7c9MYv86sgvC5srsS5To0y3kfFgD1VsW6IyHG42Du6z9iSB8HUD5aHyHAAm0EOjoO1wKgUREIwD6MN67xOMxJu0C0QWrAspTVKqRoR9Mpvm-17Q-oztt87DUec87wzewLLBC-QIve3Lft4DoAdwT1OFJ0JKElwcXcVxPsdT5xs9QSnaeaxncBZzneeqIXjjF+nAXl3rGLV7Xr71zTyWQ0QoTW0XrwEgEAS0MYOjsNk5BqBobQ1g+RDFEFkCArBSjoHYK9AAJIIWgBQ4EbEYFjAItkIBgGshBIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 6c6f7f5b3..7aec2d4a8 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVOABp1DU2t7fytrhAlonCkGDNw-OwAjAUA1tn8OgC8OgpgALKqMxAQcAa2aaLkjPsBJRjUUPRw1KJ1xNFPL2-sFQMFYy0ajUHY6ABipWqlSc916Azq-0GAFIAHzInolfi0a7ZdTsByVBwAIQAUgBJcoFDBrOBwVDtEFg+zOGxojFTEo6GCCULkdiYrkABVKWFKBwAwuUwftbOUHFhyvtcIKSiKxQcZWAAPLaZhMoTMDQkHS5KCsUSKPCqsoANShYNEsB8cHYLUdcAAjisCgAmAAM-rkBVEtAAXrpdjlgzpGPSngRI3ZHLCVZyuXaoQ4teVzaJ9oK2ejBfRNlFGEQUqI-n1+nDPlFvq9q0ibMlHs9m0oAL4BABWRGyUVpFrNoTbRnGxigwlIUQI2NETQHQ5HomA0Hg1bycgAupM0Kg6tl0gLOXkwXk0yU+EIRO9drfhGIzxmGlE561UERRII46+Mx0JtQV2fZyj-EJLCmIhjB0JwWm-X84zsZ4RGVG08k3JN9iRdD0y5VAWFgBcwQIDJB0TUQohmER1EWADAJ0MiKLEMFNG4QQ4HnciZBfPJgGAHDa32XddwKfZ1XFKVlT2MBJIOO5r0YnQaLgOitlAsA5QVJUwBtYMbQbehWCidjGFInjKOo141PIJYbRKZjeIfHQzNoVCuKcyixygAShIGESxJUwR6BmUhSIFMAYX6GScKwBSwDkAz8IzVT1K1aKCxSnRksYisUiiYzTJYCyWKotK7IYwCvNY3Y3I87iyp8vywFwsBRJDEKwoi-YxQlFw8FkrAnAAcXJbUADllliqL7FKWxSmmwb9kyxLcuUirFi1PqBv0pSM0IxhZHC3YavKmz1KqjMzrYjjPMsvjEhatqOtk9UJXm31FIclSLrsnNGEEABzMossY9aMw6fgPyIUIQIhKEYULHp1qBagbjBSJqLobysa6XjIoqGoZsqUpwXBaoZM2jTZIATTuAIAloWD2GyG4oAsbRrBsIpOVELIIFYUp0HYQ8ABJBFoApxZmRg9QCbslDAbtdyAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 4978fb7a8..41a8e2bad 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -131,8 +131,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 3dd43431a..7eb44136f 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -126,8 +126,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAYQBZIpKyyur+AhglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdJRreyenRIoJ2BTBc2wdsgE0ASWznlOeHLkHAAhABSPz+OmemVe2VsLUhz1auScAEVEWBMrYmgBGDFYpoAJnx2IAzCSmgAWZ5DPYQW4zOaeOTAaHNBF4KGY9nPc5Fa4wBmiVwQHIFIpJYCs7kFXmXUXsiWhKVs1pykVoVBFeLRJ4QDJJHQAXh0SVwDT4QhE9xNluEYj1GQyJT86xga3K2jIswaTp01Cg9Dg1GNXKaJGIMGiUDIOhacC2sg0JHu9FYcYTMg8ln1TQDonuMf4OgACoxlqpy8WAHKwOB-X1OpLHXQm1Uc836v06FiCzQsUMEGJjAhiPyiYNwdQJ9iPaFYDtczILpq-MByf6Yhc0zvdnQTgCOfn7jEHw5kY4nImn-CeYGRaMhV6n5GLbfvLRR6M5xloFQTob2M4G6NhkMTUKQZ4jpek43o6e46EO0E2joJ60IGIgbOeo6zDkrQpHOmLYninLQtixKkURTTkpRBLUuuIFdnuz43oOd4EiRm4EhRXFkhS9FDHujF7tQEFQReojjrBr7wXuSESaGaEYXAWHIeweEtARd6tNkThNAA8mucjCQhLGvmxSItLpBlGaBOgmX6NT8K6RCeCGJpAU4u7dnAXrrKQrCoK2XKkOWHjwGQzyNoJ9lKEMtDGDo7DxOQagaNo1g2GkXaiHEECsJk6DsJqAAkgi0CkpUTow2iMEM-RKGA-TnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 7cc0fe4bc..9138d5e51 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -67,8 +67,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWolAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyto7u3uBoeD6kuQBdVwgcgqKk4GAFMF38442tiCU0VCL46PZ0nSSdAF5n0NwnviERUTedD9hGJHhAMhkSn4Jug-PQoKIZH54sYiKDweDqFB6HBqADjgAheEyHQASQgKOOXzB6I+nhWunex1OlKe6NQHloFAmxFxjLADlyDnxACkSdkWdT0ZoWP93gQYu0CGI-KIcXB1HB+GiaRl5YqxADpYxaFiRJMFTIQac5FSdRlVSINfwAQRHicsABZSk6JkAcRceB9YFyTgAGt7jgBhADyDgAcvYAJoRsBYTKRgMpY5OaO5XK2WzHZo64vg0vNZq0Yw6djxchqDTaaw2NLU0RxCCsTLodg3AAkgloKX7qsY2kYzQaSjADQ2QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index 86f271b96..f4d00026c 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -119,8 +119,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NboPzUKD0IjMUgUjgNPE6Un0ODUdGPABq0W4okeiNxdPhoSOujhf0+3NpeNQHloFDWxGZwrADlyDmaACkAJLZMW8umS5ilfjoggxUYEMR+URMuDqOD8HF8vHG01idGaFi0MkidYmmTY-7NFKPAAKmSwmQAsgBhLVgOQ8h0ZS0iG2GhUhsNRmPijJx7M6PWwI0+s2iC1WlP2hNO31ouFuxge+he6sl9j+wNgdMRx65nV8pPW8ipnTB0PdsB53sOjTwVCjMi1nQt80Dit5jLLxf1xvN4t+z4dnIATR78YTq6HLKe2RPE77ObPdKgEAbEGHm7LyaHlYdm9d7s9OBvWdGZ2xHJ4ADksHVCCYync9y0vBVMigmCs3vHR4KfN1-HrIsQM-QdbR-Pk-zrACmyAzc2wPcDMlZTIXljR9+0Q20r3oxjHknFiMigHDBD8PC4Q-C9iPXJc9y3CjdxAmiWkPBj8gcU8JLE4c-iUlS7wdQY6T0zClEGWhjB0dh4nINQNG0awbDSXlRDiCBWEydB2BBAASQRaBSTzLUYbRGEGPolDAPoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 424ce6fbb..0de76f252 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -89,8 +89,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 6e117e107..2992351ab 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -102,8 +102,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMIAsmE6pDAEkXAAHpFQ-AQwhSWlAMoAMjV1Dc2t-KLUOgCkAHyTJrTU5IzsDj0OAEIAUgCSpVNZc2VVACSrGzulAUVHlcdVxT22pbbVSTfHD08vXe-3TgByz1eRnexQBQKUAF8AgArIhZSIAazgrFEOWCUBsSX4cGMUGEpEiBH4tFEDThCORqOA0HgaIScgAuko2h0kSjRDUCOwFGBHg5SgBNXa8vK8s5bEV4HS8z4Q6W8qo9JwARVFMrAxVs5QAjOrZdqAEz6zXagDMJq15QALLzYfCIOzUeiQnJgLKKpVLZ7eYyaqyYE7RK4IGV+jUEsB3Zren1fczQ56Ixiox6qvGQ2hUDUsmkeRAigkdABeHS5Lp8IQiTmlyvCMT5opFOqRQnoSKoRiWRiReAk2QaKxdJs6ahQehwCal3kABS7REYOkqcH7wUsEFFw6bCVpumnMfTeC3RVQLAopF3JY1YbjR4LI50p4056JRCnGolF0395Ha8Yk6vAh0nhAgxEiURJzgdQV0bB8iiAkCxCvTQWFoccRCJYCZAbG4xVNbYsCcW85FwY8mwgkRoP4K8DQIojeTIkiyI6HFiGo0sEOw0RwMgqjYLgzjQJrHQUK7dC4EwxC0VwjUqlKJxygAeVKO1SJ-B8KKg8h2Nkyp5KUlSwEYtSBJgLJ2kArChJ4yjtP4h9BKQ0tRLQ+gMMc6TPTwqptkBcpVLIopNKomiwB8vyGPUoomKinQOlEUh+FYSypJsrSYMCuKrKckTUPEySuPYGTZUeIUAtioLeO00K5UFSK4KuJtGoCAJaGMHR2CyJYoAsbRrBsAp71ETIIFYYp0HYLNjkEWg8imiDGG0fwoSUMBIUZIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 27026c12b..93d7ea80c 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -145,8 +145,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwHF4vHUKD0ODUdGPXIk0g6clZKl2BkiR6I3G0+GhI66OF-T4Chq0lgwPyaFjoggxMYEMR+URMuDqOD8GnCjKKxi0PlwdaqmTY54pUSCehajlwgiQp5YACyAp0fw9AGFso85HJBYaMlqRLr+Cy3Z6wDK8cH4xlUCxYBtlZb1aJNdrIwbDYrqIJzSq1dbPilHgAFTJYTLu-2BkOh8M68hRiVgAASWEeSZ0iaFtM0W2iCqVzszGtbef7Ru4xYtZdm-2alaeADUAJK5Le2JtznQz9vRqsAeVytgMACFMrknPktwA5Jw6d3Prfuhyx-uDw1QQtx0YDNlxzCN23zYVjVNegRCXK0VwrI97UdaNMifLBnwDMA-xbXMT07dDMKfbDm0NYxaAqPV0XsZxfzIvF6CgcN4nNY0QIQsC2z1SDhxYGC4NLBD2FXW0ULgJ1vTAa8MKwg8h2FY9qM7GTiNIw8KKojs7EcFwFIyXDaUELUn0yaNaGWCBWD7BShgMpQhgsnR2Hicg1A0bRrBsNIhWJeJWEydB2BBAASQRaBSUKtUYbRGCGfolDAfoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index aa87f47fb..4672fa128 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -145,8 +145,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwPzkvwRIiMUSkHF4vHUKD0ODUdGPXIk0g6clZKl2DkiR6I3Gs+GhI66OF-T4ShqsljUzQsdEEGJjAhiPyiLlwdRwfgs6UZDWMWhiuDrHUybHPFKiQT0Q0CuEESFPLAAWQlOj+-oAwtlHnI5JKLRlDSITfweb6A2AVXio2mMqgWLANlqHXrRAajQnzRaNdRBHbtbqnZ8Uo8AAqZLCZP1hiPRmNx43kRMKsBOEPNACSADlbI3HpmdBmpaz6Yy1sZ2T0-Fb87Wiz3SzPLSwbfQRPat+x-s0Ut7HgB1ADyWFyAAYAEwAMReeCDYDvD8fAEZ3wjOcYx0Hc+yTH8nzfD8Z2A6VFyZPwVygHpN0dbcSz7MtpQrKsT3Qs96y-SCX0AsA4ItMDTSTABNZV52lYxaAqai4XsZxYK7VUK3XTUvQLfUqLNPcdCtQ9jxrAjz0vH1MgANUyfIQ0DP4xywcdw3IijpSEpN5MU5TUwYjJtIyegoDjeI7Q3fit2LeMsJEsTbXwwtCJaGTHgAIUyXIhxUsAvLUjSgK4nTMNYr8fL8wzOJnQRDTHTIk1oZYIFYacGKGEylCGVKdHYeJyDUDRtGsGw0ilYl4lYTJ0HYEEABJBFoFImsNRhtEYIZ+iUMB+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index de64a0e34..0af0b42f4 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0Vh+ADmzEWOLxeOoUHocGo6MeAHEabp8kyiMxSHzWFl6BA+TBuNEhbYmSJHojcfT4aEjro4X9PnKGvSWDA-JoWOiCDFRgQxH5RCy4Oo4Pw6YqMkaTWJ0frGLQZXB1saZNjnilRIJ6BbSIbIU8sABZOU6P6RgDC2Uecjk8vtGQtImt-DZ4ajYC1eJTBYyqBYsA2hu9ptE5stWbt9sdPrRcP11EEnqb1fY-2aKUeAAVMlhMhGE9HB8PR0nU2mM1byNm1U98rZHsWdEWFfSInzRGtjIzKXqDXCu2b5-WNw6q87Wyx3fQRF6nTNe-7A8HQ48AOrsrD5AA8gAagAYi8eAxmAf4AYB4ETtB-4ABIAJJgRB-aIVgqHwWAyazval6Lt+WFAehSYblu9q7ow+5+IeUDHvEmyyAKjCVq+taZouDaKm2HYvs2PafJhMFkbhVFznWxHLgAmtGxi0BUNrovYziUQReJQBA-gChU1I1J6rocc2XELjavH0ueLY6K6j7PtZwktB+QZwCGZ5hpktiAQAGv+SaSYR0kqR5fzeX5WAzteJhKSFdiOC426FppGT0FAFqEkQ+lcie7FnreNZERZ0XWS6D4eoJ3bvjoAaue5OgEGGzThf5eGBYqRVLg1TUtZFeEpXiinKV1amJfa7UZDU-CZZ4rJwqBmT5LkY2Fg0kmKdQ5B5cUcDcOadDdr4+0+p5eQYVBuSZKBuH+sFXWPPJbVKIMtDGDo7DxFtUAWNo1g2GkCrEvErCZOg7AggAJIItApJDFqMNojCDH0ShgH0ZxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index 843bb2d05..cd211d8ed 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -144,8 +144,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zhXCAyMaHhRP3ooUQBrOFJRIoBzRjhUdgUwAD12XIBZAEUAHwBhLbkMACoAOUyNgBJllIGxdhzmuRTNbkFdAF47RydFXp1+rAxH5RMRUGJZvNFssVpstidcntrngdHdRA8mr8Xm9Pt9nH8GhIhiNxpNpuECDEiDJgaI4CJ1HB+Et-hlKdSCBCvq9GLQoPQRH52TT0Y8nClRIJ6HTSDovoDBsNRhMps8Ghk6QzyPw5QC0UrSVMGgT-kSQWCIRSqSKQfS4IzmeqdMLOdNuSw+QK4ELra6Mc0JVKZbqFbSLaI1aydJr7dqQ-rQURwaJcE7jLQKkzdfZnMalABfP4AK2pED8E1Y6KSNnC-DgxigwlIQv4tFBfhL8XLcErwDRiVCcgAuj00KgivFoiyMkldUlU-8+EIRG6dEvhPcnSU-M3RDAAI7TjLH6j8+m65aZfjaRh0nRObRkab0Vg6OF2fkiG5OmehO4XsAxW-KMMhYGA-B5XUXVpO0HSPY9j2g1ceU9QUkIHTxgGAS88nyZYhyHQNpUmKClkArANhuHRllyJwAA1ljkSMEIQmMHQAzIKOWH8dGYlian4HciE8ahdQAMUyfJaIXFidBJFVVySLDljNeSyXwwieMTZM51CZSwDNbSxA0mSWOoahZS+JDbS1Jl4JYpDdRQz9vXQpTsMAzETOjIMSKssjmmyJw9gAeWyRi+Nkti4y+S8nCC0LwrAHi-gQ1LeKUP5aGMHR2Hicg1A0bRrBsNJ-lEOIIFYTJ0HYMdLkEWgUnqulGBvP58yUMB8yHIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index d9c1a080e..e0a427b8c 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -125,8 +125,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGIdABUZxULKBokOkTGOqQAFrrkoqQ6sqK6RoIJOgAGTgDyAMoAIgCaqTpQEPxpOQDCWVhOAIJZhZostFD0IqJhRDr8cHwQMczkOjC0oqK0EADmXQFQGEr8M-pGXNQA+gukUNbzi4Y6AO60EePsG1C4OiBKOjo1OVkAMkthMASrcAAeq1D8otTXt3uDwAJJlcnlgABGAC6zwAcjVVuNyBNVKslABfRQQABWRHGqwA1nBWKJTjMbHtusYoMJSKsCPwRm88QTiaTgNB4GSznJoa4IHdHs8zsBgAowEKHhLofyIEo0KhnuMjuwAWcdABeaabXAAvhCNpaoYCYRiNUQG43UgwVb00SCGAwFgcAFWnTUFpwajGiU5HpECbMVDhGR2FoiCV6y3unXFWC6bUSqVRt1Wli2xqMY0EcL4ghiVYJETqOD8dgENWSrAAWSjOmTtfKOQlcgujbrYDbaZuP34dqImx92vszmjsZ0DqdTQAXnBVln2trc-nC8W4KXyz2rZWJVknAANesSrA1couPANsAAIRrWAA0lgAEzHsBg-KvipVWpZV81ADiF7djGE67mA+5HpeJ5nkB27AROyRwAivpgLQNIQKwEpptiNzYtiaE6OwyKqFAFjaNYNhXDGoihhhNToOwirAoItAXExCSMNojDYhiShgBi0JAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index de6b90271..91173fea1 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -156,8 +156,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiQQwGAsVh+egcBp4nTUKD0ODUdGPXIkslsHRUnRYIgRHQAcUYREEqDRtgZIkeiNxtPhoSOujhf0+0ppeJYMD8mhY6IIMVGBDEflETLg6jg-Bxcrx+sNYnROsYtElcHWBpk2OeKQIkKeWAAstKdH9AwBhbKPORyGU2jKmkQW-gs-1BsDqjIxjM6Gr8QlETzMuH2ZyxuVU7UsNFwu2e0Qms1J61x2tG6s6J0u+gid32mb-Zo+v0ABUyWEyaZSfwAagBJXKz2xRrOym0J83kZM1v2ZOcLpdgQY2ldr9ksWgALzdTvbreN66b2Yyd-bnddvbr7AHQ5nmReeBDMAwwACQFZcyzXRtNz1Hdpz-KNsxPOVBFNAA5TIU1oZYIFYNVVzxVAWFgDY9Q9NsG0TTdmxtF9HW4QQ3RfL9PinMBR3HAMI2DR52InKMILlB9oOVJ58gPRD1SPHRBkGLCdHYeJyDUDRtGsGw0llUQ4hwzJ0HYEEABJBFoFJDNNRhtEYQY+iUMA+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index 30e7e1855..c8d8d6f5f 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -183,8 +183,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzbWycikrLK6v5SciUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urppbb0PvHnOaXGA3pcWDA-IwlusiDBUEU6KJSOwGpkAMK2TJYACyKOyOgAvDp4YiGhkIcZ8To-lidAAhR64Ek6YgwikEJFPamZemUjmYnQox6DDJyBkQDIYvkEolIsUZHRkimPGmIHQABWoUAIcHoRHpjOZsIJbL+KuyjEEAHMdAANbmPFEqlHQ+jxDyWCCChqDQZKNCw8LxaIyjJJClJUUZPhCESiClR4RiYNykp+NY9OBJuWEqD0ODURVgWy0eB2Ig6JzaMh2HMiPWyrNJI66Al-T6AiNZnSgvyaFismKjLWiPyiPNwdRwfiZzu9xi0GtwdYDmSJ54pY28u28nFb1HorE7sByEWMrNUzGPU86E-1uXdslQlkE++Qg0drOoFiwDb9wdiEdjhOU5XhkvbUIIi4EMuQ7sP8LQpI8qoYpk2LZFuSFYChgrvp2jwAPK5Jet7CjhGQIswng9n2RrQf+o4iEB05ZrO870CIS5-jMa5MuyuROLaeA8jSmJYAA0lgABMgo3p2cqPHxAlXjJnYaPAfioKMZCxjRnEAQx5BTmyACMAAcEkpBJAAsADMIo6KZEnKVmcCVmsizbFRjC-iuw70eOBlMXKLELhxPmwW2CFgE4ABqABytjZE4uQCkepFyVFcUJUlKVpRkxi0BUk4UvYzhKYyQrXkogy0OS7DxOQagaNo1g2GksqiHEECsJk6DsH6AAkgi0CkA2jow2iMIMfRKGAfRnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 06ab99010af5e03bbb40754d4c603340c13906bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Thu, 5 Dec 2024 15:22:46 +0000 Subject: [PATCH 51/86] Add decorators to `tm t mult events` (#1281) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADCM <- tmc_ex_adcm }) join_keys(data) <- default_cdisc_join_keys[names(data)] adcm_keys <- c("STUDYID", "USUBJID", "ASTDTM", "CMSEQ", "ATC1", "ATC2", "ATC3", "ATC4") join_keys(data)["ADCM", "ADCM"] <- adcm_keys ADSL <- data[["ADSL"]] ADCM <- data[["ADCM"]] app <- init( data = data, modules = modules( tm_t_mult_events( label = "Concomitant Medications by Medication Class and Preferred Name", dataname = "ADCM", arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), seq_var = choices_selected("CMSEQ", selected = "CMSEQ", fixed = TRUE), hlt = choices_selected( choices = variable_choices(ADCM, c("ATC1", "ATC2", "ATC3", "ATC4")), selected = c("ATC1", "ATC2", "ATC3", "ATC4") ), llt = choices_selected(choices = variable_choices(ADCM, c("CMDECOD")), selected = c("CMDECOD")), add_total = TRUE, event_type = "treatment", decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--------- Co-authored-by: 27856297+dependabot-preview[bot]@users.noreply.github.com <27856297+dependabot-preview[bot]@users.noreply.github.com> --- R/tm_t_mult_events.R | 37 +++++++++++++++++++++++++++++-------- man/tm_t_mult_events.Rd | 21 ++++++++++++++++++++- 2 files changed, 49 insertions(+), 9 deletions(-) diff --git a/R/tm_t_mult_events.R b/R/tm_t_mult_events.R index e73306d62..4e0c8ea80 100644 --- a/R/tm_t_mult_events.R +++ b/R/tm_t_mult_events.R @@ -263,8 +263,7 @@ template_mult_events <- function(dataname, # Combine tables. y$final_table <- quote( expr = { - result <- sorted_result - result + table <- sorted_result } ) @@ -280,9 +279,18 @@ template_mult_events <- function(dataname, #' @param seq_var ([teal.transform::choices_selected()])\cr object with #' all available choices and preselected option for variable names that can be used as analysis sequence number #' variable. Used for counting the unique number of events. +#' @param decorators `r roxygen_decorators_param("tm_t_mult_events")` #' #' @inherit module_arguments return seealso #' +#' #' @section Decorating `tm_t_mult_events`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -345,7 +353,8 @@ tm_t_mult_events <- function(label, drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_mult_events") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -362,6 +371,8 @@ tm_t_mult_events <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) @@ -386,7 +397,8 @@ tm_t_mult_events <- function(label, label = label, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -438,6 +450,7 @@ ui_t_mult_events_byterm <- function(id, ...) { ) ) ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional Variables Info", @@ -474,7 +487,8 @@ srv_t_mult_events_byterm <- function(id, label, total_label, na_level, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -592,15 +606,22 @@ srv_t_mult_events_byterm <- function(id, teal.code::eval_code(anl_q, as.expression(unlist(my_calls))) }) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv(id = "table", table_r = table_r) # Render R code. teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -619,7 +640,7 @@ srv_t_mult_events_byterm <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 7eb44136f..42ac5ca44 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -20,7 +20,8 @@ tm_t_mult_events( drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -72,6 +73,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_mult_events}" below for more details.} } \value{ a \code{teal_module} object. @@ -79,6 +86,18 @@ a \code{teal_module} object. \description{ This module produces a table of multiple events by term. } +\details{ +\itemize{ +\item Although this function just returns \code{NULL} it has two uses, for +the teal module users it provides a documentation of arguments that are +commonly and consistently used in the framework. For the developer it adds a +single reference point to import the \code{roxygen} argument description with: +\verb{@inheritParams module_arguments} +\item Parameters with identical descriptions & input types to those in the Standard Template Arguments section are +excluded to reduce duplication as each module function inherits parameters from its corresponding template +function. +} +} \examples{ data <- teal_data() data <- within(data, { From b8c3c71df5644690c2b2aedf9ea42a9373e8d986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Thu, 5 Dec 2024 15:23:25 +0000 Subject: [PATCH 52/86] Introduce decorators for `tm_t_tte` (#1280) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADTTE <- tmc_ex_adtte }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADTTE <- data[["ADTTE"]] arm_ref_comp <- list( ACTARMCD = list(ref = "ARM B", comp = c("ARM A", "ARM C")), ARM = list(ref = "B: Placebo", comp = c("A: Drug X", "C: Combination")) ) app <- init( data = data, modules = modules( tm_t_tte( label = "Time To Event Table", dataname = "ADTTE", arm_var = choices_selected(variable_choices(ADSL, c("ARM", "ARMCD", "ACTARMCD")), "ARM"), arm_ref_comp = arm_ref_comp, paramcd = choices_selected(value_choices(ADTTE, "PARAMCD", "PARAM"), "OS"), strata_var = choices_selected(variable_choices(ADSL, c("SEX", "BMRKR2")), "SEX"), time_points = choices_selected(c(182, 243), 182), event_desc_var = choices_selected(variable_choices(ADTTE, "EVNTDESC"), "EVNTDESC", fixed = TRUE), decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
![image](https://github.com/user-attachments/assets/b317fa2e-44b6-446f-be53-b49c5a14bfe8) --- R/tm_t_tte.R | 37 +++++++++++++++++++++++++++++-------- man/tm_t_tte.Rd | 21 ++++++++++++++++++++- 2 files changed, 49 insertions(+), 9 deletions(-) diff --git a/R/tm_t_tte.R b/R/tm_t_tte.R index 612788b1e..ceee2c516 100644 --- a/R/tm_t_tte.R +++ b/R/tm_t_tte.R @@ -365,7 +365,6 @@ template_tte <- function(dataname = "ANL", y$table <- substitute( expr = { table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parentname) - table }, env = list(parentname = as.name(parentname)) ) @@ -387,6 +386,15 @@ template_tte <- function(dataname = "ANL", #' pre-selected option for confidence level, each within range of (0, 1). #' @param event_desc_var (`character` or [data_extract_spec()])\cr variable name with the event description #' information, optional. +#' @param decorators `r roxygen_decorators_param("tm_t_tte")` +#' +#' @section Decorating `tm_t_tte`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. #' #' @details #' * The core functionality of this module is based on [coxph_pairwise()], [surv_timepoint()], and [surv_time()] from @@ -493,7 +501,8 @@ tm_t_tte <- function(label, na_level = default_na_str(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_tte") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -513,6 +522,8 @@ tm_t_tte <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) @@ -540,7 +551,8 @@ tm_t_tte <- function(label, label = label, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -724,7 +736,8 @@ ui_t_tte <- function(id, ...) { data_extract_spec = a$time_unit_var, is_single_dataset = is_single_dataset_value ) - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -753,7 +766,8 @@ srv_t_tte <- function(id, total_label, label, na_level, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -947,13 +961,20 @@ srv_t_tte <- function(id, anl_q() %>% teal.code::eval_code(as.expression(unlist(my_calls))) }) - table_r <- reactive(all_q()[["table"]]) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv(id = "table", table_r = table_r) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -972,7 +993,7 @@ srv_t_tte <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index c8d8d6f5f..f6b3e00b1 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -31,7 +31,8 @@ tm_t_tte( na_level = default_na_str(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -98,6 +99,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_tte}" below for more details.} } \value{ a \code{teal_module} object. @@ -120,6 +127,18 @@ filtering for \code{PARAMCD} one observation per patient is expected } } } +\section{Decorating \code{tm_t_tte}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From cbb58b7401b18bf8b46472d25e387dc504f6585c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:51:58 +0000 Subject: [PATCH 53/86] docs: documentation simplification --- R/argument_convention.R | 8 +++++++ R/roxygen2_templates.R | 15 ------------- R/tm_a_gee.R | 3 +-- R/tm_g_barchart_simple.R | 3 +-- R/tm_g_ci.R | 3 +-- R/tm_g_forest_rsp.R | 3 +-- R/tm_g_forest_tte.R | 3 +-- R/tm_g_ipp.R | 3 +-- R/tm_g_km.R | 3 +-- R/tm_g_lineplot.R | 3 +-- R/tm_g_pp_patient_timeline.R | 18 ++++++++-------- R/tm_g_pp_therapy.R | 3 +-- R/tm_g_pp_vitals.R | 4 +--- R/tm_t_abnormality.R | 3 +-- R/tm_t_abnormality_by_worst_grade.R | 3 +-- R/tm_t_ancova.R | 3 +-- R/tm_t_binary_outcome.R | 3 +-- R/tm_t_coxreg.R | 6 +++--- R/tm_t_events.R | 3 +-- R/tm_t_events_patyear.R | 3 +-- R/tm_t_events_summary.R | 5 +---- R/tm_t_mult_events.R | 3 +-- R/tm_t_tte.R | 3 +-- man/module_arguments.Rd | 9 ++++++++ man/template_patient_timeline.Rd | 12 ----------- man/tm_a_gee.Rd | 13 +++++++----- man/tm_a_mmrm.Rd | 4 ++-- man/tm_g_barchart_simple.Rd | 13 +++++++----- man/tm_g_ci.Rd | 13 +++++++----- man/tm_g_forest_rsp.Rd | 13 +++++++----- man/tm_g_forest_tte.Rd | 13 +++++++----- man/tm_g_ipp.Rd | 13 +++++++----- man/tm_g_km.Rd | 13 +++++++----- man/tm_g_lineplot.Rd | 13 +++++++----- man/tm_g_pp_adverse_events.Rd | 4 ++-- man/tm_g_pp_patient_timeline.Rd | 23 ++++++++++++++++---- man/tm_g_pp_therapy.Rd | 13 +++++++----- man/tm_g_pp_vitals.Rd | 13 +++++++----- man/tm_t_abnormality.Rd | 13 +++++++----- man/tm_t_abnormality_by_worst_grade.Rd | 13 +++++++----- man/tm_t_ancova.Rd | 13 +++++++----- man/tm_t_binary_outcome.Rd | 13 +++++++----- man/tm_t_coxreg.Rd | 17 ++++++++------- man/tm_t_events.Rd | 13 +++++++----- man/tm_t_events_by_grade.Rd | 4 ++-- man/tm_t_events_patyear.Rd | 17 ++++++++------- man/tm_t_events_summary.Rd | 13 +++++++----- man/tm_t_exposure.Rd | 4 ++-- man/tm_t_logistic.Rd | 4 ++-- man/tm_t_mult_events.Rd | 29 ++++++++++++++------------ man/tm_t_pp_basic_info.Rd | 4 ++-- man/tm_t_pp_laboratory.Rd | 4 ++-- man/tm_t_pp_medical_history.Rd | 4 ++-- man/tm_t_pp_prior_medication.Rd | 4 ++-- man/tm_t_shift_by_arm.Rd | 4 ++-- man/tm_t_shift_by_arm_by_worst.Rd | 4 ++-- man/tm_t_shift_by_grade.Rd | 4 ++-- man/tm_t_smq.Rd | 4 ++-- man/tm_t_summary.Rd | 4 ++-- man/tm_t_summary_by.Rd | 4 ++-- man/tm_t_tte.Rd | 13 +++++++----- 61 files changed, 269 insertions(+), 226 deletions(-) delete mode 100644 R/roxygen2_templates.R diff --git a/R/argument_convention.R b/R/argument_convention.R index f9cbcfb96..6c70ef260 100644 --- a/R/argument_convention.R +++ b/R/argument_convention.R @@ -203,6 +203,14 @@ NULL #' value indicating worst grade. #' @param worst_flag_var ([teal.transform::choices_selected()])\cr object #' with all available choices and preselected option for variable names that can be used as worst flag variable. +#' @param decorators `r lifecycle::badge("experimental")` +#' " (`list` of `teal_transform_module`, named `list` of `teal_transform_module` or" `NULL`) optional, +#' if not `NULL`, decorator for tables or plots included in the module. +#' When a named list of `teal_transform_module`, the decorators are applied to the respective output objects. +#' +#' Otherwise, the decorators are applied to all objects, which is equivalent as using the name `default`. +#' +#' See section "Decorating Module" below for more details. #' #' @return a `teal_module` object. #' diff --git a/R/roxygen2_templates.R b/R/roxygen2_templates.R deleted file mode 100644 index 4d96c6158..000000000 --- a/R/roxygen2_templates.R +++ /dev/null @@ -1,15 +0,0 @@ -# nocov start -roxygen_decorators_param <- function(module_name) { - paste( - sep = " ", - lifecycle::badge("experimental"), - " (`list` of `teal_transform_module`, named `list` of `teal_transform_module` or", - "`NULL`) optional, if not `NULL`, decorator for tables or plots included in the module.", - "When a named list of `teal_transform_module`, the decorators are applied to the", - "respective output objects.\n\n", - "Otherwise, the decorators are applied to all objects, which is equivalent as using the name `default`.\n\n", - sprintf("See section \"Decorating `%s`\"", module_name), - "below for more details." - ) -} -# nocov start diff --git a/R/tm_a_gee.R b/R/tm_a_gee.R index 2a9bc87a2..0978d54ce 100644 --- a/R/tm_a_gee.R +++ b/R/tm_a_gee.R @@ -131,11 +131,10 @@ template_a_gee <- function(output_table, #' @inheritParams module_arguments #' @inheritParams template_arguments #' @inheritParams template_a_gee -#' @param decorators `r roxygen_decorators_param("tm_a_gee")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_a_gee`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`ElementaryTable` - output of `rtables::build_table`) diff --git a/R/tm_g_barchart_simple.R b/R/tm_g_barchart_simple.R index dfa3d65b7..3ee21a061 100644 --- a/R/tm_g_barchart_simple.R +++ b/R/tm_g_barchart_simple.R @@ -12,11 +12,10 @@ #' @param x_facet (`data_extract_spec`)\cr row-wise faceting groups. #' @param y_facet (`data_extract_spec`)\cr column-wise faceting groups. #' @param plot_options (`list`)\cr list of plot options. -#' @param decorators `r roxygen_decorators_param("tm_g_barchart_simple")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_g_barchart_simple`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `plot` (`ggplot2`) diff --git a/R/tm_g_ci.R b/R/tm_g_ci.R index a4979a8e1..4295c231f 100644 --- a/R/tm_g_ci.R +++ b/R/tm_g_ci.R @@ -185,11 +185,10 @@ template_g_ci <- function(dataname, #' @inheritParams module_arguments #' @inheritParams template_g_ci #' @param color (`data_extract_spec`)\cr the group variable used to determine the plot colors, shapes, and line types. -#' @param decorators `r roxygen_decorators_param("tm_g_ci")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_g_ci`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `plot` (`ggplot2`) diff --git a/R/tm_g_forest_rsp.R b/R/tm_g_forest_rsp.R index e764ad453..fdd81c2ed 100644 --- a/R/tm_g_forest_rsp.R +++ b/R/tm_g_forest_rsp.R @@ -240,11 +240,10 @@ template_forest_rsp <- function(dataname = "ANL", #' @inheritParams tern::g_forest #' @inheritParams module_arguments #' @inheritParams template_forest_rsp -#' @param decorators `r roxygen_decorators_param("tm_g_forest_rsp")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_g_forest_tte`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `plot` (`gg`) diff --git a/R/tm_g_forest_tte.R b/R/tm_g_forest_tte.R index dccde847a..b0cca0af2 100644 --- a/R/tm_g_forest_tte.R +++ b/R/tm_g_forest_tte.R @@ -240,11 +240,10 @@ template_forest_tte <- function(dataname = "ANL", #' @inheritParams tern::g_forest #' @inheritParams module_arguments #' @inheritParams template_forest_tte -#' @param decorators `r roxygen_decorators_param("tm_g_forest_tte")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_g_forest_tte`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `plot` (`ggplot2`) diff --git a/R/tm_g_ipp.R b/R/tm_g_ipp.R index ab673a20d..8b7216bce 100644 --- a/R/tm_g_ipp.R +++ b/R/tm_g_ipp.R @@ -176,11 +176,10 @@ template_g_ipp <- function(dataname = "ANL", #' @inheritParams template_g_ipp #' @param arm_var ([teal.transform::choices_selected()])\cr object with #' all available choices and preselected option for variable values that can be used as arm variable. -#' @param decorators `r roxygen_decorators_param("tm_g_ipp")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_g_ipp`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `plot` (`ggplot2`) diff --git a/R/tm_g_km.R b/R/tm_g_km.R index 6c7745d6c..2a62aa018 100644 --- a/R/tm_g_km.R +++ b/R/tm_g_km.R @@ -267,11 +267,10 @@ template_g_km <- function(dataname = "ANL", #' @inheritParams template_g_km #' @param facet_var ([teal.transform::choices_selected()])\cr object with #' all available choices and preselected option for names of variable that can be used for plot faceting. -#' @param decorators `r roxygen_decorators_param("tm_g_km")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_g_km`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `plot` (`ggplot2`) diff --git a/R/tm_g_lineplot.R b/R/tm_g_lineplot.R index f9950344c..e57a0c318 100644 --- a/R/tm_g_lineplot.R +++ b/R/tm_g_lineplot.R @@ -211,11 +211,10 @@ template_g_lineplot <- function(dataname = "ANL", #' #' @inheritParams module_arguments #' @inheritParams template_g_lineplot -#' @param decorators `r roxygen_decorators_param("tm_g_lineplot")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_g_lineplot`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `plot` (`ggplot2`) diff --git a/R/tm_g_pp_patient_timeline.R b/R/tm_g_pp_patient_timeline.R index ddf2511a0..73386dd72 100644 --- a/R/tm_g_pp_patient_timeline.R +++ b/R/tm_g_pp_patient_timeline.R @@ -16,14 +16,6 @@ #' #' @inherit template_arguments return #' -#' @section Decorating `tm_g_pp_patient_timeline`: -#' -#' This module generates the following objects, which can be modified in place using decorators:: -#' - `plot` (`ggplot2`) -#' -#' For additional details and examples of decorators, refer to the vignette -#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. -#' #' @seealso [tm_g_pp_patient_timeline()] #' #' @keywords internal @@ -352,10 +344,18 @@ template_patient_timeline <- function(dataname = "ANL", #' all available choices and preselected option for the `CMASTDTM` variable from `dataname_adcm`. #' @param dstime_end ([teal.transform::choices_selected()])\cr object with all #' available choices and preselected option for the `CMAENDTM` variable from `dataname_adcm`. -#' @param decorators `r roxygen_decorators_param("tm_")` #' #' @inherit module_arguments return #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `plot` (`ggplot2`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE diff --git a/R/tm_g_pp_therapy.R b/R/tm_g_pp_therapy.R index 3667f8a1e..5b08d137c 100644 --- a/R/tm_g_pp_therapy.R +++ b/R/tm_g_pp_therapy.R @@ -241,11 +241,10 @@ template_therapy <- function(dataname = "ANL", #' available choices and preselected option for the `CMDOSFRQ` variable from `dataname`. #' @param cmendy ([teal.transform::choices_selected()])\cr object with all #' available choices and preselected option for the `CMENDY` variable from `dataname`. -#' @param decorators `r roxygen_decorators_param("tm_g_pp_therapy")` #' #' @inherit module_arguments return #' -#' @section Decorating `tm_g_pp_therapy`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators:: #' - `plot` (`ggplot2`) diff --git a/R/tm_g_pp_vitals.R b/R/tm_g_pp_vitals.R index 8b3a76cbd..3321489ed 100644 --- a/R/tm_g_pp_vitals.R +++ b/R/tm_g_pp_vitals.R @@ -206,12 +206,10 @@ template_vitals <- function(dataname = "ANL", #' @inheritParams template_vitals #' @param xaxis ([teal.transform::choices_selected()])\cr object with all #' available choices and preselected option for the time variable from `dataname` to be put on the plot x-axis. -#' @param decorators `r roxygen_decorators_param("tm_g_pp_vitals")` #' #' @inherit module_arguments return #' -#' -#' @section Decorating `tm_g_pp_vitals`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `plot` (`ggplot2`) diff --git a/R/tm_t_abnormality.R b/R/tm_t_abnormality.R index 24bdfcb0d..c2955a09e 100644 --- a/R/tm_t_abnormality.R +++ b/R/tm_t_abnormality.R @@ -233,11 +233,10 @@ template_abnormality <- function(parentname, #' @param baseline_var ([teal.transform::choices_selected()])\cr #' variable for baseline abnormality grade. #' @param na_level (`character`)\cr the NA level in the input dataset, default to `""`. -#' @param decorators `r roxygen_decorators_param("tm_t_abnormality")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_t_abnormality`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`ElementaryTable` - output of `rtables::build_table`) diff --git a/R/tm_t_abnormality_by_worst_grade.R b/R/tm_t_abnormality_by_worst_grade.R index 62892d367..1eac97568 100644 --- a/R/tm_t_abnormality_by_worst_grade.R +++ b/R/tm_t_abnormality_by_worst_grade.R @@ -245,11 +245,10 @@ template_abnormality_by_worst_grade <- function(parentname, # nolint: object_len #' object with all available choices and preselected option for variable names that can be used as Worst Low Grade flag. #' @param worst_flag_indicator ([teal.transform::choices_selected()])\cr #' value indicating worst grade. -#' @param decorators `r roxygen_decorators_param("tm_t_abnormality_by_worst_grade")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_t_abnormality_by_worst_grade`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`ElementaryTable` - output of `rtables::build_table`) diff --git a/R/tm_t_ancova.R b/R/tm_t_ancova.R index 80813ed88..bdc71814c 100644 --- a/R/tm_t_ancova.R +++ b/R/tm_t_ancova.R @@ -421,11 +421,10 @@ template_ancova <- function(dataname = "ANL", #' #' @inheritParams module_arguments #' @inheritParams template_ancova -#' @param decorators `r roxygen_decorators_param("tm_t_ancova")` #' #' @inherit module_arguments return #' -#' @section Decorating `tm_t_ancova`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`ElementaryTable` - output of `rtables::build_table`) diff --git a/R/tm_t_binary_outcome.R b/R/tm_t_binary_outcome.R index cbf637dbf..e1924bb11 100644 --- a/R/tm_t_binary_outcome.R +++ b/R/tm_t_binary_outcome.R @@ -347,11 +347,10 @@ template_binary_outcome <- function(dataname, #' `"Not Evaluable (NE)"`, or `"Missing or unevaluable"`, 95% confidence interval will not be calculated. #' #' * Reference arms are automatically combined if multiple arms selected as reference group. -#' @param decorators `r roxygen_decorators_param("tm_t_binary_outcome")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_t_binary_outcome`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`TableTree` - output of `rtables::build_table`) diff --git a/R/tm_t_coxreg.R b/R/tm_t_coxreg.R index 0f0389e55..ced01a41f 100644 --- a/R/tm_t_coxreg.R +++ b/R/tm_t_coxreg.R @@ -336,7 +336,6 @@ template_coxreg_m <- function(dataname, #' @inheritParams template_coxreg_m #' @param multivariate (`logical`)\cr if `FALSE`, the univariable approach is used instead of the #' multi-variable model. -#' @param decorators `r roxygen_decorators_param("tm_t_coxreg")` #' #' @details #' The Cox Proportional Hazards (PH) model is the most commonly used method to @@ -361,7 +360,7 @@ template_coxreg_m <- function(dataname, #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_t_coxreg`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`TableTree` as created from `rtables::build_table`) @@ -1102,7 +1101,8 @@ srv_t_coxreg <- function(id, # Outputs to render. table_r <- reactive({ - decorated_table_q()[["table"]]}) + decorated_table_q()[["table"]] + }) teal.widgets::table_with_settings_srv( id = "table", diff --git a/R/tm_t_events.R b/R/tm_t_events.R index 31efb865d..930c99b5c 100644 --- a/R/tm_t_events.R +++ b/R/tm_t_events.R @@ -458,11 +458,10 @@ template_events <- function(dataname, #' It defines the grouping variable(s) in the results table. #' If there are two elements selected for `arm_var`, #' second variable will be nested under the first variable. -#' @param decorators `r roxygen_decorators_param("tm_t_events")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_t_events`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`TableTree` as created from `rtables::build_table`) diff --git a/R/tm_t_events_patyear.R b/R/tm_t_events_patyear.R index 6aa2bfdcc..c85ada4bb 100644 --- a/R/tm_t_events_patyear.R +++ b/R/tm_t_events_patyear.R @@ -189,11 +189,10 @@ template_events_patyear <- function(dataname, #' second variable will be nested under the first variable. #' @param events_var ([teal.transform::choices_selected()])\cr object with #' all available choices and preselected option for the variable with all event counts. -#' @param decorators `r roxygen_decorators_param("tm_t_events_patyear")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_t_events_patyear`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`TableTree` as created from `rtables::build_table`) diff --git a/R/tm_t_events_summary.R b/R/tm_t_events_summary.R index d392bdbda..df8263adc 100644 --- a/R/tm_t_events_summary.R +++ b/R/tm_t_events_summary.R @@ -522,10 +522,7 @@ template_events_summary <- function(anl_name, #' #' @inherit module_arguments return seealso #' -#' @param decorators `r roxygen_decorators_param("tm_t_events_summary")` -#' -#' -#' @section Decorating `tm_t_events_summary`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`TableTree` as created from `rtables::build_table`) diff --git a/R/tm_t_mult_events.R b/R/tm_t_mult_events.R index 4e0c8ea80..1a564d4ab 100644 --- a/R/tm_t_mult_events.R +++ b/R/tm_t_mult_events.R @@ -279,11 +279,10 @@ template_mult_events <- function(dataname, #' @param seq_var ([teal.transform::choices_selected()])\cr object with #' all available choices and preselected option for variable names that can be used as analysis sequence number #' variable. Used for counting the unique number of events. -#' @param decorators `r roxygen_decorators_param("tm_t_mult_events")` #' #' @inherit module_arguments return seealso #' -#' #' @section Decorating `tm_t_mult_events`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`TableTree` - output of `rtables::build_table`) diff --git a/R/tm_t_tte.R b/R/tm_t_tte.R index ceee2c516..84668c7ad 100644 --- a/R/tm_t_tte.R +++ b/R/tm_t_tte.R @@ -386,9 +386,8 @@ template_tte <- function(dataname = "ANL", #' pre-selected option for confidence level, each within range of (0, 1). #' @param event_desc_var (`character` or [data_extract_spec()])\cr variable name with the event description #' information, optional. -#' @param decorators `r roxygen_decorators_param("tm_t_tte")` #' -#' @section Decorating `tm_t_tte`: +#' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`TableTree` - output of `rtables::build_table`) diff --git a/man/module_arguments.Rd b/man/module_arguments.Rd index 397fb160f..d21b1100b 100644 --- a/man/module_arguments.Rd +++ b/man/module_arguments.Rd @@ -133,6 +133,15 @@ value indicating worst grade.} \item{worst_flag_var}{(\code{\link[teal.transform:choices_selected]{teal.transform::choices_selected()}})\cr object with all available choices and preselected option for variable names that can be used as worst flag variable.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. diff --git a/man/template_patient_timeline.Rd b/man/template_patient_timeline.Rd index 24b297571..b86eaa482 100644 --- a/man/template_patient_timeline.Rd +++ b/man/template_patient_timeline.Rd @@ -62,18 +62,6 @@ a \code{list} of expressions to generate a table or plot object. \description{ Creates a valid expression to generate a patient profile timeline \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} plot using ADaM datasets. } -\section{Decorating \code{tm_g_pp_patient_timeline}}{ - - -This module generates the following objects, which can be modified in place using decorators:: -\itemize{ -\item \code{plot} (\code{ggplot2}) -} - -For additional details and examples of decorators, refer to the vignette -\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. -} - \seealso{ \code{\link[=tm_g_pp_patient_timeline]{tm_g_pp_patient_timeline()}} } diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index f69462a7e..28f812a45 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -71,11 +71,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_a_gee}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -83,7 +86,7 @@ a \code{teal_module} object. \description{ This module produces an analysis table using Generalized Estimating Equations (GEE). } -\section{Decorating \code{tm_a_gee}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -146,8 +149,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeUAipV1DU2t7fwAjqI6AKQAfNM9Jca01OSM7KUAQtUAYrUAhAC8OgpgAJqnOgBkZdt7AEw6RyfnpzZzCxAlJTCCoeTsRbfUoANQAkpUwbYdMcoOJjFB1ER1qCIVC5LggSVUZDbAA5GE6ZgQADWG3BuLx73mWO+cIwCKR62pn2+bJ09IggngjBk1hmNK+7JK9MZpGR1kxQrZoNK1U2YIJx1ltT0OgArAAGHQAYh0AClBKJSByplAvq1YD5dOKdABzOAmsL0bKeHQUbxEbKkDBAllA-iMIjW7TUUTxCAAXwCACsvRAoiS4Kxw3kbMl+HAEcJSFECPxaKImnHsonk6JgNB4KnEnIALquaDoOrZdKAoV5Ql5KU-ATCMSEvhCEThoENdpRB1wdvC6hQehwaiE04AcScLjwtLyVd0x1OFQGpx77Kgmm4UTPjEJBAyXoIYiiokXcHUcH4gLAKoVeKPJloLTfQl7GcDFaVofgLxYa9bxkB8nxEV93wID8HEqBxNn1MFyl-U40IwrC3gKU5UPQzDsLAUDpTpRgYEgq9jhvO84OfRD2GQ-csAAWRwz8uIAYXIjEXlKLjCNpTRC3SOjoKY0RHxY8gkI-HEoR4lT8UI4SKVUijjzZVAWFgfMZNguT4JfRSZ2FHRGNMwkz2oQQ4DzGD7xrUJgGAfd+kqU46zrIiwAABRE0pOIEniQqwMKxKotlzMQ5cwB2ABpSEDB2AB1TZTlpSjhWITRpIY1zmIQyz2LATZSkqDdAtKNceNqgANHjqtqxB1M0vEHGqaoAjZAadACAJaGMHR2G9VREQ0bRrBsIohVELIIFYUp0HYNBUAAEkEWgCi27an0YbR-CUSMlDASM6yAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index 58225572c..ee5c3c101 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEosMAD6jHDGIcQwqPpGdKKk7Eo6OgCCWACyAMIAIjoAvDoJSSmpOuHGhToKYBmZOgBCtbhlqdGxRQTJdVnpLTW9Ddm1AakBAUr8UKRQcTpc1CHTs9ZTM3OGOgDutKQAFrQQ7CtQuDogZWm5AMoAMvOkMAQhcAAeIVD8otRXuQCKN0ez1eHy+AEdRDoAKQAPmhbRMtGo5EY7DSjTuADEHgBCIq1ACatR0ADJ0picQAmHT4wbEsA2OEIiDlJEo1TogBqAEkbjzbDCjtCdN1agB1JxOADSOgAjDpcmlCToABwDCVS2U0pUquUAVg1YElMp0AGZFcqdFSqaMmfDETBBLNyMlWWz0rz+YKilBxMYoOoiGi0l6BXJWu62aG+QKAHLVZgQADW3Njtjj9pZHvKfowAaDaKziLZeYggngjBk1hhDqjHrzBdIwZrAGIAOQ6GBQZNHADmopIojgBGdWl05crMhMgebjERAQAvgEAFZEI4hZNwViiE4bGxbfgRKDCUhRfi0UQvNcbrc74DQeC705yAC6rmg6HmRz2btSp2qU5I1SPghBEKEilA4QxD-conk+EIYBgRgYFgtlqCgeg4GoapakyTIshaEsdFOR9dAJOoARuIj61SKBNG4EIGMYaoCH2dcCDEEJhxEdQ4H4dgxTqLk0juI1sgACQAcVGc5alDUTZOI2h+CYlhWPYmQuJ4kdyAEoSHBuBxGgAKR5XIjSM0zzNkwZDOMsyLMZYCGxQtSWK6TTONEbjsN0-jBJ6eojXqPJbPkwjnOIzRLz2dyNI47S-L4-SgrDWwQvSuNwuE9MlNonRgjCCIoiIGJqiKypSpiFy2VQFhYAIfgEq0nydJStCPTYxKIJ0BjqEEOAoi8mDTmAYB5Ko2pX1fOSwAABQyNIcicubFqwZb8pzVJ2r03CwCxaV+QMLFxWaMBiIjYjiE0eLPJ63zeL0wLakaNIbhcPBBjSKTPrmj6AA0jTej7EBjb1bLjBw7juMZyjhiYlFoKp2COVFZ3HawbEud1REOCBWDSdB2DQVAABJBFoc5SbJ4dGG0fwlEXJQwEXV8gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index 1a436a496..8d3e24dba 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -49,11 +49,14 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_barchart_simple}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -65,7 +68,7 @@ This module produces a \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type bar Categories can be defined up to four levels deep and are defined through the \code{x}, \code{fill}, \code{x_facet}, and \code{y_facet} parameters. Any parameters set to \code{NULL} (default) are ignored. } -\section{Decorating \code{tm_g_barchart_simple}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -201,8 +204,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTowgonk7ACStrYAYp0AvCZQ6gHsCmAAmic207MQ8-NFpWnUUPRw1MdgqypkBrZEP4xwBI6AAKRFQwgSlhumyeAHMLkEGi1Gk4uj0+oNhvFdFc5g1jLRqORGOwAITsdgo2wAeQAGgBxLA6HZ7ACMNgAZDpKU5Wk4AGrMvYnACyq3azQuOi5lKwIqFOhOjUQOmajEEsJ0tIRQQAvkEAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfSNJvNluA0HgVtycgAurEWh0urlgMAlW12icQ2GIMjUXaqjG4yjE8mlGhUF1ysVjjcdLlmWWqrg5nwhCJRBXa8IxCXbj00rC0vQWAQSiwXaJaDBInBW7cdE8XuNhWBU01oFFB6ITtXS7cBhXcv0BqQ1APUHACGPx5XEgHdDOIwm8Hjx6JXofSBX7yJ1GlRAej7eT73jQQxBWmgsLQzwiK6JR-i234nk08arjB45fmuCHzEqcoroqs4AMK2I06F4JhfLajeyEoZhWCNFhLgESc6xbNeNQnK0jSbNsGFMfYjS4QATCc0EnoiKFyPBKEvo+cD8BWSo4XhIorvx8yLEStAjhWmyNO0fIKYJtzCdBBLUNOE4eqQx7jlugy7gc+6HmZJ65OeUmzvG8mkXeD7qM+Hk2UhZENL+MgAXsQGMCB9BgQF-5WgpJ5XiJfk6L5CWobO+GMdhuFpYRTjEfFyUnBRVHsR8GxsTRYDMaxDGEZxPF8W5CE6UJeUIWJ6gSU5RGuQlSkaKpezqZpLgNfMTW6S18wWTue7vp+dnmVUjmXs02YkWRbVPnsG2zbZMXzJFQU6CFYURRBgVWqmNRfrOTg0gyWDFSifL8o9vJOA9YByHpI23BtHV7AAcg47TtBNJ69SpIhqRpWk-ToY2jdB30nkMjr-ptxmiKZClTVZb4frtcMObAF6Yam3Wid5Xmvj580-mdUWAcBoFwOBkEXStThXe8VJ0oyr3PQL70ImD7k0-9ZO3XzH2i7cEP9Tog2w2RCMNMjMG4zNBNJQhxPwE5V4U61VNbd5O06yhB0NsFzPhazVt0zBcV7bcFsJWhcnlZRmWe+lXVrclDQFZR1HpXRZV+yxEc1RRdVgC7iNw2rsvzH9kmA8DoMJ-LUMDTDw0q9pSMTawaRo3AGN0Fjjua9Z5uOw0euk1mod7Rt1OPvXCdW0zoUs2z52Upz3NKlL91Cy9XtvR9X0pw0acG29k9zwszqQ6TSsF0J2mi7X+NzXtTcGy5AfGzTHf74TCU9zbfd2wPUUN+OztJ-tT8nh7j0yVlTE5Ub+VgEKqHTC4dqpMSjmAiqtVGi8Xjq-NWCd1brW8hLIGIMV45w3vnPaqt4ZI1vIJIIQRaDGG5OUYk1ktCji+rUOYogygQFYI0dA7B8wABJBC0BqOw+8jBtAxAgLqJQYBdQhiAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index ddd272ff5..edfd3ae32 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -51,11 +51,14 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_ci}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -64,7 +67,7 @@ a \code{teal_module} object. This module produces a \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type confidence interval plot consistent with the TLG Catalog template \code{CIG01} available \href{https://insightsengineering.github.io/tlg-catalog/stable/graphs/other/cig01.html}{here}. } -\section{Decorating \code{tm_g_ci}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -155,8 +158,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlbUAQg1NLe2d-NT0SgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5idaJTqdTqFB6HBqCS-gBhEjGWh7cy6ACSKkYmm4OgACv5SH88VSWToOpLGCSCq02qQ1MdRKg4ARmcqygV7rpsdCaoC8H0TaJOYbSCSHSJ1DF9YbjSaygQsksCGISUboVgALI8yoKnR-QZhrAAaSwACY-nJFT7qa6nXB+MG0f9w5G0xnM6SjrRUCISQAxcq1apOUuZgVtXO1+uNu3KoIm9PdsqsGJqjXJLU6qDuz0hpUms2wC0x-5ghUD6kC6jkdXYuiiUjen0brceg0zsvUtXEy1gaXlLDlCNR22zst+gNBndwbTUTYwwYAElve9H37F9M2zdR20-b9fzBQC7wfSM5GAABGZ5mzLGAKyrRc6wbJs1xNNkOS5a9qkddQdGIxA-kI6lQPPI9VBPL06JZS9uX+AA1EVqhFWxVzAn03xkD8qK-TlYKGf9yh4vjbAY88dAg8g82gyT2D-GS5P45C0IwzMsM3Stq2xPDGwMn1iM5TjyLdZ1NHOTIaLANidF7H1FPtCjnWxFSWLPMtrNIpdymgahWAAL3bLjuEEOBBPPETAyvHQQ24+to15AAJABxEs3JUqDQq4zLn3PIyNBwjt8MsllW2K8yXCEsoPJZLzqT8AJR3CcddQCg8WXneBOIBRKfRUl0fIGtzgs4vl-HVehWB0NVaHZERxszZKxPSxsAA0srAap7HKWxyhQo6Tvvc7UzADrvPs4q9tO87LvuurqUqkzcM7AiWvXWg2zUnQmrotr6O7DygiCWhjB0dhci3ScNG0awbBKJVRByCBWHKdB2ERf9BFoIoiYdCVVCCGYlDAGZniAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index 814401616..a39e917a9 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -115,11 +115,14 @@ merged with option \code{teal.ggplot2_args} and with default module arguments (h For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_forest_rsp}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -127,7 +130,7 @@ a \code{teal_module} object. \description{ This module produces a grid-style forest plot for response data with ADaM structure. } -\section{Decorating \code{tm_g_forest_tte}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -227,8 +230,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc1YrV09fYPD-IyiOgCkAHyrEw0wgonk7I0Aao3tAMI6ALw6-GkkxGnLqGnUUPRw1Icn5zYbWxANQGFYolF5vD7sBRgM4lFhQdSqHRYMTCUgAegAYuV+OUAOZQuS-TbbEy0ajkRjsAAKjSwjQAsmdmjoAITXKEAeSOWAAkgA5I5QnQAHyaRx5rR5tiu7LAGI57XaHIA6joHFSCUoAL5BABWRHKaQA1nBWKJKokbPl+HBjFBUWkCDjRH19YaTWbgNB4ObcnIALqxFodLq5YDAKHB9pQ-2BiAtaahqrhyNTVoxuNKFgwR62x1EGCoLp0USkSEAppYelXHQlsskxi2mtQgBCiB0VNeBDg9CIUNwJOIhZrBEhYEa7eajEEuJ0AA1+zooWd22cC-RyglLBBNRW5AOK7TGczrnXy0DG8Zm+OqzoW-3BwWi9dR5Hb41F2-q2ddw0gkEs3QLpymKc8biqGtcgPHYBGEMQaz4IQRHNEkejSXE0mMAIfEeURUDAoFXneahrwxbDSyRMRUBIUQ4AfCsgVyb1dFlBN0zwEkGmzNJNBYEcSgNbtRDSWiRARfgCKBHReMYWg3hER0BJkMRDjadoalfG96U-LSmQJfdOMBL89LAQyDIYwFuMvfNh2uKy8yHVBoKk1A4V6fh+MEsQRI+OBxMkoFeOoQQ4EUrzzTYmooRpOljx0mKGQJZypKXMB+SOJxbChMzksBURBHoXFGCIQRnhkzzlOE0S-PICTDIaGS5PoBSCCUoTVI6GpmIitTCVyoFNJbeksAAaSwAAmHTWicBcwCCFLzJS0tmESHi+JfNrvOq-z6uklgmpazaes6nRNNaexGlsRoAEYpouq7JrmxaUtS866Qe7KLL-fqdEiIhSDSEo4FoXESlIEd2AANgABmh9SdHG2H4cRpHnsY217XJXM8Jo+DT1oUsAsBFsnFaaYqR5Gsz12honghqFWkSZrdGaAm4CgWidHYVpmkUPBUr5f6dCcILBHk3R2D5Jw+bRl6RG0agVhfImUuXJ8RHISicYgTn2DOLA+aisAqRYDRuC16idYlqkDampmRB0VnaI5iWecNmmjON4qirEUQtBZtmXa5qleZ0wXwZF7gxeZrmpb5j35pe2WgXSzKqYJ+svqkunlbVwsNd0ZFtd1-XDdSk3GDNkii8t3WbZln7CLgBWldOlWpLzyI4E1mvca50uw6FyPgvF2Ppfi025Orqi++pW2OKz1WvaIH3RD97RHcDuvQ-5hn7YD53dbdz6XsBROFsbnQuV5AV08Jj2c7b6LvcbNf-c3w-rZ3o3GdHp32aPjvZOUl5YfFbppKkL9fbv3-kHak39Xr7w-gA12CCoTh2FqLUektx5zV2ufM+JJE7-iULQK87BygUnhBobQ1gbB1ArKIMoEBWCNHQOwNAqAAAkghaA1E4Vw2ijBtAxAgFqJQYAtT+iAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index 8e23d990e..4123fa597 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -116,11 +116,14 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_forest_tte}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -128,7 +131,7 @@ a \code{teal_module} object. \description{ This module produces a grid-style forest plot for time-to-event data with ADaM structure. } -\section{Decorating \code{tm_g_forest_tte}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -205,8 +208,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc22tk5dPX2Dw-yk5BMtHQAkWI0AwrP5-IxEkXDa1KLs6+1bu042AKQAfPeFxSVp1FD0cNTsCmBYKAEOD-IIAXyCACsiOU0gBrOCsC65GwHODGKDCUhpAj8WiiPrQ2EIpHAaDwZFVOQAXViVy6uWAwH+V3+1NpEBa032RkZzLAXJmbI5ShYMDSjHROKIMFQXToolIfwgDUaWAAsjoALw6BVKiYNSXGbU6f4AIUQOgACp9gfQiP9cAadMRZSaCH8BZbmoxBABzHQADUdprAO0tOxl9HKCUsEFBEzkTpVTQ1O2aJr1yoahvRJpZGp0Zsdztdcp1HoLmsaIarOh2CZTQSCovQXXKxWzOlyJtyyYafCEIlEJsHwjEXYaPTSfrSxgCPjSKzgk5zn2+1HzYAAYgvFTpWoJGJotNwSymc92quTdDqWVMhXhnQ0xWlNCx3SUYcDRGlRD84HUOB+FXS930YWgvhEHEvxkCcrhqSsBQ1WtkPVdNQSTZ8cyrDCwGwrCLxzV8jWlN0dRIqUy37S8dFQFhYFxT9vzEP8AKAkDsIad9qEEOAYJYi5BScGp-itNVGnQ5pUPE7Z1VBGjaNDAB5Vp-gIxSc1EQR6D9I5BFQN8PwrWCfzYkQONAnNwMg+hoIIUz4LadoahvITnLkQilIaJCzXVLAAGksAAJlQ1onGDMAgiUrzaMVZhEiMxhmLg39-ws8hOKIsCWFs+zHPcjpEM9Vp7EaWxGgARjCsqKtCqLYqU-5Su2Or1OynRopzLrmyUWhjXYcpyDUDRtGsGw6hTUQyggVhGnQdg0FQDZBFoGolo2f9j1UcElDAMFqSAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 10fb62a13..79bbfb3e4 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -94,11 +94,14 @@ body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_ipp}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -107,7 +110,7 @@ a \code{teal_module} object. This module produces \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type individual patient plots that display trends in parameter values over time for each patient, using data with ADaM structure. } -\section{Decorating \code{tm_g_ipp}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -193,8 +196,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTpjMnDsAIyIAEwADDbTsxDzOvzG-QORMsVp0Nn7Tc3tAEJdPX2Dw-zU9JMzcw3GtNTkRjsBytBz3ABSAElmpNyhNbh0ACQgsFQ5o7b43BpHE5nAgXK4YvYHP4A1TsRoANUhrUhth0AEIALw6BRgVoAYSwTicADlIbyAOJsoIAXyCACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAj8WiiPpSmXyxXAaDwJW5OQAXViLQ6XVywGAbId7TZNrtEBaDydVRdbru9093qUaFQXXKxXYc1yOhZuVwcz4QhEogTOlTwjEsax3RgaQA5mlaOg8wcGtQoPQ4OMWWzIXEtLQhNwdAAFBK0CikTv+Uhs5P57FVC26BtgX0hvA-eYsQuaFiZgglaUEMRpUR1uDqOD8CuVhpL6iCOC6tdLJXTmpurAAWQ5zRFw6PDTv96abLnDTkr8rqAsLAeorpeG6iFuO57geP7zCeZ4XuuuY3qyYAdo0WCNI+z5gH+sHvlO7S2N+I46HhpFQCeaRLowoFIRB24iNBh5HjRtA1iIiFXhSwY1AQsZTpSjQengqEcgAEsKuHkW+qFUsJJFHjJlaUdwgjUcuLKrvRkFMeQMGkceLDsfQnHadxKH8W6QntA4IrKUe1nCXZs6GSYtADPumb2M4sEOfMrYabRWlgZujG7vpLGVmxHHnuZ4E8Q8fECSiELQvZ-6OWAqVokO+HuZ5-DeY4Likf5x4GhcNF0VeukRfuUUHDFplxaF168ToVmCTSdIZfl1k9cRYB+Zl8z0FAjHlOe1UhTp4XMflzVmW1iX3MlbL3I0rQuNJo0HBtW07Xt8x-IVxW+WVx0jPwaTjZN3hpCUUgTjoABiwnbcd26Acw5C3awaREPQGYsu97TbXOQS-koQS0MYOjsOUgJQBY2jWDYdQ3KIZQQKwjTlhGiKCLQNSE9ujDaDEECikoYCijaQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index 67f6e17dc..f9c74b40a 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -103,11 +103,14 @@ For example a title.} \item{post_output}{(\code{shiny.tag}) optional,\cr with text placed after the output to put the output into context. For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are useful.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_km}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -115,7 +118,7 @@ a \code{teal_module} object. \description{ This module produces a \code{ggplot}-style Kaplan-Meier plot for data with ADaM structure. } -\section{Decorating \code{tm_g_km}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -190,8 +193,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlba2Tg1NLe2d-KTkSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAZDL7JH5-KqDFxgYFvFgwGKMfYnIgwVANOiiUjsPrlADCtnKWAAsoTKjoALw6HF4vplVHGGk6aHknQAIT+uEZOmImNZBHx-w55R5bNFZJ0hL+QTKcl5EDKpOltPp+OVZR0zNZf05iB0AAVqFACHB6EQeXyBVjacLoYbKoxBABzHQADQlf0JhsJGPouTClmCYHlOiCQSUaCxqVymU1ZQKrIKSrKfCEIlErIzwjEie1TRirtWMAL2rpUHocGoerAAGk0KaIAYyXBaKpjf5SNatRWCvddLToWC4WmKzokTFNCwhVklubRDFRDW4Oo4PxyxOZ4xaFWRCd5zJ8wCig6pd6pZTL0SSeTr2HFXyK+yyX9nxHxxXUCxYKc5wuYjLqu66bh+ZQztQghwIegGbDCQxFH8RqkuUFKVJeKFYGhcpfhOfwAPLVO+fbak+pFlFOzLooKtJUWitp4WUuLMOE06zvaR6LsBIigVuFY7nu9AHgQXEnjUtRniK1ROF6eCSpyZJYPWWAAExyuRE7an8MlyR+mkTgc5rHDuAHHkuK68eQYEUdqgn7jBolwewp78tJsmXopylqRpTHagAcg4tSArZ4YKn0kZKLQLLsLk5BqBo2jWDYJRaqIOQQKw5ToOwMYACSCLQRT5SujDaIEsxKGAMzPEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_lineplot.Rd b/man/tm_g_lineplot.Rd index 75b9a6329..8c4ba63fe 100644 --- a/man/tm_g_lineplot.Rd +++ b/man/tm_g_lineplot.Rd @@ -108,11 +108,14 @@ the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_lineplot}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -120,7 +123,7 @@ a \code{teal_module} object. \description{ This module produces a \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type line plot, with optional summary table, for standard ADaM data. } -\section{Decorating \code{tm_g_lineplot}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -182,8 +185,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBbgyhHMYBsqSiQUr8UKRQ+kZc1AD6GVnW6ZnZhjoA7rSkABa0EOFluDogSjo6AIIAIgDKADI5OqQwBPlwAB75UPyi1O1d3f0AQkMjY5PT-NT0OgCkAHx7Cx0wglnk7J0AagCSvbe2OgC8zybq+YxwAfyqV3cPWwtG73R4AORaMAaciCAF8ggArIgNfIAazgrFETSyNgqv2MUGEpHyBH4tFEYyRKPRmOA0HgWKKUDkAF1XBAegMhkzgMAFGBOf1+Sy2Rylqs8WVefyeithaKlGhUEMGjV2AsmS8dEzcAs+EIRKItfrhGJ1RAOh0RvkAOb5KRwSJEUjmy2W6hQehwaha-n9Bq6AAK-lI-N1Frd2rK9N0bxl4rDJ0tNsYREEqHymhYWoItWRBDE+VE3rg6jg-FdkY6WcYtE9IhJeZkZsFLQI6oFWAAsmGdDLuwBhbq9mUD2ydQfDsAw8NVjr9ntgJMdOSzyOsHNNguiIslssV5eWmt1+gN3P5lvitsdm6dIV4PtgZadXouB-8gcACQA4iOwIGv1-adV0PecBWuO9+UPECIzdVAWFgTcLx3YsRH3SsqyzahBDgRtkKuK9H0DCdOi7Ic-2IrBSP5GC50fO9bCg2DLSCN1WJ0IIgloYwdHYBpyDUDRtGsGw2gjUR6ggVhOnQdglQAEkEWgWgU4tGG0GIIFhJQwFhFkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index a5e56dd54..3656ffc29 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -140,8 +140,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUEAvkEAVkTlaQDWcFYokqiRs+X4cGMUGEpDSBH4tFEPR+f0BwOA0HgINycgAurEWlMOrlgMAFGAiZMKXiCRAWm0SVUyRSGS4wLTYmhUB1ysV2KNcjoALw6XK4UZ8IQiUQinRS4RiAUQBoNLppADmaXQC20jFEcF62jIIK2quoUHocGWotZ-D1Bp0TmNpFEFIlKtVDVyWN0tsprXZHq9DVQLAopF9ctZE2peDNoYStAj8KINp0FOe5yu7oTOkiRDhJTgtA1JVIcoI7AAbAAGWuTGoAJnrjZ0LdbcmDIagcH2MErJV+BDEaQNInUcH4ypDqoIQ5kYjlmhYtEtInhC5HILZNVZTlsTiwAFkKV28w1x3BJ-xo5SD0fT2A8+fPV7SEQBhrmJDB8PR1eN4zrOOjzv+sqiiujBrvQG5gYuO6Bnu962AA8gAGgA4lgZ7drOgHkLe-ptGhWE4c+b6qq+s6yIIojcMUrB-ghY7WtehHATRW5LpBq7roa8Hbuwu4ZveWBOHG1EgQRU53m04lxi+eGqkQgi+EQ8DMdurEThxF6gdxEE6FBMFwYZwlIaJbSoQ4ti4fpMlEVZTg2XZFGzlJXpQBYJBaQBbFAfpgk8cZfGwQJ5kifujQAMIAHL2ZRXqOXJTixQl7khp5qoaJporBaIOnsVOnEhgVy5hWZ4EWW0yGNOMtjNAAmolIE6ClxENc1FJKXmkLEE5cUOJM1KUUEDRBEEtDGDo7DlPs3kaNo1g2HUnqiGUECsI06DsNyDyCLQNT7QajB6h8ShgO8eJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 62c8d702a..6a6c4a5da 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -89,11 +89,14 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -101,6 +104,18 @@ a \code{teal_module} object. \description{ This module produces a patient profile timeline \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type plot using ADaM datasets. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{plot} (\code{ggplot2}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) library(dplyr) @@ -194,8 +209,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUENLQDCALIz3b0DIYEGCrDZbHQwQSJcjscENH7jWzNACaOgAvDpZKI4GkCiUKLCIA1icSfp9GrZ0RiFGB4PxJDoTjSdAA-HQAJgADLg4aTvuTKWjqbS4PTlp9mWyAIwAVm5vIa9mcrJ0Ut5NnWdyKpTS1Cg9Dg1FhYHGpEE-FYOmaUEtRGMOlNLFIOjtOm+opkCUsEBpch5RJJOh+TgAcij0ZioNjcfiKgqg-yKVSdDS6QymWAVQB2TnygOBhMC5Op0UMiWZ6W5vMFxWOdpsuWc9WgrXFEq6-WG42m82W622+1OOIu+3u-iejQkX3+gs-RqI5q2X4Y+dIpczwNz0OL5dNbdL8FBAC+QSUACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAjj0Q9C9Xre97AAQxotFMNI1DSLRtJBKZgF83y+gAukoQIwDed6iB0oE0oiDgolccE0s85xEXg8GrjuxFgAiTgAIo0RSnxqhR0G2J87JMRxADM3GfAALL656XhAmH3o+UByMA0HND8TFyUhYDIR06HiaIImAVhknSbJsFsQhik0ip+S4SatgEci5FQWApGvMJPrQOgHTlMUhINLkEa5BufBCCI2EYr5whiO5xJdGkADmaToNFXoUF+GjwFIcChSSeoGsswoAApxWQdi0El5QjHgvK5NA8ALFAujCjBLglfmxJlbAOLoRGsnyfVBaoCw8XldVlETJMkG8t1Gjxd+RCZfBdnWSN-hfvitARSUzoYqBABsuaTDUXKcttHJVpMfq8sCr7EPwEYECUl4EGIaTYiI6iiqlgZXTdYgRpoLC0PqIjftdMghbkwAyYZHXIchNk-M0TifAA8s007xg9cBPRdwrQ7DCPDQ1DTHbjOhVfsIJrQDt2iPdhqo+Q-AvSSb2AwFOhfYwP30H9DPk5JIN6XVEM2W0thOFgSn4zWOgo2jl1gU4Qsiw5BZi4GRMFTioiJIwq2YmTd2SzTdPEpzH0YizbMczrD7A6DtXGZDlELgeYBKwWeuitL0EO6L6obiSKsVRQ6Pa+9FOu7T8ZG0zpu-TiEfc9brR83b0H7qLPuBqH7sISnCuBs7jXq6r90a1rEeU49+vhxbn3fdH-3B3H7VKfz8Fzp7SMEw0Gdrcardrl7BN5x5Bf+8OpPB2X1PPZXwfV6ztex1bje21D3xtGGjuD8SXeYj3q-Z073u8lVjCGvErBF06l0WxPaMGw0Eez2bMcWw3hn6c3HtIsi7fi9vZlUd-A+A804NGPqfG0vRR5B0ZjfCuHdoHk0fvPF+i836JwFtuQBm9O5Uylt3ZOYYsGHwJosE+1Az4X01lfceoc74IONszGu7Nn711QYhZe9sv4-xrH-MCC4iHANKqIMhFCA7UJgbQ6ejMkHMLrozV+7DlJJyzoQ7hLtcE00zmvFEOcSTvGJPooIQRaD2nYOUfYUALDaGsDYOoAZRBlAgKwRo6B2BoFQA8QQtAajuIeNiRg2gYgQCPEoMAR5kJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index 9938b5547..9eb2f3fb4 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -86,11 +86,14 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_pp_therapy}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -98,7 +101,7 @@ a \code{teal_module} object. \description{ This module produces a patient profile therapy table and \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type plot using ADaM datasets. } -\section{Decorating \code{tm_g_pp_therapy}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators:: @@ -206,8 +209,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAwgCyyTqkMARpcAAeaVD8BDD1Tc0AygAyXT19g8P8otQ6AKQAfOsmtNTkjOwOUw4AQgBSAJLNG+U7LR0AJMdnV81BDQ-tjx2NU7bNWydfJfR5-AFAiag35OABygOBRlBjThCKUAF8gkoAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfVx+KJJOABHYCjALVmvJqvK+vLkAF0lCMxoTiaIutzef8HM0AJrXQU6XkvC7qvCavn-NF63kdKZOACKGuFtlaAEYrXybQAmB2NG0AZldNoALKKcXiIDKSWSoHJgMK2u1XZHeWKulKYEHRLF+XNKVVgOG+dMZrGJRAvl1cpmIx087E0KguuVijyIA1cjoALw6XK4CZ8IQiOUtzvCMR1hoNHppADmaXQaVKqjQHAmQ501Cg9DgaxbvNsJRnqFYgvnQ9y0Hgzf1Irw+4aqBYFFIR906+zAvP9YXOivGhvDKIa-12ree5fBdIiIekt1oUcSlIE9uQANgABjgmYaidBCkJ0FDULkdtAKHBJaEYVdoJKPECDENJRFXOB1DgfhB1fBoCGImQxBPTQWFoZcRAZJjSNJL4hUdS4sCcXMwCwi8hwokRqP4aCeUE4TRI+V9xJwhiYCpYhZJbRiSLIqSqPIWiJIYniWJbNjGA4+guN05i+MjASOmaJxWgAeWaUVsPohoDJkk8TXaFz3M8sAJNU+ixnKUYiL00RyMomS6Misyex0SzrNs1L2H4-UOkueFWi8kydD8oyArAfLCt5cLvNfMZ+CICjYvshLpKM5L6tS1j2M4uBuLinLHLyoK3LNYq1MkxLyofZyxpcMLJoi+qYFIRgoJ01K2sMmjOoXOzeJ6qy+oG+yho6Jz2nsWwJp80rppoiqOmumqlrq-aNKawQWt47akpKg7zPS3qbP6wGHIukbmjGhxbp8srHp0+S5pOP03oksZGCIQRyB+-SHuMybTLio7MrB7LcsCrA3IcWwFuW+iEe0kbqdphbaoxz7RGMRgAEc8fipm9qHcHSZO8HzvaS7oamAAxLBLTE97XyZp7RrlhXXvohmRZgURSH4VgBb+jqAe6iyQaywbKYNAEVThxmCYq8FVS1lTlfUihDeNoWzZJi3jtB07eMlgSUXhe2lZK1WH3D13Fu1-dlKCIJaGMHR2HKA4oAsbRrBsOoX1EMoIFYRp0HYStHkEWgairijGG0GIIHRJQwHRMUgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index 8d8931f2f..750524dff 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -61,11 +61,14 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_g_pp_vitals}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -77,7 +80,7 @@ This module produces a patient profile vitals \code{\link[ggplot2:ggplot]{ggplot This plot supports horizontal lines for the following 6 \code{PARAMCD} levels when they are present in \code{dataname}: \code{"SYSBP"}, \code{"DIABP"}, \code{"TEMP"}, \code{"RESP"}, \code{"OXYSAT"}. } -\section{Decorating \code{tm_g_pp_vitals}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -135,8 +138,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlQBq1Q1NLe2d-JqiSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vQbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5jF0DFNJluJs+tSdNQoPQ4NQSX8BqzqNM8BzqQV7rpsdCwX88VTOTpUCwKKQpQL-jVAWLFZyVRo1SciPyZWAHNUHAAhABSAElKvLxWVUP5jlk4LQ6VlSCSCOwAGwABiDtSKACYQ2GdJGo3IFUrlSxYKc-VklgQxDFRHy4Oo4PxKYmygR0zIxCTNCxaDyRCcy5nNjDqkU-gAFcpYcoAWQAwo6wPHndScyJ8-xNR2u32B8Oh3rqW0oG1zmmM1nR3nyIXhyWGxXsVXGDX6HXS+um2DW1qAJp-efFnSb8eaqp3sBzhNKqBV2JHtflqI2a5uORbFuegGVtWtZwPWF7sM217lAM5Q6g+xbPtur4oTqc7ikEZRBEEtDGDo7C5OQagaNo1g2CUiqiDkECsOU6DsIiAAkgi0EUnE5ow2iBLMShgDMzxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index adfd7b3e1..354447385 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -91,11 +91,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_abnormality}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -107,7 +110,7 @@ This module produces a table to summarize abnormality. Patients with the same abnormality at baseline as on the treatment visit can be excluded in accordance with GDSR specifications by using \code{exclude_base_abn}. } -\section{Decorating \code{tm_t_abnormality}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -181,8 +184,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index fbb89aefb..fa0d96a3b 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -85,11 +85,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_abnormality_by_worst_grade}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -97,7 +100,7 @@ a \code{teal_module} object. \description{ This module produces a table to summarize laboratory test results with highest grade post-baseline } -\section{Decorating \code{tm_t_abnormality_by_worst_grade}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -158,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lxrTU5IzsAISlAGoAkpU7ttPZUzoE7ApglQDCWE5OAHI79wDiFwUX-aWVTtVPLmByAIAXwCACsiNkogBrOCsUS5RI2ZL8ODGKDCUhRAj8WiiJrgyEwuHAaDweF5OQAXVcEAqNTqeWAwAudOqF0p1NpfUGyMSTJZ3PZnKUaFQdWy6XOEBKeR0AF4dHlcD0+EIRKJ5TpVcIxFKSiUGlFMVB6BAiIwYNx0qwovQbSlzaJMQBzZgovX6krUE1waiai7VE3mkLm1h2MSkHRYMQYjVpTI6AAStGdGQjOmebt0AAUiE6DP0oKJfdk4G8Fvq8qTdAqBQNy9LPToWDAopoWJqCBkIQQxFFiyJ1HB+B6m6duzIxJr24xaCaRFiJ734ayCqJBPRi5GFWcWVgALJvHR7-dXcoXQHKxtjgdwIf8f1gUoHi4VkpyK9j1AsWDYztLvtb3vUcmy7HspwVdtqEEOBF3AlduXeMBs2fUpT3PPBj2Q1DDwBT8xx0IDyAfHdzifapbCPC4bmzKiwB2Z5SgvN8dA-FiOn4I0iFCP0FQAMVKapvgrAJ33wpYVlUTVIn7OhlxAmSuknMjWToypSj4vi2Uwojh0fABNC98INOBuFk5S636OiAHl7nsWwtKPXSSKwwyAR6AIAloYwdHYbJVigCxtGsGwikbUQsggVhSnQdhRQAEkEWgCgS4tGG0fwlCBJQwCBSkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 48cadf2ca..33b7bd0bd 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -78,11 +78,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_ancova}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -101,7 +104,7 @@ expects that the analysis data has the following variables: observation per patient is expected for the analysis to be meaningful. } } -\section{Decorating \code{tm_t_ancova}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -182,8 +185,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyARVyikrLK6v4AR1ElAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+bWxdCHp5yWm8PkoWDA-IxlhsiDBUEU6KJSOwGpksABZHQAXh08MRDQyEOMmJ0TwAQogdAAFahQAhwehEJ64PE6YgwokEJHPcnZRiCADmOgAGoziWAAMLksXQ+jxDyWCBPIYZORMiAZTJi2wo1Fi7JEnFItUZHQEon-NE6EmM5ms2FYjnm9GZEWOnRixUNIZDEHoIrxaKGjJJIlJVUZPhCESiIkR4RiQPGkp+dZQcxETRQBPG7FQehwahm54AOTFAHkAGqZOy5kTWo3ZpLHXRY-5fOvZjJQTTbaLsmJjWmiPyifNwdRwfhZjsEfsyMREjPUQRwDazwfsAG5FL-csASVyu9sirDHYyI5E4-4hYA6k4nABpHQARh02UyAE0dAAOJ7M5Un7NQT8DNGD7AcxGHUdLynbMZ3A6MsRA2gaxXOC51mF4UgdZ40RdZ5NW1XU8MI7JFRVP9jXPMdyCvFscJ1UiwAo8j62NICCShNksXYyFbQAtjF2AlgwPQyCLxomDjTQwcFxYZD6BEVd4I3L4sM5MUAAkAHFiMrV4wDkFjTzPKCaMLTSdKY1j-wo4hNCE0D7TXCCqOgiiMmk+dELklClPQlSWjU0lMlyFw8FFXJ7EyLUnzw0LhQMozjNcsy6MirBosyWKrNPJLs1QFhYE2ETBzE6iJ0kjznIQnRF2XPz103bcwApFFMgYvDWoy1Fj3cnQUonQsADF7wPAwhuvK0co7PLjXicg1HWECSpc0yKr6zyaqQ3zNoCrcWU5EkQrC5r0sy7LTqcBLDP47MBtoiKopi39rJ0JVjXer0lFoQl2Hm1QaQ0bRrBsNIjVEOIIFYTJ0HYNBUAAEkEWgUnhhGR0YbRGCGfolDAfpziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index aaf102c18..697dcdaa2 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -105,11 +105,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_binary_outcome}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -127,7 +130,7 @@ or re-categorize response categories and arrange the display order. If response \item Reference arms are automatically combined if multiple arms selected as reference group. } } -\section{Decorating \code{tm_t_binary_outcome}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -216,8 +219,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSUwgqHk7PMlZQBqpdUAwjoAvDr8USTEUeOoUdRQ9HDU7KVbuzYzcxDrH6npGVc3d6tgHYZFhQdSqHRYMTCUgAegAYtl+NkAOYKMABD4vWZrYy0ajkRjsAAKpSwpQAsjtyjoAISHNEAeQ2WAAkgA5DZonQAH02LMqLNsB3pYDhDOq1QZAHUdA4iWiAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoNCogQkaImmqNdrdcBoPA9Xk5ABdVwQCo1Op5YDANHe6pot0er19AZGxL+wMRkNhpQsGDnE0WogwVB1OiiUird5lLCU6mHbO5xgmg46QOFnQAITRBWIGcrBABpPJZQbVbA7Z0OwVclwPV7JdoOfY5eMlbRtcQOiJ1wIcHoRC7Tczh1bgbn5UYgmROgAGl20Ts5zt0-RsiFLIF0QEAmhM8lsuk8yU8pW8kP83whCIJkOP9hDEd91gaKJSCiK9oDYE4libOAwI+a5bmoacwEhURUBIY1xgbNYP0SJ1dBFCp+gI-MPlQEFGn4FsMnVJdRCiUQ7jgMF+GQz4CEYmQxErTRuEEOALT45iHgjAo0RJMkixPMBZIpBUf0+dY2JETiMNrJxKn6IkWTRQidEHYykyiITGAYpixFY9jOO4j5eJswCdEs2gbhEMSXMk-pGzbQsFPbKkgp2WxgvKAdVLUnQNI48h6LIwKwGM0yqPWczJzTZtDky1N12ij4c2YUILJYaz+JYuKHOMkpnMqwSWA8+gvPqiTyMqfy0UqJxjzwbta3JLAAGksAAJgUskdhce9Cs+aqEowqaZtSuaPxNM18RTbCSDY1zS0c9YdL0yoDMrA7avWC4WwBC8MxEcgITEHCIDYnR2B2LBFH6mSWA0bgnp217dGJL6VMukoRG0ahXK3dKYu7O6fDgR6sJet6PrBn7FL+jz0LR3aQaJLG1pi7rQha3RyjHOAoAxypym+6TFMYIhkXLURRC0KmabponGaM+HPgxGK0oR9kNicIVR3HCGdGuzcAUqCmRB0am2L596GaZ7s2SIUgdCcITqEETyQbZJxvrFhGdChu5YcOtTT3TZHUeewn3s+nW0T1g2jeEs33ot72ccYf78fd4H3uJpm5ZKGTWfZsQue0NXeYxokBex5XA-V2n6azuWRbU621KZVkOXOsdczlhWdC3Fm2Y5lOeY1jOs+ZnPKbTtuQe18GhZQuBoYdhOm+T7me-z-mQ671W8819h++x33DeN03u-YYOFUu4v1j3kWHyUWgp3YbICVBDRtGsGwinzUQsggVhSnQdgnwAEkEWgCg-tjGG0fwShFRKDAIqN0QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index 84e31e892..f8ff94657 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -81,11 +81,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_coxreg}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -120,7 +123,7 @@ test will be substituted in these cases. \item Multi-variable is the default choice for backward compatibility. } } -\section{Decorating \code{tm_t_coxreg}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -263,13 +266,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgGK1Go0jpwAB6wqCLungC80TGxMRF2ABa6waEiOvRw1EQA7jq0ohlQonD8OiQ6pMk6gqKC3DpoqIxEUASJ+RCaRNSatBAA5joEjHBQGhVExglQOswQ-EQwOgDCACIAkgDKKzr848VwAVALlckQc2bKQ1W6TXSyExAYrtCMMAD6o8YfxDCo+iMdH87CUOh0AEEVrYIVgALLrHSRHTA0igi7guZwYxInQKMCwuE6ABC+NwYMxfwByIIoIJ8MhZLx9KJK3xigxcnJGMJuNR6MxWJxyPxxMQOgACtQ2nB6EQyRTwVTcbT8RDxWtGIIhgANJn4lbilZLej9caWCDsikcjlKfakWaGSpjagfe1Qax2g6AnQ5WhVfrsd24HQgCkQtZbAAyPtIMAIH2CHyg-FE1HDa1sticsfjiaCyf4pHISgAvhyAFZEfofADWcFYoiDBxsTv42KgwlIv34BQTVZr9cbwGg8Cb7rkAF1XhHoz73cBgGrI1H8ZPpxAI1mc22Dovl9u1xulE0ff1-QK9t7kcGKXwhCJCsj78IxJfwXGPt3iEFRgN35i0qZNQuIGkQQQ6FgcADC8eCKpi7qjroIoEpm2YKhigosJ8mgsCqiTVgQYgfCUIjqKU7Cqiy+osusNFQjC8J0WAXLMoS7LcoK4LYV82K-Es1KNO8vE-FSnFcagLCwAQZQ0gRMjEaRcDkfwAGCrh1CCHAvzyURTZbtmIb4hKsIQgiaw0SZWBmRxzIAPJbPi8Hglyzk6P4zAOh8uGMPhhGKVkynkKpblKnSKx2Q4ABy9gAJo0Vs9gQjCACMCVJTCABMtn4ol1mpU5mGYq5RVKkQmjeXhcn+aIJGBSpamUnSEIAOIuHgzLEnCWAANJYGlHWit1fXZYNYBYE4LUbHZUUDaxaptYVXE6CVy0wF2WgsLQ4zIXYjguEVHIuUoHK0Di7D9OQagaNo1g2GGGKiIk-SsBC6DsE0AAkgi0CGX0lIw2iMBypZKGApaTkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgMpxiEfjpwAB6wqCLungC80TGxsRF2ABa0ojoa8Lg6UDqirGSJcBoEOqhQtIw6RMY6AIIAIra2TgD09V4AMjr8UKTZKSZQTDI9cAHGRBUAwkRBOoxwAObzoqKWEAkA7gXzabRiWf4lmtwA+vCkiQI6MD3kjBhKdEwsHPxhrIyK6-492YZpcFO3V61iUwL+Rg2tAutAg7HBmRASh0tQaTX0RnBGGMzHg7GRKO8tgcdQAmgBJOo6SI6BRgdoOAByAHE6bgCSiagA1GqdGkEdgAFkyAGZMgBGCWZABMMtFUp00rk7IghJ0k0ZXiw1J0AslOn1+oADArjZkTTojcqObUsABZSZUmnGKDqCb41Vq3XsC2G03mgOW83Wz1q6iDODUVL8-FgGr22ps2lxhMAITpXzVIbVXicAA0dS63YwPV7vRaK4G-QbTdmveH6JHo966QAxJN0u0Zm11lHkzW2Quu0jugV0moduOT9N4ZMzzLj6eTiezunz5MruS9nKkRiwhaiGqiVvDibN1u83MEzOoxpODFzeiw-jsep3zJvpoftFOb93m+fve-xQKIJwaPQ9AiK+P43qIhQYHBozsOKAE-gAJP2XiDv8oihFBgEYQOqF3mhNTMkBRi4TAYRwOwcEAI7sAArJkADsLE6Exyo5LQABeug0hAjBEBs0H-pk8xhK6Al2I4TjEU0aEOF4DipgAUpSD6lKI5CxqIgj0Em4qIEJIliU03EEZhtiZHBqA6nSBjdp6BEAArxjUdoPm5HkOlS-x0gA8l4dIEm0nQ4QZcGkKWhKASqapwSI6g6mOYDKapGl1JOWEkhS2Wrimfk5fmk7Wcu5HOSiXwAL5fEoABWRCwicADWcCsKI8K-DY-z8HALrCKQJwEPwKQECcTUte1nXANA8BdeCcgALquBA4UPuCwDAOOdQdHSy2retP6bb8227XeB1HQkAAGXDUDdWToHQsgaCQCQGJ9X3fT9TkQB4OiMkQ5BpIkPSg7o2rEP1gRBKgEzkAE9CsDoN1eJcGw6Nq0z9Y9-BEPsEDAzosKSIIMMXLo4IJKg8wGLTRAEGIqwQAsGA6KSRCCDoULUNQOgQHAoxpEQurzCMENdL80VZKkgxENoOiNuM8wJIwZjKAskvBPDjCI1juoCHADzfCwMAnPMxgjUQ1EPnQOmvvajo6vbMWWw5RWJrOxC2zG45phmW5rWg9n-LC0KxeCOoIgSfBCCIzZx8IYixSipDm8NxBBPMCyp4SDaRh70yzFgiwPHgNoouC80yRdTRspXWSMObxwVPylwyGIJxJb4iPsGl8bFWA3H+0P24ombFsDdbvtN+blsz6gCVeqUuKjalHdM6BPfqEhjcosc1CCHAI2byn8XJu5WCeY6k5X55GYLmAwWhaGhLjzuzC9Ccrcb81W-d0jL3JCaVyrD0yIyBw7R2gf2IJoH+LA-6d23kA3eL40q5jzBVFw4DkyYMfo3GAQ0tAsFoBLGk9hnA9mvEoL4tBqjsFhHcYcWhaJbh0EiT0ohkgQFYDUdA7AQ5oUELQTIQi4KMG0J8JQNUlBgBqstIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index 08a0a9768..dd0cf908e 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -90,11 +90,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_events}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -102,7 +105,7 @@ a \code{teal_module} object. \description{ This module produces a table of events by term. } -\section{Decorating \code{tm_t_events}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -158,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyoZHxyeBoeCmkuQBdVwgcgqKk4GAFMEv8+5Ozi6aWudDb+5zm59elGhUEV4tF2A0kjoALw6JK4Bp8IQiUTQnSI4RicEQDIZEp+FZwbRkKYNHE6ahQehwaion78bSMUS6JxE0h2Skie7w7Fk2GhA66GE-d5c0k4lgwPyaFioggxYYEMR+JkidRwfjsAjgh5YACyXJ0Pz1AGFsvc5CkjfqwBaxRlqNQ2TC5QqlSq4GqNXacS6ZGJUdLGLQOXBVvK-VNfk4Ulqfk5bE49Qa49knMaAPJmm22nm8nTuz2y7XNVMZrP9PM5vMxR2y8OK0TK6ke8he3O830NgMsYP0ERh12R94x4tOABCmdyAE1csmHk5cunjeaq3n883C0L5xO8jP7t7V2Savx8URPDSYfZnNy84SKCtSKxUILDSh6aomTo72R9+2Kzp+n6WhjB0dh4nINQNG0awbDSHlRDiCBWEydB2CBAASQRaBSDCmUYBl+h6JQwB6E4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index 158dcdced..a4b5d9972 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -137,8 +137,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMoAMmE6pDAEkXAAHpFQ-KLUhToY1PTUoq1BuknEUdRQ9HD9nPWNLW1QcAFFZcVONXUNzYOLOgCkAHx7XUUwgiHkkbTG7LTiBOksUOqqeVDixs+kRP46AMQAch0kx0BFUISyOiIxh0j00WQA5iYvj9RF1RpFxpNpqsnDYkj0+gMFnAlABfAIAKyIWUiAGs4KxRDlglB8UZ+HBPsJSJECPw7g1qbSGUzgNB4MyEnIALquCBlKo1BLAYAKMCKyrqmVyhWlNbK1mq9W47W6pRoVA1LJpdhdBI6AC8OlyXT4QhEoidOndwjEdogRSKdUivLg2jIA3orEiCOYnIDQaDWKm3pN-G0jFEuicEdIXujOgA4vHdLYJiJ1bgTkGEhLdM6TfqXHga0UWDBIpoWN6HjSwQNsyIXvx2AQ7RqsABZKs6E3TgDCpXVcjy85nYFXbZ01GopF76X7YkiQ7gI8TSaDfZkYm93cYtArcD5h5vzNxeXHJqctic09n36lE4C4APLLpuW6BpeRSniOvYTmsQGgeByyXpB0HpHuB5HoOUxnuQo7bkU14DneLCPn0z4kf6H6gghTgAEJgeUACa5QARqTjlCBC4ruh0E6LBBFppxTEVGx6rbvxSZxm0Dagq+A4nnh55EQpOFkQ+T4vjh7C0V+nG2CBAAaRZYBxazlE4ABqfHVlB0FCXA-AiWsRmmeZYBSTWqEBAE1w6LcKhqBo2jWDYBRQaImQQKwxToOwloACSCLQbzoEl2aMJmARkkoYBkjKQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index df2907006..4594e2750 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -82,11 +82,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_events_patyear}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -94,7 +97,7 @@ a \code{teal_module} object. \description{ This module produces a table of event rates adjusted for patient-years. } -\section{Decorating \code{tm_t_events_patyear}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -189,13 +192,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6e4YHQAITpMh0ThasB8cBNaFQdWy6SuoJ0eRpeVwPT4QhE1JReeEYjTYPqMCiSvZlLhqBCrDgLDL5Z01Cg9Dg1Bp3x0WBCulK-D5glE5H4JiIjB0WxCtEpBgAmk3GNTSqQ+7DhXYOyInoSSnldboUZ6Xfv0+WWJXNCwaQQMoKCGIoqIu3B1HB+C3WxdHzIxBpW9GFoXc4GVf9nwlM1qgKS4XiwfZPgQo5ygBOQc0vVs3xET8J1PG5EOOa4Dx0DDSI6fgqyIUJuxRexnEw38azIOFgPvSCXxwj9xx-VsHyfQCUWA0D6BECDBOg507meSAKVYgEmN-HRuLwns5JYqkL2UkxaBaL8aQYlwsJKciTJ0etmEafC-0k193zwvjywEgDCx0W9qEEcCXKg9gKi9WSdj2VDkLAIKDkU0iSlU8d1K9R4wFIgJy2SsilACWhjB0GEVDUDRtGsGwinTUQsggVhSnQdhEwAEkEWgClqt9GG0fweSUMBuUNIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6N4YHROFqwHy6NKZepQegiHSiHzpHQkIO0xgwKKaFg6HOMWhxkSiE1oVB1bLpK6gnR5Gl5XA9PhCYs05vCMTVsH1LNK9mUuGoEKsOAsLvdnTUONwag0746LAhXSlfh8wSicj8ExERg6LYhWiUgwATVHjGppVIC9hwrsRbgT0JJTyut0KM9LsfNe7LCz+ZpBAZIKBBiFEogznA6hwPw44ThcQEyGINL5oW8ZwMqCEgRKZrVAUlwvFg+yfARRzlMRYCVE4AAaAJyI234TuBIhQVuKL4TchHkZRNFgAEcF0U+tL8PwUSkEQoSzii9jOPRcH9mQcL-mxmGgUxkGbrBE6AcBSEoih94YTp2HOnczyQBSCkArJcGJhBLFzuZ8lUl+NkmLQLTQTS0kuAxJQCb5OhDswjSsfBRlgXZGmCSU2mIdSencII6GxVh7AVF6Zk7HspHkVlBxWdFtnMZuDleo8YCCXxYJVQEAS0MYOgwioagaNo1g2EUNaiFkECsKU6DsGWAAkgi0AUw3gYw2j+DyShgNyhpAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index 47215d489..8c42f4c2c 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -107,11 +107,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_events_summary}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -119,7 +122,7 @@ a \code{teal_module} object. \description{ This module produces an adverse events summary table. } -\section{Decorating \code{tm_t_events_summary}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -214,8 +217,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otQ6AKQAfD3FJTowgqHk7EPDOuW2ABIAYrUAvDqyonBRKRkUkxDT0wCEtOLQ7LNzszYAfjoKYACa97hTB-bOOrf33-sHNv09VLpDJRahQehwaiTMCVQT0ABWcHUMzgIQyOgWYIA5vcAtM8WVyqUnHUGk1Wu1gnBXL8MB1+M1tGQosZsaI6qZzBorLEbEVfiVYnUhQDXiVRuM4HsDsNbABZAAKSyilScWB0q2JqvVy1W9yeeDFssVyqwThWZTV5o1esezyNJXlSuqUQA4lgAKway22ADyAA13Ta7mAPfaBW9FSq5QBFAAMAEZvcdTlB2JVY4mAHKlOVyF4R6ZO6PxgBMyZOGDOGbLObzBZljqjAGF40nVimq2nW9ncwT8a9iNRBDAIKDwZD2ck6KJSNLI86VWrvfdKqpLIJ2cTwzKnabrbasJCQnB+Jadwvle6vbbXcx+LovdvDYW7FGa4nvVAxLRxxCobEwDAKumYJnW9wALoQQUgHATCoGVM2kEQfmRrFh+5arN+oi-mC-7Qg8GAAJzEaRREAPQAFpkWRlqVAAkriDYLlEPbtjo2G4ROAEhEB9xseBYBQf2OgiUOf6TrkIRyMA0DwKI7BDiOY54ZOcgQXUUDiAQGQsFA6iqIpRDDqOEnUKIImxEMAC+NIlAAxAA5DoroUKoITZFiOibqoBgPsY2SnjocBMqQJhshgQwVMSdTRSSAI6HS-AMiFFCkCybLxIEtLfu0EDRJoLBTkYcliOwcUybOLCkKIADqwLsKVCkVQU9x7i6uIQUMdI-lEhWMMVOhNeVRJOJVoSMDV9WZI1sBlS1IbFp1SjWQE8JENkUQANZwKwCl5DYyT+VAwjpQQ-AnE062bTte2yXN+2JOpNJoKgdTZOk855N6eTMXwQgiOyqz-cIZWvA0UTpalZCiFEogjjAnjztMqndLapT8NoA26E4oXsrCMCI2wF7THkpUrmAcUk8MLAwH1LDejpG0EGIcOQki5D8MjBxMzIYjev1tDgiIUS8yzCn3BUNTPGs0KlFgcoy5LCvNuUuKoa+JQbCIBlnujCs-DKGsyqyUBYvTjB5WjawZMzrPaxzp7c9MYv86sgvC5srsS5To0y3kfFgD1VsW6IyHG42Du6z9iSB8HUD5aHyHAAm0EOjoO1wKgUREIwD6MN67xOMxJu0C0QWrAspTVKqRoR9Mpvm-17Q-oztt87DUec87wzewLLBC-QIve3Lft4DoAdwT1OFJ0JKElwcXcVxPsdT5xs9QSnaeaxncBZzneeqIXjjF+nAXl3rGLV7Xr71zTyWQ0QoTW0XrwEgEAS0MYOjsNk5BqBobQ1g+RDFEFkCArBSjoHYK9AAJIIWgBQ4EbEYFjAItkIBgGshBIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 7aec2d4a8..6c6f7f5b3 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVOABp1DU2t7fytrhAlonCkGDNw-OwAjAUA1tn8OgC8OgpgALKqMxAQcAa2aaLkjPsBJRjUUPRw1KJ1xNFPL2-sFQMFYy0ajUHY6ABipWqlSc916Azq-0GAFIAHzInolfi0a7ZdTsByVBwAIQAUgBJcoFDBrOBwVDtEFg+zOGxojFTEo6GCCULkdiYrkABVKWFKBwAwuUwftbOUHFhyvtcIKSiKxQcZWAAPLaZhMoTMDQkHS5KCsUSKPCqsoANShYNEsB8cHYLUdcAAjisCgAmAAM-rkBVEtAAXrpdjlgzpGPSngRI3ZHLCVZyuXaoQ4teVzaJ9oK2ejBfRNlFGEQUqI-n1+nDPlFvq9q0ibMlHs9m0oAL4BABWRGyUVpFrNoTbRnGxigwlIUQI2NETQHQ5HomA0Hg1bycgAupM0Kg6tl0gLOXkwXk0yU+EIRO9drfhGIzxmGlE561UERRII46+Mx0JtQV2fZyj-EJLCmIhjB0JwWm-X84zsZ4RGVG08k3JN9iRdD0y5VAWFgBcwQIDJB0TUQohmER1EWADAJ0MiKLEMFNG4QQ4HnciZBfPJgGAHDa32XddwKfZ1XFKVlT2MBJIOO5r0YnQaLgOitlAsA5QVJUwBtYMbQbehWCidjGFInjKOo141PIJYbRKZjeIfHQzNoVCuKcyixygAShIGESxJUwR6BmUhSIFMAYX6GScKwBSwDkAz8IzVT1K1aKCxSnRksYisUiiYzTJYCyWKotK7IYwCvNY3Y3I87iyp8vywFwsBRJDEKwoi-YxQlFw8FkrAnAAcXJbUADllliqL7FKWxSmmwb9kyxLcuUirFi1PqBv0pSM0IxhZHC3YavKmz1KqjMzrYjjPMsvjEhatqOtk9UJXm31FIclSLrsnNGEEABzMossY9aMw6fgPyIUIQIhKEYULHp1qBagbjBSJqLobysa6XjIoqGoZsqUpwXBaoZM2jTZIATTuAIAloWD2GyG4oAsbRrBsIpOVELIIFYUp0HYQ8ABJBFoApxZmRg9QCbslDAbtdyAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 41a8e2bad..4978fb7a8 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -131,8 +131,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 42ac5ca44..27e43c5da 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -74,11 +74,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_mult_events}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -86,18 +89,18 @@ a \code{teal_module} object. \description{ This module produces a table of multiple events by term. } -\details{ +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: \itemize{ -\item Although this function just returns \code{NULL} it has two uses, for -the teal module users it provides a documentation of arguments that are -commonly and consistently used in the framework. For the developer it adds a -single reference point to import the \code{roxygen} argument description with: -\verb{@inheritParams module_arguments} -\item Parameters with identical descriptions & input types to those in the Standard Template Arguments section are -excluded to reduce duplication as each module function inherits parameters from its corresponding template -function. +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) } + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. } + \examples{ data <- teal_data() data <- within(data, { @@ -145,8 +148,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAYQBZIpKyyur+AhglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdJRreyenRIoJ2BTBc2wdsgE0ASWznlOeHLkHAAhABSPz+OmemVe2VsLUhz1auScAEVEWBMrYmgBGDFYpoAJnx2IAzCSmgAWZ5DPYQW4zOaeOTAaHNBF4KGY9nPc5Fa4wBmiVwQHIFIpJYCs7kFXmXUXsiWhKVs1pykVoVBFeLRJ4QDJJHQAXh0SVwDT4QhE9xNluEYj1GQyJT86xga3K2jIswaTp01Cg9Dg1GNXKaJGIMGiUDIOhacC2sg0JHu9FYcYTMg8ln1TQDonuMf4OgACoxlqpy8WAHKwOB-X1OpLHXQm1Uc836v06FiCzQsUMEGJjAhiPyiYNwdQJ9iPaFYDtczILpq-MByf6Yhc0zvdnQTgCOfn7jEHw5kY4nImn-CeYGRaMhV6n5GLbfvLRR6M5xloFQTob2M4G6NhkMTUKQZ4jpek43o6e46EO0E2joJ60IGIgbOeo6zDkrQpHOmLYninLQtixKkURTTkpRBLUuuIFdnuz43oOd4EiRm4EhRXFkhS9FDHujF7tQEFQReojjrBr7wXuSESaGaEYXAWHIeweEtARd6tNkThNAA8mucjCQhLGvmxSItLpBlGaBOgmX6NT8K6RCeCGJpAU4u7dnAXrrKQrCoK2XKkOWHjwGQzyNoJ9lKEMtDGDo7DxOQagaNo1g2GkXaiHEECsJk6DsJqAAkgi0CkpUTow2iMEM-RKGA-TnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 9138d5e51..7cc0fe4bc 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -67,8 +67,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWolAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyto7u3uBoeD6kuQBdVwgcgqKk4GAFMF38442tiCU0VCL46PZ0nSSdAF5n0NwnviERUTedD9hGJHhAMhkSn4Jug-PQoKIZH54sYiKDweDqFB6HBqADjgAheEyHQASQgKOOXzB6I+nhWunex1OlKe6NQHloFAmxFxjLADlyDnxACkSdkWdT0ZoWP93gQYu0CGI-KIcXB1HB+GiaRl5YqxADpYxaFiRJMFTIQac5FSdRlVSINfwAQRHicsABZSk6JkAcRceB9YFyTgAGt7jgBhADyDgAcvYAJoRsBYTKRgMpY5OaO5XK2WzHZo64vg0vNZq0Yw6djxchqDTaaw2NLU0RxCCsTLodg3AAkgloKX7qsY2kYzQaSjADQ2QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index f4d00026c..86f271b96 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -119,8 +119,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NboPzUKD0IjMUgUjgNPE6Un0ODUdGPABq0W4okeiNxdPhoSOujhf0+3NpeNQHloFDWxGZwrADlyDmaACkAJLZMW8umS5ilfjoggxUYEMR+URMuDqOD8HF8vHG01idGaFi0MkidYmmTY-7NFKPAAKmSwmQAsgBhLVgOQ8h0ZS0iG2GhUhsNRmPijJx7M6PWwI0+s2iC1WlP2hNO31ouFuxge+he6sl9j+wNgdMRx65nV8pPW8ipnTB0PdsB53sOjTwVCjMi1nQt80Dit5jLLxf1xvN4t+z4dnIATR78YTq6HLKe2RPE77ObPdKgEAbEGHm7LyaHlYdm9d7s9OBvWdGZ2xHJ4ADksHVCCYync9y0vBVMigmCs3vHR4KfN1-HrIsQM-QdbR-Pk-zrACmyAzc2wPcDMlZTIXljR9+0Q20r3oxjHknFiMigHDBD8PC4Q-C9iPXJc9y3CjdxAmiWkPBj8gcU8JLE4c-iUlS7wdQY6T0zClEGWhjB0dh4nINQNG0awbDSXlRDiCBWEydB2BBAASQRaBSTzLUYbRGEGPolDAPoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 0de76f252..424ce6fbb 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -89,8 +89,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 2992351ab..6e117e107 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -102,8 +102,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMIAsmE6pDAEkXAAHpFQ-AQwhSWlAMoAMjV1Dc2t-KLUOgCkAHyTJrTU5IzsDj0OAEIAUgCSpVNZc2VVACSrGzulAUVHlcdVxT22pbbVSTfHD08vXe-3TgByz1eRnexQBQKUAF8AgArIhZSIAazgrFEOWCUBsSX4cGMUGEpEiBH4tFEDThCORqOA0HgaIScgAuko2h0kSjRDUCOwFGBHg5SgBNXa8vK8s5bEV4HS8z4Q6W8qo9JwARVFMrAxVs5QAjOrZdqAEz6zXagDMJq15QALLzYfCIOzUeiQnJgLKKpVLZ7eYyaqyYE7RK4IGV+jUEsB3Zren1fczQ56Ixiox6qvGQ2hUDUsmkeRAigkdABeHS5Lp8IQiTmlyvCMT5opFOqRQnoSKoRiWRiReAk2QaKxdJs6ahQehwCal3kABS7REYOkqcH7wUsEFFw6bCVpumnMfTeC3RVQLAopF3JY1YbjR4LI50p4056JRCnGolF0395Ha8Yk6vAh0nhAgxEiURJzgdQV0bB8iiAkCxCvTQWFoccRCJYCZAbG4xVNbYsCcW85FwY8mwgkRoP4K8DQIojeTIkiyI6HFiGo0sEOw0RwMgqjYLgzjQJrHQUK7dC4EwxC0VwjUqlKJxygAeVKO1SJ-B8KKg8h2Nkyp5KUlSwEYtSBJgLJ2kArChJ4yjtP4h9BKQ0tRLQ+gMMc6TPTwqptkBcpVLIopNKomiwB8vyGPUoomKinQOlEUh+FYSypJsrSYMCuKrKckTUPEySuPYGTZUeIUAtioLeO00K5UFSK4KuJtGoCAJaGMHR2CyJYoAsbRrBsAp71ETIIFYYp0HYLNjkEWg8imiDGG0fwoSUMBIUZIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 93d7ea80c..27026c12b 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -145,8 +145,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwHF4vHUKD0ODUdGPXIk0g6clZKl2BkiR6I3G0+GhI66OF-T4Chq0lgwPyaFjoggxMYEMR+URMuDqOD8GnCjKKxi0PlwdaqmTY54pUSCehajlwgiQp5YACyAp0fw9AGFso85HJBYaMlqRLr+Cy3Z6wDK8cH4xlUCxYBtlZb1aJNdrIwbDYrqIJzSq1dbPilHgAFTJYTLu-2BkOh8M68hRiVgAASWEeSZ0iaFtM0W2iCqVzszGtbef7Ru4xYtZdm-2alaeADUAJK5Le2JtznQz9vRqsAeVytgMACFMrknPktwA5Jw6d3Prfuhyx-uDw1QQtx0YDNlxzCN23zYVjVNegRCXK0VwrI97UdaNMifLBnwDMA-xbXMT07dDMKfbDm0NYxaAqPV0XsZxfzIvF6CgcN4nNY0QIQsC2z1SDhxYGC4NLBD2FXW0ULgJ1vTAa8MKwg8h2FY9qM7GTiNIw8KKojs7EcFwFIyXDaUELUn0yaNaGWCBWD7BShgMpQhgsnR2Hicg1A0bRrBsNIhWJeJWEydB2BBAASQRaBSUKtUYbRGCGfolDAfoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index 4672fa128..aa87f47fb 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -145,8 +145,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwPzkvwRIiMUSkHF4vHUKD0ODUdGPXIk0g6clZKl2DkiR6I3Gs+GhI66OF-T4ShqsljUzQsdEEGJjAhiPyiLlwdRwfgs6UZDWMWhiuDrHUybHPFKiQT0Q0CuEESFPLAAWQlOj+-oAwtlHnI5JKLRlDSITfweb6A2AVXio2mMqgWLANlqHXrRAajQnzRaNdRBHbtbqnZ8Uo8AAqZLCZP1hiPRmNx43kRMKsBOEPNACSADlbI3HpmdBmpaz6Yy1sZ2T0-Fb87Wiz3SzPLSwbfQRPat+x-s0Ut7HgB1ADyWFyAAYAEwAMReeCDYDvD8fAEZ3wjOcYx0Hc+yTH8nzfD8Z2A6VFyZPwVygHpN0dbcSz7MtpQrKsT3Qs96y-SCX0AsA4ItMDTSTABNZV52lYxaAqai4XsZxYK7VUK3XTUvQLfUqLNPcdCtQ9jxrAjz0vH1MgANUyfIQ0DP4xywcdw3IijpSEpN5MU5TUwYjJtIyegoDjeI7Q3fit2LeMsJEsTbXwwtCJaGTHgAIUyXIhxUsAvLUjSgK4nTMNYr8fL8wzOJnQRDTHTIk1oZYIFYacGKGEylCGVKdHYeJyDUDRtGsGw0ilYl4lYTJ0HYEEABJBFoFImsNRhtEYIZ+iUMB+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index 0af0b42f4..de64a0e34 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0Vh+ADmzEWOLxeOoUHocGo6MeAHEabp8kyiMxSHzWFl6BA+TBuNEhbYmSJHojcfT4aEjro4X9PnKGvSWDA-JoWOiCDFRgQxH5RCy4Oo4Pw6YqMkaTWJ0frGLQZXB1saZNjnilRIJ6BbSIbIU8sABZOU6P6RgDC2Uecjk8vtGQtImt-DZ4ajYC1eJTBYyqBYsA2hu9ptE5stWbt9sdPrRcP11EEnqb1fY-2aKUeAAVMlhMhGE9HB8PR0nU2mM1byNm1U98rZHsWdEWFfSInzRGtjIzKXqDXCu2b5-WNw6q87Wyx3fQRF6nTNe-7A8HQ48AOrsrD5AA8gAagAYi8eAxmAf4AYB4ETtB-4ABIAJJgRB-aIVgqHwWAyazval6Lt+WFAehSYblu9q7ow+5+IeUDHvEmyyAKjCVq+taZouDaKm2HYvs2PafJhMFkbhVFznWxHLgAmtGxi0BUNrovYziUQReJQBA-gChU1I1J6rocc2XELjavH0ueLY6K6j7PtZwktB+QZwCGZ5hpktiAQAGv+SaSYR0kqR5fzeX5WAzteJhKSFdiOC426FppGT0FAFqEkQ+lcie7FnreNZERZ0XWS6D4eoJ3bvjoAaue5OgEGGzThf5eGBYqRVLg1TUtZFeEpXiinKV1amJfa7UZDU-CZZ4rJwqBmT5LkY2Fg0kmKdQ5B5cUcDcOadDdr4+0+p5eQYVBuSZKBuH+sFXWPPJbVKIMtDGDo7DxFtUAWNo1g2GkCrEvErCZOg7AggAJIItApJDFqMNojCDH0ShgH0ZxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index cd211d8ed..843bb2d05 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -144,8 +144,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zhXCAyMaHhRP3ooUQBrOFJRIoBzRjhUdgUwAD12XIBZAEUAHwBhLbkMACoAOUyNgBJllIGxdhzmuRTNbkFdAF47RydFXp1+rAxH5RMRUGJZvNFssVpstidcntrngdHdRA8mr8Xm9Pt9nH8GhIhiNxpNpuECDEiDJgaI4CJ1HB+Et-hlKdSCBCvq9GLQoPQRH52TT0Y8nClRIJ6HTSDovoDBsNRhMps8Ghk6QzyPw5QC0UrSVMGgT-kSQWCIRSqSKQfS4IzmeqdMLOdNuSw+QK4ELra6Mc0JVKZbqFbSLaI1aydJr7dqQ-rQURwaJcE7jLQKkzdfZnMalABfP4AK2pED8E1Y6KSNnC-DgxigwlIQv4tFBfhL8XLcErwDRiVCcgAuj00KgivFoiyMkldUlU-8+EIRG6dEvhPcnSU-M3RDAAI7TjLH6j8+m65aZfjaRh0nRObRkab0Vg6OF2fkiG5OmehO4XsAxW-KMMhYGA-B5XUXVpO0HSPY9j2g1ceU9QUkIHTxgGAS88nyZYhyHQNpUmKClkArANhuHRllyJwAA1ljkSMEIQmMHQAzIKOWH8dGYlian4HciE8ahdQAMUyfJaIXFidBJFVVySLDljNeSyXwwieMTZM51CZSwDNbSxA0mSWOoahZS+JDbS1Jl4JYpDdRQz9vXQpTsMAzETOjIMSKssjmmyJw9gAeWyRi+Nkti4y+S8nCC0LwrAHi-gQ1LeKUP5aGMHR2Hicg1A0bRrBsNJ-lEOIIFYTJ0HYMdLkEWgUnqulGBvP58yUMB8yHIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index e0a427b8c..d9c1a080e 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -125,8 +125,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGIdABUZxULKBokOkTGOqQAFrrkoqQ6sqK6RoIJOgAGTgDyAMoAIgCaqTpQEPxpOQDCWVhOAIJZhZostFD0IqJhRDr8cHwQMczkOjC0oqK0EADmXQFQGEr8M-pGXNQA+gukUNbzi4Y6AO60EePsG1C4OiBKOjo1OVkAMkthMASrcAAeq1D8otTXt3uDwAJJlcnlgABGAC6zwAcjVVuNyBNVKslABfRQQABWRHGqwA1nBWKJTjMbHtusYoMJSKsCPwRm88QTiaTgNB4GSznJoa4IHdHs8zsBgAowEKHhLofyIEo0KhnuMjuwAWcdABeaabXAAvhCNpaoYCYRiNUQG43UgwVb00SCGAwFgcAFWnTUFpwajGiU5HpECbMVDhGR2FoiCV6y3unXFWC6bUSqVRt1Wli2xqMY0EcL4ghiVYJETqOD8dgENWSrAAWSjOmTtfKOQlcgujbrYDbaZuP34dqImx92vszmjsZ0DqdTQAXnBVln2trc-nC8W4KXyz2rZWJVknAANesSrA1couPANsAAIRrWAA0lgAEzHsBg-KvipVWpZV81ADiF7djGE67mA+5HpeJ5nkB27AROyRwAivpgLQNIQKwEpptiNzYtiaE6OwyKqFAFjaNYNhXDGoihhhNToOwirAoItAXExCSMNojDYhiShgBi0JAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index 91173fea1..de6b90271 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -156,8 +156,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiQQwGAsVh+egcBp4nTUKD0ODUdGPXIkslsHRUnRYIgRHQAcUYREEqDRtgZIkeiNxtPhoSOujhf0+0ppeJYMD8mhY6IIMVGBDEflETLg6jg-Bxcrx+sNYnROsYtElcHWBpk2OeKQIkKeWAAstKdH9AwBhbKPORyGU2jKmkQW-gs-1BsDqjIxjM6Gr8QlETzMuH2ZyxuVU7UsNFwu2e0Qms1J61x2tG6s6J0u+gid32mb-Zo+v0ABUyWEyaZSfwAagBJXKz2xRrOym0J83kZM1v2ZOcLpdgQY2ldr9ksWgALzdTvbreN66b2Yyd-bnddvbr7AHQ5nmReeBDMAwwACQFZcyzXRtNz1Hdpz-KNsxPOVBFNAA5TIU1oZYIFYNVVzxVAWFgDY9Q9NsG0TTdmxtF9HW4QQ3RfL9PinMBR3HAMI2DR52InKMILlB9oOVJ58gPRD1SPHRBkGLCdHYeJyDUDRtGsGw0llUQ4hwzJ0HYEEABJBFoFJDNNRhtEYQY+iUMA+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index f6b3e00b1..4bc35695b 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -100,11 +100,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_tte}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -127,7 +130,7 @@ filtering for \code{PARAMCD} one observation per patient is expected } } } -\section{Decorating \code{tm_t_tte}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: @@ -202,8 +205,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzbWycikrLK6v5SciUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urppbb0PvHnOaXGA3pcWDA-IwlusiDBUEU6KJSOwGpkAMK2TJYACyKOyOgAvDp4YiGhkIcZ8To-lidAAhR64Ek6YgwikEJFPamZemUjmYnQox6DDJyBkQDIYvkEolIsUZHRkimPGmIHQABWoUAIcHoRHpjOZsIJbL+KuyjEEAHMdAANbmPFEqlHQ+jxDyWCCChqDQZKNCw8LxaIyjJJClJUUZPhCESiClR4RiYNykp+NY9OBJuWEqD0ODURVgWy0eB2Ig6JzaMh2HMiPWyrNJI66Al-T6AiNZnSgvyaFismKjLWiPyiPNwdRwfiZzu9xi0GtwdYDmSJ54pY28u28nFb1HorE7sByEWMrNUzGPU86E-1uXdslQlkE++Qg0drOoFiwDb9wdiEdjhOU5XhkvbUIIi4EMuQ7sP8LQpI8qoYpk2LZFuSFYChgrvp2jwAPK5Jet7CjhGQIswng9n2RrQf+o4iEB05ZrO870CIS5-jMa5MuyuROLaeA8jSmJYAA0lgABMgo3p2cqPHxAlXjJnYaPAfioKMZCxjRnEAQx5BTmyACMAAcEkpBJAAsADMIo6KZEnKVmcCVmsizbFRjC-iuw70eOBlMXKLELhxPmwW2CFgE4ABqABytjZE4uQCkepFyVFcUJUlKVpRkxi0BUk4UvYzhKYyQrXkogy0OS7DxOQagaNo1g2GksqiHEECsJk6DsH6AAkgi0CkA2jow2iMIMfRKGAfRnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 582247016b079adc3565fee1d996aad8be20f6bb Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:59:11 +0000 Subject: [PATCH 54/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_a_gee.Rd | 4 ++-- man/tm_a_mmrm.Rd | 4 ++-- man/tm_g_barchart_simple.Rd | 4 ++-- man/tm_g_ci.Rd | 4 ++-- man/tm_g_forest_rsp.Rd | 4 ++-- man/tm_g_forest_tte.Rd | 4 ++-- man/tm_g_ipp.Rd | 4 ++-- man/tm_g_km.Rd | 4 ++-- man/tm_g_lineplot.Rd | 4 ++-- man/tm_g_pp_adverse_events.Rd | 4 ++-- man/tm_g_pp_patient_timeline.Rd | 4 ++-- man/tm_g_pp_therapy.Rd | 4 ++-- man/tm_g_pp_vitals.Rd | 4 ++-- man/tm_t_abnormality.Rd | 4 ++-- man/tm_t_abnormality_by_worst_grade.Rd | 4 ++-- man/tm_t_ancova.Rd | 4 ++-- man/tm_t_binary_outcome.Rd | 4 ++-- man/tm_t_coxreg.Rd | 8 ++++---- man/tm_t_events.Rd | 4 ++-- man/tm_t_events_by_grade.Rd | 4 ++-- man/tm_t_events_patyear.Rd | 8 ++++---- man/tm_t_events_summary.Rd | 4 ++-- man/tm_t_exposure.Rd | 4 ++-- man/tm_t_logistic.Rd | 4 ++-- man/tm_t_mult_events.Rd | 4 ++-- man/tm_t_pp_basic_info.Rd | 4 ++-- man/tm_t_pp_laboratory.Rd | 4 ++-- man/tm_t_pp_medical_history.Rd | 4 ++-- man/tm_t_pp_prior_medication.Rd | 4 ++-- man/tm_t_shift_by_arm.Rd | 4 ++-- man/tm_t_shift_by_arm_by_worst.Rd | 4 ++-- man/tm_t_shift_by_grade.Rd | 4 ++-- man/tm_t_smq.Rd | 4 ++-- man/tm_t_summary.Rd | 4 ++-- man/tm_t_summary_by.Rd | 4 ++-- man/tm_t_tte.Rd | 4 ++-- 36 files changed, 76 insertions(+), 76 deletions(-) diff --git a/man/tm_a_gee.Rd b/man/tm_a_gee.Rd index 28f812a45..1ddd4d6b8 100644 --- a/man/tm_a_gee.Rd +++ b/man/tm_a_gee.Rd @@ -149,8 +149,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeUAipV1DU2t7fwAjqI6AKQAfNM9Jca01OSM7KUAQtUAYrUAhAC8OgpgAJqnOgBkZdt7AEw6RyfnpzZzCxAlJTCCoeTsRbfUoANQAkpUwbYdMcoOJjFB1ER1qCIVC5LggSVUZDbAA5GE6ZgQADWG3BuLx73mWO+cIwCKR62pn2+bJ09IggngjBk1hmNK+7JK9MZpGR1kxQrZoNK1U2YIJx1ltT0OgArAAGHQAYh0AClBKJSByplAvq1YD5dOKdABzOAmsL0bKeHQUbxEbKkDBAllA-iMIjW7TUUTxCAAXwCACsvRAoiS4Kxw3kbMl+HAEcJSFECPxaKImnHsonk6JgNB4KnEnIALquaDoOrZdKAoV5Ql5KU-ATCMSEvhCEThoENdpRB1wdvC6hQehwaiE04AcScLjwtLyVd0x1OFQGpx77Kgmm4UTPjEJBAyXoIYiiokXcHUcH4gLAKoVeKPJloLTfQl7GcDFaVofgLxYa9bxkB8nxEV93wID8HEqBxNn1MFyl-U40IwrC3gKU5UPQzDsLAUDpTpRgYEgq9jhvO84OfRD2GQ-csAAWRwz8uIAYXIjEXlKLjCNpTRC3SOjoKY0RHxY8gkI-HEoR4lT8UI4SKVUijjzZVAWFgfMZNguT4JfRSZ2FHRGNMwkz2oQQ4DzGD7xrUJgGAfd+kqU46zrIiwAABRE0pOIEniQqwMKxKotlzMQ5cwB2ABpSEDB2AB1TZTlpSjhWITRpIY1zmIQyz2LATZSkqDdAtKNceNqgANHjqtqxB1M0vEHGqaoAjZAadACAJaGMHR2G9VREQ0bRrBsIohVELIIFYUp0HYNBUAAEkEWgCi27an0YbR-CUSMlDASM6yAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index ee5c3c101..58225572c 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEosMAD6jHDGIcQwqPpGdKKk7Eo6OgCCWACyAMIAIjoAvDoJSSmpOuHGhToKYBmZOgBCtbhlqdGxRQTJdVnpLTW9Ddm1AakBAUr8UKRQcTpc1CHTs9ZTM3OGOgDutKQAFrQQ7CtQuDogZWm5AMoAMvOkMAQhcAAeIVD8otRXuQCKN0ez1eHy+AEdRDoAKQAPmhbRMtGo5EY7DSjTuADEHgBCIq1ACatR0ADJ0picQAmHT4wbEsA2OEIiDlJEo1TogBqAEkbjzbDCjtCdN1agB1JxOADSOgAjDpcmlCToABwDCVS2U0pUquUAVg1YElMp0AGZFcqdFSqaMmfDETBBLNyMlWWz0rz+YKilBxMYoOoiGi0l6BXJWu62aG+QKAHLVZgQADW3Njtjj9pZHvKfowAaDaKziLZeYggngjBk1hhDqjHrzBdIwZrAGIAOQ6GBQZNHADmopIojgBGdWl05crMhMgebjERAQAvgEAFZEI4hZNwViiE4bGxbfgRKDCUhRfi0UQvNcbrc74DQeC705yAC6rmg6HmRz2btSp2qU5I1SPghBEKEilA4QxD-conk+EIYBgRgYFgtlqCgeg4GoapakyTIshaEsdFOR9dAJOoARuIj61SKBNG4EIGMYaoCH2dcCDEEJhxEdQ4H4dgxTqLk0juI1sgACQAcVGc5alDUTZOI2h+CYlhWPYmQuJ4kdyAEoSHBuBxGgAKR5XIjSM0zzNkwZDOMsyLMZYCGxQtSWK6TTONEbjsN0-jBJ6eojXqPJbPkwjnOIzRLz2dyNI47S-L4-SgrDWwQvSuNwuE9MlNonRgjCCIoiIGJqiKypSpiFy2VQFhYAIfgEq0nydJStCPTYxKIJ0BjqEEOAoi8mDTmAYB5Ko2pX1fOSwAABQyNIcicubFqwZb8pzVJ2r03CwCxaV+QMLFxWaMBiIjYjiE0eLPJ63zeL0wLakaNIbhcPBBjSKTPrmj6AA0jTej7EBjb1bLjBw7juMZyjhiYlFoKp2COVFZ3HawbEud1REOCBWDSdB2DQVAABJBFoc5SbJ4dGG0fwlEXJQwEXV8gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_barchart_simple.Rd b/man/tm_g_barchart_simple.Rd index 8d3e24dba..3cf410fcf 100644 --- a/man/tm_g_barchart_simple.Rd +++ b/man/tm_g_barchart_simple.Rd @@ -204,8 +204,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTowgonk7ACStrYAYp0AvCZQ6gHsCmAAmic207MQ8-NFpWnUUPRw1MdgqypkBrZEP4xwBI6AAKRFQwgSlhumyeAHMLkEGi1Gk4uj0+oNhvFdFc5g1jLRqORGOwAITsdgo2wAeQAGgBxLA6HZ7ACMNgAZDpKU5Wk4AGrMvYnACyq3azQuOi5lKwIqFOhOjUQOmajEEsJ0tIRQQAvkEAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfSNJvNluA0HgVtycgAurEWh0urlgMAlW12icQ2GIMjUXaqjG4yjE8mlGhUF1ysVjjcdLlmWWqrg5nwhCJRBXa8IxCXbj00rC0vQWAQSiwXaJaDBInBW7cdE8XuNhWBU01oFFB6ITtXS7cBhXcv0BqQ1APUHACGPx5XEgHdDOIwm8Hjx6JXofSBX7yJ1GlRAej7eT73jQQxBWmgsLQzwiK6JR-i234nk08arjB45fmuCHzEqcoroqs4AMK2I06F4JhfLajeyEoZhWCNFhLgESc6xbNeNQnK0jSbNsGFMfYjS4QATCc0EnoiKFyPBKEvo+cD8BWSo4XhIorvx8yLEStAjhWmyNO0fIKYJtzCdBBLUNOE4eqQx7jlugy7gc+6HmZJ65OeUmzvG8mkXeD7qM+Hk2UhZENL+MgAXsQGMCB9BgQF-5WgpJ5XiJfk6L5CWobO+GMdhuFpYRTjEfFyUnBRVHsR8GxsTRYDMaxDGEZxPF8W5CE6UJeUIWJ6gSU5RGuQlSkaKpezqZpLgNfMTW6S18wWTue7vp+dnmVUjmXs02YkWRbVPnsG2zbZMXzJFQU6CFYURRBgVWqmNRfrOTg0gyWDFSifL8o9vJOA9YByHpI23BtHV7AAcg47TtBNJ69SpIhqRpWk-ToY2jdB30nkMjr-ptxmiKZClTVZb4frtcMObAF6Yam3Wid5Xmvj580-mdUWAcBoFwOBkEXStThXe8VJ0oyr3PQL70ImD7k0-9ZO3XzH2i7cEP9Tog2w2RCMNMjMG4zNBNJQhxPwE5V4U61VNbd5O06yhB0NsFzPhazVt0zBcV7bcFsJWhcnlZRmWe+lXVrclDQFZR1HpXRZV+yxEc1RRdVgC7iNw2rsvzH9kmA8DoMJ-LUMDTDw0q9pSMTawaRo3AGN0Fjjua9Z5uOw0euk1mod7Rt1OPvXCdW0zoUs2z52Upz3NKlL91Cy9XtvR9X0pw0acG29k9zwszqQ6TSsF0J2mi7X+NzXtTcGy5AfGzTHf74TCU9zbfd2wPUUN+OztJ-tT8nh7j0yVlTE5Ub+VgEKqHTC4dqpMSjmAiqtVGi8Xjq-NWCd1brW8hLIGIMV45w3vnPaqt4ZI1vIJIIQRaDGG5OUYk1ktCji+rUOYogygQFYI0dA7B8wABJBC0BqOw+8jBtAxAgLqJQYBdQhiAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ci.Rd b/man/tm_g_ci.Rd index edfd3ae32..6d9f6ef3b 100644 --- a/man/tm_g_ci.Rd +++ b/man/tm_g_ci.Rd @@ -158,8 +158,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlbUAQg1NLe2d-NT0SgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5idaJTqdTqFB6HBqCS-gBhEjGWh7cy6ACSKkYmm4OgACv5SH88VSWToOpLGCSCq02qQ1MdRKg4ARmcqygV7rpsdCaoC8H0TaJOYbSCSHSJ1DF9YbjSaygQsksCGISUboVgALI8yoKnR-QZhrAAaSwACY-nJFT7qa6nXB+MG0f9w5G0xnM6SjrRUCISQAxcq1apOUuZgVtXO1+uNu3KoIm9PdsqsGJqjXJLU6qDuz0hpUms2wC0x-5ghUD6kC6jkdXYuiiUjen0brceg0zsvUtXEy1gaXlLDlCNR22zst+gNBndwbTUTYwwYAElve9H37F9M2zdR20-b9fzBQC7wfSM5GAABGZ5mzLGAKyrRc6wbJs1xNNkOS5a9qkddQdGIxA-kI6lQPPI9VBPL06JZS9uX+AA1EVqhFWxVzAn03xkD8qK-TlYKGf9yh4vjbAY88dAg8g82gyT2D-GS5P45C0IwzMsM3Stq2xPDGwMn1iM5TjyLdZ1NHOTIaLANidF7H1FPtCjnWxFSWLPMtrNIpdymgahWAAL3bLjuEEOBBPPETAyvHQQ24+to15AAJABxEs3JUqDQq4zLn3PIyNBwjt8MsllW2K8yXCEsoPJZLzqT8AJR3CcddQCg8WXneBOIBRKfRUl0fIGtzgs4vl-HVehWB0NVaHZERxszZKxPSxsAA0srAap7HKWxyhQo6Tvvc7UzADrvPs4q9tO87LvuurqUqkzcM7AiWvXWg2zUnQmrotr6O7DygiCWhjB0dhci3ScNG0awbBKJVRByCBWHKdB2ERf9BFoIoiYdCVVCCGYlDAGZniAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index a39e917a9..9fe3cd162 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -230,8 +230,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc1YrV09fYPD-IyiOgCkAHyrEw0wgonk7I0Aao3tAMI6ALw6-GkkxGnLqGnUUPRw1Icn5zYbWxANQGFYolF5vD7sBRgM4lFhQdSqHRYMTCUgAegAYuV+OUAOZQuS-TbbEy0ajkRjsAAKjSwjQAsmdmjoAITXKEAeSOWAAkgA5I5QnQAHyaRx5rR5tiu7LAGI57XaHIA6joHFSCUoAL5BABWRHKaQA1nBWKJKokbPl+HBjFBUWkCDjRH19YaTWbgNB4ObcnIALqxFodLq5YDAKHB9pQ-2BiAtaahqrhyNTVoxuNKFgwR62x1EGCoLp0USkSEAppYelXHQlsskxi2mtQgBCiB0VNeBDg9CIUNwJOIhZrBEhYEa7eajEEuJ0AA1+zooWd22cC-RyglLBBNRW5AOK7TGczrnXy0DG8Zm+OqzoW-3BwWi9dR5Hb41F2-q2ddw0gkEs3QLpymKc8biqGtcgPHYBGEMQaz4IQRHNEkejSXE0mMAIfEeURUDAoFXneahrwxbDSyRMRUBIUQ4AfCsgVyb1dFlBN0zwEkGmzNJNBYEcSgNbtRDSWiRARfgCKBHReMYWg3hER0BJkMRDjadoalfG96U-LSmQJfdOMBL89LAQyDIYwFuMvfNh2uKy8yHVBoKk1A4V6fh+MEsQRI+OBxMkoFeOoQQ4EUrzzTYmooRpOljx0mKGQJZypKXMB+SOJxbChMzksBURBHoXFGCIQRnhkzzlOE0S-PICTDIaGS5PoBSCCUoTVI6GpmIitTCVyoFNJbeksAAaSwAAmHTWicBcwCCFLzJS0tmESHi+JfNrvOq-z6uklgmpazaes6nRNNaexGlsRoAEYpouq7JrmxaUtS866Qe7KLL-fqdEiIhSDSEo4FoXESlIEd2AANgABmh9SdHG2H4cRpHnsY217XJXM8Jo+DT1oUsAsBFsnFaaYqR5Gsz12honghqFWkSZrdGaAm4CgWidHYVpmkUPBUr5f6dCcILBHk3R2D5Jw+bRl6RG0agVhfImUuXJ8RHISicYgTn2DOLA+aisAqRYDRuC16idYlqkDampmRB0VnaI5iWecNmmjON4qirEUQtBZtmXa5qleZ0wXwZF7gxeZrmpb5j35pe2WgXSzKqYJ+svqkunlbVwsNd0ZFtd1-XDdSk3GDNkii8t3WbZln7CLgBWldOlWpLzyI4E1mvca50uw6FyPgvF2Ppfi025Orqi++pW2OKz1WvaIH3RD97RHcDuvQ-5hn7YD53dbdz6XsBROFsbnQuV5AV08Jj2c7b6LvcbNf-c3w-rZ3o3GdHp32aPjvZOUl5YfFbppKkL9fbv3-kHak39Xr7w-gA12CCoTh2FqLUektx5zV2ufM+JJE7-iULQK87BygUnhBobQ1gbB1ArKIMoEBWCNHQOwNAqAAAkghaA1E4Vw2ijBtAxAgFqJQYAtT+iAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_forest_tte.Rd b/man/tm_g_forest_tte.Rd index 4123fa597..30bf0ab2d 100644 --- a/man/tm_g_forest_tte.Rd +++ b/man/tm_g_forest_tte.Rd @@ -208,8 +208,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otT1Tc22tk5dPX2Dw-yk5BMtHQAkWI0AwrP5-IxEkXDa1KLs6+1bu042AKQAfPeFxSVp1FD0cNTsCmBYKAEOD-IIAXyCACsiOU0gBrOCsC65GwHODGKDCUhpAj8WiiPrQ2EIpHAaDwZFVOQAXViVy6uWAwH+V3+1NpEBa032RkZzLAXJmbI5ShYMDSjHROKIMFQXToolIfwgDUaWAAsjoALw6BVKiYNSXGbU6f4AIUQOgACp9gfQiP9cAadMRZSaCH8BZbmoxBABzHQADUdprAO0tOxl9HKCUsEFBEzkTpVTQ1O2aJr1yoahvRJpZGp0Zsdztdcp1HoLmsaIarOh2CZTQSCovQXXKxWzOlyJtyyYafCEIlEJsHwjEXYaPTSfrSxgCPjSKzgk5zn2+1HzYAAYgvFTpWoJGJotNwSymc92quTdDqWVMhXhnQ0xWlNCx3SUYcDRGlRD84HUOB+FXS930YWgvhEHEvxkCcrhqSsBQ1WtkPVdNQSTZ8cyrDCwGwrCLxzV8jWlN0dRIqUy37S8dFQFhYFxT9vzEP8AKAkDsIad9qEEOAYJYi5BScGp-itNVGnQ5pUPE7Z1VBGjaNDAB5Vp-gIxSc1EQR6D9I5BFQN8PwrWCfzYkQONAnNwMg+hoIIUz4LadoahvITnLkQilIaJCzXVLAAGksAAJlQ1onGDMAgiUrzaMVZhEiMxhmLg39-ws8hOKIsCWFs+zHPcjpEM9Vp7EaWxGgARjCsqKtCqLYqU-5Su2Or1OynRopzLrmyUWhjXYcpyDUDRtGsGw6hTUQyggVhGnQdg0FQDZBFoGolo2f9j1UcElDAMFqSAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_ipp.Rd b/man/tm_g_ipp.Rd index 79bbfb3e4..e0bdd6f36 100644 --- a/man/tm_g_ipp.Rd +++ b/man/tm_g_ipp.Rd @@ -196,8 +196,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAygAyyTqkMARpcAAeaVD8otQ6AKQAfBP1DTpjMnDsAIyIAEwADDbTsxDzOvzG-QORMsVp0Nn7Tc3tAEJdPX2Dw-zU9JMzcw3GtNTkRjsBytBz3ABSAElmpNyhNbh0ACQgsFQ5o7b43BpHE5nAgXK4YvYHP4A1TsRoANUhrUhth0AEIALw6BRgVoAYSwTicADlIbyAOJsoIAXyCACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAj8WiiPpSmXyxXAaDwJW5OQAXViLQ6XVywGAbId7TZNrtEBaDydVRdbru9093qUaFQXXKxXYc1yOhZuVwcz4QhEogTOlTwjEsax3RgaQA5mlaOg8wcGtQoPQ4OMWWzIXEtLQhNwdAAFBK0CikTv+Uhs5P57FVC26BtgX0hvA-eYsQuaFiZgglaUEMRpUR1uDqOD8CuVhpL6iCOC6tdLJXTmpurAAWQ5zRFw6PDTv96abLnDTkr8rqAsLAeorpeG6iFuO57geP7zCeZ4XuuuY3qyYAdo0WCNI+z5gH+sHvlO7S2N+I46HhpFQCeaRLowoFIRB24iNBh5HjRtA1iIiFXhSwY1AQsZTpSjQengqEcgAEsKuHkW+qFUsJJFHjJlaUdwgjUcuLKrvRkFMeQMGkceLDsfQnHadxKH8W6QntA4IrKUe1nCXZs6GSYtADPumb2M4sEOfMrYabRWlgZujG7vpLGVmxHHnuZ4E8Q8fECSiELQvZ-6OWAqVokO+HuZ5-DeY4Likf5x4GhcNF0VeukRfuUUHDFplxaF168ToVmCTSdIZfl1k9cRYB+Zl8z0FAjHlOe1UhTp4XMflzVmW1iX3MlbL3I0rQuNJo0HBtW07Xt8x-IVxW+WVx0jPwaTjZN3hpCUUgTjoABiwnbcd26Acw5C3awaREPQGYsu97TbXOQS-koQS0MYOjsOUgJQBY2jWDYdQ3KIZQQKwjTlhGiKCLQNSE9ujDaDEECikoYCijaQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_km.Rd b/man/tm_g_km.Rd index f9c74b40a..3ba6fe9c3 100644 --- a/man/tm_g_km.Rd +++ b/man/tm_g_km.Rd @@ -193,8 +193,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlba2Tg1NLe2d-KTkSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vAZDL7JH5-KqDFxgYFvFgwGKMfYnIgwVANOiiUjsPrlADCtnKWAAsoTKjoALw6HF4vplVHGGk6aHknQAIT+uEZOmImNZBHx-w55R5bNFZJ0hL+QTKcl5EDKpOltPp+OVZR0zNZf05iB0AAVqFACHB6EQeXyBVjacLoYbKoxBABzHQADQlf0JhsJGPouTClmCYHlOiCQSUaCxqVymU1ZQKrIKSrKfCEIlErIzwjEie1TRirtWMAL2rpUHocGoerAAGk0KaIAYyXBaKpjf5SNatRWCvddLToWC4WmKzokTFNCwhVklubRDFRDW4Oo4PxyxOZ4xaFWRCd5zJ8wCig6pd6pZTL0SSeTr2HFXyK+yyX9nxHxxXUCxYKc5wuYjLqu66bh+ZQztQghwIegGbDCQxFH8RqkuUFKVJeKFYGhcpfhOfwAPLVO+fbak+pFlFOzLooKtJUWitp4WUuLMOE06zvaR6LsBIigVuFY7nu9AHgQXEnjUtRniK1ROF6eCSpyZJYPWWAAExyuRE7an8MlyR+mkTgc5rHDuAHHkuK68eQYEUdqgn7jBolwewp78tJsmXopylqRpTHagAcg4tSArZ4YKn0kZKLQLLsLk5BqBo2jWDYJRaqIOQQKw5ToOwMYACSCLQRT5SujDaIEsxKGAMzPEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_lineplot.Rd b/man/tm_g_lineplot.Rd index 8c4ba63fe..653edf00e 100644 --- a/man/tm_g_lineplot.Rd +++ b/man/tm_g_lineplot.Rd @@ -185,8 +185,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBbgyhHMYBsqSiQUr8UKRQ+kZc1AD6GVnW6ZnZhjoA7rSkABa0EOFluDogSjo6AIIAIgDKADI5OqQwBPlwAB75UPyi1O1d3f0AQkMjY5PT-NT0OgCkAHx7Cx0wglnk7J0AagCSvbe2OgC8zybq+YxwAfyqV3cPWwtG73R4AORaMAaciCAF8ggArIgNfIAazgrFETSyNgqv2MUGEpHyBH4tFEYyRKPRmOA0HgWKKUDkAF1XBAegMhkzgMAFGBOf1+Sy2Rylqs8WVefyeithaKlGhUEMGjV2AsmS8dEzcAs+EIRKItfrhGJ1RAOh0RvkAOb5KRwSJEUjmy2W6hQehwaha-n9Bq6AAK-lI-N1Frd2rK9N0bxl4rDJ0tNsYREEqHymhYWoItWRBDE+VE3rg6jg-FdkY6WcYtE9IhJeZkZsFLQI6oFWAAsmGdDLuwBhbq9mUD2ydQfDsAw8NVjr9ntgJMdOSzyOsHNNguiIslssV5eWmt1+gN3P5lvitsdm6dIV4PtgZadXouB-8gcACQA4iOwIGv1-adV0PecBWuO9+UPECIzdVAWFgTcLx3YsRH3SsqyzahBDgRtkKuK9H0DCdOi7Ic-2IrBSP5GC50fO9bCg2DLSCN1WJ0IIgloYwdHYBpyDUDRtGsGw2gjUR6ggVhOnQdglQAEkEWgWgU4tGG0GIIFhJQwFhFkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index 3656ffc29..a5e56dd54 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -140,8 +140,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUEAvkEAVkTlaQDWcFYokqiRs+X4cGMUGEpDSBH4tFEPR+f0BwOA0HgINycgAurEWlMOrlgMAFGAiZMKXiCRAWm0SVUyRSGS4wLTYmhUB1ysV2KNcjoALw6XK4UZ8IQiUQinRS4RiAUQBoNLppADmaXQC20jFEcF62jIIK2quoUHocGWotZ-D1Bp0TmNpFEFIlKtVDVyWN0tsprXZHq9DVQLAopF9ctZE2peDNoYStAj8KINp0FOe5yu7oTOkiRDhJTgtA1JVIcoI7AAbAAGWuTGoAJnrjZ0LdbcmDIagcH2MErJV+BDEaQNInUcH4ypDqoIQ5kYjlmhYtEtInhC5HILZNVZTlsTiwAFkKV28w1x3BJ-xo5SD0fT2A8+fPV7SEQBhrmJDB8PR1eN4zrOOjzv+sqiiujBrvQG5gYuO6Bnu962AA8gAGgA4lgZ7drOgHkLe-ptGhWE4c+b6qq+s6yIIojcMUrB-ghY7WtehHATRW5LpBq7roa8Hbuwu4ZveWBOHG1EgQRU53m04lxi+eGqkQgi+EQ8DMdurEThxF6gdxEE6FBMFwYZwlIaJbSoQ4ti4fpMlEVZTg2XZFGzlJXpQBYJBaQBbFAfpgk8cZfGwQJ5kifujQAMIAHL2ZRXqOXJTixQl7khp5qoaJporBaIOnsVOnEhgVy5hWZ4EWW0yGNOMtjNAAmolIE6ClxENc1FJKXmkLEE5cUOJM1KUUEDRBEEtDGDo7DlPs3kaNo1g2HUnqiGUECsI06DsNyDyCLQNT7QajB6h8ShgO8eJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 6a6c4a5da..45175ce25 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -209,8 +209,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACKNTsk6pDAEaXAAHmlQ8XD1Tc0AygAyHV09-YP8otQ6AKQAfCujDca01OSM7A7jDgBCAFIAks2r5StjbQAkR6eXzUENLQDCALIz3b0DIYEGCrDZbHQwQSJcjscENH7jWzNACaOgAvDpZKI4GkCiUKLCIA1icSfp9GrZ0RiFGB4PxJDoTjSdAA-HQAJgADLg4aTvuTKWjqbS4PTlp9mWyAIwAVm5vIa9mcrJ0Ut5NnWdyKpTS1Cg9Dg1FhYHGpEE-FYOmaUEtRGMOlNLFIOjtOm+opkCUsEBpch5RJJOh+TgAcij0ZioNjcfiKgqg-yKVSdDS6QymWAVQB2TnygOBhMC5Op0UMiWZ6W5vMFxWOdpsuWc9WgrXFEq6-WG42m82W622+1OOIu+3u-iejQkX3+gs-RqI5q2X4Y+dIpczwNz0OL5dNbdL8FBAC+QSUACsiOU0gBrOCsUSVRI2fL8ODGKDCUhpAjj0Q9C9Xre97AAQxotFMNI1DSLRtJBKZgF83y+gAukoQIwDed6iB0oE0oiDgolccE0s85xEXg8GrjuxFgAiTgAIo0RSnxqhR0G2J87JMRxADM3GfAALL656XhAmH3o+UByMA0HND8TFyUhYDIR06HiaIImAVhknSbJsFsQhik0ip+S4SatgEci5FQWApGvMJPrQOgHTlMUhINLkEa5BufBCCI2EYr5whiO5xJdGkADmaToNFXoUF+GjwFIcChSSeoGsswoAApxWQdi0El5QjHgvK5NA8ALFAujCjBLglfmxJlbAOLoRGsnyfVBaoCw8XldVlETJMkG8t1Gjxd+RCZfBdnWSN-hfvitARSUzoYqBABsuaTDUXKcttHJVpMfq8sCr7EPwEYECUl4EGIaTYiI6iiqlgZXTdYgRpoLC0PqIjftdMghbkwAyYZHXIchNk-M0TifAA8s007xg9cBPRdwrQ7DCPDQ1DTHbjOhVfsIJrQDt2iPdhqo+Q-AvSSb2AwFOhfYwP30H9DPk5JIN6XVEM2W0thOFgSn4zWOgo2jl1gU4Qsiw5BZi4GRMFTioiJIwq2YmTd2SzTdPEpzH0YizbMczrD7A6DtXGZDlELgeYBKwWeuitL0EO6L6obiSKsVRQ6Pa+9FOu7T8ZG0zpu-TiEfc9brR83b0H7qLPuBqH7sISnCuBs7jXq6r90a1rEeU49+vhxbn3fdH-3B3H7VKfz8Fzp7SMEw0Gdrcardrl7BN5x5Bf+8OpPB2X1PPZXwfV6ztex1bje21D3xtGGjuD8SXeYj3q-Z073u8lVjCGvErBF06l0WxPaMGw0Eez2bMcWw3hn6c3HtIsi7fi9vZlUd-A+A804NGPqfG0vRR5B0ZjfCuHdoHk0fvPF+i836JwFtuQBm9O5Uylt3ZOYYsGHwJosE+1Az4X01lfceoc74IONszGu7Nn711QYhZe9sv4-xrH-MCC4iHANKqIMhFCA7UJgbQ6ejMkHMLrozV+7DlJJyzoQ7hLtcE00zmvFEOcSTvGJPooIQRaD2nYOUfYUALDaGsDYOoAZRBlAgKwRo6B2BoFQA8QQtAajuIeNiRg2gYgQCPEoMAR5kJAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_therapy.Rd b/man/tm_g_pp_therapy.Rd index 9eb2f3fb4..f30946520 100644 --- a/man/tm_g_pp_therapy.Rd +++ b/man/tm_g_pp_therapy.Rd @@ -209,8 +209,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQ7sxs7Pyo1KyBrhD8UKRQ+kZc1AD68YnWSplJhjoA7rSkABa0EOEJULg6IEo6OgCCACIAwgCyyTqkMARpcAAeaVD8BDD1Tc0AygAyXT19g8P8otQ6AKQAfOsmtNTkjOwOUw4AQgBSAJLNG+U7LR0AJMdnV81BDQ-tjx2NU7bNWydfJfR5-AFAiag35OABygOBRlBjThCKUAF8gkoAFZEcppADWcFYokqiRs+X4cGMUGEpDSBH4tFEfVx+KJJOABHYCjALVmvJqvK+vLkAF0lCMxoTiaIutzef8HM0AJrXQU6XkvC7qvCavn-NF63kdKZOACKGuFtlaAEYrXybQAmB2NG0AZldNoALKKcXiIDKSWSoHJgMK2u1XZHeWKulKYEHRLF+XNKVVgOG+dMZrGJRAvl1cpmIx087E0KguuVijyIA1cjoALw6XK4CZ8IQiOUtzvCMR1hoNHppADmaXQaVKqjQHAmQ501Cg9DgaxbvNsJRnqFYgvnQ9y0Hgzf1Irw+4aqBYFFIR906+zAvP9YXOivGhvDKIa-12ree5fBdIiIekt1oUcSlIE9uQANgABjgmYaidBCkJ0FDULkdtAKHBJaEYVdoJKPECDENJRFXOB1DgfhB1fBoCGImQxBPTQWFoZcRAZJjSNJL4hUdS4sCcXMwCwi8hwokRqP4aCeUE4TRI+V9xJwhiYCpYhZJbRiSLIqSqPIWiJIYniWJbNjGA4+guN05i+MjASOmaJxWgAeWaUVsPohoDJkk8TXaFz3M8sAJNU+ixnKUYiL00RyMomS6Misyex0SzrNs1L2H4-UOkueFWi8kydD8oyArAfLCt5cLvNfMZ+CICjYvshLpKM5L6tS1j2M4uBuLinLHLyoK3LNYq1MkxLyofZyxpcMLJoi+qYFIRgoJ01K2sMmjOoXOzeJ6qy+oG+yho6Jz2nsWwJp80rppoiqOmumqlrq-aNKawQWt47akpKg7zPS3qbP6wGHIukbmjGhxbp8srHp0+S5pOP03oksZGCIQRyB+-SHuMybTLio7MrB7LcsCrA3IcWwFuW+iEe0kbqdphbaoxz7RGMRgAEc8fipm9qHcHSZO8HzvaS7oamAAxLBLTE97XyZp7RrlhXXvohmRZgURSH4VgBb+jqAe6iyQaywbKYNAEVThxmCYq8FVS1lTlfUihDeNoWzZJi3jtB07eMlgSUXhe2lZK1WH3D13Fu1-dlKCIJaGMHR2HKA4oAsbRrBsOoX1EMoIFYRp0HYStHkEWgairijGG0GIIHRJQwHRMUgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_g_pp_vitals.Rd b/man/tm_g_pp_vitals.Rd index 750524dff..1989d7327 100644 --- a/man/tm_g_pp_vitals.Rd +++ b/man/tm_g_pp_vitals.Rd @@ -138,8 +138,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsOEMaWLUijIoQSvxQpFD6RlzUAPqh4dYhYRGGOgDutKQAFrQQ7PFQuDogSjo6AIIAIgDKADKROqQwBDFwAB4xUPyi1KUVlQBq1Q1NLe2d-JqiSgC+QQBWRLkxANZwrKL5yTap-HDGUMKkMQT8tKIti8trG8DQ8JsFcgC6rhBVdQ0FwMAKYB+1P7PV7vQbDXbJH5-KpDIEgpRoVANXKZdh9Ao6AC8OgKuD6fCEIlEWJ0BOEYjREDKZSaMQA5jF0DFNJluJs+tSdNQoPQ4NQSX8BqzqNM8BzqQV7rpsdCwX88VTOTpUCwKKQpQL-jVAWLFZyVRo1SciPyZWAHNUHAAhABSAElKvLxWVUP5jlk4LQ6VlSCSCOwAGwABiDtSKACYQ2GdJGo3IFUrlSxYKc-VklgQxDFRHy4Oo4PxKYmygR0zIxCTNCxaDyRCcy5nNjDqkU-gAFcpYcoAWQAwo6wPHndScyJ8-xNR2u32B8Oh3rqW0oG1zmmM1nR3nyIXhyWGxXsVXGDX6HXS+um2DW1qAJp-efFnSb8eaqp3sBzhNKqBV2JHtflqI2a5uORbFuegGVtWtZwPWF7sM217lAM5Q6g+xbPtur4oTqc7ikEZRBEEtDGDo7C5OQagaNo1g2CUiqiDkECsOU6DsIiAAkgi0EUnE5ow2iBLMShgDMzxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality.Rd b/man/tm_t_abnormality.Rd index 354447385..b6f09ce0e 100644 --- a/man/tm_t_abnormality.Rd +++ b/man/tm_t_abnormality.Rd @@ -184,8 +184,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lMIKh5OwLJToA8gBy9rYAYrUAvDqyonBRKRkUaxAb92UAagCSlc+209lTp2tglQDCWCcTm2z22AHEFHgdFD+qVKk5qmCXGAbAA-GFgKG4db3ezOHQYqEATShuJ0Nlm3zSmSi1Cg9Dg1F+mzutkYcBC8DIOiwcGIjH4On29IA5lCAvcAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImgqlar1cBoPANXk5ABdVwQCo1Op5YDAKHu6pQp0ut19QY6xLe30hgNBpRoVB1bLpW4lPI6E55HF3HR8IQiURp7MCYRiZMbBpRI0MiBERgwbjpDjk+mM6gF330au1+ukVh2BkibHkvJ23QnSMDQdZ+4sGBRTQsAsEDKKghiKLnETqOD8UsPU7LmRiAvzxi0fsXJcrkt+gqiQT0c6kRe-UpYACy2Mxr7f-3KErkmZ7iUG78uQQpjmA35klOGwAeSHT8BWRChK2Jz7KU1QIoBDz0Kwc4sPmJyXoeojrkyoHbruDzEauhE6CeZ70CIxoHrR7AVAMt73o+z5QgM-ylLYn5QgACq+pQftCvovG8QmonBMH3CBW7gT8fH9AJckFKJ4mSQpQE6KqcCoFENa6owBb4i4ikUth9z0FAG7ZBcJ6Lqxa7KWBVH3Ax54sVeGocf0XEPnAT4Qf02xYGCf6onZDyedubZgJF0XbLFBTGLQLRJScVnkvpDyiswupuQFZGbl55IlDRR4nL5TEXu5gUhiFPEQaUUUxRK8VKeRKnJZ1aUZdVJjZbldiONZe6FdOHY1nWqE6HQoikOw1BECkyXVJsADqn5ZKKGTJQAEs84InT15KtJIgi6lEDnnO0HYFuhmHTbBPQBAEtDGDo7DZOQagaNo1g2EUWaiFkECsKU6DsHGAAkgi0AUSPnIw2j+Eo0pKGA0pOkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_abnormality_by_worst_grade.Rd b/man/tm_t_abnormality_by_worst_grade.Rd index fa0d96a3b..f0349e611 100644 --- a/man/tm_t_abnormality_by_worst_grade.Rd +++ b/man/tm_t_abnormality_by_worst_grade.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeXVAEJ1DU2t7fzU9DoApAB8Uz0lxrTU5IzsAISlAGoAkpU7ttPZUzoE7ApglQDCWE5OAHI79wDiFwUX-aWVTtVPLmByAIAXwCACsiNkogBrOCsUS5RI2ZL8ODGKDCUhRAj8WiiJrgyEwuHAaDweF5OQAXVcEAqNTqeWAwAudOqF0p1NpfUGyMSTJZ3PZnKUaFQdWy6XOEBKeR0AF4dHlcD0+EIRKJ5TpVcIxFKSiUGlFMVB6BAiIwYNx0qwovQbSlzaJMQBzZgovX6krUE1waiai7VE3mkLm1h2MSkHRYMQYjVpTI6AAStGdGQjOmebt0AAUiE6DP0oKJfdk4G8Fvq8qTdAqBQNy9LPToWDAopoWJqCBkIQQxFFiyJ1HB+B6m6duzIxJr24xaCaRFiJ734ayCqJBPRi5GFWcWVgALJvHR7-dXcoXQHKxtjgdwIf8f1gUoHi4VkpyK9j1AsWDYztLvtb3vUcmy7HspwVdtqEEOBF3AlduXeMBs2fUpT3PPBj2Q1DDwBT8xx0IDyAfHdzifapbCPC4bmzKiwB2Z5SgvN8dA-FiOn4I0iFCP0FQAMVKapvgrAJ33wpYVlUTVIn7OhlxAmSuknMjWToypSj4vi2Uwojh0fABNC98INOBuFk5S636OiAHl7nsWwtKPXSSKwwyAR6AIAloYwdHYbJVigCxtGsGwikbUQsggVhSnQdhRQAEkEWgCgS4tGG0fwlCBJQwCBSkgA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_ancova.Rd b/man/tm_t_ancova.Rd index 33b7bd0bd..b2826c42e 100644 --- a/man/tm_t_ancova.Rd +++ b/man/tm_t_ancova.Rd @@ -185,8 +185,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyARVyikrLK6v4AR1ElAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+bWxdCHp5yWm8PkoWDA-IxlhsiDBUEU6KJSOwGpksABZHQAXh08MRDQyEOMmJ0TwAQogdAAFahQAhwehEJ64PE6YgwokEJHPcnZRiCADmOgAGoziWAAMLksXQ+jxDyWCBPIYZORMiAZTJi2wo1Fi7JEnFItUZHQEon-NE6EmM5ms2FYjnm9GZEWOnRixUNIZDEHoIrxaKGjJJIlJVUZPhCESiIkR4RiQPGkp+dZQcxETRQBPG7FQehwahm54AOTFAHkAGqZOy5kTWo3ZpLHXRY-5fOvZjJQTTbaLsmJjWmiPyifNwdRwfhZjsEfsyMREjPUQRwDazwfsAG5FL-csASVyu9sirDHYyI5E4-4hYA6k4nABpHQARh02UyAE0dAAOJ7M5Un7NQT8DNGD7AcxGHUdLynbMZ3A6MsRA2gaxXOC51mF4UgdZ40RdZ5NW1XU8MI7JFRVP9jXPMdyCvFscJ1UiwAo8j62NICCShNksXYyFbQAtjF2AlgwPQyCLxomDjTQwcFxYZD6BEVd4I3L4sM5MUAAkAHFiMrV4wDkFjTzPKCaMLTSdKY1j-wo4hNCE0D7TXCCqOgiiMmk+dELklClPQlSWjU0lMlyFw8FFXJ7EyLUnzw0LhQMozjNcsy6MirBosyWKrNPJLs1QFhYE2ETBzE6iJ0kjznIQnRF2XPz103bcwApFFMgYvDWoy1Fj3cnQUonQsADF7wPAwhuvK0co7PLjXicg1HWECSpc0yKr6zyaqQ3zNoCrcWU5EkQrC5r0sy7LTqcBLDP47MBtoiKopi39rJ0JVjXer0lFoQl2Hm1QaQ0bRrBsNIjVEOIIFYTJ0HYNBUAAEkEWgUnhhGR0YbRGCGfolDAfpziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_binary_outcome.Rd b/man/tm_t_binary_outcome.Rd index 697dcdaa2..b942d9d98 100644 --- a/man/tm_t_binary_outcome.Rd +++ b/man/tm_t_binary_outcome.Rd @@ -219,8 +219,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSUwgqHk7PMlZQBqpdUAwjoAvDr8USTEUeOoUdRQ9HDU7KVbuzYzcxDrH6npGVc3d6tgHYZFhQdSqHRYMTCUgAegAYtl+NkAOYKMABD4vWZrYy0ajkRjsAAKpSwpQAsjtyjoAISHNEAeQ2WAAkgA5DZonQAH02LMqLNsB3pYDhDOq1QZAHUdA4iWiAgBfAIAKyI2SiAGs4KxRLlEjZkvw4MYoNCogQkaImmqNdrdcBoPA9Xk5ABdVwQCo1Op5YDANHe6pot0er19AZGxL+wMRkNhpQsGDnE0WogwVB1OiiUird5lLCU6mHbO5xgmg46QOFnQAITRBWIGcrBABpPJZQbVbA7Z0OwVclwPV7JdoOfY5eMlbRtcQOiJ1wIcHoRC7Tczh1bgbn5UYgmROgAGl20Ts5zt0-RsiFLIF0QEAmhM8lsuk8yU8pW8kP83whCIJkOP9hDEd91gaKJSCiK9oDYE4libOAwI+a5bmoacwEhURUBIY1xgbNYP0SJ1dBFCp+gI-MPlQEFGn4FsMnVJdRCiUQ7jgMF+GQz4CEYmQxErTRuEEOALT45iHgjAo0RJMkixPMBZIpBUf0+dY2JETiMNrJxKn6IkWTRQidEHYykyiITGAYpixFY9jOO4j5eJswCdEs2gbhEMSXMk-pGzbQsFPbKkgp2WxgvKAdVLUnQNI48h6LIwKwGM0yqPWczJzTZtDky1N12ij4c2YUILJYaz+JYuKHOMkpnMqwSWA8+gvPqiTyMqfy0UqJxjzwbta3JLAAGksAAJgUskdhce9Cs+aqEowqaZtSuaPxNM18RTbCSDY1zS0c9YdL0yoDMrA7avWC4WwBC8MxEcgITEHCIDYnR2B2LBFH6mSWA0bgnp217dGJL6VMukoRG0ahXK3dKYu7O6fDgR6sJet6PrBn7FL+jz0LR3aQaJLG1pi7rQha3RyjHOAoAxypym+6TFMYIhkXLURRC0KmabponGaM+HPgxGK0oR9kNicIVR3HCGdGuzcAUqCmRB0am2L596GaZ7s2SIUgdCcITqEETyQbZJxvrFhGdChu5YcOtTT3TZHUeewn3s+nW0T1g2jeEs33ot72ccYf78fd4H3uJpm5ZKGTWfZsQue0NXeYxokBex5XA-V2n6azuWRbU621KZVkOXOsdczlhWdC3Fm2Y5lOeY1jOs+ZnPKbTtuQe18GhZQuBoYdhOm+T7me-z-mQ671W8819h++x33DeN03u-YYOFUu4v1j3kWHyUWgp3YbICVBDRtGsGwinzUQsggVhSnQdgnwAEkEWgCg-tjGG0fwShFRKDAIqN0QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_coxreg.Rd b/man/tm_t_coxreg.Rd index f8ff94657..623cbcd20 100644 --- a/man/tm_t_coxreg.Rd +++ b/man/tm_t_coxreg.Rd @@ -266,13 +266,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgGK1Go0jpwAB6wqCLungC80TGxMRF2ABa6waEiOvRw1EQA7jq0ohlQonD8OiQ6pMk6gqKC3DpoqIxEUASJ+RCaRNSatBAA5joEjHBQGhVExglQOswQ-EQwOgDCACIAkgDKKzr848VwAVALlckQc2bKQ1W6TXSyExAYrtCMMAD6o8YfxDCo+iMdH87CUOh0AEEVrYIVgALLrHSRHTA0igi7guZwYxInQKMCwuE6ABC+NwYMxfwByIIoIJ8MhZLx9KJK3xigxcnJGMJuNR6MxWJxyPxxMQOgACtQ2nB6EQyRTwVTcbT8RDxWtGIIhgANJn4lbilZLej9caWCDsikcjlKfakWaGSpjagfe1Qax2g6AnQ5WhVfrsd24HQgCkQtZbAAyPtIMAIH2CHyg-FE1HDa1sticsfjiaCyf4pHISgAvhyAFZEfofADWcFYoiDBxsTv42KgwlIv34BQTVZr9cbwGg8Cb7rkAF1XhHoz73cBgGrI1H8ZPpxAI1mc22Dovl9u1xulE0ff1-QK9t7kcGKXwhCJCsj78IxJfwXGPt3iEFRgN35i0qZNQuIGkQQQ6FgcADC8eCKpi7qjroIoEpm2YKhigosJ8mgsCqiTVgQYgfCUIjqKU7Cqiy+osusNFQjC8J0WAXLMoS7LcoK4LYV82K-Es1KNO8vE-FSnFcagLCwAQZQ0gRMjEaRcDkfwAGCrh1CCHAvzyURTZbtmIb4hKsIQgiaw0SZWBmRxzIAPJbPi8Hglyzk6P4zAOh8uGMPhhGKVkynkKpblKnSKx2Q4ABy9gAJo0Vs9gQjCACMCVJTCABMtn4ol1mpU5mGYq5RVKkQmjeXhcn+aIJGBSpamUnSEIAOIuHgzLEnCWAANJYGlHWit1fXZYNYBYE4LUbHZUUDaxaptYVXE6CVy0wF2WgsLQ4zIXYjguEVHIuUoHK0Di7D9OQagaNo1g2GGGKiIk-SsBC6DsE0AAkgi0CGX0lIw2iMBypZKGApaTkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGI3OgMpxiEfjpwAB6wqCLungC80TGxsRF2ABa0ojoa8Lg6UDqirGSJcBoEOqhQtIw6RMY6AIIAIra2TgD09V4AMjr8UKTZKSZQTDI9cAHGRBUAwkRBOoxwAObzoqKWEAkA7gXzabRiWf4lmtwA+vCkiQI6MD3kjBhKdEwsHPxhrIyK6-492YZpcFO3V61iUwL+Rg2tAutAg7HBmRASh0tQaTX0RnBGGMzHg7GRKO8tgcdQAmgBJOo6SI6BRgdoOAByAHE6bgCSiagA1GqdGkEdgAFkyAGZMgBGCWZABMMtFUp00rk7IghJ0k0ZXiw1J0AslOn1+oADArjZkTTojcqObUsABZSZUmnGKDqCb41Vq3XsC2G03mgOW83Wz1q6iDODUVL8-FgGr22ps2lxhMAITpXzVIbVXicAA0dS63YwPV7vRaK4G-QbTdmveH6JHo966QAxJN0u0Zm11lHkzW2Quu0jugV0moduOT9N4ZMzzLj6eTiezunz5MruS9nKkRiwhaiGqiVvDibN1u83MEzOoxpODFzeiw-jsep3zJvpoftFOb93m+fve-xQKIJwaPQ9AiK+P43qIhQYHBozsOKAE-gAJP2XiDv8oihFBgEYQOqF3mhNTMkBRi4TAYRwOwcEAI7sAArJkADsLE6Exyo5LQABeug0hAjBEBs0H-pk8xhK6Al2I4TjEU0aEOF4DipgAUpSD6lKI5CxqIgj0Em4qIEJIliU03EEZhtiZHBqA6nSBjdp6BEAArxjUdoPm5HkOlS-x0gA8l4dIEm0nQ4QZcGkKWhKASqapwSI6g6mOYDKapGl1JOWEkhS2Wrimfk5fmk7Wcu5HOSiXwAL5fEoABWRCwicADWcCsKI8K-DY-z8HALrCKQJwEPwKQECcTUte1nXANA8BdeCcgALquBA4UPuCwDAOOdQdHSy2retP6bb8227XeB1HQkAAGXDUDdWToHQsgaCQCQGJ9X3fT9TkQB4OiMkQ5BpIkPSg7o2rEP1gRBKgEzkAE9CsDoN1eJcGw6Nq0z9Y9-BEPsEDAzosKSIIMMXLo4IJKg8wGLTRAEGIqwQAsGA6KSRCCDoULUNQOgQHAoxpEQurzCMENdL80VZKkgxENoOiNuM8wJIwZjKAskvBPDjCI1juoCHADzfCwMAnPMxgjUQ1EPnQOmvvajo6vbMWWw5RWJrOxC2zG45phmW5rWg9n-LC0KxeCOoIgSfBCCIzZx8IYixSipDm8NxBBPMCyp4SDaRh70yzFgiwPHgNoouC80yRdTRspXWSMObxwVPylwyGIJxJb4iPsGl8bFWA3H+0P24ombFsDdbvtN+blsz6gCVeqUuKjalHdM6BPfqEhjcosc1CCHAI2byn8XJu5WCeY6k5X55GYLmAwWhaGhLjzuzC9Ccrcb81W-d0jL3JCaVyrD0yIyBw7R2gf2IJoH+LA-6d23kA3eL40q5jzBVFw4DkyYMfo3GAQ0tAsFoBLGk9hnA9mvEoL4tBqjsFhHcYcWhaJbh0EiT0ohkgQFYDUdA7AQ5oUELQTIQi4KMG0J8JQNUlBgBqstIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events.Rd b/man/tm_t_events.Rd index dd0cf908e..271a58efd 100644 --- a/man/tm_t_events.Rd +++ b/man/tm_t_events.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyoZHxyeBoeCmkuQBdVwgcgqKk4GAFMEv8+5Ozi6aWudDb+5zm59elGhUEV4tF2A0kjoALw6JK4Bp8IQiUTQnSI4RicEQDIZEp+FZwbRkKYNHE6ahQehwaion78bSMUS6JxE0h2Skie7w7Fk2GhA66GE-d5c0k4lgwPyaFioggxYYEMR+JkidRwfjsAjgh5YACyXJ0Pz1AGFsvc5CkjfqwBaxRlqNQ2TC5QqlSq4GqNXacS6ZGJUdLGLQOXBVvK-VNfk4Ulqfk5bE49Qa49knMaAPJmm22nm8nTuz2y7XNVMZrP9PM5vMxR2y8OK0TK6ke8he3O830NgMsYP0ERh12R94x4tOABCmdyAE1csmHk5cunjeaq3n883C0L5xO8jP7t7V2Savx8URPDSYfZnNy84SKCtSKxUILDSh6aomTo72R9+2Kzp+n6WhjB0dh4nINQNG0awbDSHlRDiCBWEydB2CBAASQRaBSDCmUYBl+h6JQwB6E4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index a4b5d9972..158dcdced 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -137,8 +137,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMoAMmE6pDAEkXAAHpFQ-KLUhToY1PTUoq1BuknEUdRQ9HD9nPWNLW1QcAFFZcVONXUNzYOLOgCkAHx7XUUwgiHkkbTG7LTiBOksUOqqeVDixs+kRP46AMQAch0kx0BFUISyOiIxh0j00WQA5iYvj9RF1RpFxpNpqsnDYkj0+gMFnAlABfAIAKyIWUiAGs4KxRDlglB8UZ+HBPsJSJECPw7g1qbSGUzgNB4MyEnIALquCBlKo1BLAYAKMCKyrqmVyhWlNbK1mq9W47W6pRoVA1LJpdhdBI6AC8OlyXT4QhEoidOndwjEdogRSKdUivLg2jIA3orEiCOYnIDQaDWKm3pN-G0jFEuicEdIXujOgA4vHdLYJiJ1bgTkGEhLdM6TfqXHga0UWDBIpoWN6HjSwQNsyIXvx2AQ7RqsABZKs6E3TgDCpXVcjy85nYFXbZ01GopF76X7YkiQ7gI8TSaDfZkYm93cYtArcD5h5vzNxeXHJqctic09n36lE4C4APLLpuW6BpeRSniOvYTmsQGgeByyXpB0HpHuB5HoOUxnuQo7bkU14DneLCPn0z4kf6H6gghTgAEJgeUACa5QARqTjlCBC4ruh0E6LBBFppxTEVGx6rbvxSZxm0Dagq+A4nnh55EQpOFkQ+T4vjh7C0V+nG2CBAAaRZYBxazlE4ABqfHVlB0FCXA-AiWsRmmeZYBSTWqEBAE1w6LcKhqBo2jWDYBRQaImQQKwxToOwloACSCLQbzoEl2aMJmARkkoYBkjKQA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_patyear.Rd b/man/tm_t_events_patyear.Rd index 4594e2750..354a2b091 100644 --- a/man/tm_t_events_patyear.Rd +++ b/man/tm_t_events_patyear.Rd @@ -192,13 +192,13 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6e4YHQAITpMh0ThasB8cBNaFQdWy6SuoJ0eRpeVwPT4QhE1JReeEYjTYPqMCiSvZlLhqBCrDgLDL5Z01Cg9Dg1Bp3x0WBCulK-D5glE5H4JiIjB0WxCtEpBgAmk3GNTSqQ+7DhXYOyInoSSnldboUZ6Xfv0+WWJXNCwaQQMoKCGIoqIu3B1HB+C3WxdHzIxBpW9GFoXc4GVf9nwlM1qgKS4XiwfZPgQo5ygBOQc0vVs3xET8J1PG5EOOa4Dx0DDSI6fgqyIUJuxRexnEw38azIOFgPvSCXxwj9xx-VsHyfQCUWA0D6BECDBOg507meSAKVYgEmN-HRuLwns5JYqkL2UkxaBaL8aQYlwsJKciTJ0etmEafC-0k193zwvjywEgDCx0W9qEEcCXKg9gKi9WSdj2VDkLAIKDkU0iSlU8d1K9R4wFIgJy2SsilACWhjB0GEVDUDRtGsGwinTUQsggVhSnQdhEwAEkEWgClqt9GG0fweSUMBuUNIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } \item{example-2}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeWlTra2TnUNTa3twXCk5DoApAB8sz0lxrTU5IzsAAqlWKUAsgDC5XPZszoE7Apg-YNOAIzXBde3QwBMTzovA0MAzNdyGwLJYQEolGCCULkdi0UTNbRkHQAXh0hwAcpUsMiUQAGIGLZY6CFQuDsCDwiikUTInRQcTZcgAc1UMLhcARpEBSgAvgEAFZEbJRADWcFYolyiRsyX4cGMUGEpCiBH4sKaAqFovFwGg8AleTkAF1XBAKjU6nlgMAXlVqtdDcbTX0fsMZYkrTbXi4wA6TUoAMQ6N4YHROFqwHy6NKZepQegiHSiHzpHQkIO0xgwKKaFg6HOMWhxkSiE1oVB1bLpK6gnR5Gl5XA9PhCYs05vCMTVsH1LNK9mUuGoEKsOAsLvdnTUONwag0746LAhXSlfh8wSicj8ExERg6LYhWiUgwATVHjGppVIC9hwrsRbgT0JJTyut0KM9LsfNe7LCz+ZpBAZIKBBiFEogznA6hwPw44ThcQEyGINL5oW8ZwMqCEgRKZrVAUlwvFg+yfARRzlMRYCVE4AAaAJyI234TuBIhQVuKL4TchHkZRNFgAEcF0U+tL8PwUSkEQoSzii9jOPRcH9mQcL-mxmGgUxkGbrBE6AcBSEoih94YTp2HOnczyQBSCkArJcGJhBLFzuZ8lUl+NkmLQLTQTS0kuAxJQCb5OhDswjSsfBRlgXZGmCSU2mIdSencII6GxVh7AVF6Zk7HspHkVlBxWdFtnMZuDleo8YCCXxYJVQEAS0MYOgwioagaNo1g2EUNaiFkECsKU6DsGWAAkgi0AUw3gYw2j+DyShgNyhpAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_events_summary.Rd b/man/tm_t_events_summary.Rd index 8c42f4c2c..47fc8eb87 100644 --- a/man/tm_t_events_summary.Rd +++ b/man/tm_t_events_summary.Rd @@ -217,8 +217,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otQ6AKQAfD3FJTowgqHk7EPDOuW2ABIAYrUAvDqyonBRKRkUkxDT0wCEtOLQ7LNzszYAfjoKYACa97hTB-bOOrf33-sHNv09VLpDJRahQehwaiTMCVQT0ABWcHUMzgIQyOgWYIA5vcAtM8WVyqUnHUGk1Wu1gnBXL8MB1+M1tGQosZsaI6qZzBorLEbEVfiVYnUhQDXiVRuM4HsDsNbABZAAKSyilScWB0q2JqvVy1W9yeeDFssVyqwThWZTV5o1esezyNJXlSuqUQA4lgAKway22ADyAA13Ta7mAPfaBW9FSq5QBFAAMAEZvcdTlB2JVY4mAHKlOVyF4R6ZO6PxgBMyZOGDOGbLObzBZljqjAGF40nVimq2nW9ncwT8a9iNRBDAIKDwZD2ck6KJSNLI86VWrvfdKqpLIJ2cTwzKnabrbasJCQnB+Jadwvle6vbbXcx+LovdvDYW7FGa4nvVAxLRxxCobEwDAKumYJnW9wALoQQUgHATCoGVM2kEQfmRrFh+5arN+oi-mC-7Qg8GAAJzEaRREAPQAFpkWRlqVAAkriDYLlEPbtjo2G4ROAEhEB9xseBYBQf2OgiUOf6TrkIRyMA0DwKI7BDiOY54ZOcgQXUUDiAQGQsFA6iqIpRDDqOEnUKIImxEMAC+NIlAAxAA5DoroUKoITZFiOibqoBgPsY2SnjocBMqQJhshgQwVMSdTRSSAI6HS-AMiFFCkCybLxIEtLfu0EDRJoLBTkYcliOwcUybOLCkKIADqwLsKVCkVQU9x7i6uIQUMdI-lEhWMMVOhNeVRJOJVoSMDV9WZI1sBlS1IbFp1SjWQE8JENkUQANZwKwCl5DYyT+VAwjpQQ-AnE062bTte2yXN+2JOpNJoKgdTZOk855N6eTMXwQgiOyqz-cIZWvA0UTpalZCiFEogjjAnjztMqndLapT8NoA26E4oXsrCMCI2wF7THkpUrmAcUk8MLAwH1LDejpG0EGIcOQki5D8MjBxMzIYjev1tDgiIUS8yzCn3BUNTPGs0KlFgcoy5LCvNuUuKoa+JQbCIBlnujCs-DKGsyqyUBYvTjB5WjawZMzrPaxzp7c9MYv86sgvC5srsS5To0y3kfFgD1VsW6IyHG42Du6z9iSB8HUD5aHyHAAm0EOjoO1wKgUREIwD6MN67xOMxJu0C0QWrAspTVKqRoR9Mpvm-17Q-oztt87DUec87wzewLLBC-QIve3Lft4DoAdwT1OFJ0JKElwcXcVxPsdT5xs9QSnaeaxncBZzneeqIXjjF+nAXl3rGLV7Xr71zTyWQ0QoTW0XrwEgEAS0MYOjsNk5BqBobQ1g+RDFEFkCArBSjoHYK9AAJIIWgBQ4EbEYFjAItkIBgGshBIAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 6c6f7f5b3..7aec2d4a8 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -161,8 +161,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVOABp1DU2t7fytrhAlonCkGDNw-OwAjAUA1tn8OgC8OgpgALKqMxAQcAa2aaLkjPsBJRjUUPRw1KJ1xNFPL2-sFQMFYy0ajUHY6ABipWqlSc916Azq-0GAFIAHzInolfi0a7ZdTsByVBwAIQAUgBJcoFDBrOBwVDtEFg+zOGxojFTEo6GCCULkdiYrkABVKWFKBwAwuUwftbOUHFhyvtcIKSiKxQcZWAAPLaZhMoTMDQkHS5KCsUSKPCqsoANShYNEsB8cHYLUdcAAjisCgAmAAM-rkBVEtAAXrpdjlgzpGPSngRI3ZHLCVZyuXaoQ4teVzaJ9oK2ejBfRNlFGEQUqI-n1+nDPlFvq9q0ibMlHs9m0oAL4BABWRGyUVpFrNoTbRnGxigwlIUQI2NETQHQ5HomA0Hg1bycgAupM0Kg6tl0gLOXkwXk0yU+EIRO9drfhGIzxmGlE561UERRII46+Mx0JtQV2fZyj-EJLCmIhjB0JwWm-X84zsZ4RGVG08k3JN9iRdD0y5VAWFgBcwQIDJB0TUQohmER1EWADAJ0MiKLEMFNG4QQ4HnciZBfPJgGAHDa32XddwKfZ1XFKVlT2MBJIOO5r0YnQaLgOitlAsA5QVJUwBtYMbQbehWCidjGFInjKOo141PIJYbRKZjeIfHQzNoVCuKcyixygAShIGESxJUwR6BmUhSIFMAYX6GScKwBSwDkAz8IzVT1K1aKCxSnRksYisUiiYzTJYCyWKotK7IYwCvNY3Y3I87iyp8vywFwsBRJDEKwoi-YxQlFw8FkrAnAAcXJbUADllliqL7FKWxSmmwb9kyxLcuUirFi1PqBv0pSM0IxhZHC3YavKmz1KqjMzrYjjPMsvjEhatqOtk9UJXm31FIclSLrsnNGEEABzMossY9aMw6fgPyIUIQIhKEYULHp1qBagbjBSJqLobysa6XjIoqGoZsqUpwXBaoZM2jTZIATTuAIAloWD2GyG4oAsbRrBsIpOVELIIFYUp0HYQ8ABJBFoApxZmRg9QCbslDAbtdyAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 4978fb7a8..41a8e2bad 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -131,8 +131,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_mult_events.Rd b/man/tm_t_mult_events.Rd index 27e43c5da..029f8663a 100644 --- a/man/tm_t_mult_events.Rd +++ b/man/tm_t_mult_events.Rd @@ -148,8 +148,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAYQBZIpKyyur+AhglAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdJRreyenRIoJ2BTBc2wdsgE0ASWznlOeHLkHAAhABSPz+OmemVe2VsLUhz1auScAEVEWBMrYmgBGDFYpoAJnx2IAzCSmgAWZ5DPYQW4zOaeOTAaHNBF4KGY9nPc5Fa4wBmiVwQHIFIpJYCs7kFXmXUXsiWhKVs1pykVoVBFeLRJ4QDJJHQAXh0SVwDT4QhE9xNluEYj1GQyJT86xga3K2jIswaTp01Cg9Dg1GNXKaJGIMGiUDIOhacC2sg0JHu9FYcYTMg8ln1TQDonuMf4OgACoxlqpy8WAHKwOB-X1OpLHXQm1Uc836v06FiCzQsUMEGJjAhiPyiYNwdQJ9iPaFYDtczILpq-MByf6Yhc0zvdnQTgCOfn7jEHw5kY4nImn-CeYGRaMhV6n5GLbfvLRR6M5xloFQTob2M4G6NhkMTUKQZ4jpek43o6e46EO0E2joJ60IGIgbOeo6zDkrQpHOmLYninLQtixKkURTTkpRBLUuuIFdnuz43oOd4EiRm4EhRXFkhS9FDHujF7tQEFQReojjrBr7wXuSESaGaEYXAWHIeweEtARd6tNkThNAA8mucjCQhLGvmxSItLpBlGaBOgmX6NT8K6RCeCGJpAU4u7dnAXrrKQrCoK2XKkOWHjwGQzyNoJ9lKEMtDGDo7DxOQagaNo1g2GkXaiHEECsJk6DsJqAAkgi0CkpUTow2iMEM-RKGA-TnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 7cc0fe4bc..9138d5e51 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -67,8 +67,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWolAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEyto7u3uBoeD6kuQBdVwgcgqKk4GAFMF38442tiCU0VCL46PZ0nSSdAF5n0NwnviERUTedD9hGJHhAMhkSn4Jug-PQoKIZH54sYiKDweDqFB6HBqADjgAheEyHQASQgKOOXzB6I+nhWunex1OlKe6NQHloFAmxFxjLADlyDnxACkSdkWdT0ZoWP93gQYu0CGI-KIcXB1HB+GiaRl5YqxADpYxaFiRJMFTIQac5FSdRlVSINfwAQRHicsABZSk6JkAcRceB9YFyTgAGt7jgBhADyDgAcvYAJoRsBYTKRgMpY5OaO5XK2WzHZo64vg0vNZq0Yw6djxchqDTaaw2NLU0RxCCsTLodg3AAkgloKX7qsY2kYzQaSjADQ2QA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index 86f271b96..f4d00026c 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -119,8 +119,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NboPzUKD0IjMUgUjgNPE6Un0ODUdGPABq0W4okeiNxdPhoSOujhf0+3NpeNQHloFDWxGZwrADlyDmaACkAJLZMW8umS5ilfjoggxUYEMR+URMuDqOD8HF8vHG01idGaFi0MkidYmmTY-7NFKPAAKmSwmQAsgBhLVgOQ8h0ZS0iG2GhUhsNRmPijJx7M6PWwI0+s2iC1WlP2hNO31ouFuxge+he6sl9j+wNgdMRx65nV8pPW8ipnTB0PdsB53sOjTwVCjMi1nQt80Dit5jLLxf1xvN4t+z4dnIATR78YTq6HLKe2RPE77ObPdKgEAbEGHm7LyaHlYdm9d7s9OBvWdGZ2xHJ4ADksHVCCYync9y0vBVMigmCs3vHR4KfN1-HrIsQM-QdbR-Pk-zrACmyAzc2wPcDMlZTIXljR9+0Q20r3oxjHknFiMigHDBD8PC4Q-C9iPXJc9y3CjdxAmiWkPBj8gcU8JLE4c-iUlS7wdQY6T0zClEGWhjB0dh4nINQNG0awbDSXlRDiCBWEydB2BBAASQRaBSTzLUYbRGEGPolDAPoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 424ce6fbb..0de76f252 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -89,8 +89,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 6e117e107..2992351ab 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -102,8 +102,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEPxQpFD6RlzUAPpBIdZKMaGGOgDutKQAFrQQ7Am4OiBKOjoAggAiAMIAsmE6pDAEkXAAHpFQ-AQwhSWlAMoAMjV1Dc2t-KLUOgCkAHyTJrTU5IzsDj0OAEIAUgCSpVNZc2VVACSrGzulAUVHlcdVxT22pbbVSTfHD08vXe-3TgByz1eRnexQBQKUAF8AgArIhZSIAazgrFEOWCUBsSX4cGMUGEpEiBH4tFEDThCORqOA0HgaIScgAuko2h0kSjRDUCOwFGBHg5SgBNXa8vK8s5bEV4HS8z4Q6W8qo9JwARVFMrAxVs5QAjOrZdqAEz6zXagDMJq15QALLzYfCIOzUeiQnJgLKKpVLZ7eYyaqyYE7RK4IGV+jUEsB3Zren1fczQ56Ixiox6qvGQ2hUDUsmkeRAigkdABeHS5Lp8IQiTmlyvCMT5opFOqRQnoSKoRiWRiReAk2QaKxdJs6ahQehwCal3kABS7REYOkqcH7wUsEFFw6bCVpumnMfTeC3RVQLAopF3JY1YbjR4LI50p4056JRCnGolF0395Ha8Yk6vAh0nhAgxEiURJzgdQV0bB8iiAkCxCvTQWFoccRCJYCZAbG4xVNbYsCcW85FwY8mwgkRoP4K8DQIojeTIkiyI6HFiGo0sEOw0RwMgqjYLgzjQJrHQUK7dC4EwxC0VwjUqlKJxygAeVKO1SJ-B8KKg8h2Nkyp5KUlSwEYtSBJgLJ2kArChJ4yjtP4h9BKQ0tRLQ+gMMc6TPTwqptkBcpVLIopNKomiwB8vyGPUoomKinQOlEUh+FYSypJsrSYMCuKrKckTUPEySuPYGTZUeIUAtioLeO00K5UFSK4KuJtGoCAJaGMHR2CyJYoAsbRrBsAp71ETIIFYYp0HYLNjkEWg8imiDGG0fwoSUMBIUZIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 27026c12b..93d7ea80c 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -145,8 +145,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwHF4vHUKD0ODUdGPXIk0g6clZKl2BkiR6I3G0+GhI66OF-T4Chq0lgwPyaFjoggxMYEMR+URMuDqOD8GnCjKKxi0PlwdaqmTY54pUSCehajlwgiQp5YACyAp0fw9AGFso85HJBYaMlqRLr+Cy3Z6wDK8cH4xlUCxYBtlZb1aJNdrIwbDYrqIJzSq1dbPilHgAFTJYTLu-2BkOh8M68hRiVgAASWEeSZ0iaFtM0W2iCqVzszGtbef7Ru4xYtZdm-2alaeADUAJK5Le2JtznQz9vRqsAeVytgMACFMrknPktwA5Jw6d3Prfuhyx-uDw1QQtx0YDNlxzCN23zYVjVNegRCXK0VwrI97UdaNMifLBnwDMA-xbXMT07dDMKfbDm0NYxaAqPV0XsZxfzIvF6CgcN4nNY0QIQsC2z1SDhxYGC4NLBD2FXW0ULgJ1vTAa8MKwg8h2FY9qM7GTiNIw8KKojs7EcFwFIyXDaUELUn0yaNaGWCBWD7BShgMpQhgsnR2Hicg1A0bRrBsNIhWJeJWEydB2BBAASQRaBSUKtUYbRGCGfolDAfoziAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index aa87f47fb..4672fa128 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -145,8 +145,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOynAHEikrLK6v44AHMlAF9FCAArIni-AGs4VlFE0Jtw7uMoYVI-An5aUTLR8amZ4Gh4WaS5AF1XCByCoqTgYAUwa-zHs4urptbF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0VjVRgwPzkvwRIiMUSkHF4vHUKD0ODUdGPXIk0g6clZKl2DkiR6I3Gs+GhI66OF-T4ShqsljUzQsdEEGJjAhiPyiLlwdRwfgs6UZDWMWhiuDrHUybHPFKiQT0Q0CuEESFPLAAWQlOj+-oAwtlHnI5JKLRlDSITfweb6A2AVXio2mMqgWLANlqHXrRAajQnzRaNdRBHbtbqnZ8Uo8AAqZLCZP1hiPRmNx43kRMKsBOEPNACSADlbI3HpmdBmpaz6Yy1sZ2T0-Fb87Wiz3SzPLSwbfQRPat+x-s0Ut7HgB1ADyWFyAAYAEwAMReeCDYDvD8fAEZ3wjOcYx0Hc+yTH8nzfD8Z2A6VFyZPwVygHpN0dbcSz7MtpQrKsT3Qs96y-SCX0AsA4ItMDTSTABNZV52lYxaAqai4XsZxYK7VUK3XTUvQLfUqLNPcdCtQ9jxrAjz0vH1MgANUyfIQ0DP4xywcdw3IijpSEpN5MU5TUwYjJtIyegoDjeI7Q3fit2LeMsJEsTbXwwtCJaGTHgAIUyXIhxUsAvLUjSgK4nTMNYr8fL8wzOJnQRDTHTIk1oZYIFYacGKGEylCGVKdHYeJyDUDRtGsGw0ilYl4lYTJ0HYEEABJBFoFImsNRhtEYIZ+iUMB+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index de64a0e34..0af0b42f4 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -165,8 +165,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiOLGNb0Vh+ADmzEWOLxeOoUHocGo6MeAHEabp8kyiMxSHzWFl6BA+TBuNEhbYmSJHojcfT4aEjro4X9PnKGvSWDA-JoWOiCDFRgQxH5RCy4Oo4Pw6YqMkaTWJ0frGLQZXB1saZNjnilRIJ6BbSIbIU8sABZOU6P6RgDC2Uecjk8vtGQtImt-DZ4ajYC1eJTBYyqBYsA2hu9ptE5stWbt9sdPrRcP11EEnqb1fY-2aKUeAAVMlhMhGE9HB8PR0nU2mM1byNm1U98rZHsWdEWFfSInzRGtjIzKXqDXCu2b5-WNw6q87Wyx3fQRF6nTNe-7A8HQ48AOrsrD5AA8gAagAYi8eAxmAf4AYB4ETtB-4ABIAJJgRB-aIVgqHwWAyazval6Lt+WFAehSYblu9q7ow+5+IeUDHvEmyyAKjCVq+taZouDaKm2HYvs2PafJhMFkbhVFznWxHLgAmtGxi0BUNrovYziUQReJQBA-gChU1I1J6rocc2XELjavH0ueLY6K6j7PtZwktB+QZwCGZ5hpktiAQAGv+SaSYR0kqR5fzeX5WAzteJhKSFdiOC426FppGT0FAFqEkQ+lcie7FnreNZERZ0XWS6D4eoJ3bvjoAaue5OgEGGzThf5eGBYqRVLg1TUtZFeEpXiinKV1amJfa7UZDU-CZZ4rJwqBmT5LkY2Fg0kmKdQ5B5cUcDcOadDdr4+0+p5eQYVBuSZKBuH+sFXWPPJbVKIMtDGDo7DxFtUAWNo1g2GkCrEvErCZOg7AggAJIItApJDFqMNojCDH0ShgH0ZxAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index 843bb2d05..cd211d8ed 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -144,8 +144,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzMpyKSssrq9zhXCAyMaHhRP3ooUQBrOFJRIoBzRjhUdgUwAD12XIBZAEUAHwBhLbkMACoAOUyNgBJllIGxdhzmuRTNbkFdAF47RydFXp1+rAxH5RMRUGJZvNFssVpstidcntrngdHdRA8mr8Xm9Pt9nH8GhIhiNxpNpuECDEiDJgaI4CJ1HB+Et-hlKdSCBCvq9GLQoPQRH52TT0Y8nClRIJ6HTSDovoDBsNRhMps8Ghk6QzyPw5QC0UrSVMGgT-kSQWCIRSqSKQfS4IzmeqdMLOdNuSw+QK4ELra6Mc0JVKZbqFbSLaI1aydJr7dqQ-rQURwaJcE7jLQKkzdfZnMalABfP4AK2pED8E1Y6KSNnC-DgxigwlIQv4tFBfhL8XLcErwDRiVCcgAuj00KgivFoiyMkldUlU-8+EIRG6dEvhPcnSU-M3RDAAI7TjLH6j8+m65aZfjaRh0nRObRkab0Vg6OF2fkiG5OmehO4XsAxW-KMMhYGA-B5XUXVpO0HSPY9j2g1ceU9QUkIHTxgGAS88nyZYhyHQNpUmKClkArANhuHRllyJwAA1ljkSMEIQmMHQAzIKOWH8dGYlian4HciE8ahdQAMUyfJaIXFidBJFVVySLDljNeSyXwwieMTZM51CZSwDNbSxA0mSWOoahZS+JDbS1Jl4JYpDdRQz9vXQpTsMAzETOjIMSKssjmmyJw9gAeWyRi+Nkti4y+S8nCC0LwrAHi-gQ1LeKUP5aGMHR2Hicg1A0bRrBsNJ-lEOIIFYTJ0HYMdLkEWgUnqulGBvP58yUMB8yHIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index d9c1a080e..e0a427b8c 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -125,8 +125,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpQGIdABUZxULKBokOkTGOqQAFrrkoqQ6sqK6RoIJOgAGTgDyAMoAIgCaqTpQEPxpOQDCWVhOAIJZhZostFD0IqJhRDr8cHwQMczkOjC0oqK0EADmXQFQGEr8M-pGXNQA+gukUNbzi4Y6AO60EePsG1C4OiBKOjo1OVkAMkthMASrcAAeq1D8otTXt3uDwAJJlcnlgABGAC6zwAcjVVuNyBNVKslABfRQQABWRHGqwA1nBWKJTjMbHtusYoMJSKsCPwRm88QTiaTgNB4GSznJoa4IHdHs8zsBgAowEKHhLofyIEo0KhnuMjuwAWcdABeaabXAAvhCNpaoYCYRiNUQG43UgwVb00SCGAwFgcAFWnTUFpwajGiU5HpECbMVDhGR2FoiCV6y3unXFWC6bUSqVRt1Wli2xqMY0EcL4ghiVYJETqOD8dgENWSrAAWSjOmTtfKOQlcgujbrYDbaZuP34dqImx92vszmjsZ0DqdTQAXnBVln2trc-nC8W4KXyz2rZWJVknAANesSrA1couPANsAAIRrWAA0lgAEzHsBg-KvipVWpZV81ADiF7djGE67mA+5HpeJ5nkB27AROyRwAivpgLQNIQKwEpptiNzYtiaE6OwyKqFAFjaNYNhXDGoihhhNToOwirAoItAXExCSMNojDYhiShgBi0JAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index de6b90271..91173fea1 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -156,8 +156,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOz8gCEikrLK6v5qeiUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urptaF0PvHnJbXu8lGhUEV4tF2A0kjoALw6JK4Bp8IQiUSwnTI4RiSEQDIZEp+NaiQQwGAsVh+egcBp4nTUKD0ODUdGPXIkslsHRUnRYIgRHQAcUYREEqDRtgZIkeiNxtPhoSOujhf0+0ppeJYMD8mhY6IIMVGBDEflETLg6jg-Bxcrx+sNYnROsYtElcHWBpk2OeKQIkKeWAAstKdH9AwBhbKPORyGU2jKmkQW-gs-1BsDqjIxjM6Gr8QlETzMuH2ZyxuVU7UsNFwu2e0Qms1J61x2tG6s6J0u+gid32mb-Zo+v0ABUyWEyaZSfwAagBJXKz2xRrOym0J83kZM1v2ZOcLpdgQY2ldr9ksWgALzdTvbreN66b2Yyd-bnddvbr7AHQ5nmReeBDMAwwACQFZcyzXRtNz1Hdpz-KNsxPOVBFNAA5TIU1oZYIFYNVVzxVAWFgDY9Q9NsG0TTdmxtF9HW4QQ3RfL9PinMBR3HAMI2DR52InKMILlB9oOVJ58gPRD1SPHRBkGLCdHYeJyDUDRtGsGw0llUQ4hwzJ0HYEEABJBFoFJDNNRhtEYQY+iUMA+jOIA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } diff --git a/man/tm_t_tte.Rd b/man/tm_t_tte.Rd index 4bc35695b..508c01531 100644 --- a/man/tm_t_tte.Rd +++ b/man/tm_t_tte.Rd @@ -205,8 +205,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOzbWycikrLK6v5SciUAX0UIACsieL8AazhWUUTQm3D+OGMoYVI-An5aUTKRscnp4Gh4GaS5AF1XCByCoqTgYAUwa-zHs4urppbb0PvHnOaXGA3pcWDA-IwlusiDBUEU6KJSOwGpkAMK2TJYACyKOyOgAvDp4YiGhkIcZ8To-lidAAhR64Ek6YgwikEJFPamZemUjmYnQox6DDJyBkQDIYvkEolIsUZHRkimPGmIHQABWoUAIcHoRHpjOZsIJbL+KuyjEEAHMdAANbmPFEqlHQ+jxDyWCCChqDQZKNCw8LxaIyjJJClJUUZPhCESiClR4RiYNykp+NY9OBJuWEqD0ODURVgWy0eB2Ig6JzaMh2HMiPWyrNJI66Al-T6AiNZnSgvyaFismKjLWiPyiPNwdRwfiZzu9xi0GtwdYDmSJ54pY28u28nFb1HorE7sByEWMrNUzGPU86E-1uXdslQlkE++Qg0drOoFiwDb9wdiEdjhOU5XhkvbUIIi4EMuQ7sP8LQpI8qoYpk2LZFuSFYChgrvp2jwAPK5Jet7CjhGQIswng9n2RrQf+o4iEB05ZrO870CIS5-jMa5MuyuROLaeA8jSmJYAA0lgABMgo3p2cqPHxAlXjJnYaPAfioKMZCxjRnEAQx5BTmyACMAAcEkpBJAAsADMIo6KZEnKVmcCVmsizbFRjC-iuw70eOBlMXKLELhxPmwW2CFgE4ABqABytjZE4uQCkepFyVFcUJUlKVpRkxi0BUk4UvYzhKYyQrXkogy0OS7DxOQagaNo1g2GksqiHEECsJk6DsH6AAkgi0CkA2jow2iMIMfRKGAfRnEAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 2a447e4514ec88612875b492276dac042ffb15d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Thu, 5 Dec 2024 19:32:25 +0000 Subject: [PATCH 55/86] docs: minor typo gg -> ggplot2 --- R/tm_g_forest_rsp.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/tm_g_forest_rsp.R b/R/tm_g_forest_rsp.R index fdd81c2ed..a7b59a28e 100644 --- a/R/tm_g_forest_rsp.R +++ b/R/tm_g_forest_rsp.R @@ -246,7 +246,7 @@ template_forest_rsp <- function(dataname = "ANL", #' @section Decorating Module: #' #' This module generates the following objects, which can be modified in place using decorators: -#' - `plot` (`gg`) +#' - `plot` (`ggplot2`) #' #' For additional details and examples of decorators, refer to the vignette #' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. From 4829c00505e4dc2933d88484ce3368a2ee86d59c Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 22:34:39 +0000 Subject: [PATCH 56/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_g_forest_rsp.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/tm_g_forest_rsp.Rd b/man/tm_g_forest_rsp.Rd index 9fe3cd162..1472b09f3 100644 --- a/man/tm_g_forest_rsp.Rd +++ b/man/tm_g_forest_rsp.Rd @@ -135,7 +135,7 @@ This module produces a grid-style forest plot for response data with ADaM struct This module generates the following objects, which can be modified in place using decorators: \itemize{ -\item \code{plot} (\code{gg}) +\item \code{plot} (\code{ggplot2}) } For additional details and examples of decorators, refer to the vignette From a6e730c80ad5738b92629d6e45861a192a56440f Mon Sep 17 00:00:00 2001 From: Marcin <133694481+m7pr@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:16:47 +0100 Subject: [PATCH 57/86] introduce decorators for `tm_g_pp_adverse_events` (#1269) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working Example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) library(nestcolor) library(dplyr) data <- teal_data() data <- within(data, { ADAE <- tmc_ex_adae ADSL <- tmc_ex_adsl %>% filter(USUBJID %in% ADAE$USUBJID) ADAE$ASTDY <- structure( as.double(ADAE$ASTDY, unit = attr(ADAE$ASTDY, "units", exact = TRUE)), label = attr(ADAE$ASTDY, "label", exact = TRUE) ) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADAE <- data[["ADAE"]] caption_decorator <- function(default_caption = "I am a good decorator", .var_to_replace = "plot") { teal_transform_module( label = "Caption", ui = function(id) shiny::textInput(shiny::NS(id, "footnote"), "Footnote", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::labs(caption = footnote) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } head_decorator <- function(default_value = 6, .var_to_replace = "object") { teal_transform_module( label = "Head", ui = function(id) shiny::numericInput(shiny::NS(id, "n"), "N rows", value = default_value), server = make_teal_transform_server( substitute({ .var_to_replace <- utils::head(.var_to_replace, n = n) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } app <- init( data = data, modules = modules( tm_g_pp_adverse_events( label = "Adverse Events", dataname = "ADAE", parentname = "ADSL", patient_col = "USUBJID", plot_height = c(600L, 200L, 2000L), aeterm = choices_selected( choices = variable_choices(ADAE, "AETERM"), selected = "AETERM" ), tox_grade = choices_selected( choices = variable_choices(ADAE, "AETOXGR"), selected = "AETOXGR" ), causality = choices_selected( choices = variable_choices(ADAE, "AEREL"), selected = "AEREL" ), outcome = choices_selected( choices = variable_choices(ADAE, "AEOUT"), selected = "AEOUT" ), action = choices_selected( choices = variable_choices(ADAE, "AEACN"), selected = "AEACN" ), time = choices_selected( choices = variable_choices(ADAE, "ASTDY"), selected = "ASTDY" ), decod = NULL, decorators = list(plot = caption_decorator('Marcin', 'plot'), table = head_decorator(2, 'table')) ) ) ) |> shiny::runApp() ```
--------- Signed-off-by: Marcin <133694481+m7pr@users.noreply.github.com> Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_g_pp_adverse_events.R | 90 +++++++++++++++++++++++++++-------- man/tm_g_pp_adverse_events.Rd | 37 +++++++++++++- 2 files changed, 106 insertions(+), 21 deletions(-) diff --git a/R/tm_g_pp_adverse_events.R b/R/tm_g_pp_adverse_events.R index 95f1356da..38e69e67f 100644 --- a/R/tm_g_pp_adverse_events.R +++ b/R/tm_g_pp_adverse_events.R @@ -47,7 +47,7 @@ template_adverse_events <- function(dataname = "ANL", list(), substitute( expr = { - table <- dataname %>% + table_data <- dataname %>% dplyr::select( aeterm, tox_grade, causality, outcome, action, time, decod ) %>% @@ -63,9 +63,7 @@ template_adverse_events <- function(dataname = "ANL", key_cols = NULL, default_formatting = list(all = fmt_config(align = "left")) ) - main_title(table) <- paste("Patient ID:", patient_id) - - table + main_title(table_output) <- paste("Patient ID:", patient_id) }, env = list( dataname = as.name(dataname), @@ -110,7 +108,7 @@ template_adverse_events <- function(dataname = "ANL", chart_list <- add_expr( list(), substitute( - expr = plot <- dataname %>% + expr = plot_output <- dataname %>% dplyr::select(aeterm, time, tox_grade, causality) %>% dplyr::mutate(ATOXGR = as.character(tox_grade)) %>% dplyr::arrange(dplyr::desc(ATOXGR)) %>% @@ -156,11 +154,6 @@ template_adverse_events <- function(dataname = "ANL", ) ) - chart_list <- add_expr( - expr_ls = chart_list, - new_expr = quote(plot) - ) - y$table <- bracket_expr(table_list) y$chart <- bracket_expr(chart_list) @@ -187,9 +180,35 @@ template_adverse_events <- function(dataname = "ANL", #' available choices and preselected option for the `ASTDY` variable from `dataname`. #' @param decod ([teal.transform::choices_selected()])\cr object with all #' available choices and preselected option for the `AEDECOD` variable from `dataname`. +#' @param decorators `r roxygen_decorators_param("tm_g_pp_adverse_events")` #' #' @inherit module_arguments return #' +#' @section Decorating `tm_g_pp_adverse_events`: +#' +#' This module generates the following objects, which can be modified in place using decorators:: +#' - `plot` (`ggplot2`) +#' - `table` (`listing_df` - output of `rlistings::as_listing`) +#' +#' Decorators can be applied to all outputs or only to specific objects using a +#' named list of `teal_transform_module` objects. +#' The `"default"` name is reserved for decorators that are applied to all outputs. +#' See code snippet below: +#' +#' ``` +#' tm_g_pp_adverse_events( +#' ..., # arguments for module +#' decorators = list( +#' default = list(teal_transform_module(...)), # applied to all outputs +#' plot = list(teal_transform_module(...)), # applied only to `plot` output +#' table = list(teal_transform_module(...)) # applied only to `table` output +#' ) +#' ) +#' ``` +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -268,7 +287,8 @@ tm_g_pp_adverse_events <- function(label, plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { message("Initializing tm_g_pp_adverse_events") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -293,6 +313,8 @@ tm_g_pp_adverse_events <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(ggplot2_args, "ggplot2_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, names = c("plot", "table"), null.ok = TRUE) args <- as.list(environment()) data_extract_list <- list( @@ -319,7 +341,8 @@ tm_g_pp_adverse_events <- function(label, patient_col = patient_col, plot_height = plot_height, plot_width = plot_width, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = c(dataname, parentname) @@ -408,6 +431,8 @@ ui_g_adverse_events <- function(id, ...) { is_single_dataset = is_single_dataset_value ) ), + ui_decorate_teal_data(ns("d_table"), decorators = select_decorators(ui_args$decorators, "table")), + ui_decorate_teal_data(ns("d_plot"), decorators = select_decorators(ui_args$decorators, "plot")), teal.widgets::panel_item( title = "Plot settings", collapsed = TRUE, @@ -445,7 +470,8 @@ srv_g_adverse_events <- function(id, plot_height, plot_width, label, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -564,14 +590,29 @@ srv_g_adverse_events <- function(id, paste("
Patient ID:", all_q()[["pt_id"]], "
") }) - output$table <- DT::renderDataTable( - expr = teal.code::dev_suppress(all_q()[["table"]]), - options = list(pageLength = input$table_rows) + # Allow for the table and plot qenv to be joined + table_q <- reactive(within(all_q(), table <- table_output)) + plot_q <- reactive(within(all_q(), plot <- plot_output)) + + decorated_all_q_table <- srv_decorate_teal_data( + "d_table", + data = table_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + + decorated_all_q_plot <- srv_decorate_teal_data( + "d_plot", + data = plot_q, + decorators = select_decorators(decorators, "plot"), + expr = print(plot) ) + table_r <- reactive(teal.code::dev_suppress(decorated_all_q_table()[["table"]])) + plot_r <- reactive({ req(iv_r()$is_valid()) - all_q()[["plot"]] + decorated_all_q_plot()[["plot"]] }) pws <- teal.widgets::plot_with_settings_srv( @@ -581,9 +622,18 @@ srv_g_adverse_events <- function(id, width = plot_width ) + output$table <- DT::renderDataTable( + expr = table_r(), + options = list(pageLength = input$table_rows) + ) + + decorated_all_q <- reactive( + c(decorated_all_q_table(), decorated_all_q_plot()) + ) + teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), title = label ) @@ -597,14 +647,14 @@ srv_g_adverse_events <- function(id, filter_panel_api = filter_panel_api ) card$append_text("Table", "header3") - card$append_table(teal.code::dev_suppress(all_q()[["table"]])) + card$append_table(teal.code::dev_suppress(table_r())) card$append_text("Plot", "header3") card$append_plot(plot_r(), dim = pws$dim()) if (!comment == "") { card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(teal.code::get_code(req(decorated_all_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index a5e56dd54..8182768b0 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -21,7 +21,8 @@ tm_g_pp_adverse_events( plot_width = NULL, pre_output = NULL, post_output = NULL, - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -72,6 +73,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use for the module plot. The argument is merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_g_pp_adverse_events}" below for more details.} } \value{ a \code{teal_module} object. @@ -79,6 +86,34 @@ a \code{teal_module} object. \description{ This module produces an adverse events table and \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type plot using ADaM datasets. } +\section{Decorating \code{tm_g_pp_adverse_events}}{ + + +This module generates the following objects, which can be modified in place using decorators:: +\itemize{ +\item \code{plot} (\code{ggplot2}) +\item \code{table} (\code{listing_df} - output of \code{rlistings::as_listing}) +} + +Decorators can be applied to all outputs or only to specific objects using a +named list of \code{teal_transform_module} objects. +The \code{"default"} name is reserved for decorators that are applied to all outputs. +See code snippet below: + +\if{html}{\out{
}}\preformatted{tm_g_pp_adverse_events( + ..., # arguments for module + decorators = list( + default = list(teal_transform_module(...)), # applied to all outputs + plot = list(teal_transform_module(...)), # applied only to `plot` output + table = list(teal_transform_module(...)) # applied only to `table` output + ) +) +}\if{html}{\out{
}} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(nestcolor) library(dplyr) From a55de1f1ee0964cc7ca9c053f7369bdac23b805c Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 13:26:32 +0000 Subject: [PATCH 58/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_g_pp_adverse_events.Rd | 6 +----- man/tm_g_pp_patient_timeline.Rd | 9 +-------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index 8182768b0..90625071f 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -74,11 +74,7 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. - -Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. - -See section "Decorating \code{tm_g_pp_adverse_events}" below for more details.} +\item{decorators}{\verb{r roxygen_decorators_param("tm_g_pp_adverse_events")}} } \value{ a \code{teal_module} object. diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 45175ce25..41d9d4026 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -89,14 +89,7 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} -" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, -if not \code{NULL}, decorator for tables or plots included in the module. -When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. - -Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. - -See section "Decorating Module" below for more details.} +\item{decorators}{\verb{r roxygen_decorators_param("tm_g_pp_adverse_events")}} } \value{ a \code{teal_module} object. From bd975e5c07e6db594e7817af0d766e29df7a35de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:20:33 +0000 Subject: [PATCH 59/86] Adds decorators to `tm_t_pp_medical_history` (#1289) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below rlisting_footer <- function(default_footer = "I am a good footer", .var_to_replace = "table_listing") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "footer"), "footer", value = default_footer), server = make_teal_transform_server( substitute({ rlistings::main_footer(.var_to_replace) <- footer }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADMH <- tmc_ex_admh }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADMH <- data[["ADMH"]] app <- init( data = data, modules = modules( tm_t_pp_medical_history( label = "Medical History", dataname = "ADMH", parentname = "ADSL", patient_col = "USUBJID", mhterm = choices_selected( choices = variable_choices(ADMH, c("MHTERM")), selected = "MHTERM" ), mhbodsys = choices_selected( choices = variable_choices(ADMH, "MHBODSYS"), selected = "MHBODSYS" ), mhdistat = choices_selected( choices = variable_choices(ADMH, "MHDISTAT"), selected = "MHDISTAT" ), decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> --- R/tm_t_pp_medical_history.R | 45 ++++++++++++++++++++++-------- man/tm_t_pp_medical_history.Rd | 50 ++++++++++++++++++++++++++++++++-- 2 files changed, 81 insertions(+), 14 deletions(-) diff --git a/R/tm_t_pp_medical_history.R b/R/tm_t_pp_medical_history.R index b73235d39..881e77725 100644 --- a/R/tm_t_pp_medical_history.R +++ b/R/tm_t_pp_medical_history.R @@ -40,7 +40,7 @@ template_medical_history <- function(dataname = "ANL", dplyr::distinct() %>% `colnames<-`(labels) - result <- rtables::basic_table() %>% + table <- rtables::basic_table() %>% rtables::split_cols_by_multivar(colnames(result_raw)[2:3]) %>% rtables::split_rows_by( colnames(result_raw)[1], @@ -54,9 +54,7 @@ template_medical_history <- function(dataname = "ANL", rtables::analyze_colvars(function(x) x[seq_along(x)]) %>% rtables::build_table(result_raw) - main_title(result) <- paste("Patient ID:", patient_id) - - result + main_title(table) <- paste("Patient ID:", patient_id) }, env = list( dataname = as.name(dataname), mhbodsys = as.name(mhbodsys), @@ -88,6 +86,13 @@ template_medical_history <- function(dataname = "ANL", #' available choices and preselected option for the `MHDISTAT` variable from `dataname`. #' #' @inherit module_arguments return +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. #' #' @examplesShinylive #' library(teal.modules.clinical) @@ -141,7 +146,8 @@ tm_t_pp_medical_history <- function(label, mhbodsys = NULL, mhdistat = NULL, pre_output = NULL, - post_output = NULL) { + post_output = NULL, + decorators = NULL) { message("Initializing tm_t_pp_medical_history") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -152,6 +158,8 @@ tm_t_pp_medical_history <- function(label, checkmate::assert_class(mhdistat, "choices_selected", null.ok = TRUE) checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) data_extract_list <- list( @@ -171,7 +179,8 @@ tm_t_pp_medical_history <- function(label, dataname = dataname, parentname = parentname, label = label, - patient_col = patient_col + patient_col = patient_col, + decorators = decorators ) ), datanames = c(dataname, parentname) @@ -221,7 +230,8 @@ ui_t_medical_history <- function(id, ...) { label = "Select MHDISTAT variable:", data_extract_spec = ui_args$mhdistat, is_single_dataset = is_single_dataset_value - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(ui_args$decorators, "table")) ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -242,7 +252,8 @@ srv_t_medical_history <- function(id, mhterm, mhbodsys, mhdistat, - label) { + label, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -303,6 +314,7 @@ srv_t_medical_history <- function(id, teal.code::eval_code(as.expression(anl_inputs()$expr)) }) + # Generate r code for the analysis. all_q <- reactive({ teal::validate_inputs(iv_r()) @@ -335,16 +347,27 @@ srv_t_medical_history <- function(id, teal.code::eval_code(as.expression(unlist(my_calls))) }) - table_r <- reactive(all_q()[["result"]]) + # Decoration of table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + + # Outputs to render. + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", table_r = table_r ) + # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -363,7 +386,7 @@ srv_t_medical_history <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 0de76f252..4b07402ec 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -13,7 +13,8 @@ tm_t_pp_medical_history( mhbodsys = NULL, mhdistat = NULL, pre_output = NULL, - post_output = NULL + post_output = NULL, + decorators = NULL ) } \arguments{ @@ -39,6 +40,15 @@ For example a title.} \item{post_output}{(\code{shiny.tag}) optional,\cr with text placed after the output to put the output into context. For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are useful.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -46,6 +56,40 @@ a \code{teal_module} object. \description{ This module produces a patient profile medical history report using ADaM datasets. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table_listing} (\code{listing_df} - output of \code{rlistings::as_listing}) +\itemize{ +\item Only used in reporter +} +\item \code{table_dt} (\code{datatable} - output of \code{DT::datatable}) +\itemize{ +\item Not used in reporter +} +} + +Decorators can be applied to all outputs or only to specific objects using a +named list of \code{teal_transform_module} objects. +The \code{"default"} name is reserved for decorators that are applied to all outputs. +See code snippet below: + +\if{html}{\out{
}}\preformatted{tm_t_pp_laboratory( + ..., # arguments for module + decorators = list( + default = list(teal_transform_module(...)), # applied to all outputs + table_listing = list(teal_transform_module(...)), # applied only to `table_listing` output + table_dt = list(teal_transform_module(...)) # applied only to `table_dt` output + ) +) +}\if{html}{\out{
}} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { @@ -89,8 +133,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 4d6de2de96011198303b6add7b3061bdb63781a7 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:29:52 +0000 Subject: [PATCH 60/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_t_pp_medical_history.Rd | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/man/tm_t_pp_medical_history.Rd b/man/tm_t_pp_medical_history.Rd index 4b07402ec..6e6dc2ce9 100644 --- a/man/tm_t_pp_medical_history.Rd +++ b/man/tm_t_pp_medical_history.Rd @@ -61,30 +61,8 @@ This module produces a patient profile medical history report using ADaM dataset This module generates the following objects, which can be modified in place using decorators: \itemize{ -\item \code{table_listing} (\code{listing_df} - output of \code{rlistings::as_listing}) -\itemize{ -\item Only used in reporter -} -\item \code{table_dt} (\code{datatable} - output of \code{DT::datatable}) -\itemize{ -\item Not used in reporter +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) } -} - -Decorators can be applied to all outputs or only to specific objects using a -named list of \code{teal_transform_module} objects. -The \code{"default"} name is reserved for decorators that are applied to all outputs. -See code snippet below: - -\if{html}{\out{
}}\preformatted{tm_t_pp_laboratory( - ..., # arguments for module - decorators = list( - default = list(teal_transform_module(...)), # applied to all outputs - table_listing = list(teal_transform_module(...)), # applied only to `table_listing` output - table_dt = list(teal_transform_module(...)) # applied only to `table_dt` output - ) -) -}\if{html}{\out{
}} For additional details and examples of decorators, refer to the vignette \code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. @@ -133,8 +111,8 @@ if (interactive()) { \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpfyiko+o12oB9d09rNw8vQx0Ad1pSAAtaCHZAqFwdECUdHQBBABEAZQAZbx1SGAI-OAAPPyh+UWp0rOyAWQAJIpKyyur+GBilAF9FCAArIni-AGs4VlFE0Jtw-jhjKGFSPwJ+WlEy0fGpmeBoeFmkuQBdVwgcgqKk4GAFMBv8p-PL6+a2xdCHp5zWm8Pko0KgivFouwGkkdABeHRJXANPhCESiOE6FHCMRQiAZDIlPzrdB+eBbWT+OKiUhENi4-H46hQehwagYp5NODk7g6FrbGlsJ5IvEMhGhY66eH-L5ChoM1AsCikCXs555V54OX4hUaJUbIhsqVgBy5BwAIQAUgBJbKykUM3rkRgwDEEGJjAhiPyiVlwdRc+mijJuj1iDGaFi0ZkiDbumQ4gEtFIEKFgVq2JxYJpPORyYVBjI+kT+-iq9OZ7NgLUZPPVzExegCUQzV1xz2ib2+kuBoMh+Po+ERxhR+gxvvt9iJlIclpmgDyeQAmrkc-mC0W-eRS0bWvOlyuq-b8bWjxleltqR5W6GOxvu3Xg22w4PI9G4LGb5OvtO0y1slbclsTJbFXB8dDvLcyz-ACgJAw8gyGBlEJ0IYhloYwdHYeInSgCxtGsGw0hFUQ4ggVhMnQdhQQAEkEWgUhon1GG0Rghn6JQwH6c4gA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 59960ba0ea2e86bfa552ad8e4633c313651ffed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:52:12 +0000 Subject: [PATCH 61/86] Adds decorators to `tm_t_logistic` (#1290) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADRS <- tmc_ex_adrs %>% filter(PARAMCD %in% c("BESRSPI", "INVET")) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADRS <- data[["ADRS"]] arm_ref_comp <- list( ACTARMCD = list( ref = "ARM B", comp = c("ARM A", "ARM C") ), ARM = list( ref = "B: Placebo", comp = c("A: Drug X", "C: Combination") ) ) init( data = data, modules = modules( tm_t_logistic( label = "Logistic Regression", dataname = "ADRS", arm_var = choices_selected( choices = variable_choices(ADRS, c("ARM", "ARMCD")), selected = "ARM" ), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( choices = value_choices(ADRS, "PARAMCD", "PARAM"), selected = "BESRSPI" ), cov_var = choices_selected( choices = c("SEX", "AGE", "BMRKR1", "BMRKR2"), selected = "SEX" ), decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--- R/tm_t_logistic.R | 42 +++++++++++++++++++++++++++++++++--------- man/tm_t_logistic.Rd | 28 +++++++++++++++++++++++++--- 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/R/tm_t_logistic.R b/R/tm_t_logistic.R index b0101dd1b..40563a000 100644 --- a/R/tm_t_logistic.R +++ b/R/tm_t_logistic.R @@ -186,14 +186,13 @@ template_logistic <- function(dataname, y$table <- substitute( expr = { - result <- expr_basic_table_args %>% + table <- expr_basic_table_args %>% summarize_logistic( conf_level = conf_level, drop_and_remove_str = "_NA_" ) %>% rtables::append_topleft(topleft) %>% rtables::build_table(df = mod) - result }, env = list( expr_basic_table_args = parsed_basic_table_args, @@ -222,6 +221,14 @@ template_logistic <- function(dataname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`ElementaryTable` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -297,7 +304,8 @@ tm_t_logistic <- function(label, conf_level = teal.transform::choices_selected(c(0.95, 0.9, 0.8), 0.95, keep_order = TRUE), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_logistic") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -311,6 +319,8 @@ tm_t_logistic <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) @@ -333,7 +343,8 @@ tm_t_logistic <- function(label, label = label, dataname = dataname, parentname = parentname, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -424,7 +435,8 @@ ui_t_logistic <- function(id, ...) { a$conf_level$selected, multiple = FALSE, fixed = a$conf_level$fixed - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")) ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -447,7 +459,8 @@ srv_t_logistic <- function(id, avalc_var, cov_var, label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -659,6 +672,7 @@ srv_t_logistic <- function(id, ) }) + # Generate r code for the analysis. all_q <- reactive({ validate_checks() @@ -696,16 +710,26 @@ srv_t_logistic <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(calls)) }) - table_r <- reactive(all_q()[["result"]]) + # Decoration of table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", table_r = table_r ) + # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -724,7 +748,7 @@ srv_t_logistic <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 41a8e2bad..8034558e5 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -19,7 +19,8 @@ tm_t_logistic( TRUE), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -63,6 +64,15 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -71,6 +81,18 @@ a \code{teal_module} object. This module produces a multi-variable logistic regression table consistent with the TLG Catalog template \code{LGRT02} available \href{https://insightsengineering.github.io/tlg-catalog/stable/tables/efficacy/lgrt02.html}{here}. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{ElementaryTable} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) @@ -131,8 +153,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 3e98e8169365b51e024e9fdda01a4e1f8aa4eaf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:56:47 +0000 Subject: [PATCH 62/86] Adds decorators to `tm_t_summary` (#1293) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } # Preparation of the test case - use `EOSDY` and `DCSREAS` variables to demonstrate missing data. data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADSL$EOSDY[1] <- NA_integer_ }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] app <- init( data = data, modules = modules( tm_t_summary( label = "Demographic Table", dataname = "ADSL", arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), add_total = TRUE, summarize_vars = choices_selected( c("SEX", "RACE", "BMRKR2", "EOSDY", "DCSREAS", "AGE"), c("SEX", "RACE") ), useNA = "ifany", decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> --- R/tm_t_summary.R | 45 ++++++++++++++++++++++++++++++++++----------- man/tm_t_summary.Rd | 24 +++++++++++++++++++++++- 2 files changed, 57 insertions(+), 12 deletions(-) diff --git a/R/tm_t_summary.R b/R/tm_t_summary.R index 239558ada..c1f7b9f7d 100644 --- a/R/tm_t_summary.R +++ b/R/tm_t_summary.R @@ -199,8 +199,7 @@ template_summary <- function(dataname, y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) }, env = list(parent = as.name(parentname)) ) @@ -223,6 +222,14 @@ template_summary <- function(dataname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -281,7 +288,8 @@ tm_t_summary <- function(label, drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_summary") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -297,6 +305,8 @@ tm_t_summary <- function(label, checkmate::assert_flag(add_total) checkmate::assert_flag(show_arm_var_labels) checkmate::assert_string(total_label) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") useNA <- match.arg(useNA) # nolint: object_name. denominator <- match.arg(denominator) @@ -323,7 +333,8 @@ tm_t_summary <- function(label, show_arm_var_labels = show_arm_var_labels, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = c(dataname, parentname) @@ -404,7 +415,8 @@ ui_summary <- function(id, ...) { ) } ) - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")) ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -429,7 +441,8 @@ srv_summary <- function(id, na_level, drop_arm_levels, label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -496,7 +509,7 @@ srv_summary <- function(id, } }) - # validate inputs + # Validate inputs. validate_checks <- reactive({ teal::validate_inputs(iv_r()) adsl_filtered <- merged$anl_q()[[parentname]] @@ -539,7 +552,7 @@ srv_summary <- function(id, ) }) - # generate r code for the analysis + # Generate r code for the analysis. all_q <- reactive({ validate_checks() @@ -572,14 +585,24 @@ srv_summary <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + # Decoration of table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) + teal.widgets::table_with_settings_srv(id = "table", table_r = table_r) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -598,7 +621,7 @@ srv_summary <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_summary.Rd b/man/tm_t_summary.Rd index e0a427b8c..912584a41 100644 --- a/man/tm_t_summary.Rd +++ b/man/tm_t_summary.Rd @@ -22,7 +22,8 @@ tm_t_summary( drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -78,6 +79,15 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -85,6 +95,18 @@ a \code{teal_module} object. \description{ This module produces a table to summarize variables. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ # Preparation of the test case - use `EOSDY` and `DCSREAS` variables to demonstrate missing data. data <- teal_data() From 015a9641edb1e0192b0b6388df54bb55b7cf4bf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:00:52 +0000 Subject: [PATCH 63/86] Adds decorators to `tm_t_smq` (#1292) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADAE <- tmc_ex_adae .names_baskets <- grep("^(SMQ|CQ).*NAM$", names(ADAE), value = TRUE) .names_scopes <- grep("^SMQ.*SC$", names(ADAE), value = TRUE) .cs_baskets <- choices_selected( choices = variable_choices(ADAE, subset = .names_baskets), selected = .names_baskets ) .cs_scopes <- choices_selected( choices = variable_choices(ADAE, subset = .names_scopes), selected = .names_scopes, fixed = TRUE ) }) join_keys(data) <- default_cdisc_join_keys[names(data)] app <- init( data = data, modules = modules( tm_t_smq( label = "Adverse Events by SMQ Table", dataname = "ADAE", arm_var = choices_selected( choices = variable_choices(data[["ADSL"]], subset = c("ARM", "SEX")), selected = "ARM" ), add_total = FALSE, baskets = data[[".cs_baskets"]], scopes = data[[".cs_scopes"]], llt = choices_selected( choices = variable_choices(data[["ADAE"]], subset = c("AEDECOD")), selected = "AEDECOD" ), decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> --- R/tm_t_smq.R | 40 +++++++++++++++++++++++++++++++--------- man/tm_t_smq.Rd | 24 +++++++++++++++++++++++- 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/R/tm_t_smq.R b/R/tm_t_smq.R index e1081cdec..b79251aca 100644 --- a/R/tm_t_smq.R +++ b/R/tm_t_smq.R @@ -290,8 +290,7 @@ template_smq <- function(dataname, all_zero <- function(tr) { !inherits(tr, "ContentRow") && rtables::all_zero_or_na(tr) } - pruned_and_sorted_result <- sorted_result %>% rtables::trim_rows(criteria = all_zero) - pruned_and_sorted_result + table <- sorted_result %>% rtables::trim_rows(criteria = all_zero) } ) @@ -316,6 +315,14 @@ template_smq <- function(dataname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -391,7 +398,8 @@ tm_t_smq <- function(label, scopes, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_smq") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -408,6 +416,8 @@ tm_t_smq <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) @@ -432,7 +442,8 @@ tm_t_smq <- function(label, na_level = na_level, label = label, total_label = total_label, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -444,7 +455,6 @@ ui_t_smq <- function(id, ...) { ns <- NS(id) a <- list(...) # module args - is_single_dataset_value <- teal.transform::is_single_dataset( a$arm_var, a$id_var, @@ -482,6 +492,7 @@ ui_t_smq <- function(id, ...) { data_extract_spec = a$baskets, is_single_dataset = is_single_dataset_value ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional Variables Info", @@ -540,7 +551,8 @@ srv_t_smq <- function(id, na_level, label, total_label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -621,6 +633,7 @@ srv_t_smq <- function(id, ) }) + # Generate r code for the analysis. all_q <- reactive({ validate_checks() @@ -642,8 +655,16 @@ srv_t_smq <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + # Decoration of table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["pruned_and_sorted_result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -651,9 +672,10 @@ srv_t_smq <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -672,7 +694,7 @@ srv_t_smq <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_smq.Rd b/man/tm_t_smq.Rd index cd211d8ed..5169323c1 100644 --- a/man/tm_t_smq.Rd +++ b/man/tm_t_smq.Rd @@ -23,7 +23,8 @@ tm_t_smq( scopes, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -82,6 +83,15 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -89,6 +99,18 @@ a \code{teal_module} object. \description{ This module produces an adverse events table by Standardized MedDRA Query. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From d29d166ca0b77b7f0e6871a08a56a2b3f830cfc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:04:13 +0000 Subject: [PATCH 64/86] Adds decorators to `tm_t_shift_by_grade` (#1285) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADLB <- tmc_ex_adlb }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] init( data = data, modules = modules( tm_t_shift_by_grade( label = "Grade Laboratory Abnormality Table", dataname = "ADLB", arm_var = choices_selected( choices = variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), paramcd = choices_selected( choices = value_choices(ADLB, "PARAMCD", "PARAM"), selected = "ALT" ), worst_flag_var = choices_selected( choices = variable_choices(ADLB, subset = c("WGRLOVFL", "WGRLOFL", "WGRHIVFL", "WGRHIFL")), selected = c("WGRLOVFL") ), worst_flag_indicator = choices_selected( value_choices(ADLB, "WGRLOVFL"), selected = "Y", fixed = TRUE ), anl_toxgrade_var = choices_selected( choices = variable_choices(ADLB, subset = c("ATOXGR")), selected = c("ATOXGR"), fixed = TRUE ), base_toxgrade_var = choices_selected( choices = variable_choices(ADLB, subset = c("BTOXGR")), selected = c("BTOXGR"), fixed = TRUE ), add_total = FALSE, decorators = list(insert_rrow_decorator()) ) ), filter = teal_slices(teal_slice("ADSL", "SAFFL", selected = "Y")) ) |> shiny::runApp() ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> --- R/tm_t_shift_by_grade.R | 39 ++++++++++++++++++++++++++++++-------- man/tm_t_shift_by_grade.Rd | 24 ++++++++++++++++++++++- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/R/tm_t_shift_by_grade.R b/R/tm_t_shift_by_grade.R index f45ec5372..97256f3f6 100644 --- a/R/tm_t_shift_by_grade.R +++ b/R/tm_t_shift_by_grade.R @@ -449,9 +449,8 @@ template_shift_by_grade <- function(parentname, y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) %>% + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) %>% rtables::prune_table() - result }, env = list(parent = as.name(parentname)) ) @@ -472,6 +471,14 @@ template_shift_by_grade <- function(parentname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -572,7 +579,8 @@ tm_t_shift_by_grade <- function(label, post_output = NULL, na_level = default_na_str(), code_missing_baseline = FALSE, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_shift_by_grade") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -593,6 +601,8 @@ tm_t_shift_by_grade <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) @@ -619,7 +629,8 @@ tm_t_shift_by_grade <- function(label, label = label, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -704,6 +715,7 @@ ui_t_shift_by_grade <- function(id, ...) { ) ) ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional Variables Info", @@ -751,7 +763,8 @@ srv_t_shift_by_grade <- function(id, drop_arm_levels, na_level, label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -840,6 +853,7 @@ srv_t_shift_by_grade <- function(id, ) }) + # Generate r code for the analysis. all_q <- reactive({ validate_checks() @@ -865,8 +879,16 @@ srv_t_shift_by_grade <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + # Decoration of table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -874,9 +896,10 @@ srv_t_shift_by_grade <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -895,7 +918,7 @@ srv_t_shift_by_grade <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_shift_by_grade.Rd b/man/tm_t_shift_by_grade.Rd index 0af0b42f4..059adb022 100644 --- a/man/tm_t_shift_by_grade.Rd +++ b/man/tm_t_shift_by_grade.Rd @@ -34,7 +34,8 @@ tm_t_shift_by_grade( post_output = NULL, na_level = default_na_str(), code_missing_baseline = FALSE, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -97,6 +98,15 @@ default \code{na_level} to apply in all modules, run \code{set_default_na_str("n with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -104,6 +114,18 @@ a \code{teal_module} object. \description{ This module produces a summary table of worst grades per subject by visit and parameter. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From ab0c15c00b6dc8d722b41f29f28c221835917b7c Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:15:03 +0000 Subject: [PATCH 65/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_t_logistic.Rd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/tm_t_logistic.Rd b/man/tm_t_logistic.Rd index 8034558e5..a40e45660 100644 --- a/man/tm_t_logistic.Rd +++ b/man/tm_t_logistic.Rd @@ -153,8 +153,8 @@ apps implementing this module can be found. \describe{ \item{example-1}{ \href{https://shinylive.io/r/app/#code=NobwRAdghgtgpmAXGKAHVA6ASmANGAYwHsIAXOMpMAGwEsAjAJykYE8AKcqajGIgEwCu1OAGcMBOhFoFuASgA60snGYFStAG5wABAB4AtDoBmgiOtol2cnQBUsAVQCiSpXSYsO-VNVaNFEEr8UKRQ+kZc1AD6waHWQSFhhjoA7rSkABa0EOyxULg6IEo6OgCCACIAygAy4TqkMARRcAAeUVD8otTFZeVYlXUNTa3t-IyiOgCkAHyTPSXGtNTkjOwACqVYpQCyAMLlU9mTOgTsCmAAQk6V-WsAkucF53cAcgBqTrbncgEAvgEAKyI2SiAGs4KxRLlEjZkvw4MYoMJSFECPxaKImkCQeDIcBoPAoXk5ABdVwQCo1Op5YDAc6U6rnElkil9AZwxK0+lspkspQsGBRRgI1FEGCoOp0USkM4QEqlXa2TZ7A4AXh0Upl8x0wuMOnV9Kw2x0F0e2uI4v1JzOYGVZUeOkNxt23x6clwPTt6s1spKJV1VvOF0QOjW1CgBDg9CIZrlfotEvVp3pIfKjEEAHMdAANB3nXYh3Zi+jZEKWQJgAIlAIBfnoOrZdK+nR5K15D1xvhCEQTdVd4RiZslBpRFHUIgZjEaZNxv0aqD0ODUQNgaoTqcyHRYOAZ4WiUTl2Nzkp5Am6A22nl4bUlAVRTQsK0EDLAyOiKKiJdwdRwfhD4-Pq+YhWg+jC0AuIioi+MiDhU-QFMmtpGnmSEqt87o3n6n4iD+-Arsq5yYRhs5+neuqipa6pkSKCYdseOioCwsBok+0Fvh+X64f+c6ATBvY6A+1CCHAUFAVCcGVE8YAbFsaF4I60mbDs3x0fROjYd+5B4ReVw3JU9yESR1aqTxRCaPej5JmxYgcThWncfG1n8YhlROLm8n0gA4i4HmXNsWAANJYAAjChFz+UFABMKmYSUGm4SurnuUR2pVjoNZKLQersNkKwRho2jWDYRRxqIWQQKwpToOwaCoAAJIItAFLVdWfow2j+EovxKGAvwkkAA}{Open in Shinylive} - \if{html}{\out{}} - \if{html}{\out{}} + \if{html}{\out{}} + \if{html}{\out{}} } } } From 8986e274dd69bd9bc2c418b5b3d4929a55bd412d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 10 Dec 2024 16:41:26 +0000 Subject: [PATCH 66/86] Adds decorators to `tm_t_summary_by` (#1294) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADLB <- tmc_ex_adlb }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] app <- init( data = data, modules = modules( tm_t_summary_by( label = "Summary by Row Groups Table", dataname = "ADLB", arm_var = choices_selected( choices = variable_choices(ADSL, c("ARM", "ARMCD")), selected = "ARM" ), add_total = TRUE, by_vars = choices_selected( choices = variable_choices(ADLB, c("PARAM", "AVISIT")), selected = c("AVISIT") ), summarize_vars = choices_selected( choices = variable_choices(ADLB, c("AVAL", "CHG")), selected = c("AVAL") ), useNA = "ifany", paramcd = choices_selected( choices = value_choices(ADLB, "PARAMCD", "PARAM"), selected = "ALT" ), decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> --- R/tm_t_summary_by.R | 44 +++++++++++++++++++++++++++++++----------- man/tm_t_summary_by.Rd | 24 ++++++++++++++++++++++- 2 files changed, 56 insertions(+), 12 deletions(-) diff --git a/R/tm_t_summary_by.R b/R/tm_t_summary_by.R index e9163901b..49d1df798 100644 --- a/R/tm_t_summary_by.R +++ b/R/tm_t_summary_by.R @@ -285,20 +285,18 @@ template_summary_by <- function(parentname, rvs <- unlist(unname(row_values(tr))) isTRUE(all(rvs == 0)) } - result <- rtables::build_table( + table <- rtables::build_table( lyt = lyt, df = anl, alt_counts_df = parent ) %>% rtables::trim_rows(criteria = all_zero) - result }, env = list(parent = as.name(parentname)) ) } else { y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) }, env = list(parent = as.name(parentname)) ) @@ -321,6 +319,14 @@ template_summary_by <- function(parentname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -396,7 +402,8 @@ tm_t_summary_by <- function(label, drop_zero_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_summary_by") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -424,6 +431,9 @@ tm_t_summary_by <- function(label, numeric_stats_choices <- c("n", "mean_sd", "mean_ci", "geom_mean", "median", "median_ci", "quantiles", "range") numeric_stats <- match.arg(numeric_stats, numeric_stats_choices, several.ok = TRUE) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") + args <- c(as.list(environment())) data_extract_list <- list( @@ -451,7 +461,8 @@ tm_t_summary_by <- function(label, label = label, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -558,6 +569,7 @@ ui_summary_by <- function(id, ...) { } ) ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional Variables Info", @@ -596,7 +608,8 @@ srv_summary_by <- function(id, drop_arm_levels, drop_zero_levels, label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -685,7 +698,7 @@ srv_summary_by <- function(id, } }) - # The R-code corresponding to the analysis. + # Generate r code for the analysis. all_q <- reactive({ validate_checks() summarize_vars <- as.vector(merged$anl_input_r()$columns_source$summarize_vars) @@ -715,8 +728,16 @@ srv_summary_by <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + # Decoration of table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -724,9 +745,10 @@ srv_summary_by <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -745,7 +767,7 @@ srv_summary_by <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_summary_by.Rd b/man/tm_t_summary_by.Rd index 91173fea1..44bf42ceb 100644 --- a/man/tm_t_summary_by.Rd +++ b/man/tm_t_summary_by.Rd @@ -28,7 +28,8 @@ tm_t_summary_by( drop_zero_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -98,6 +99,15 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -105,6 +115,18 @@ a \code{teal_module} object. \description{ This module produces a table to summarize variables by row groups. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From 772c14bafd7d23e81c928cb349d3c43462f34813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 10 Dec 2024 16:47:02 +0000 Subject: [PATCH 67/86] Adds decorators to `tm_t_shift_by_arm` (#1287) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADEG <- tmc_ex_adeg }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADEG <- data[["ADEG"]] init( data = data, modules = modules( tm_t_shift_by_arm( label = "Shift by Arm Table", dataname = "ADEG", arm_var = choices_selected( variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), paramcd = choices_selected( value_choices(ADEG, "PARAMCD"), selected = "HR" ), visit_var = choices_selected( value_choices(ADEG, "AVISIT"), selected = "POST-BASELINE MINIMUM" ), aval_var = choices_selected( variable_choices(ADEG, subset = "ANRIND"), selected = "ANRIND", fixed = TRUE ), baseline_var = choices_selected( variable_choices(ADEG, subset = "BNRIND"), selected = "BNRIND", fixed = TRUE ), useNA = "ifany", decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--- R/tm_t_shift_by_arm.R | 42 ++++++++++++++++++++++++++++++---------- man/tm_t_shift_by_arm.Rd | 24 ++++++++++++++++++++++- 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/R/tm_t_shift_by_arm.R b/R/tm_t_shift_by_arm.R index f3a2a03fb..678bb81d0 100644 --- a/R/tm_t_shift_by_arm.R +++ b/R/tm_t_shift_by_arm.R @@ -173,8 +173,7 @@ template_shift_by_arm <- function(dataname, # Full table. y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = dataname) - result + table <- rtables::build_table(lyt = lyt, df = dataname) }, env = list(dataname = as.name(dataname)) ) @@ -191,6 +190,14 @@ template_shift_by_arm <- function(dataname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -268,7 +275,8 @@ tm_t_shift_by_arm <- function(label, total_label = default_total_label(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { if (lifecycle::is_present(base_var)) { baseline_var <- base_var warning( @@ -297,6 +305,8 @@ tm_t_shift_by_arm <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) @@ -323,7 +333,8 @@ tm_t_shift_by_arm <- function(label, total_label = total_label, na_level = na_level, treatment_flag = treatment_flag, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -393,6 +404,7 @@ ui_shift_by_arm <- function(id, ...) { choices = c("ifany", "no"), selected = a$useNA ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional Variables Info", @@ -437,7 +449,8 @@ srv_shift_by_arm <- function(id, na_level, add_total, total_label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -509,7 +522,7 @@ srv_shift_by_arm <- function(id, anl_q = anl_q ) - # validate inputs + # Validate inputs. validate_checks <- reactive({ teal::validate_inputs(iv_r()) @@ -540,7 +553,7 @@ srv_shift_by_arm <- function(id, ) }) - # generate r code for the analysis + # Generate r code for the analysis. all_q <- reactive({ validate_checks() @@ -563,8 +576,16 @@ srv_shift_by_arm <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + # Decoration of table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -572,9 +593,10 @@ srv_shift_by_arm <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -593,7 +615,7 @@ srv_shift_by_arm <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_shift_by_arm.Rd b/man/tm_t_shift_by_arm.Rd index 93d7ea80c..d3123be14 100644 --- a/man/tm_t_shift_by_arm.Rd +++ b/man/tm_t_shift_by_arm.Rd @@ -25,7 +25,8 @@ tm_t_shift_by_arm( total_label = default_total_label(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -82,6 +83,15 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -89,6 +99,18 @@ a \code{teal_module} object. \description{ This module produces a summary table of analysis indicator levels by arm. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From 582ceb39df6c604c0af83d7db0d46aaee4c15368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 10 Dec 2024 16:50:06 +0000 Subject: [PATCH 68/86] Adds decorators to `tm_t_shift_by_arm_by_worst` (#1286) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADEG <- tmc_ex_adeg }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADEG <- data[["ADEG"]] init( data = data, modules = modules( tm_t_shift_by_arm_by_worst( label = "Shift by Arm Table", dataname = "ADEG", arm_var = choices_selected( variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), paramcd = choices_selected( value_choices(ADEG, "PARAMCD"), selected = "ECGINTP" ), worst_flag_var = choices_selected( variable_choices(ADEG, c("WORS02FL", "WORS01FL")), selected = "WORS02FL" ), worst_flag = choices_selected( value_choices(ADEG, "WORS02FL"), selected = "Y", fixed = TRUE ), aval_var = choices_selected( variable_choices(ADEG, c("AVALC", "ANRIND")), selected = "AVALC" ), baseline_var = choices_selected( variable_choices(ADEG, c("BASEC", "BNRIND")), selected = "BASEC" ), useNA = "ifany", decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> --- R/tm_t_shift_by_arm_by_worst.R | 42 +++++++++++++++++++++++-------- man/tm_t_shift_by_arm_by_worst.Rd | 24 +++++++++++++++++- 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/R/tm_t_shift_by_arm_by_worst.R b/R/tm_t_shift_by_arm_by_worst.R index a1a813d29..005d86bd0 100644 --- a/R/tm_t_shift_by_arm_by_worst.R +++ b/R/tm_t_shift_by_arm_by_worst.R @@ -179,8 +179,7 @@ template_shift_by_arm_by_worst <- function(dataname, # Full table. y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = dataname) - result + table <- rtables::build_table(lyt = lyt, df = dataname) }, env = list(dataname = as.name(dataname)) ) @@ -197,6 +196,14 @@ template_shift_by_arm_by_worst <- function(dataname, #' #' @inherit module_arguments return #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` - output of `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -278,7 +285,8 @@ tm_t_shift_by_arm_by_worst <- function(label, total_label = default_total_label(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { if (lifecycle::is_present(base_var)) { baseline_var <- base_var warning( @@ -307,8 +315,10 @@ tm_t_shift_by_arm_by_worst <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") - args <- as.list(environment()) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") + args <- as.list(environment()) data_extract_list <- list( arm_var = cs_to_des_select(arm_var, dataname = parentname), @@ -334,7 +344,8 @@ tm_t_shift_by_arm_by_worst <- function(label, treatment_flag = treatment_flag, total_label = total_label, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -412,6 +423,7 @@ ui_shift_by_arm_by_worst <- function(id, ...) { choices = c("ifany", "no"), selected = a$useNA ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional Variables Info", @@ -456,7 +468,8 @@ srv_shift_by_arm_by_worst <- function(id, na_level, add_total, total_label, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -572,7 +585,7 @@ srv_shift_by_arm_by_worst <- function(id, ) }) - # generate r code for the analysis + # Generate r code for the analysis. all_q <- reactive({ validate_checks() @@ -597,8 +610,16 @@ srv_shift_by_arm_by_worst <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + # Decoration of table output + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -606,9 +627,10 @@ srv_shift_by_arm_by_worst <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -627,7 +649,7 @@ srv_shift_by_arm_by_worst <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_shift_by_arm_by_worst.Rd b/man/tm_t_shift_by_arm_by_worst.Rd index 4672fa128..6d7823f39 100644 --- a/man/tm_t_shift_by_arm_by_worst.Rd +++ b/man/tm_t_shift_by_arm_by_worst.Rd @@ -25,7 +25,8 @@ tm_t_shift_by_arm_by_worst( total_label = default_total_label(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -83,6 +84,15 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -90,6 +100,18 @@ a \code{teal_module} object. \description{ This module produces a summary table of worst analysis indicator variable level per subject by arm. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} - output of \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From 66e7b3615b266e4374c0eacd25888f76ee0e4dfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 10 Dec 2024 18:56:23 +0000 Subject: [PATCH 69/86] feat: pass qenv.error to module when template code fails --- R/utils.R | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/R/utils.R b/R/utils.R index 72657f370..d2af241ed 100644 --- a/R/utils.R +++ b/R/utils.R @@ -975,14 +975,19 @@ srv_decorate_teal_data <- function(id, data, decorators, expr, expr_is_reactive decorated_output <- srv_transform_teal_data("inner", data = data, transformators = decorators) reactive({ - # ensure original errors are displayed and `eval_code` is never executed with NULL - req(data(), decorated_output()) - if (missing_expr) { - decorated_output() - } else if (expr_is_reactive) { - teal.code::eval_code(decorated_output(), expr()) + data_out <- try(data(), silent = TRUE) + if (inherits(data_out, "qenv.error")) { + data() } else { - teal.code::eval_code(decorated_output(), expr) + # ensure original errors are displayed and `eval_code` is never executed with NULL + req(data(), decorated_output()) + if (missing_expr) { + decorated_output() + } else if (expr_is_reactive) { + teal.code::eval_code(decorated_output(), expr()) + } else { + teal.code::eval_code(decorated_output(), expr) + } } }) }) From d1d8df8518e46ebd3901b8a9e0185bfb6287170b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Wed, 11 Dec 2024 10:01:36 +0100 Subject: [PATCH 70/86] Introduce decorators for `tm_t_exposure` (#1279) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Example with decorator ```r devtools::load_all("../teal") devtools::load_all("../tern") devtools::load_all(".") insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADEX <- tmc_ex_adex set.seed(1, kind = "Mersenne-Twister") .labels <- col_labels(ADEX, fill = FALSE) ADEX <- ADEX %>% distinct(USUBJID, .keep_all = TRUE) %>% mutate( PARAMCD = "TDURD", PARAM = "Overall duration (days)", AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE), AVALU = "Days" ) %>% bind_rows(ADEX) col_labels(ADEX) <- .labels }) join_keys(data) <- default_cdisc_join_keys[names(data)] app <- init( data = data, modules = modules( tm_t_exposure( label = "Duration of Exposure Table", dataname = "ADEX", paramcd = choices_selected( choices = value_choices(data[["ADEX"]], "PARAMCD", "PARAM"), selected = "TDURD" ), col_by_var = choices_selected( choices = variable_choices(data[["ADEX"]], subset = c("SEX", "ARM")), selected = "SEX" ), row_by_var = choices_selected( choices = variable_choices(data[["ADEX"]], subset = c("RACE", "REGION1", "STRATA1", "SEX")), selected = "RACE" ), parcat = choices_selected( choices = value_choices(data[["ADEX"]], "PARCAT2"), selected = "Drug A" ), add_total = FALSE, decorators = list(insert_rrow_decorator()) ) ), filter = teal_slices(teal_slice("ADSL", "SAFFL", selected = "Y")) ) shinyApp(app$ui, app$server) ```
Note: I placed the decorated right above some options to add additional columns and rows. Perhaps we need to review where to place it. I would group these three options in a single panel --------- Signed-off-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> --- R/tm_t_exposure.R | 42 ++++++++++++++++++++++++++++++++---------- man/tm_t_exposure.Rd | 21 ++++++++++++++++++++- 2 files changed, 52 insertions(+), 11 deletions(-) diff --git a/R/tm_t_exposure.R b/R/tm_t_exposure.R index c53521795..30c191dca 100644 --- a/R/tm_t_exposure.R +++ b/R/tm_t_exposure.R @@ -189,8 +189,7 @@ template_exposure <- function(parentname, y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) }, env = list(parent = as.name(parentname)) ) @@ -198,8 +197,8 @@ template_exposure <- function(parentname, if (drop_levels) { y$table <- substitute( expr = { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) - rtables::prune_table(result) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = parent) + table <- rtables::prune_table(table) }, env = list(parent = as.name(parentname)) ) @@ -224,9 +223,18 @@ template_exposure <- function(parentname, #' parameter category values. #' @param paramcd_label (`character`)\cr the column from the dataset where the value will be used to #' label the argument `paramcd`. +#' @param decorators `r roxygen_decorators_param("tm_t_exposure")` #' #' @inherit module_arguments return seealso #' +#' @section Decorating `tm_t_exposure`: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` as created from `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -324,7 +332,8 @@ tm_t_exposure <- function(label, na_level = default_na_str(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_exposure") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -344,6 +353,8 @@ tm_t_exposure <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "table", null.ok = TRUE) data_extract_list <- list( paramcd = cs_to_des_filter(paramcd, dataname = dataname), @@ -371,7 +382,8 @@ tm_t_exposure <- function(label, total_row_label = total_row_label, na_level = na_level, basic_table_args = basic_table_args, - paramcd_label = paramcd_label + paramcd_label = paramcd_label, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -430,6 +442,7 @@ ui_t_exposure <- function(id, ...) { ), checkboxInput(ns("add_total_row"), "Add Total row", value = a$add_total_row), checkboxInput(ns("add_total"), "Add All Patients column", value = a$add_total), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional Variables Info", @@ -481,7 +494,8 @@ srv_t_exposure <- function(id, label, total_label, total_row_label, - basic_table_args = basic_table_args) { + basic_table_args = basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -631,7 +645,14 @@ srv_t_exposure <- function(id, }) # Outputs to render. - table_r <- reactive(all_q()[["result"]]) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + + table_r <- reactive(decorated_table_q()[["table"]]) teal.widgets::table_with_settings_srv( id = "table", @@ -639,9 +660,10 @@ srv_t_exposure <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -660,7 +682,7 @@ srv_t_exposure <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 7aec2d4a8..2fc9a6ec1 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -28,7 +28,8 @@ tm_t_exposure( na_level = default_na_str(), pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -91,6 +92,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_exposure}" below for more details.} } \value{ a \code{teal_module} object. @@ -98,6 +105,18 @@ a \code{teal_module} object. \description{ The module produces an exposure table for risk management plan. } +\section{Decorating \code{tm_t_exposure}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} as created from \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) From c146b1112e4a8c97d2108e315d4de7493751db8e Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 09:08:44 +0000 Subject: [PATCH 71/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_t_exposure.Rd | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 2fc9a6ec1..8505eddbe 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -93,11 +93,7 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. - -Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. - -See section "Decorating \code{tm_t_exposure}" below for more details.} +\item{decorators}{\verb{r roxygen_decorators_param("tm_t_exposure")}} } \value{ a \code{teal_module} object. From 83d9fb0868cf0f300b2b551e03c222f3e18f1e97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Wed, 11 Dec 2024 12:09:37 +0000 Subject: [PATCH 72/86] Adds decorators to `tm_t_pp_laboratory` (#1291) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below rlisting_footer <- function(default_footer = "I am a good footer", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "footer"), "footer", value = default_footer), server = make_teal_transform_server( substitute({ rlistings::main_footer(.var_to_replace) <- footer }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } dt_decorator <- function(.color1 = "#f9f9f9", .color2 = "#f0f0f0", .var_to_replace = "table") { teal_transform_module( label = "Table color", ui = function(id) { selectInput( NS(id, "style"), "Table Style", choices = c("Default", "Color1", "Color2"), selected = "Default" ) }, server = function(id, data) { moduleServer(id, function(input, output, session) { logger::log_info("🔵 Table row color called to action!", namespace = "teal.modules.general") reactive({ req(data(), input$style) logger::log_info("changing the Table row color '{input$style}'", namespace = "teal.modules.general") teal.code::eval_code(data(), substitute({ .var_to_replace <- switch( style, "Color1" = DT::formatStyle( .var_to_replace, columns = attr(.var_to_replace$x, "colnames")[-1], target = "row", backgroundColor = .color1 ), "Color2" = DT::formatStyle( .var_to_replace, columns = attr(.var_to_replace$x, "colnames")[-1], target = "row", backgroundColor = .color2 ), .var_to_replace ) }, env = list( style = input$style, .var_to_replace = as.name(.var_to_replace), .color1 = .color1, .color2 = .color2 ))) }) }) } ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADLB <- tmc_ex_adlb }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADLB <- data[["ADLB"]] init( data = data, modules = modules( tm_t_pp_laboratory( label = "Vitals", dataname = "ADLB", patient_col = "USUBJID", paramcd = choices_selected( choices = variable_choices(ADLB, "PARAMCD"), selected = "PARAMCD" ), param = choices_selected( choices = variable_choices(ADLB, "PARAM"), selected = "PARAM" ), timepoints = choices_selected( choices = variable_choices(ADLB, "ADY"), selected = "ADY" ), anrind = choices_selected( choices = variable_choices(ADLB, "ANRIND"), selected = "ANRIND" ), aval_var = choices_selected( choices = variable_choices(ADLB, "AVAL"), selected = "AVAL" ), avalu_var = choices_selected( choices = variable_choices(ADLB, "AVALU"), selected = "AVALU" ), decorators = list( table_listing = rlisting_footer() ) ) ) ) |> shiny::runApp() ```
--- R/tm_t_pp_laboratory.R | 96 +++++++++++++++++++++++++-------------- man/tm_t_pp_laboratory.Rd | 24 +++++++++- 2 files changed, 84 insertions(+), 36 deletions(-) diff --git a/R/tm_t_pp_laboratory.R b/R/tm_t_pp_laboratory.R index 153d52a59..c0a268e8a 100644 --- a/R/tm_t_pp_laboratory.R +++ b/R/tm_t_pp_laboratory.R @@ -70,7 +70,7 @@ template_laboratory <- function(dataname = "ANL", dplyr::mutate(aval_anrind = paste(aval_var, anrind)) %>% dplyr::select(-c(aval_var, anrind)) - labor_table_raw <- labor_table_base %>% + result <- labor_table_base %>% as.data.frame() %>% stats::reshape( direction = "wide", @@ -78,18 +78,18 @@ template_laboratory <- function(dataname = "ANL", v.names = "aval_anrind", timevar = "INDEX" ) - colnames(labor_table_raw)[-c(1:3)] <- unique(labor_table_base$INDEX) + colnames(result)[-c(1:3)] <- unique(labor_table_base$INDEX) - labor_table_raw[[param_char]] <- clean_description(labor_table_raw[[param_char]]) + result[[param_char]] <- clean_description(result[[param_char]]) - labor_table_raw <- rlistings::as_listing( - labor_table_raw, + table <- rlistings::as_listing( + result, key_cols = NULL, default_formatting = list(all = fmt_config(align = "left")) ) - main_title(labor_table_raw) <- paste("Patient ID:", patient_id) + main_title(table) <- paste("Patient ID:", patient_id) - labor_table_html <- labor_table_base %>% + table_html <- labor_table_base %>% dplyr::mutate(aval_anrind_col = color_lab_values(aval_anrind)) %>% dplyr::select(-aval_anrind) %>% as.data.frame() %>% @@ -99,15 +99,21 @@ template_laboratory <- function(dataname = "ANL", v.names = "aval_anrind_col", timevar = "INDEX" ) - colnames(labor_table_html)[-c(1:3)] <- unique(labor_table_base$INDEX) - labor_table_html[[param_char]] <- clean_description(labor_table_html[[param_char]]) - - labor_table_html_dt <- DT::datatable(labor_table_html, escape = FALSE) - labor_table_html_dt$dependencies <- c( - labor_table_html_dt$dependencies, + colnames(table_html)[-c(1:3)] <- unique(labor_table_base$INDEX) + table_html[[param_char]] <- clean_description(table_html[[param_char]]) + + table_dt <- DT::datatable( + table_html, + escape = FALSE, + options = list( + lengthMenu = list(list(-1, 5, 10, 25), list("All", "5", "10", "25")), + scrollX = TRUE + ) + ) + table_dt$dependencies <- c( + table_dt$dependencies, list(rmarkdown::html_dependency_bootstrap("default")) ) - labor_table_html_dt }, env = list( dataname = as.name(dataname), @@ -147,6 +153,14 @@ template_laboratory <- function(dataname = "ANL", #' #' @inherit module_arguments return #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`listing_df` - output of `rlistings::as_listing`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -215,7 +229,8 @@ tm_t_pp_laboratory <- function(label, paramcd = NULL, anrind = NULL, pre_output = NULL, - post_output = NULL) { + post_output = NULL, + decorators = NULL) { if (lifecycle::is_present(aval)) { aval_var <- aval warning( @@ -251,6 +266,8 @@ tm_t_pp_laboratory <- function(label, checkmate::assert_class(anrind, "choices_selected", null.ok = TRUE) checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) data_extract_list <- list( @@ -273,7 +290,8 @@ tm_t_pp_laboratory <- function(label, dataname = dataname, parentname = parentname, label = label, - patient_col = patient_col + patient_col = patient_col, + decorators = decorators ) ), datanames = c(dataname, parentname) @@ -350,7 +368,8 @@ ui_g_laboratory <- function(id, ...) { inputId = ns("round_value"), label = "Select number of decimal places for rounding:", choices = NULL - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(ui_args$decorators, "table")) ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -374,7 +393,8 @@ srv_g_laboratory <- function(id, param, paramcd, anrind, - label) { + label, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -458,6 +478,7 @@ srv_g_laboratory <- function(id, teal.code::eval_code(as.expression(anl_inputs()$expr)) }) + # Generate r code for the analysis. all_q <- reactive({ teal::validate_inputs(iv_r()) @@ -488,30 +509,35 @@ srv_g_laboratory <- function(id, teal.code::eval_code(as.expression(labor_calls)) }) - output$title <- renderText({ - paste("
Patient ID:", all_q()[["pt_id"]], "
") - }) + # Decoration of raw table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + # Outputs to render. table_r <- reactive({ - q <- all_q() + q <- decorated_table_q() list( - html = q[["labor_table_html"]], - raw = q[["labor_table_raw"]] + html = q[["table_dt"]], + listing = q[["table"]] ) }) - output$lab_values_table <- DT::renderDataTable( - expr = table_r()$html, - escape = FALSE, - options = list( - lengthMenu = list(list(-1, 5, 10, 25), list("All", "5", "10", "25")), - scrollX = TRUE - ) - ) + output$title <- renderText({ + req(decorated_table_q()) + paste("
Patient ID:", decorated_table_q()[["pt_id"]], "
") + }) + + output$lab_values_table <- DT::renderDataTable(expr = table_r()$html) + # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -525,12 +551,12 @@ srv_g_laboratory <- function(id, filter_panel_api = filter_panel_api ) card$append_text("Table", "header3") - card$append_table(table_r()$raw) + card$append_table(table_r()$listing) if (!comment == "") { card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_pp_laboratory.Rd b/man/tm_t_pp_laboratory.Rd index f4d00026c..c2d32a50f 100644 --- a/man/tm_t_pp_laboratory.Rd +++ b/man/tm_t_pp_laboratory.Rd @@ -18,7 +18,8 @@ tm_t_pp_laboratory( paramcd = NULL, anrind = NULL, pre_output = NULL, - post_output = NULL + post_output = NULL, + decorators = NULL ) } \arguments{ @@ -58,6 +59,15 @@ For example a title.} \item{post_output}{(\code{shiny.tag}) optional,\cr with text placed after the output to put the output into context. For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are useful.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -65,6 +75,18 @@ a \code{teal_module} object. \description{ This module produces a patient profile laboratory table using ADaM datasets. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{listing_df} - output of \code{rlistings::as_listing}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From 95f11f328b351cd2a8f31d3a8893bc1d5f4787f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Wed, 11 Dec 2024 14:39:34 +0000 Subject: [PATCH 73/86] Adds decorators to `tm_t_pp_basic_info` (#1282) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r # Load packages pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rlisting_footer_decorator <- function(default_caption = "I am a good new footer", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_footer"), "New footer", value = default_caption), server = make_teal_transform_server( substitute({ rlistings::main_footer(.var_to_replace) <- new_footer }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] init( data = data, modules = modules( tm_t_pp_basic_info( label = "Basic Info", dataname = "ADSL", patient_col = "USUBJID", vars = choices_selected(choices = variable_choices(ADSL), selected = c("ARM", "AGE", "SEX", "COUNTRY", "RACE", "EOSSTT")), decorators = list( table = insert_rlisting_footer_decorator(.var_to_replace = "table") ) ) ) ) |> shiny::runApp() ```
--- R/tm_t_pp_basic_info.R | 44 ++++++++++++++++++++++++++++----------- man/tm_t_pp_basic_info.Rd | 24 ++++++++++++++++++++- 2 files changed, 55 insertions(+), 13 deletions(-) diff --git a/R/tm_t_pp_basic_info.R b/R/tm_t_pp_basic_info.R index 7f61d4148..7a6f2bcfa 100644 --- a/R/tm_t_pp_basic_info.R +++ b/R/tm_t_pp_basic_info.R @@ -36,13 +36,11 @@ template_basic_info <- function(dataname = "ANL", dplyr::select(var, key, value) %>% dplyr::rename(` ` = var, ` ` = key, ` ` = value) - result <- rlistings::as_listing( + table <- rlistings::as_listing( result, default_formatting = list(all = fmt_config(align = "left")) ) - main_title(result) <- paste("Patient ID:", patient_id) - - result + main_title(table) <- paste("Patient ID:", patient_id) }, env = list( dataname = as.name(dataname), vars = vars, @@ -66,6 +64,14 @@ template_basic_info <- function(dataname = "ANL", #' #' @inherit module_arguments return #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`listing_df` - output of `rlistings::as_listing`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -104,7 +110,8 @@ tm_t_pp_basic_info <- function(label, patient_col = "USUBJID", vars = NULL, pre_output = NULL, - post_output = NULL) { + post_output = NULL, + decorators = NULL) { message("Initializing tm_t_pp_basic_info") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -112,6 +119,8 @@ tm_t_pp_basic_info <- function(label, checkmate::assert_class(vars, "choices_selected", null.ok = TRUE) checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) data_extract_list <- list( @@ -128,7 +137,8 @@ tm_t_pp_basic_info <- function(label, list( dataname = dataname, label = label, - patient_col = patient_col + patient_col = patient_col, + decorators = decorators ) ), datanames = dataname @@ -163,7 +173,8 @@ ui_t_basic_info <- function(id, ...) { label = "Select variable:", data_extract_spec = ui_args$vars, is_single_dataset = is_single_dataset_value - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(ui_args$decorators, "table")), ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -181,7 +192,8 @@ srv_t_basic_info <- function(id, dataname, patient_col, vars, - label) { + label, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -265,11 +277,18 @@ srv_t_basic_info <- function(id, teal.code::eval_code(as.expression(unlist(my_calls))) }) + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) + output$title <- renderText({ paste("
Patient ID:", all_q()[["pt_id"]], "
") }) - table_r <- reactive(all_q()[["result"]]) + table_r <- reactive(decorated_table_q()[["table"]]) output$basic_info_table <- DT::renderDataTable( expr = table_r(), @@ -278,9 +297,10 @@ srv_t_basic_info <- function(id, ) ) + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -294,12 +314,12 @@ srv_t_basic_info <- function(id, filter_panel_api = filter_panel_api ) card$append_text("Table", "header3") - card$append_table(table_r()) + card$append_table(decorated_table_q()[["table"]]) if (!comment == "") { card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_pp_basic_info.Rd b/man/tm_t_pp_basic_info.Rd index 9138d5e51..817a27fdd 100644 --- a/man/tm_t_pp_basic_info.Rd +++ b/man/tm_t_pp_basic_info.Rd @@ -10,7 +10,8 @@ tm_t_pp_basic_info( patient_col = "USUBJID", vars = NULL, pre_output = NULL, - post_output = NULL + post_output = NULL, + decorators = NULL ) } \arguments{ @@ -28,6 +29,15 @@ For example a title.} \item{post_output}{(\code{shiny.tag}) optional,\cr with text placed after the output to put the output into context. For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are useful.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -35,6 +45,18 @@ a \code{teal_module} object. \description{ This module produces a patient profile basic info report using ADaM datasets. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{listing_df} - output of \code{rlistings::as_listing}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ data <- teal_data() data <- within(data, { From b85523cccc8a735f0589124a41e2bf589c7bee6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Wed, 11 Dec 2024 14:40:08 +0000 Subject: [PATCH 74/86] Adds decorators to `tm_t_pp_prior_medication` (#1288) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r # Load packages pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below rlisting_footer <- function(default_footer = "I am a good footer", .var_to_replace = "table_listing") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "footer"), "footer", value = default_footer), server = make_teal_transform_server( substitute({ rlistings::main_footer(.var_to_replace) <- footer }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } library(dplyr) data <- teal_data() data <- within(data, { ADCM <- tmc_ex_adcm ADSL <- tmc_ex_adsl %>% filter(USUBJID %in% ADCM$USUBJID) ADCM$CMASTDTM <- ADCM$ASTDTM ADCM$CMAENDTM <- ADCM$AENDTM }) join_keys(data) <- default_cdisc_join_keys[names(data)] adcm_keys <- c("STUDYID", "USUBJID", "ASTDTM", "CMSEQ", "ATC1", "ATC2", "ATC3", "ATC4") join_keys(data)["ADCM", "ADCM"] <- adcm_keys ADSL <- data[["ADSL"]] ADCM <- data[["ADCM"]] init( data = data, modules = modules( tm_t_pp_prior_medication( label = "Prior Medication", dataname = "ADCM", parentname = "ADSL", patient_col = "USUBJID", atirel = choices_selected( choices = variable_choices(ADCM, "ATIREL"), selected = "ATIREL" ), cmdecod = choices_selected( choices = variable_choices(ADCM, "CMDECOD"), selected = "CMDECOD" ), cmindc = choices_selected( choices = variable_choices(ADCM, "CMINDC"), selected = "CMINDC" ), cmstdy = choices_selected( choices = variable_choices(ADCM, "ASTDY"), selected = "ASTDY" ), decorators = list( table = rlisting_footer(.var_to_replace = "table") ) ) ) ) |> shiny::runApp() ```
--- R/tm_t_pp_prior_medication.R | 67 ++++++++++++++++++++++++++------- man/tm_t_pp_prior_medication.Rd | 24 +++++++++++- 2 files changed, 76 insertions(+), 15 deletions(-) diff --git a/R/tm_t_pp_prior_medication.R b/R/tm_t_pp_prior_medication.R index 605664e18..dfd75dc7f 100644 --- a/R/tm_t_pp_prior_medication.R +++ b/R/tm_t_pp_prior_medication.R @@ -33,7 +33,14 @@ template_prior_medication <- function(dataname = "ANL", dplyr::filter(!is.na(cmdecod)) %>% dplyr::distinct() %>% `colnames<-`(col_labels(dataname, fill = TRUE)[c(cmindc_char, cmdecod_char, cmstdy_char)]) - result + + table <- result %>% + dplyr::mutate( # Exception for columns of type difftime that is not supported by as_listing + dplyr::across( + dplyr::where(~ inherits(., what = "difftime")), ~ as.double(., units = "auto") + ) + ) %>% + rlistings::as_listing() }, env = list( dataname = as.name(dataname), atirel = as.name(atirel), @@ -61,6 +68,14 @@ template_prior_medication <- function(dataname = "ANL", #' #' @inherit module_arguments return #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`listing_df` - output of `rlistings::as_listing`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -123,7 +138,8 @@ tm_t_pp_prior_medication <- function(label, cmindc = NULL, cmstdy = NULL, pre_output = NULL, - post_output = NULL) { + post_output = NULL, + decorators = NULL) { message("Initializing tm_t_pp_prior_medication") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -135,6 +151,8 @@ tm_t_pp_prior_medication <- function(label, checkmate::assert_class(cmstdy, "choices_selected", null.ok = TRUE) checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, null.ok = TRUE, "table") args <- as.list(environment()) data_extract_list <- list( @@ -155,7 +173,8 @@ tm_t_pp_prior_medication <- function(label, dataname = dataname, parentname = parentname, label = label, - patient_col = patient_col + patient_col = patient_col, + decorators = decorators ) ), datanames = c(dataname, parentname) @@ -212,7 +231,8 @@ ui_t_prior_medication <- function(id, ...) { label = "Select CMSTDY variable:", data_extract_spec = ui_args$cmstdy, is_single_dataset = is_single_dataset_value - ) + ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(ui_args$decorators, "table")), ), forms = tagList( teal.widgets::verbatim_popup_ui(ns("rcode"), button_label = "Show R code") @@ -234,7 +254,8 @@ srv_t_prior_medication <- function(id, cmdecod, cmindc, cmstdy, - label) { + label, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -303,6 +324,7 @@ srv_t_prior_medication <- function(id, teal.code::eval_code(as.expression(anl_inputs()$expr)) }) + # Generate r code for the analysis. all_q <- reactive({ teal::validate_inputs(iv_r()) @@ -328,18 +350,35 @@ srv_t_prior_medication <- function(id, teal.code::eval_code(as.expression(unlist(my_calls))) }) - table_r <- reactive(all_q()[["result"]]) + # Decoration of table output. + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = all_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) - output$prior_medication_table <- DT::renderDataTable( - expr = table_r(), - options = list( - lengthMenu = list(list(-1, 5, 10, 25), list("All", "5", "10", "25")) + # Outputs to render. + table_r <- reactive({ + q <- decorated_table_q() + list( + html = DT::datatable( + q[["result"]], + options = list( + lengthMenu = list(list(-1, 5, 10, 25), list("All", "5", "10", "25")) + ) + ), + listing = q[["table"]] ) - ) + }) + + output$prior_medication_table <- DT::renderDataTable(expr = table_r()$html) + # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, title = label ) @@ -352,12 +391,12 @@ srv_t_prior_medication <- function(id, filter_panel_api = filter_panel_api ) card$append_text("Table", "header3") - card$append_table(table_r()) + card$append_table(table_r()$listing) if (!comment == "") { card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_pp_prior_medication.Rd b/man/tm_t_pp_prior_medication.Rd index 2992351ab..0dff80898 100644 --- a/man/tm_t_pp_prior_medication.Rd +++ b/man/tm_t_pp_prior_medication.Rd @@ -14,7 +14,8 @@ tm_t_pp_prior_medication( cmindc = NULL, cmstdy = NULL, pre_output = NULL, - post_output = NULL + post_output = NULL, + decorators = NULL ) } \arguments{ @@ -43,6 +44,15 @@ For example a title.} \item{post_output}{(\code{shiny.tag}) optional,\cr with text placed after the output to put the output into context. For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are useful.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -50,6 +60,18 @@ a \code{teal_module} object. \description{ This module produces a patient profile prior medication report using ADaM datasets. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{listing_df} - output of \code{rlistings::as_listing}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) data <- teal_data() From eb42bae901729c4b76961ba94bd22286f9a9dad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Revilla?= <185338939+llrs-roche@users.noreply.github.com> Date: Wed, 11 Dec 2024 15:57:31 +0100 Subject: [PATCH 75/86] Introduce decorators for `tm_t events by grade` (#1276) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of https://github.com/insightsengineering/teal/issues/1371
Example with decorators ```r load_all("../teal") load_all(".") library(dplyr) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl .lbls_adae <- col_labels(tmc_ex_adae) ADAE <- tmc_ex_adae %>% mutate_if(is.character, as.factor) #' be certain of having factors col_labels(ADAE) <- .lbls_adae }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADAE <- data[["ADAE"]] insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } app <- init( data = data, modules = modules( tm_t_events_by_grade( label = "Adverse Events by Grade Table", dataname = "ADAE", arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), llt = choices_selected( choices = variable_choices(ADAE, c("AETERM", "AEDECOD")), selected = c("AEDECOD") ), hlt = choices_selected( choices = variable_choices(ADAE, c("AEBODSYS", "AESOC")), selected = "AEBODSYS" ), grade = choices_selected( choices = variable_choices(ADAE, c("AETOXGR", "AESEV")), selected = "AETOXGR" ), decorators = list(insert_rrow_decorator()) ) ) ) shinyApp(app$ui, app$server) ```
--------- Signed-off-by: Lluís Revilla <185338939+llrs-roche@users.noreply.github.com> Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com> Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> --- R/tm_t_events_by_grade.R | 48 ++++++++++++++++++++++++------------- man/tm_t_events_by_grade.Rd | 21 +++++++++++++++- 2 files changed, 51 insertions(+), 18 deletions(-) diff --git a/R/tm_t_events_by_grade.R b/R/tm_t_events_by_grade.R index f0b01a543..b6e28ab6d 100644 --- a/R/tm_t_events_by_grade.R +++ b/R/tm_t_events_by_grade.R @@ -332,7 +332,6 @@ template_events_by_grade <- function(dataname, expr = { pruned_and_sorted_result <- pruned_result %>% sort_at_path(path = term_var, scorefun = scorefun, decreasing = TRUE) - pruned_and_sorted_result }, env = list( term_var = term_var, @@ -356,11 +355,6 @@ template_events_by_grade <- function(dataname, ) ) ) - - sort_list <- add_expr( - sort_list, - quote(pruned_and_sorted_result) - ) } y$sort <- bracket_expr(sort_list) @@ -769,11 +763,6 @@ template_events_col_by_grade <- function(dataname, prune_list, prune_pipe ) - prune_list <- add_expr( - prune_list, - quote(pruned_and_sorted_result) - ) - y$prune <- bracket_expr(prune_list) y @@ -791,6 +780,14 @@ template_events_col_by_grade <- function(dataname, #' #' @inherit module_arguments return seealso #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `table` (`TableTree` as created from `rtables::build_table`) +#' +#' For additional details and examples of decorators, refer to the vignette +#' `vignette("decorate-modules-output", package = "teal")` or the [`teal_transform_module()`] documentation. +#' #' @export #' #' @examplesShinylive @@ -865,7 +862,8 @@ tm_t_events_by_grade <- function(label, drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args()) { + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL) { message("Initializing tm_t_events_by_grade") checkmate::assert_string(label) checkmate::assert_string(dataname) @@ -883,6 +881,8 @@ tm_t_events_by_grade <- function(label, checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + decorators <- normalize_decorators(decorators) + assert_decorators(decorators, "table", null.ok = TRUE) args <- as.list(environment()) @@ -907,7 +907,8 @@ tm_t_events_by_grade <- function(label, total_label = total_label, grading_groups = grading_groups, na_level = na_level, - basic_table_args = basic_table_args + basic_table_args = basic_table_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -962,6 +963,7 @@ ui_t_events_by_grade <- function(id, ...) { "Display grade groupings in nested columns", value = a$col_by_grade ), + ui_decorate_teal_data(ns("decorator"), decorators = select_decorators(a$decorators, "table")), teal.widgets::panel_group( teal.widgets::panel_item( "Additional table settings", @@ -1017,7 +1019,8 @@ srv_t_events_by_grade <- function(id, drop_arm_levels, total_label, na_level, - basic_table_args) { + basic_table_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -1202,9 +1205,20 @@ srv_t_events_by_grade <- function(id, teal.code::eval_code(merged$anl_q(), as.expression(unlist(my_calls))) }) + + table_renamed_q <- reactive({ + within(table_q(), {table <- pruned_and_sorted_result}) + }) + + decorated_table_q <- srv_decorate_teal_data( + id = "decorator", + data = table_renamed_q, + decorators = select_decorators(decorators, "table"), + expr = table + ) # Outputs to render. table_r <- reactive({ - table_q()[["pruned_and_sorted_result"]] + decorated_table_q()[["table"]] }) teal.widgets::table_with_settings_srv( @@ -1215,7 +1229,7 @@ srv_t_events_by_grade <- function(id, # Render R code. teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(table_q())), + verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), title = label ) @@ -1234,7 +1248,7 @@ srv_t_events_by_grade <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(table_q())) + card$append_src(teal.code::get_code(req(decorated_table_q()))) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index 158dcdced..e2ff4a1bd 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -24,7 +24,8 @@ tm_t_events_by_grade( drop_arm_levels = TRUE, pre_output = NULL, post_output = NULL, - basic_table_args = teal.widgets::basic_table_args() + basic_table_args = teal.widgets::basic_table_args(), + decorators = NULL ) } \arguments{ @@ -80,6 +81,12 @@ For example the \code{\link[shiny:helpText]{shiny::helpText()}} elements are use with settings for the module table. The argument is merged with option \code{teal.basic_table_args} and with default module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating \code{tm_t_events_by_grade}" below for more details.} } \value{ a \code{teal_module} object. @@ -87,6 +94,18 @@ a \code{teal_module} object. \description{ This module produces a table to summarize events by grade. } +\section{Decorating \code{tm_t_events_by_grade}}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{table} (\code{TableTree} as created from \code{rtables::build_table}) +} + +For additional details and examples of decorators, refer to the vignette +\code{vignette("decorate-modules-output", package = "teal")} or the \code{\link[=teal_transform_module]{teal_transform_module()}} documentation. +} + \examples{ library(dplyr) data <- teal_data() From b2919f6c7c34b295501d2154bf1ecade63f348c0 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 15:06:23 +0000 Subject: [PATCH 76/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_t_events_by_grade.Rd | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/man/tm_t_events_by_grade.Rd b/man/tm_t_events_by_grade.Rd index e2ff4a1bd..ab31a139b 100644 --- a/man/tm_t_events_by_grade.Rd +++ b/man/tm_t_events_by_grade.Rd @@ -82,11 +82,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or \code{NULL}) optional, if not \code{NULL}, decorator for tables or plots included in the module. When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. -See section "Decorating \code{tm_t_events_by_grade}" below for more details.} +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -94,7 +97,7 @@ a \code{teal_module} object. \description{ This module produces a table to summarize events by grade. } -\section{Decorating \code{tm_t_events_by_grade}}{ +\section{Decorating Module}{ This module generates the following objects, which can be modified in place using decorators: From 5c90ece97713be9608335849cecf940e58afaf45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:22:40 +0000 Subject: [PATCH 77/86] docs: remove roxygen inline call --- R/tm_g_pp_adverse_events.R | 3 +-- R/tm_t_exposure.R | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/R/tm_g_pp_adverse_events.R b/R/tm_g_pp_adverse_events.R index 38e69e67f..df494bdd7 100644 --- a/R/tm_g_pp_adverse_events.R +++ b/R/tm_g_pp_adverse_events.R @@ -180,11 +180,10 @@ template_adverse_events <- function(dataname = "ANL", #' available choices and preselected option for the `ASTDY` variable from `dataname`. #' @param decod ([teal.transform::choices_selected()])\cr object with all #' available choices and preselected option for the `AEDECOD` variable from `dataname`. -#' @param decorators `r roxygen_decorators_param("tm_g_pp_adverse_events")` #' #' @inherit module_arguments return #' -#' @section Decorating `tm_g_pp_adverse_events`: +#' @section Decorating Modules: #' #' This module generates the following objects, which can be modified in place using decorators:: #' - `plot` (`ggplot2`) diff --git a/R/tm_t_exposure.R b/R/tm_t_exposure.R index 30c191dca..0ac3a4d93 100644 --- a/R/tm_t_exposure.R +++ b/R/tm_t_exposure.R @@ -223,11 +223,10 @@ template_exposure <- function(parentname, #' parameter category values. #' @param paramcd_label (`character`)\cr the column from the dataset where the value will be used to #' label the argument `paramcd`. -#' @param decorators `r roxygen_decorators_param("tm_t_exposure")` #' #' @inherit module_arguments return seealso #' -#' @section Decorating `tm_t_exposure`: +#' @section Decorating Modules: #' #' This module generates the following objects, which can be modified in place using decorators: #' - `table` (`TableTree` as created from `rtables::build_table`) From f439cd4aa809f976171b5ce4e1d8c1b7f03bde4d Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:31:24 +0000 Subject: [PATCH 78/86] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/tm_g_pp_adverse_events.Rd | 11 +++++++++-- man/tm_g_pp_patient_timeline.Rd | 9 ++++++++- man/tm_t_exposure.Rd | 11 +++++++++-- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/man/tm_g_pp_adverse_events.Rd b/man/tm_g_pp_adverse_events.Rd index 90625071f..3c5f45e4b 100644 --- a/man/tm_g_pp_adverse_events.Rd +++ b/man/tm_g_pp_adverse_events.Rd @@ -74,7 +74,14 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\verb{r roxygen_decorators_param("tm_g_pp_adverse_events")}} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -82,7 +89,7 @@ a \code{teal_module} object. \description{ This module produces an adverse events table and \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} type plot using ADaM datasets. } -\section{Decorating \code{tm_g_pp_adverse_events}}{ +\section{Decorating Modules}{ This module generates the following objects, which can be modified in place using decorators:: diff --git a/man/tm_g_pp_patient_timeline.Rd b/man/tm_g_pp_patient_timeline.Rd index 41d9d4026..45175ce25 100644 --- a/man/tm_g_pp_patient_timeline.Rd +++ b/man/tm_g_pp_patient_timeline.Rd @@ -89,7 +89,14 @@ for the module plot. The argument is merged with option \code{teal.ggplot2_args} (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} -\item{decorators}{\verb{r roxygen_decorators_param("tm_g_pp_adverse_events")}} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. diff --git a/man/tm_t_exposure.Rd b/man/tm_t_exposure.Rd index 8505eddbe..1899db3c0 100644 --- a/man/tm_t_exposure.Rd +++ b/man/tm_t_exposure.Rd @@ -93,7 +93,14 @@ with settings for the module table. The argument is merged with option \code{tea module arguments (hard coded in the module body). For more details, see the vignette: \code{vignette("custom-basic-table-arguments", package = "teal.widgets")}.} -\item{decorators}{\verb{r roxygen_decorators_param("tm_t_exposure")}} +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -101,7 +108,7 @@ a \code{teal_module} object. \description{ The module produces an exposure table for risk management plan. } -\section{Decorating \code{tm_t_exposure}}{ +\section{Decorating Modules}{ This module generates the following objects, which can be modified in place using decorators: From 00c8c0be31e41b514c90596c9ef2accfd91f1c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:50:06 +0000 Subject: [PATCH 79/86] fix: linter error --- R/tm_t_events_by_grade.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/tm_t_events_by_grade.R b/R/tm_t_events_by_grade.R index b6e28ab6d..29aacd14a 100644 --- a/R/tm_t_events_by_grade.R +++ b/R/tm_t_events_by_grade.R @@ -1207,7 +1207,7 @@ srv_t_events_by_grade <- function(id, table_renamed_q <- reactive({ - within(table_q(), {table <- pruned_and_sorted_result}) + within(table_q(), table <- pruned_and_sorted_result) }) decorated_table_q <- srv_decorate_teal_data( From a855989138b5cc5e4ca11697e32da763e0a1b246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Thu, 12 Dec 2024 14:10:20 +0000 Subject: [PATCH 80/86] Adds decorators to `tm_a_mmrm` (#1300) Part of https://github.com/insightsengineering/teal/issues/1371
Working example ```r # Load packages pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } add_title_decorator <- function(default_check = TRUE, .var_to_replace = "plot") { teal_transform_module( label = "Theme", ui = function(id) shiny::checkboxInput(NS(id, "flag"), "Add title?", TRUE), server = make_teal_transform_server( substitute({ if (flag) .var_to_replace <- .var_to_replace + ggplot2::ggtitle("Title added by decorator") }, env = list(.var_to_replace = as.name(.var_to_replace)) ) ) ) } library(dplyr) arm_ref_comp <- list( ARMCD = list( ref = "ARM B", comp = c("ARM A", "ARM C") ) ) data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl ADQS <- tmc_ex_adqs %>% filter(ABLFL != "Y" & ABLFL2 != "Y") %>% filter(AVISIT %in% c("WEEK 1 DAY 8", "WEEK 2 DAY 15", "WEEK 3 DAY 22")) %>% mutate( AVISIT = as.factor(AVISIT), AVISITN = rank(AVISITN) %>% as.factor() %>% as.numeric() %>% as.factor() #' making consecutive numeric factor ) }) join_keys(data) <- default_cdisc_join_keys[names(data)] init( data = data, modules = modules( tm_a_mmrm( label = "MMRM", dataname = "ADQS", aval_var = choices_selected(c("AVAL", "CHG"), "AVAL"), id_var = choices_selected(c("USUBJID", "SUBJID"), "USUBJID"), arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), visit_var = choices_selected(c("AVISIT", "AVISITN"), "AVISIT"), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( choices = value_choices(data[["ADQS"]], "PARAMCD", "PARAM"), selected = "FKSI-FWB" ), cov_var = choices_selected(c("BASE", "AGE", "SEX", "BASE:AVISIT"), NULL), decorators = list( lsmeans_table = insert_rrow_decorator("A", .var_to_replace = "lsmeans_table") , lsmeans_plot = add_title_decorator("B", .var_to_replace = "lsmeans_plot") , covariance_table = insert_rrow_decorator("C", .var_to_replace = "covariance_table") , fixed_effects_table = insert_rrow_decorator("D", .var_to_replace = "fixed_effects_table") , diagnostic_table = insert_rrow_decorator(.var_to_replace = "diagnostic_table") , diagnostic_plot = add_title_decorator(.var_to_replace = "diagnostic_plot") ) ) ) ) |> shiny::runApp() ```
--------- Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com> --- R/tm_a_mmrm.R | 163 ++++++++++++++++++++++++++++++++++++++--------- man/tm_a_mmrm.Rd | 45 ++++++++++++- 2 files changed, 177 insertions(+), 31 deletions(-) diff --git a/R/tm_a_mmrm.R b/R/tm_a_mmrm.R index 59039b41c..02b18b96f 100644 --- a/R/tm_a_mmrm.R +++ b/R/tm_a_mmrm.R @@ -273,7 +273,6 @@ template_mmrm_tables <- function(parentname, df = df_explicit_na(broom::tidy(fit_mmrm), na_level = default_na_str()), alt_counts_df = parentname ) - lsmeans_table }, env = list( parentname = as.name(parentname), @@ -284,9 +283,8 @@ template_mmrm_tables <- function(parentname, t_mmrm_cov = { y$cov_matrix <- substitute( expr = { - cov_matrix <- tern.mmrm::as.rtable(fit_mmrm, type = "cov") - subtitles(cov_matrix) <- st - cov_matrix + covariance_table <- tern.mmrm::as.rtable(fit_mmrm, type = "cov") + subtitles(covariance_table) <- st }, env = list( fit_mmrm = as.name(fit_name), @@ -297,9 +295,8 @@ template_mmrm_tables <- function(parentname, t_mmrm_fixed = { y$fixed_effects <- substitute( expr = { - fixed_effects <- tern.mmrm::as.rtable(fit_mmrm, type = "fixed") - subtitles(fixed_effects) <- st - fixed_effects + fixed_effects_table <- tern.mmrm::as.rtable(fit_mmrm, type = "fixed") + subtitles(fixed_effects_table) <- st }, env = list( fit_mmrm = as.name(fit_name), @@ -312,7 +309,6 @@ template_mmrm_tables <- function(parentname, expr = { diagnostic_table <- tern.mmrm::as.rtable(fit_mmrm, type = "diagnostic") subtitles(diagnostic_table) <- st - diagnostic_table }, env = list( fit_mmrm = as.name(fit_name), @@ -462,6 +458,35 @@ template_mmrm_plots <- function(fit_name, #' #' @inherit module_arguments return seealso #' +#' @section Decorating Module: +#' +#' This module generates the following objects, which can be modified in place using decorators: +#' - `lsmeans_plot` (`ggplot2`) +#' - `diagnostic_plot` (`TableTree`- output from `rtables::build_table`) +#' - `lsmeans_table` (`TableTree`- output from `rtables::build_table`) +#' - `covariance_table` (`TableTree`- output from `rtables::build_table`) +#' - `fixed_effects_table` (`TableTree`- output from `rtables::build_table`) +#' - `diagnostic_table` (`TableTree`- output from `rtables::build_table`) +#' +#' Decorators can be applied to all outputs or only to specific objects using a +#' named list of `teal_transform_module` objects. +#' The `"default"` name is reserved for decorators that are applied to all outputs. +#' See code snippet below: +#' +#' ``` +#' tm_a_mrmm( +#' ..., # arguments for module +#' decorators = list( +#' default = list(teal_transform_module(...)), # applied to all outputs +#' lsmeans_plot = list(teal_transform_module(...)) # applied only to `lsmeans_plot` output +#' diagnostic_plot = list(teal_transform_module(...)) # applied only to `diagnostic_plot` output +#' lsmeans_table = list(teal_transform_module(...)) # applied only to `lsmeans_table` output +#' covariance_table = list(teal_transform_module(...)) # applied only to `covariance_table` output +#' fixed_effects_table = list(teal_transform_module(...)) # applied only to `fixed_effects_table` output +#' diagnostic_table = list(teal_transform_module(...)) # applied only to `diagnostic_table` output +#' ) +#' ) +#' ``` #' @examplesShinylive #' library(teal.modules.clinical) #' interactive <- function() TRUE @@ -543,7 +568,8 @@ tm_a_mmrm <- function(label, pre_output = NULL, post_output = NULL, basic_table_args = teal.widgets::basic_table_args(), - ggplot2_args = teal.widgets::ggplot2_args()) { + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL) { message("Initializing tm_a_mmrm") cov_var <- teal.transform::add_no_selected_choices(cov_var, multiple = TRUE) checkmate::assert_string(label) @@ -572,6 +598,20 @@ tm_a_mmrm <- function(label, checkmate::assert_list(ggplot2_args, types = "ggplot2_args") checkmate::assert_subset(names(ggplot2_args), c("default", plot_choices)) + decorators <- normalize_decorators(decorators) + assert_decorators( + decorators, + c( + "lsmeans_table", + "lsmeans_plot", + "covariance_table", + "fixed_effects_table", + "diagnostic_table", + "diagnostic_plot" + ), + null.ok = TRUE + ) + args <- as.list(environment()) data_extract_list <- list( @@ -600,7 +640,8 @@ tm_a_mmrm <- function(label, plot_height = plot_height, plot_width = plot_width, basic_table_args = basic_table_args, - ggplot2_args = ggplot2_args + ggplot2_args = ggplot2_args, + decorators = decorators ) ), datanames = teal.transform::get_extract_datanames(data_extract_list) @@ -754,6 +795,32 @@ ui_mmrm <- function(id, ...) { ), selected = "t_mmrm_lsmeans" ), + # Decorators --- + conditionalPanel( + condition = sprintf("input['%s'] == '%s'", ns("output_function"), "t_mmrm_lsmeans"), + ui_decorate_teal_data(ns("d_lsmeans_table"), select_decorators(a$decorators, "lsmeans_table")) + ), + conditionalPanel( + condition = sprintf("input['%s'] == '%s'", ns("output_function"), "g_mmrm_lsmeans"), + ui_decorate_teal_data(ns("d_lsmeans_plot"), select_decorators(a$decorators, "lsmeans_plot")) + ), + conditionalPanel( + condition = sprintf("input['%s'] == '%s'", ns("output_function"), "t_mmrm_cov"), + ui_decorate_teal_data(ns("d_covariance_table"), select_decorators(a$decorators, "covariance_table")) + ), + conditionalPanel( + condition = sprintf("input['%s'] == '%s'", ns("output_function"), "t_mmrm_fixed"), + ui_decorate_teal_data(ns("d_fixed_effects_table"), select_decorators(a$decorators, "fixed_effects_table")) + ), + conditionalPanel( + condition = sprintf("input['%s'] == '%s'", ns("output_function"), "t_mmrm_diagnostic"), + ui_decorate_teal_data(ns("d_diagnostic_table"), select_decorators(a$decorators, "diagnostic_table")) + ), + conditionalPanel( + condition = sprintf("input['%s'] == '%s'", ns("output_function"), "g_mmrm_diagnostic"), + ui_decorate_teal_data(ns("d_diagnostic_plot"), select_decorators(a$decorators, "diagnostic_plot")) + ), + # End of Decorators --- conditionalPanel( condition = paste0( "input['", ns("output_function"), "'] == 't_mmrm_lsmeans'", " || ", @@ -843,7 +910,8 @@ srv_mmrm <- function(id, plot_height, plot_width, basic_table_args, - ggplot2_args) { + ggplot2_args, + decorators) { with_reporter <- !missing(reporter) && inherits(reporter, "Reporter") with_filter <- !missing(filter_panel_api) && inherits(filter_panel_api, "FilterPanelAPI") checkmate::assert_class(data, "reactive") @@ -1399,30 +1467,62 @@ srv_mmrm <- function(id, teal.code::eval_code(qenv, as.expression(mmrm_plot_expr)) }) - all_q <- reactive({ - if (!is.null(plot_q()) && !is.null(table_q())) { - c(plot_q(), table_q()) - } else if (!is.null(plot_q())) { - plot_q() - } else { - table_q() + decorated_tables_q <- lapply( + rlang::set_names( + c("lsmeans_table", "diagnostic_table", "fixed_effects_table", "covariance_table") + ), + function(output_function) { + srv_decorate_teal_data( + id = sprintf("d_%s", output_function), + data = table_q, + decorators = select_decorators(decorators, output_function), + expr = reactive(bquote(.(as.name(output_function)))), + expr_is_reactive = TRUE + ) } - }) + ) - table_r <- reactive({ + decorated_objs_q <- c( + decorated_tables_q, + lapply( + rlang::set_names(c("lsmeans_plot", "diagnostic_plot")), + function(output_function) { + srv_decorate_teal_data( + id = sprintf("d_%s", output_function), + data = plot_q, + decorators = select_decorators(decorators, output_function), + expr = reactive(bquote(.(as.name(output_function)))), + expr_is_reactive = TRUE + ) + } + ) + ) + + obj_ix_r <- reactive({ switch(input$output_function, - t_mmrm_lsmeans = table_q()[["lsmeans_table"]], - t_mmrm_diagnostic = table_q()[["diagnostic_table"]], - t_mmrm_fixed = table_q()[["fixed_effects"]], - t_mmrm_cov = table_q()[["cov_matrix"]] + t_mmrm_lsmeans = "lsmeans_table", + t_mmrm_diagnostic = "diagnostic_table", + t_mmrm_fixed = "fixed_effects_table", + t_mmrm_cov = "covariance_table", + g_mmrm_lsmeans = "lsmeans_plot", + g_mmrm_diagnostic = "diagnostic_plot" ) }) plot_r <- reactive({ - switch(input$output_function, - g_mmrm_lsmeans = plot_q()[["lsmeans_plot"]], - g_mmrm_diagnostic = plot_q()[["diagnostic_plot"]] - ) + if (is.null(plot_q())) { + NULL + } else { + decorated_objs_q[[obj_ix_r()]]()[[obj_ix_r()]] + } + }) + + table_r <- reactive({ + if (is.null(table_q())) { + NULL + } else { + decorated_objs_q[[obj_ix_r()]]()[[obj_ix_r()]] + } }) pws <- teal.widgets::plot_with_settings_srv( @@ -1440,9 +1540,12 @@ srv_mmrm <- function(id, ) # Show R code once button is pressed. + source_code_r <- reactive( + teal.code::get_code(req(decorated_objs_q[[obj_ix_r()]]())) + ) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(all_q())), + verbatim_content = source_code_r, disabled = disable_r_code, title = "R Code for the Current MMRM Analysis" ) @@ -1472,7 +1575,7 @@ srv_mmrm <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(all_q())) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/man/tm_a_mmrm.Rd b/man/tm_a_mmrm.Rd index 58225572c..24a9ba960 100644 --- a/man/tm_a_mmrm.Rd +++ b/man/tm_a_mmrm.Rd @@ -26,7 +26,8 @@ tm_a_mmrm( pre_output = NULL, post_output = NULL, basic_table_args = teal.widgets::basic_table_args(), - ggplot2_args = teal.widgets::ggplot2_args() + ggplot2_args = teal.widgets::ggplot2_args(), + decorators = NULL ) } \arguments{ @@ -94,6 +95,15 @@ with settings for all the plots or named list of \code{ggplot2_args} objects for List names should match the following: \code{c("default", "lsmeans", "diagnostic")}. The argument is merged with option \code{teal.ggplot2_args} and with default module arguments (hard coded in the module body). For more details, see the help vignette: \code{vignette("custom-ggplot2-arguments", package = "teal.widgets")}.} + +\item{decorators}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} +" (\code{list} of \code{teal_transform_module}, named \code{list} of \code{teal_transform_module} or" \code{NULL}) optional, +if not \code{NULL}, decorator for tables or plots included in the module. +When a named list of \code{teal_transform_module}, the decorators are applied to the respective output objects. + +Otherwise, the decorators are applied to all objects, which is equivalent as using the name \code{default}. + +See section "Decorating Module" below for more details.} } \value{ a \code{teal_module} object. @@ -107,6 +117,39 @@ different convergence behavior. This is a known observation with the used packag \code{lme4}. However, once convergence is achieved, the results are reliable up to numerical precision. } +\section{Decorating Module}{ + + +This module generates the following objects, which can be modified in place using decorators: +\itemize{ +\item \code{lsmeans_plot} (\code{ggplot2}) +\item \code{diagnostic_plot} (\code{TableTree}- output from \code{rtables::build_table}) +\item \code{lsmeans_table} (\code{TableTree}- output from \code{rtables::build_table}) +\item \code{covariance_table} (\code{TableTree}- output from \code{rtables::build_table}) +\item \code{fixed_effects_table} (\code{TableTree}- output from \code{rtables::build_table}) +\item \code{diagnostic_table} (\code{TableTree}- output from \code{rtables::build_table}) +} + +Decorators can be applied to all outputs or only to specific objects using a +named list of \code{teal_transform_module} objects. +The \code{"default"} name is reserved for decorators that are applied to all outputs. +See code snippet below: + +\if{html}{\out{
}}\preformatted{tm_a_mrmm( + ..., # arguments for module + decorators = list( + default = list(teal_transform_module(...)), # applied to all outputs + lsmeans_plot = list(teal_transform_module(...)) # applied only to `lsmeans_plot` output + diagnostic_plot = list(teal_transform_module(...)) # applied only to `diagnostic_plot` output + lsmeans_table = list(teal_transform_module(...)) # applied only to `lsmeans_table` output + covariance_table = list(teal_transform_module(...)) # applied only to `covariance_table` output + fixed_effects_table = list(teal_transform_module(...)) # applied only to `fixed_effects_table` output + diagnostic_table = list(teal_transform_module(...)) # applied only to `diagnostic_table` output + ) +) +}\if{html}{\out{
}} +} + \examples{ library(dplyr) From 0a06fbba7a0b3148b65c35ba43f060fad22f1865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Thu, 12 Dec 2024 17:41:30 +0000 Subject: [PATCH 81/86] fix: tm_t_coxreg bug --- R/tm_t_coxreg.R | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/R/tm_t_coxreg.R b/R/tm_t_coxreg.R index bde44f002..e9507c438 100644 --- a/R/tm_t_coxreg.R +++ b/R/tm_t_coxreg.R @@ -1054,7 +1054,7 @@ srv_t_coxreg <- function(id, ) merged$anl_q() %>% - teal.code::eval_code(quote(result <- list())) %>% + teal.code::eval_code(quote(table <- list())) %>% teal.code::eval_code( as.expression(unlist(lapply( unlist(input$buckets$Comp), @@ -1066,19 +1066,18 @@ srv_t_coxreg <- function(id, teal.code::eval_code( substitute( expr = { - result <- lapply(result, function(x) { - rtables::col_info(x) <- rtables::col_info(result[[1]]) + table <- lapply(table, function(x) { + rtables::col_info(x) <- rtables::col_info(table[[1]]) x }) - result <- rtables::rbindl_rtables(result, check_headers = TRUE) - rtables::main_title(result) <- title - rtables::main_footer(result) <- c( + table <- rtables::rbindl_rtables(table, check_headers = TRUE) + rtables::main_title(table) <- title + rtables::main_footer(table) <- c( paste("p-value method for Coxph (Hazard Ratio):", control$pval_method), paste("Ties for Coxph (Hazard Ratio):", control$ties) ) - rtables::prov_footer(result) <- p_footer - rtables::subtitles(result) <- subtitle - result + rtables::prov_footer(table) <- p_footer + rtables::subtitles(table) <- subtitle }, env = list( title = all_basic_table_args$title, From 6d4ce5b2ac5f6520d5fdf2ec64476b81881f74c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Fri, 13 Dec 2024 15:40:43 +0000 Subject: [PATCH 82/86] fix: adverse events error --- R/tm_g_pp_adverse_events.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/tm_g_pp_adverse_events.R b/R/tm_g_pp_adverse_events.R index df494bdd7..2690f463f 100644 --- a/R/tm_g_pp_adverse_events.R +++ b/R/tm_g_pp_adverse_events.R @@ -58,8 +58,8 @@ template_adverse_events <- function(dataname = "ANL", dplyr::where(~ inherits(., what = "difftime")), ~ as.double(., units = "auto") ) ) - table <- rlistings::as_listing( - table, + table_output <- rlistings::as_listing( + table_data, key_cols = NULL, default_formatting = list(all = fmt_config(align = "left")) ) From 8a9edd239f4d5d32fbcf839661fe6118f219108b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Mon, 16 Dec 2024 13:39:31 +0000 Subject: [PATCH 83/86] Uses same code for source code generation in modules (#1301) Part of https://github.com/insightsengineering/teal/issues/1371 ### Example app with all modules / decorators
Example app ```r # Load packages pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Decorators ------------------------------------------------------------------ insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New rtables row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } add_title_decorator <- function(default_check = TRUE, .var_to_replace = "plot") { teal_transform_module( label = "Title", ui = function(id) shiny::checkboxInput(NS(id, "flag"), "Add title?", TRUE), server = make_teal_transform_server( substitute({ if (flag) .var_to_replace <- .var_to_replace + ggplot2::ggtitle("Title added by decorator") }, env = list(.var_to_replace = as.name(.var_to_replace)) ) ) ) } caption_decorator <- function(default_caption = "I am a good decorator", .var_to_replace = "plot") { teal_transform_module( label = "Caption", ui = function(id) shiny::textInput(shiny::NS(id, "footnote"), "Footnote", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- .var_to_replace + ggplot2::labs(caption = footnote) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } change_theme_decorator <- function(default_check = TRUE, .var_to_replace = "plot") { teal_transform_module( label = "Theme", ui = function(id) shiny::checkboxInput(NS(id, "flag"), "Apply dark theme?", TRUE), server = make_teal_transform_server( substitute({ if (flag) .var_to_replace <- .var_to_replace + ggplot2::theme_dark() }, env = list(.var_to_replace = as.name(.var_to_replace)) ) ) ) } add_cowplot_title_decorator <- function(default_check = TRUE, .var_to_replace = "plot") { teal_transform_module( label = "Cowplot title", ui = function(id) shiny::checkboxInput(NS(id, "flag"), "Add title?", TRUE), server = make_teal_transform_server( substitute({ if (flag) .var_to_replace <- .var_to_replace + ggplot2::ggtitle("Title added by decorator") + cowplot::theme_cowplot() }, env = list(.var_to_replace = as.name(.var_to_replace)) ) ) ) } rlisting_footer <- function(default_footer = "I am a good footer", .var_to_replace = "table_listing") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "footer"), "footer", value = default_footer), server = make_teal_transform_server( substitute({ rlistings::main_footer(.var_to_replace) <- footer }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } # End of decorators ----------------------------------------------------------- library(dplyr) # arm_ref_comp <- list(ARMCD = list(ref = "ARM B", comp = c("ARM A", "ARM C"))) arm_ref_comp <- list( ACTARMCD = list(ref = "ARM B", comp = c("ARM A", "ARM C")), ARM = list(ref = "B: Placebo", comp = c("A: Drug X", "C: Combination")) ) data <- within(teal_data(), { ADSL <- tmc_ex_adsl |> mutate(ITTFL = factor("Y") |> with_label("Intent-To-Treat Population Flag")) |> mutate(DTHFL = case_when(!is.na(DTHDT) ~ "Y", TRUE ~ "") |> with_label("Subject Death Flag")) ADAE <- tmc_ex_adae |> filter(!((AETOXGR == 1) & (AESEV == "MILD") & (ARM == "A: Drug X"))) ADAE$ASTDY <- structure( as.double(ADAE$ASTDY, unit = attr(ADAE$ASTDY, "units", exact = TRUE)), label = attr(ADAE$ASTDY, "label", exact = TRUE) ) .lbls_adae <- col_labels(tmc_ex_adae) ADAE <- tmc_ex_adae %>% mutate_if(is.character, as.factor) #' be certain of having factors col_labels(ADAE) <- .lbls_adae ADTTE <- tmc_ex_adtte ADLB <- tmc_ex_adlb |> mutate(AVISIT == forcats::fct_reorder(AVISIT, AVISITN, min)) |> mutate( ONTRTFL = case_when( AVISIT %in% c("SCREENING", "BASELINE") ~ "", TRUE ~ "Y" ) |> with_label("On Treatment Record Flag") ) ADVS <- tmc_ex_advs ADRS <- tmc_ex_adrs |> mutate( AVALC = d_onco_rsp_label(AVALC) |> with_label("Character Result/Finding") ) |> filter(PARAMCD != "OVRINV" | AVISIT == "FOLLOW UP") |> filter(PARAMCD %in% c("BESRSPI", "INVET")) ADAETTE <- tmc_ex_adaette %>% filter(PARAMCD %in% c("AETTE1", "AETTE2", "AETTE3")) %>% mutate(is_event = CNSR == 0) %>% mutate(n_events = as.integer(is_event)) .add_event_flags <- function(dat) { dat <- dat %>% mutate( TMPFL_SER = AESER == "Y", TMPFL_REL = AEREL == "Y", TMPFL_GR5 = AETOXGR == "5", TMP_SMQ01 = !is.na(SMQ01NAM), TMP_SMQ02 = !is.na(SMQ02NAM), TMP_CQ01 = !is.na(CQ01NAM) ) column_labels <- list( TMPFL_SER = "Serious AE", TMPFL_REL = "Related AE", TMPFL_GR5 = "Grade 5 AE", TMP_SMQ01 = aesi_label(dat[["SMQ01NAM"]], dat[["SMQ01SC"]]), TMP_SMQ02 = aesi_label("Y.9.9.9.9/Z.9.9.9.9 AESI"), TMP_CQ01 = aesi_label(dat[["CQ01NAM"]]) ) col_labels(dat)[names(column_labels)] <- as.character(column_labels) dat } ADEX <- tmc_ex_adex set.seed(1, kind = "Mersenne-Twister") .labels <- col_labels(ADEX, fill = FALSE) ADEX <- ADEX %>% distinct(USUBJID, .keep_all = TRUE) %>% mutate( PARAMCD = "TDURD", PARAM = "Overall duration (days)", AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE), AVALU = "Days" ) %>% bind_rows(ADEX) col_labels(ADEX) <- .labels ADCM <- tmc_ex_adcm ADMH <- tmc_ex_admh ADCM$CMASTDTM <- ADCM$ASTDTM ADCM$CMAENDTM <- ADCM$AENDTM ADEG <- tmc_ex_adeg # smq .names_baskets <- grep("^(SMQ|CQ).*NAM$", names(ADAE), value = TRUE) .names_scopes <- grep("^SMQ.*SC$", names(ADAE), value = TRUE) .cs_baskets <- choices_selected( choices = variable_choices(ADAE, subset = .names_baskets), selected = .names_baskets ) .cs_scopes <- choices_selected( choices = variable_choices(ADAE, subset = .names_scopes), selected = .names_scopes, fixed = TRUE ) # summary ADSL$EOSDY[1] <- NA_integer_ }) join_keys(data) <- default_cdisc_join_keys[names(data)] adcm_keys <- c("STUDYID", "USUBJID", "ASTDTM", "CMSEQ", "ATC1", "ATC2", "ATC3", "ATC4") join_keys(data)["ADCM", "ADCM"] <- adcm_keys # Use in choices selected ----------------------------------------------------- ADSL <- data[["ADSL"]] ADQS <- data[["ADQS"]] ADAE <- data[["ADAE"]] ADTTE <- data[["ADTTE"]] ADLB <- data[["ADLB"]] ADAE <- data[["ADAE"]] ADVS <- data[["ADVS"]] ADRS <- data[["ADRS"]] ADAETTE <- data[["ADAETTE"]] ADEX <- data[["ADEX"]] ADCM <- data[["ADCM"]] ADMH <- data[["ADMH"]] ADEG <- data[["ADEG"]] # Init ------------------------------------------------------------------------ init( data = data, modules = modules( # ------------------------------------------------------------------------- tm_t_summary_by( label = "Summary by Row Groups Table", dataname = "ADLB", arm_var = choices_selected( choices = variable_choices(ADSL, c("ARM", "ARMCD")), selected = "ARM" ), add_total = TRUE, by_vars = choices_selected( choices = variable_choices(ADLB, c("PARAM", "AVISIT")), selected = c("AVISIT") ), summarize_vars = choices_selected( choices = variable_choices(ADLB, c("AVAL", "CHG")), selected = c("AVAL") ), useNA = "ifany", paramcd = choices_selected( choices = value_choices(ADLB, "PARAMCD", "PARAM"), selected = "ALT" ), decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_smq( label = "Adverse Events by SMQ Table", dataname = "ADAE", arm_var = choices_selected( choices = variable_choices(data[["ADSL"]], subset = c("ARM", "SEX")), selected = "ARM" ), add_total = FALSE, baskets = data[[".cs_baskets"]], scopes = data[[".cs_scopes"]], llt = choices_selected( choices = variable_choices(data[["ADAE"]], subset = c("AEDECOD")), selected = "AEDECOD" ), decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_shift_by_grade( label = "Grade Laboratory Abnormality Table", dataname = "ADLB", arm_var = choices_selected( choices = variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), paramcd = choices_selected( choices = value_choices(ADLB, "PARAMCD", "PARAM"), selected = "ALT" ), worst_flag_var = choices_selected( choices = variable_choices(ADLB, subset = c("WGRLOVFL", "WGRLOFL", "WGRHIVFL", "WGRHIFL")), selected = c("WGRLOVFL") ), worst_flag_indicator = choices_selected( value_choices(ADLB, "WGRLOVFL"), selected = "Y", fixed = TRUE ), anl_toxgrade_var = choices_selected( choices = variable_choices(ADLB, subset = c("ATOXGR")), selected = c("ATOXGR"), fixed = TRUE ), base_toxgrade_var = choices_selected( choices = variable_choices(ADLB, subset = c("BTOXGR")), selected = c("BTOXGR"), fixed = TRUE ), add_total = FALSE, decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_shift_by_arm( label = "Shift by Arm Table", dataname = "ADEG", arm_var = choices_selected( variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), paramcd = choices_selected( value_choices(ADEG, "PARAMCD"), selected = "HR" ), visit_var = choices_selected( value_choices(ADEG, "AVISIT"), selected = "POST-BASELINE MINIMUM" ), aval_var = choices_selected( variable_choices(ADEG, subset = "ANRIND"), selected = "ANRIND", fixed = TRUE ), baseline_var = choices_selected( variable_choices(ADEG, subset = "BNRIND"), selected = "BNRIND", fixed = TRUE ), useNA = "ifany", decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_shift_by_arm_by_worst( label = "Shift by Arm Table (by worst)", dataname = "ADEG", arm_var = choices_selected( variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), paramcd = choices_selected( value_choices(ADEG, "PARAMCD"), selected = "ECGINTP" ), worst_flag_var = choices_selected( variable_choices(ADEG, c("WORS02FL", "WORS01FL")), selected = "WORS02FL" ), worst_flag = choices_selected( value_choices(ADEG, "WORS02FL"), selected = "Y", fixed = TRUE ), aval_var = choices_selected( variable_choices(ADEG, c("AVALC", "ANRIND")), selected = "AVALC" ), baseline_var = choices_selected( variable_choices(ADEG, c("BASEC", "BNRIND")), selected = "BASEC" ), useNA = "ifany", decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_pp_prior_medication( label = "Prior Medication", dataname = "ADCM", parentname = "ADSL", patient_col = "USUBJID", atirel = choices_selected( choices = variable_choices(ADCM, "ATIREL"), selected = "ATIREL" ), cmdecod = choices_selected( choices = variable_choices(ADCM, "CMDECOD"), selected = "CMDECOD" ), cmindc = choices_selected( choices = variable_choices(ADCM, "CMINDC"), selected = "CMINDC" ), cmstdy = choices_selected( choices = variable_choices(ADCM, "ASTDY"), selected = "ASTDY" ), decorators = list( table = rlisting_footer(.var_to_replace = "table") ) ), # ------------------------------------------------------------------------- tm_t_pp_medical_history( label = "Medical History", dataname = "ADMH", parentname = "ADSL", patient_col = "USUBJID", mhterm = choices_selected( choices = variable_choices(ADMH, c("MHTERM")), selected = "MHTERM" ), mhbodsys = choices_selected( choices = variable_choices(ADMH, "MHBODSYS"), selected = "MHBODSYS" ), mhdistat = choices_selected( choices = variable_choices(ADMH, "MHDISTAT"), selected = "MHDISTAT" ), decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_pp_laboratory( label = "Vitals", dataname = "ADLB", patient_col = "USUBJID", paramcd = choices_selected( choices = variable_choices(ADLB, "PARAMCD"), selected = "PARAMCD" ), param = choices_selected( choices = variable_choices(ADLB, "PARAM"), selected = "PARAM" ), timepoints = choices_selected( choices = variable_choices(ADLB, "ADY"), selected = "ADY" ), anrind = choices_selected( choices = variable_choices(ADLB, "ANRIND"), selected = "ANRIND" ), aval_var = choices_selected( choices = variable_choices(ADLB, "AVAL"), selected = "AVAL" ), avalu_var = choices_selected( choices = variable_choices(ADLB, "AVALU"), selected = "AVALU" ), decorators = list(table = rlisting_footer(.var_to_replace = "table")) ), # ------------------------------------------------------------------------- tm_t_pp_basic_info( label = "Basic Info", dataname = "ADSL", patient_col = "USUBJID", vars = choices_selected(choices = variable_choices(ADSL), selected = c("ARM", "AGE", "SEX", "COUNTRY", "RACE", "EOSSTT")) , decorators = list( table = rlisting_footer(.var_to_replace = "table") ) ), # ------------------------------------------------------------------------- tm_t_mult_events( label = "Concomitant Medications by Medication Class and Preferred Name", dataname = "ADCM", arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), seq_var = choices_selected("CMSEQ", selected = "CMSEQ", fixed = TRUE), hlt = choices_selected( choices = variable_choices(ADCM, c("ATC1", "ATC2", "ATC3", "ATC4")), selected = c("ATC1", "ATC2", "ATC3", "ATC4") ), llt = choices_selected(choices = variable_choices(ADCM, c("CMDECOD")), selected = c("CMDECOD")), add_total = TRUE, event_type = "treatment", decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_logistic( label = "Logistic Regression", dataname = "ADRS", arm_var = choices_selected( choices = variable_choices(ADRS, c("ARM", "ARMCD")), selected = "ARM" ), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( choices = value_choices(ADRS, "PARAMCD", "PARAM"), selected = "BESRSPI" ), cov_var = choices_selected( choices = c("SEX", "AGE", "BMRKR1", "BMRKR2"), selected = "SEX" ), decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_exposure( label = "Duration of Exposure Table", dataname = "ADEX", paramcd = choices_selected( choices = value_choices(data[["ADEX"]], "PARAMCD", "PARAM"), selected = "TDURD" ), col_by_var = choices_selected( choices = variable_choices(data[["ADEX"]], subset = c("SEX", "ARM")), selected = "SEX" ), row_by_var = choices_selected( choices = variable_choices(data[["ADEX"]], subset = c("RACE", "REGION1", "STRATA1", "SEX")), selected = "RACE" ), parcat = choices_selected( choices = value_choices(data[["ADEX"]], "PARCAT2"), selected = "Drug A" ), add_total = FALSE, decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_events( label = "Adverse Event Table", dataname = "ADAE", arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), llt = choices_selected( choices = variable_choices(ADAE, c("AETERM", "AEDECOD")), selected = c("AEDECOD") ), hlt = choices_selected( choices = variable_choices(ADAE, c("AEBODSYS", "AESOC")), selected = "AEBODSYS" ), add_total = TRUE, event_type = "adverse event", decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_events_patyear( label = "AE Rate Adjusted for Patient-Years At Risk Table", dataname = "ADAETTE", arm_var = choices_selected( choices = variable_choices(ADSL, c("ARM", "ARMCD")), selected = "ARMCD" ), add_total = TRUE, events_var = choices_selected( choices = variable_choices(ADAETTE, "n_events"), selected = "n_events", fixed = TRUE ), paramcd = choices_selected( choices = value_choices(ADAETTE, "PARAMCD", "PARAM"), selected = "AETTE1" ), decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_events_by_grade( label = "Adverse Events by Grade Table", dataname = "ADAE", arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), llt = choices_selected( choices = variable_choices(ADAE, c("AETERM", "AEDECOD")), selected = c("AEDECOD") ), hlt = choices_selected( choices = variable_choices(ADAE, c("AEBODSYS", "AESOC")), selected = "AEBODSYS" ), grade = choices_selected( choices = variable_choices(ADAE, c("AETOXGR", "AESEV")), selected = "AETOXGR" ), decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_coxreg( label = "Cox Reg.", dataname = "ADTTE", arm_var = choices_selected(c("ARM", "ARMCD", "ACTARMCD"), "ARM"), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( value_choices(ADTTE, "PARAMCD", "PARAM"), "OS" ), strata_var = choices_selected( c("COUNTRY", "STRATA1", "STRATA2"), "STRATA1" ), cov_var = choices_selected( c("AGE", "BMRKR1", "BMRKR2", "REGION1"), "AGE" ), multivariate = TRUE, decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_abnormality( label = "Abnormality Table", dataname = "ADLB", arm_var = choices_selected( choices = variable_choices(ADSL, subset = c("ARM", "ARMCD")), selected = "ARM" ), add_total = FALSE, by_vars = choices_selected( choices = variable_choices(ADLB, subset = c("LBCAT", "PARAM", "AVISIT")), selected = c("LBCAT", "PARAM"), keep_order = TRUE ), baseline_var = choices_selected( variable_choices(ADLB, subset = "BNRIND"), selected = "BNRIND", fixed = TRUE ), grade = choices_selected( choices = variable_choices(ADLB, subset = "ANRIND"), selected = "ANRIND", fixed = TRUE ), abnormal = list(low = "LOW", high = "HIGH"), exclude_base_abn = FALSE, decorators = list(insert_rrow_decorator("I am a good new row")) ), # ------------------------------------------------------------------------- tm_g_pp_vitals( label = "Vitals", dataname = "ADVS", parentname = "ADSL", patient_col = "USUBJID", plot_height = c(600L, 200L, 2000L), paramcd = choices_selected( choices = variable_choices(ADVS, "PARAMCD"), selected = "PARAMCD" ), xaxis = choices_selected( choices = variable_choices(ADVS, "ADY"), selected = "ADY" ), aval_var = choices_selected( choices = variable_choices(ADVS, "AVAL"), selected = "AVAL" ), decorators = list(plot = add_title_decorator("plot")) ), # ------------------------------------------------------------------------- tm_g_pp_adverse_events( label = "Adverse Events", dataname = "ADAE", parentname = "ADSL", patient_col = "USUBJID", plot_height = c(600L, 200L, 2000L), aeterm = choices_selected( choices = variable_choices(ADAE, "AETERM"), selected = "AETERM" ), tox_grade = choices_selected( choices = variable_choices(ADAE, "AETOXGR"), selected = "AETOXGR" ), causality = choices_selected( choices = variable_choices(ADAE, "AEREL"), selected = "AEREL" ), outcome = choices_selected( choices = variable_choices(ADAE, "AEOUT"), selected = "AEOUT" ), action = choices_selected( choices = variable_choices(ADAE, "AEACN"), selected = "AEACN" ), time = choices_selected( choices = variable_choices(ADAE, "ASTDY"), selected = "ASTDY" ), decod = NULL, decorators = list( plot = caption_decorator('I am a good caption', 'plot'), table = rlisting_footer(.var_to_replace = 'table') ) ), # ------------------------------------------------------------------------- tm_g_lineplot( label = "Line Plot", dataname = "ADLB", strata = choices_selected( variable_choices(ADSL, c("ARM", "ARMCD", "ACTARMCD")), "ARM" ), y = choices_selected( variable_choices(ADLB, c("AVAL", "BASE", "CHG", "PCHG")), "AVAL" ), param = choices_selected( value_choices(ADLB, "PARAMCD", "PARAM"), "ALT" ), decorators = list(add_cowplot_title_decorator("plot")) ), # ------------------------------------------------------------------------- tm_g_km( label = "Kaplan-Meier Plot", dataname = "ADTTE", arm_var = choices_selected( variable_choices(ADSL, c("ARM", "ARMCD", "ACTARMCD")), "ARM" ), paramcd = choices_selected( value_choices(ADTTE, "PARAMCD", "PARAM"), "OS" ), arm_ref_comp = arm_ref_comp, strata_var = choices_selected( variable_choices(ADSL, c("SEX", "BMRKR2")), "SEX" ), facet_var = choices_selected( variable_choices(ADSL, c("SEX", "BMRKR2")), NULL ), decorators = list(plot = add_cowplot_title_decorator(TRUE, "plot")) ), # ------------------------------------------------------------------------- tm_g_barchart_simple( label = "ADAE Analysis", x = data_extract_spec( dataname = "ADSL", select = select_spec( choices = variable_choices( ADSL, c( "ARM", "ACTARM", "SEX", "RACE", "ITTFL", "SAFFL", "STRATA2" ) ), selected = "ACTARM", multiple = FALSE ) ), fill = list( data_extract_spec( dataname = "ADSL", select = select_spec( choices = variable_choices( ADSL, c( "ARM", "ACTARM", "SEX", "RACE", "ITTFL", "SAFFL", "STRATA2" ) ), selected = "SEX", multiple = FALSE ) ), data_extract_spec( dataname = "ADAE", select = select_spec( choices = variable_choices(ADAE, c("AETOXGR", "AESEV", "AESER")), selected = NULL, multiple = FALSE ) ) ), x_facet = list( data_extract_spec( dataname = "ADAE", select = select_spec( choices = variable_choices(ADAE, c("AETOXGR", "AESEV", "AESER")), selected = "AETOXGR", multiple = FALSE ) ), data_extract_spec( dataname = "ADSL", select = select_spec( choices = variable_choices( ADSL, c( "ARM", "ACTARM", "SEX", "RACE", "ITTFL", "SAFFL", "STRATA2" ) ), selected = NULL, multiple = FALSE ) ) ), y_facet = list( data_extract_spec( dataname = "ADAE", select = select_spec( choices = variable_choices(ADAE, c("AETOXGR", "AESEV", "AESER")), selected = "AESEV", multiple = FALSE ) ), data_extract_spec( dataname = "ADSL", select = select_spec( choices = variable_choices( ADSL, c( "ARM", "ACTARM", "SEX", "RACE", "ITTFL", "SAFFL", "STRATA2" ) ), selected = NULL, multiple = FALSE ) ) ), decorators = list(plot = caption_decorator('The best', 'plot')) ) ) ) |> shiny::runApp() ```
Second App ```r # Load packages pkgload::load_all("../teal.modules.clinical", export_all = FALSE) # Example below insert_rrow_decorator <- function(default_caption = "I am a good new row", .var_to_replace = "table") { teal_transform_module( label = "New row", ui = function(id) shiny::textInput(shiny::NS(id, "new_row"), "New row", value = default_caption), server = make_teal_transform_server( substitute({ .var_to_replace <- rtables::insert_rrow(.var_to_replace, rtables::rrow(new_row)) }, env = list(.var_to_replace = as.name(.var_to_replace))) ) ) } # Preparation of the test case - use `EOSDY` and `DCSREAS` variables to demonstrate missing data. data <- teal_data() data <- within(data, { ADSL <- tmc_ex_adsl |> mutate( DTHFL = case_when( !is.na(DTHDT) ~ "Y", TRUE ~ "" ) %>% with_label("Subject Death Flag") ) ADSL$EOSDY[1] <- NA_integer_ ADAE <- tmc_ex_adae .add_event_flags <- function(dat) { dat <- dat %>% mutate( TMPFL_SER = AESER == "Y", TMPFL_REL = AEREL == "Y", TMPFL_GR5 = AETOXGR == "5", TMP_SMQ01 = !is.na(SMQ01NAM), TMP_SMQ02 = !is.na(SMQ02NAM), TMP_CQ01 = !is.na(CQ01NAM) ) column_labels <- list( TMPFL_SER = "Serious AE", TMPFL_REL = "Related AE", TMPFL_GR5 = "Grade 5 AE", TMP_SMQ01 = aesi_label(dat[["SMQ01NAM"]], dat[["SMQ01SC"]]), TMP_SMQ02 = aesi_label("Y.9.9.9.9/Z.9.9.9.9 AESI"), TMP_CQ01 = aesi_label(dat[["CQ01NAM"]]) ) col_labels(dat)[names(column_labels)] <- as.character(column_labels) dat } #' Generating user-defined event flags. ADAE <- ADAE %>% .add_event_flags() .ae_anl_vars <- names(ADAE)[startsWith(names(ADAE), "TMPFL_")] .aesi_vars <- names(ADAE)[startsWith(names(ADAE), "TMP_")] ADTTE <- tmc_ex_adtte # responder ADRS <- tmc_ex_adrs %>% mutate( AVALC = d_onco_rsp_label(AVALC) %>% with_label("Character Result/Finding") ) %>% filter(PARAMCD != "OVRINV" | AVISIT == "FOLLOW UP") ADQS <- tmc_ex_adqs %>% filter(ABLFL != "Y" & ABLFL2 != "Y") %>% filter(AVISIT %in% c("WEEK 1 DAY 8", "WEEK 2 DAY 15", "WEEK 3 DAY 22")) %>% mutate( AVISIT = as.factor(AVISIT), AVISITN = rank(AVISITN) %>% as.factor() %>% as.numeric() %>% as.factor() #' making consecutive numeric factor ) }) join_keys(data) <- default_cdisc_join_keys[names(data)] ADSL <- data[["ADSL"]] ADRS <- data[["ADRS"]] app <- init( data = data, modules = modules( # ------------------------------------------------------------------------- tm_a_mmrm( label = "MMRM", dataname = "ADQS", aval_var = choices_selected(c("AVAL", "CHG"), "AVAL"), id_var = choices_selected(c("USUBJID", "SUBJID"), "USUBJID"), arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), visit_var = choices_selected(c("AVISIT", "AVISITN"), "AVISIT"), arm_ref_comp = arm_ref_comp, paramcd = choices_selected( choices = value_choices(data[["ADQS"]], "PARAMCD", "PARAM"), selected = "FKSI-FWB" ), cov_var = choices_selected(c("BASE", "AGE", "SEX", "BASE:AVISIT"), NULL) , decorators = list( lsmeans_table = insert_rrow_decorator("A", .var_to_replace = "lsmeans_table") , lsmeans_plot = add_title_decorator("B", .var_to_replace = "lsmeans_plot") , covariance_table = insert_rrow_decorator("C", .var_to_replace = "covariance_table") , fixed_effects_table = insert_rrow_decorator("D", .var_to_replace = "fixed_effects_table") , diagnostic_table = insert_rrow_decorator(.var_to_replace = "diagnostic_table") , diagnostic_plot = add_title_decorator(.var_to_replace = "diagnostic_plot") ) ), # ------------------------------------------------------------------------- tm_t_binary_outcome( label = "Responders", dataname = "ADRS", paramcd = choices_selected( choices = value_choices(ADRS, "PARAMCD", "PARAM"), selected = "BESRSPI" ), arm_var = choices_selected( choices = variable_choices(ADRS, c("ARM", "ARMCD", "ACTARMCD")), selected = "ARM" ), arm_ref_comp = arm_ref_comp, strata_var = choices_selected( choices = variable_choices(ADRS, c("SEX", "BMRKR2", "RACE")), selected = "RACE" ), default_responses = list( BESRSPI = list( rsp = c("Complete Response (CR)", "Partial Response (PR)"), levels = c( "Complete Response (CR)", "Partial Response (PR)", "Stable Disease (SD)", "Progressive Disease (PD)" ) ), INVET = list( rsp = c("Stable Disease (SD)", "Not Evaluable (NE)"), levels = c( "Complete Response (CR)", "Not Evaluable (NE)", "Partial Response (PR)", "Progressive Disease (PD)", "Stable Disease (SD)" ) ), OVRINV = list( rsp = c("Progressive Disease (PD)", "Stable Disease (SD)"), levels = c("Progressive Disease (PD)", "Stable Disease (SD)", "Not Evaluable (NE)") ) ), decorators = list(insert_rrow_decorator("I am a new row")) ), # ------------------------------------------------------------------------- tm_t_events_summary( label = "Adverse Events Summary", dataname = "ADAE", arm_var = choices_selected( choices = variable_choices("ADSL", c("ARM", "ARMCD")), selected = "ARM" ), flag_var_anl = choices_selected( choices = variable_choices("ADAE", data[[".ae_anl_vars"]]), selected = data[[".ae_anl_vars"]][1], keep_order = TRUE, fixed = FALSE ), flag_var_aesi = choices_selected( choices = variable_choices("ADAE", data[[".aesi_vars"]]), selected = data[[".aesi_vars"]][1], keep_order = TRUE, fixed = FALSE ), add_total = TRUE, decorators = list(insert_rrow_decorator()) ), # ------------------------------------------------------------------------- tm_t_summary( label = "Demographic Table", dataname = "ADSL", arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"), add_total = TRUE, summarize_vars = choices_selected( c("SEX", "RACE", "BMRKR2", "EOSDY", "DCSREAS", "AGE"), c("SEX", "RACE") ), useNA = "ifany", decorators = list(insert_rrow_decorator()) ) ) ) |> shiny::runApp() ```
--- R/tm_a_gee.R | 5 +++-- R/tm_g_barchart_simple.R | 6 ++++-- R/tm_g_ci.R | 6 ++++-- R/tm_g_forest_rsp.R | 6 ++++-- R/tm_g_forest_tte.R | 6 ++++-- R/tm_g_ipp.R | 6 ++++-- R/tm_g_km.R | 6 ++++-- R/tm_g_lineplot.R | 6 ++++-- R/tm_g_pp_adverse_events.R | 6 ++++-- R/tm_g_pp_patient_timeline.R | 6 ++++-- R/tm_g_pp_therapy.R | 6 ++++-- R/tm_g_pp_vitals.R | 6 ++++-- R/tm_t_abnormality.R | 5 +++-- R/tm_t_abnormality_by_worst_grade.R | 5 +++-- R/tm_t_ancova.R | 5 +++-- R/tm_t_binary_outcome.R | 7 +++---- R/tm_t_coxreg.R | 6 ++++-- R/tm_t_events.R | 5 +++-- R/tm_t_events_by_grade.R | 5 +++-- R/tm_t_events_patyear.R | 5 +++-- R/tm_t_events_summary.R | 6 ++++-- R/tm_t_mult_events.R | 5 +++-- R/tm_t_pp_basic_info.R | 1 + R/tm_t_pp_prior_medication.R | 6 +++++- R/tm_t_tte.R | 6 ++++-- 25 files changed, 89 insertions(+), 49 deletions(-) diff --git a/R/tm_a_gee.R b/R/tm_a_gee.R index 0978d54ce..3a4d354f4 100644 --- a/R/tm_a_gee.R +++ b/R/tm_a_gee.R @@ -575,9 +575,10 @@ srv_gee <- function(id, ) # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -601,7 +602,7 @@ srv_gee <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_barchart_simple.R b/R/tm_g_barchart_simple.R index 3ee21a061..6650fdfd0 100644 --- a/R/tm_g_barchart_simple.R +++ b/R/tm_g_barchart_simple.R @@ -565,9 +565,11 @@ srv_g_barchart_simple <- function(id, width = plot_width ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q_code()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q_code()))), + verbatim_content = source_code_r, title = "Bar Chart" ) @@ -586,7 +588,7 @@ srv_g_barchart_simple <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q_code()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_ci.R b/R/tm_g_ci.R index 4295c231f..04a5f123c 100644 --- a/R/tm_g_ci.R +++ b/R/tm_g_ci.R @@ -488,9 +488,11 @@ srv_g_ci <- function(id, # Outputs to render. plot_r <- reactive(decorated_plot_q()[["plot"]]) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_plot_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_plot_q()))), + verbatim_content = source_code_r, title = label ) @@ -517,7 +519,7 @@ srv_g_ci <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_plot_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_forest_rsp.R b/R/tm_g_forest_rsp.R index 9cc32f7c6..bc9369bc1 100644 --- a/R/tm_g_forest_rsp.R +++ b/R/tm_g_forest_rsp.R @@ -790,9 +790,11 @@ srv_g_forest_rsp <- function(id, width = plot_width ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = source_code_r, title = label ) @@ -811,7 +813,7 @@ srv_g_forest_rsp <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_forest_tte.R b/R/tm_g_forest_tte.R index b0cca0af2..f70b0cfbc 100644 --- a/R/tm_g_forest_tte.R +++ b/R/tm_g_forest_tte.R @@ -720,9 +720,11 @@ srv_g_forest_tte <- function(id, width = plot_width ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = source_code_r, title = "R Code for the Current Time-to-Event Forest Plot" ) @@ -741,7 +743,7 @@ srv_g_forest_tte <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_ipp.R b/R/tm_g_ipp.R index 8b7216bce..3cd65e3b8 100644 --- a/R/tm_g_ipp.R +++ b/R/tm_g_ipp.R @@ -642,9 +642,11 @@ srv_g_ipp <- function(id, width = plot_width ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = source_code_r, title = label ) @@ -663,7 +665,7 @@ srv_g_ipp <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_km.R b/R/tm_g_km.R index 2a62aa018..e96d79aa1 100644 --- a/R/tm_g_km.R +++ b/R/tm_g_km.R @@ -839,9 +839,11 @@ srv_g_km <- function(id, width = plot_width ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = source_code_r, title = label ) @@ -861,7 +863,7 @@ srv_g_km <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_lineplot.R b/R/tm_g_lineplot.R index e57a0c318..9cead8485 100644 --- a/R/tm_g_lineplot.R +++ b/R/tm_g_lineplot.R @@ -686,9 +686,11 @@ srv_g_lineplot <- function(id, width = plot_width ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = source_code_r, title = label ) @@ -707,7 +709,7 @@ srv_g_lineplot <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_pp_adverse_events.R b/R/tm_g_pp_adverse_events.R index 2690f463f..674827b11 100644 --- a/R/tm_g_pp_adverse_events.R +++ b/R/tm_g_pp_adverse_events.R @@ -630,9 +630,11 @@ srv_g_adverse_events <- function(id, c(decorated_all_q_table(), decorated_all_q_plot()) ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = source_code_r, title = label ) @@ -653,7 +655,7 @@ srv_g_adverse_events <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_pp_patient_timeline.R b/R/tm_g_pp_patient_timeline.R index 73386dd72..a451c3663 100644 --- a/R/tm_g_pp_patient_timeline.R +++ b/R/tm_g_pp_patient_timeline.R @@ -940,9 +940,11 @@ srv_g_patient_timeline <- function(id, width = plot_width ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = source_code_r, title = label ) @@ -961,7 +963,7 @@ srv_g_patient_timeline <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_pp_therapy.R b/R/tm_g_pp_therapy.R index 5b08d137c..7a40b5088 100644 --- a/R/tm_g_pp_therapy.R +++ b/R/tm_g_pp_therapy.R @@ -735,9 +735,11 @@ srv_g_therapy <- function(id, width = plot_width ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q_plot()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q_plot()))), + verbatim_content = source_code_r, title = label ) @@ -758,7 +760,7 @@ srv_g_therapy <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q_plot()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_g_pp_vitals.R b/R/tm_g_pp_vitals.R index 3321489ed..9598cb633 100644 --- a/R/tm_g_pp_vitals.R +++ b/R/tm_g_pp_vitals.R @@ -574,6 +574,8 @@ srv_g_vitals <- function(id, ) plot_r <- reactive(decorated_all_q()[["plot"]]) + # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) pws <- teal.widgets::plot_with_settings_srv( id = "vitals_plot", plot_r = plot_r, @@ -583,7 +585,7 @@ srv_g_vitals <- function(id, teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_all_q()))), + verbatim_content = source_code_r, title = label ) @@ -602,7 +604,7 @@ srv_g_vitals <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_abnormality.R b/R/tm_t_abnormality.R index c2955a09e..7874ca4df 100644 --- a/R/tm_t_abnormality.R +++ b/R/tm_t_abnormality.R @@ -673,9 +673,10 @@ srv_t_abnormality <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -694,7 +695,7 @@ srv_t_abnormality <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_abnormality_by_worst_grade.R b/R/tm_t_abnormality_by_worst_grade.R index 1eac97568..2caca1588 100644 --- a/R/tm_t_abnormality_by_worst_grade.R +++ b/R/tm_t_abnormality_by_worst_grade.R @@ -693,9 +693,10 @@ srv_t_abnormality_by_worst_grade <- function(id, # nolint: object_length. ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -715,7 +716,7 @@ srv_t_abnormality_by_worst_grade <- function(id, # nolint: object_length. card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_ancova.R b/R/tm_t_ancova.R index bdc71814c..16c4c56a9 100644 --- a/R/tm_t_ancova.R +++ b/R/tm_t_ancova.R @@ -971,9 +971,10 @@ srv_ancova <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -993,7 +994,7 @@ srv_ancova <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_binary_outcome.R b/R/tm_t_binary_outcome.R index e1924bb11..f17f8d012 100644 --- a/R/tm_t_binary_outcome.R +++ b/R/tm_t_binary_outcome.R @@ -1025,11 +1025,10 @@ srv_t_binary_outcome <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_all_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive({ - teal.code::get_code(req(decorated_all_q())) - }), + verbatim_content = source_code_r, title = label ) @@ -1048,7 +1047,7 @@ srv_t_binary_outcome <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_all_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_coxreg.R b/R/tm_t_coxreg.R index e9507c438..5ad7fd125 100644 --- a/R/tm_t_coxreg.R +++ b/R/tm_t_coxreg.R @@ -1108,9 +1108,11 @@ srv_t_coxreg <- function(id, table_r = table_r ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = "R Code for the Current (Multi-Variable) Cox proportional hazard regression model" ) @@ -1129,7 +1131,7 @@ srv_t_coxreg <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_events.R b/R/tm_t_events.R index 930c99b5c..496d9b338 100644 --- a/R/tm_t_events.R +++ b/R/tm_t_events.R @@ -838,9 +838,10 @@ srv_t_events_byterm <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -859,7 +860,7 @@ srv_t_events_byterm <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_events_by_grade.R b/R/tm_t_events_by_grade.R index 29aacd14a..8e99ee1ac 100644 --- a/R/tm_t_events_by_grade.R +++ b/R/tm_t_events_by_grade.R @@ -1227,9 +1227,10 @@ srv_t_events_by_grade <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -1248,7 +1249,7 @@ srv_t_events_by_grade <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_events_patyear.R b/R/tm_t_events_patyear.R index c85ada4bb..b42e92313 100644 --- a/R/tm_t_events_patyear.R +++ b/R/tm_t_events_patyear.R @@ -658,9 +658,10 @@ srv_events_patyear <- function(id, ) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -679,7 +680,7 @@ srv_events_patyear <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_events_summary.R b/R/tm_t_events_summary.R index df8263adc..3ffa8b6f0 100644 --- a/R/tm_t_events_summary.R +++ b/R/tm_t_events_summary.R @@ -1034,9 +1034,11 @@ srv_t_events_summary <- function(id, table_r = table_r ) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -1055,7 +1057,7 @@ srv_t_events_summary <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_mult_events.R b/R/tm_t_mult_events.R index 1a564d4ab..4ba2dacb5 100644 --- a/R/tm_t_mult_events.R +++ b/R/tm_t_mult_events.R @@ -618,9 +618,10 @@ srv_t_mult_events_byterm <- function(id, teal.widgets::table_with_settings_srv(id = "table", table_r = table_r) # Render R code. + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -639,7 +640,7 @@ srv_t_mult_events_byterm <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) diff --git a/R/tm_t_pp_basic_info.R b/R/tm_t_pp_basic_info.R index 7a6f2bcfa..609caddb1 100644 --- a/R/tm_t_pp_basic_info.R +++ b/R/tm_t_pp_basic_info.R @@ -297,6 +297,7 @@ srv_t_basic_info <- function(id, ) ) + # Render R code source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", diff --git a/R/tm_t_pp_prior_medication.R b/R/tm_t_pp_prior_medication.R index dfd75dc7f..ee502da99 100644 --- a/R/tm_t_pp_prior_medication.R +++ b/R/tm_t_pp_prior_medication.R @@ -391,7 +391,11 @@ srv_t_prior_medication <- function(id, filter_panel_api = filter_panel_api ) card$append_text("Table", "header3") - card$append_table(table_r()$listing) + if (nrow(table_r()$listing) == 0L) { + card$append_text("No data available for table.") + } else { + card$append_table(table_r()$listing) + } if (!comment == "") { card$append_text("Comment", "header3") card$append_text(comment) diff --git a/R/tm_t_tte.R b/R/tm_t_tte.R index 552689414..dd63cde12 100644 --- a/R/tm_t_tte.R +++ b/R/tm_t_tte.R @@ -971,9 +971,11 @@ srv_t_tte <- function(id, teal.widgets::table_with_settings_srv(id = "table", table_r = table_r) + # Render R code + source_code_r <- reactive(teal.code::get_code(req(decorated_table_q()))) teal.widgets::verbatim_popup_srv( id = "rcode", - verbatim_content = reactive(teal.code::get_code(req(decorated_table_q()))), + verbatim_content = source_code_r, title = label ) @@ -992,7 +994,7 @@ srv_t_tte <- function(id, card$append_text("Comment", "header3") card$append_text(comment) } - card$append_src(teal.code::get_code(req(decorated_table_q()))) + card$append_src(source_code_r()) card } teal.reporter::simple_reporter_srv("simple_reporter", reporter = reporter, card_fun = card_fun) From 1db24ad1b44da074e26b2fe7c0bf10c50d3c9749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:24:52 +0000 Subject: [PATCH 84/86] fix: remove rlang usage --- R/tm_a_mmrm.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/tm_a_mmrm.R b/R/tm_a_mmrm.R index 02b18b96f..5b784a5ab 100644 --- a/R/tm_a_mmrm.R +++ b/R/tm_a_mmrm.R @@ -1468,8 +1468,8 @@ srv_mmrm <- function(id, }) decorated_tables_q <- lapply( - rlang::set_names( - c("lsmeans_table", "diagnostic_table", "fixed_effects_table", "covariance_table") + stats::setNames( + nm = c("lsmeans_table", "diagnostic_table", "fixed_effects_table", "covariance_table") ), function(output_function) { srv_decorate_teal_data( @@ -1485,7 +1485,7 @@ srv_mmrm <- function(id, decorated_objs_q <- c( decorated_tables_q, lapply( - rlang::set_names(c("lsmeans_plot", "diagnostic_plot")), + setNames(nm = c("lsmeans_plot", "diagnostic_plot")), function(output_function) { srv_decorate_teal_data( id = sprintf("d_%s", output_function), From 19e87525899cc1d8c15de658b8a0331438e4e2ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 17 Dec 2024 12:39:43 +0000 Subject: [PATCH 85/86] Decorators: Accepts new snapshot from `testthat::test()` (#1304) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Pull Request Part of https://github.com/insightsengineering/teal/issues/1371#issue-2575079391 ### Changes description - Tracks changes in the template code of the decorators feature branch - Renames variables to be `plot`, `table` or (in case of multiple decoratable elements) `_plot` and `_table` ### Workflow Manually triggered: https://github.com/insightsengineering/teal.modules.clinical/actions/runs/12359120026 [![Check 🛠](https://github.com/insightsengineering/teal.modules.clinical/actions/workflows/check.yaml/badge.svg?branch=snapshots%401187_decorate_output%40main)](https://github.com/insightsengineering/teal.modules.clinical/actions/workflows/check.yaml) --- tests/testthat/_snaps/tm_a_gee.md | 26 +++++------ tests/testthat/_snaps/tm_a_mmrm.md | 10 ++-- tests/testthat/_snaps/tm_g_ci.md | 12 ++--- tests/testthat/_snaps/tm_g_forest_rsp.md | 4 +- tests/testthat/_snaps/tm_g_forest_tte.md | 4 +- tests/testthat/_snaps/tm_g_km.md | 3 -- tests/testthat/_snaps/tm_g_lineplot.md | 2 - tests/testthat/_snaps/tm_t_abnormality.md | 9 ++-- .../_snaps/tm_t_abnormality_by_worst_grade.md | 6 +-- tests/testthat/_snaps/tm_t_ancova.md | 21 +++------ tests/testthat/_snaps/tm_t_binary_outcome.md | 21 +++------ tests/testthat/_snaps/tm_t_coxreg.md | 7 ++- tests/testthat/_snaps/tm_t_events.md | 46 +++++++++---------- tests/testthat/_snaps/tm_t_events_by_grade.md | 8 ---- tests/testthat/_snaps/tm_t_events_patyear.md | 9 ++-- tests/testthat/_snaps/tm_t_events_summary.md | 16 +++---- tests/testthat/_snaps/tm_t_exposure.md | 12 ++--- tests/testthat/_snaps/tm_t_logisitic.md | 9 ++-- tests/testthat/_snaps/tm_t_mult_events.md | 18 +++----- .../_snaps/tm_t_pp_medical_history.md | 5 +- tests/testthat/_snaps/tm_t_shift_by_arm.md | 9 ++-- .../_snaps/tm_t_shift_by_arm_by_worst.md | 9 ++-- tests/testthat/_snaps/tm_t_shift_by_grade.md | 6 +-- tests/testthat/_snaps/tm_t_smq.md | 6 +-- tests/testthat/_snaps/tm_t_summary.md | 18 +++----- tests/testthat/_snaps/tm_t_summary_by.md | 15 ++---- tests/testthat/_snaps/tm_t_tte.md | 4 -- 27 files changed, 118 insertions(+), 197 deletions(-) diff --git a/tests/testthat/_snaps/tm_a_gee.md b/tests/testthat/_snaps/tm_a_gee.md index 54b672ec8..d081d2600 100644 --- a/tests/testthat/_snaps/tm_a_gee.md +++ b/tests/testthat/_snaps/tm_a_gee.md @@ -13,9 +13,9 @@ $table { - result_table <- tern.gee::as.rtable(model_fit, type = "cov") - subtitles(result_table) <- NULL - main_footer(result_table) <- NULL + table <- tern.gee::as.rtable(model_fit, type = "cov") + subtitles(table) <- NULL + main_footer(table) <- NULL } @@ -34,9 +34,9 @@ $table { - result_table <- tern.gee::as.rtable(data.frame(Coefficient = model_fit$coefficients)) - subtitles(result_table) <- NULL - main_footer(result_table) <- NULL + table <- tern.gee::as.rtable(data.frame(Coefficient = model_fit$coefficients)) + subtitles(table) <- NULL + main_footer(table) <- NULL } @@ -56,13 +56,12 @@ $table { lsmeans_fit_model <- tern.gee::lsmeans(model_fit, 0.95) - result_table <- rtables::basic_table(show_colcounts = TRUE) %>% + table <- rtables::basic_table(show_colcounts = TRUE) %>% rtables::split_cols_by(var = "ARM", ref_group = model_fit$ref_level) %>% tern.gee::summarize_gee_logistic() %>% rtables::build_table(df = lsmeans_fit_model, alt_counts_df = ANL_ADSL) - subtitles(result_table) <- NULL - main_footer(result_table) <- NULL - result_table + subtitles(table) <- NULL + main_footer(table) <- NULL } @@ -82,13 +81,12 @@ $table { lsmeans_fit_model <- tern.gee::lsmeans(model_fit, 0.95) - result_table <- rtables::basic_table(show_colcounts = TRUE) %>% + table <- rtables::basic_table(show_colcounts = TRUE) %>% rtables::split_cols_by(var = "ARM", ref_group = model_fit$ref_level) %>% tern.gee::summarize_gee_logistic() %>% rtables::build_table(df = lsmeans_fit_model, alt_counts_df = ANL_ADSL) - subtitles(result_table) <- NULL - main_footer(result_table) <- NULL - result_table + subtitles(table) <- NULL + main_footer(table) <- NULL } diff --git a/tests/testthat/_snaps/tm_a_mmrm.md b/tests/testthat/_snaps/tm_a_mmrm.md index f03e7915f..f48062007 100644 --- a/tests/testthat/_snaps/tm_a_mmrm.md +++ b/tests/testthat/_snaps/tm_a_mmrm.md @@ -62,9 +62,8 @@ $cov_matrix { - cov_matrix <- tern.mmrm::as.rtable(fit_mmrm, type = "cov") - subtitles(cov_matrix) <- NULL - cov_matrix + covariance_table <- tern.mmrm::as.rtable(fit_mmrm, type = "cov") + subtitles(covariance_table) <- NULL } @@ -80,9 +79,8 @@ $cov_matrix { - cov_matrix <- tern.mmrm::as.rtable(fit_mmrm, type = "cov") - subtitles(cov_matrix) <- NULL - cov_matrix + covariance_table <- tern.mmrm::as.rtable(fit_mmrm, type = "cov") + subtitles(covariance_table) <- NULL } diff --git a/tests/testthat/_snaps/tm_g_ci.md b/tests/testthat/_snaps/tm_g_ci.md index 87b69c425..6c394bdc1 100644 --- a/tests/testthat/_snaps/tm_g_ci.md +++ b/tests/testthat/_snaps/tm_g_ci.md @@ -4,7 +4,7 @@ res Output { - gg <- ggplot2::ggplot(data = ANL, mapping = ggplot2::aes(x = ARMCD, + plot <- ggplot2::ggplot(data = ANL, mapping = ggplot2::aes(x = ARMCD, y = AVAL, color = SEX, lty = SEX, shape = SEX)) + ggplot2::stat_summary(fun.data = stat_mean_ci, geom = "errorbar", width = 0.1, position = ggplot2::position_dodge(width = 0.5)) + ggplot2::stat_summary(fun = mean, geom = "point", position = ggplot2::position_dodge(width = 0.5)) + @@ -12,7 +12,6 @@ caption = "Mean and 95% CIs for mean are displayed.", x = "Treatment Group", y = "Value", color = "", lty = "", shape = "") - print(gg) } # 3. Confidence Interval Plot (using different stratification variable) @@ -21,7 +20,7 @@ res Output { - gg <- ggplot2::ggplot(data = ANL, mapping = ggplot2::aes(x = ARMCD, + plot <- ggplot2::ggplot(data = ANL, mapping = ggplot2::aes(x = ARMCD, y = AVAL, color = STRATA2, lty = STRATA2, shape = STRATA2)) + ggplot2::stat_summary(fun.data = stat_mean_ci, geom = "errorbar", width = 0.1, position = ggplot2::position_dodge(width = 0.5)) + @@ -30,7 +29,6 @@ caption = "Mean and 95% CIs for mean are displayed.", x = "Treatment Group", y = "Value", color = "", lty = "", shape = "") - print(gg) } # 4. Median and 95% CIs for median @@ -39,7 +37,7 @@ res Output { - gg <- ggplot2::ggplot(data = ANL, mapping = ggplot2::aes(x = ARMCD, + plot <- ggplot2::ggplot(data = ANL, mapping = ggplot2::aes(x = ARMCD, y = AVAL, color = STRATA1, lty = STRATA1, shape = STRATA1)) + ggplot2::stat_summary(fun.data = stat_median_ci, geom = "errorbar", width = 0.1, position = ggplot2::position_dodge(width = 0.5)) + @@ -48,7 +46,6 @@ caption = "Median and 95% CIs for median are displayed.", x = "Treatment Group", y = "Value", color = "", lty = "", shape = "") - print(gg) } # 5. Using different alpha level @@ -57,7 +54,7 @@ res Output { - gg <- ggplot2::ggplot(data = ANL, mapping = ggplot2::aes(x = ARMCD, + plot <- ggplot2::ggplot(data = ANL, mapping = ggplot2::aes(x = ARMCD, y = AVAL, color = SEX, lty = SEX, shape = SEX)) + ggplot2::stat_summary(fun.data = function(x) stat_mean_ci(x, conf_level = 0.9), geom = "errorbar", width = 0.1, position = ggplot2::position_dodge(width = 0.5)) + ggplot2::stat_summary(fun = mean, geom = "point", position = ggplot2::position_dodge(width = 0.5)) + @@ -65,6 +62,5 @@ caption = "Mean and 90% CIs for mean are displayed.", x = "Treatment Group", y = "Value", color = "", lty = "", shape = "") - print(gg) } diff --git a/tests/testthat/_snaps/tm_g_forest_rsp.md b/tests/testthat/_snaps/tm_g_forest_rsp.md index 5a9daf5d7..8a238a190 100644 --- a/tests/testthat/_snaps/tm_g_forest_rsp.md +++ b/tests/testthat/_snaps/tm_g_forest_rsp.md @@ -35,7 +35,7 @@ as_list = TRUE) $plot[[2]] - p <- cowplot::plot_grid(f[["table"]] + ggplot2::labs(title = "Forest Plot of Best Overall Response for "), + plot <- cowplot::plot_grid(f[["table"]] + ggplot2::labs(title = "Forest Plot of Best Overall Response for "), f[["plot"]] + ggplot2::labs(caption = ""), align = "h", axis = "tblr", rel_widths = c(1 - 0.25, 0.25)) @@ -80,7 +80,7 @@ as_list = TRUE) $plot[[2]] - p <- cowplot::plot_grid(f[["table"]] + ggplot2::labs(title = "Forest Plot of Best Overall Response for "), + plot <- cowplot::plot_grid(f[["table"]] + ggplot2::labs(title = "Forest Plot of Best Overall Response for "), f[["plot"]] + ggplot2::labs(caption = ""), align = "h", axis = "tblr", rel_widths = c(1 - 0.25, 0.25)) diff --git a/tests/testthat/_snaps/tm_g_forest_tte.md b/tests/testthat/_snaps/tm_g_forest_tte.md index f7bcf257a..2f1c7e5b7 100644 --- a/tests/testthat/_snaps/tm_g_forest_tte.md +++ b/tests/testthat/_snaps/tm_g_forest_tte.md @@ -38,7 +38,7 @@ as_list = TRUE) $plot[[2]] - p <- cowplot::plot_grid(f[["table"]] + ggplot2::labs(title = "Forest Plot of Survival Duration for \nStratified by STRATA2", + plot <- cowplot::plot_grid(f[["table"]] + ggplot2::labs(title = "Forest Plot of Survival Duration for \nStratified by STRATA2", subtitle = NULL), f[["plot"]] + ggplot2::labs(caption = ""), align = "h", axis = "tblr", rel_widths = c(1 - 0.25, 0.25)) @@ -85,7 +85,7 @@ as_list = TRUE) $plot[[2]] - p <- cowplot::plot_grid(f[["table"]] + ggplot2::labs(title = "Forest Plot of Survival Duration for \nStratified by STRATA2", + plot <- cowplot::plot_grid(f[["table"]] + ggplot2::labs(title = "Forest Plot of Survival Duration for \nStratified by STRATA2", subtitle = NULL), f[["plot"]] + ggplot2::labs(caption = ""), align = "h", axis = "tblr", rel_widths = c(1 - 0.25, 0.25)) diff --git a/tests/testthat/_snaps/tm_g_km.md b/tests/testthat/_snaps/tm_g_km.md index 06fbb48cf..8011eba33 100644 --- a/tests/testthat/_snaps/tm_g_km.md +++ b/tests/testthat/_snaps/tm_g_km.md @@ -52,7 +52,6 @@ g_km_counter <- g_km_counter_generator() plot_list <- lapply(anl, g_km_counter) plot <- cowplot::plot_grid(plotlist = plot_list, ncol = 1) - plot } @@ -114,7 +113,6 @@ g_km_counter <- g_km_counter_generator() plot_list <- lapply(anl, g_km_counter) plot <- cowplot::plot_grid(plotlist = plot_list, ncol = 1) - plot } @@ -177,7 +175,6 @@ g_km_counter <- g_km_counter_generator() plot_list <- lapply(anl, g_km_counter) plot <- cowplot::plot_grid(plotlist = plot_list, ncol = 1) - plot } diff --git a/tests/testthat/_snaps/tm_g_lineplot.md b/tests/testthat/_snaps/tm_g_lineplot.md index 82e7977b3..ac91769eb 100644 --- a/tests/testthat/_snaps/tm_g_lineplot.md +++ b/tests/testthat/_snaps/tm_g_lineplot.md @@ -24,7 +24,6 @@ legend_title = NULL, ggtheme = ggplot2::theme_minimal(), control = control_analyze_vars(conf_level = 0.95), subtitle_add_paramcd = FALSE, subtitle_add_unit = FALSE) - plot } @@ -54,7 +53,6 @@ legend_title = NULL, ggtheme = ggplot2::theme_minimal(), control = control_analyze_vars(conf_level = 0.9), subtitle_add_paramcd = FALSE, subtitle_add_unit = FALSE) - plot } diff --git a/tests/testthat/_snaps/tm_t_abnormality.md b/tests/testthat/_snaps/tm_t_abnormality.md index 7218f4dab..711f3d7e2 100644 --- a/tests/testthat/_snaps/tm_t_abnormality.md +++ b/tests/testthat/_snaps/tm_t_abnormality.md @@ -38,9 +38,8 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% rtables::prune_table() - result } @@ -83,9 +82,8 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% rtables::prune_table() - result } @@ -129,9 +127,8 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% rtables::prune_table() - result } diff --git a/tests/testthat/_snaps/tm_t_abnormality_by_worst_grade.md b/tests/testthat/_snaps/tm_t_abnormality_by_worst_grade.md index eb4b9b8f3..206160d2e 100644 --- a/tests/testthat/_snaps/tm_t_abnormality_by_worst_grade.md +++ b/tests/testthat/_snaps/tm_t_abnormality_by_worst_grade.md @@ -40,8 +40,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -87,8 +86,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = myadsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = myadsl) } diff --git a/tests/testthat/_snaps/tm_t_ancova.md b/tests/testthat/_snaps/tm_t_ancova.md index c465073a7..15ff96368 100644 --- a/tests/testthat/_snaps/tm_t_ancova.md +++ b/tests/testthat/_snaps/tm_t_ancova.md @@ -30,8 +30,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) } @@ -68,8 +67,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) } @@ -107,8 +105,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) } @@ -148,8 +145,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) } @@ -187,8 +183,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) } @@ -225,8 +220,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) } @@ -263,8 +257,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = adqs, alt_counts_df = adsl) } diff --git a/tests/testthat/_snaps/tm_t_binary_outcome.md b/tests/testthat/_snaps/tm_t_binary_outcome.md index 4e425de8d..100f127cf 100644 --- a/tests/testthat/_snaps/tm_t_binary_outcome.md +++ b/tests/testthat/_snaps/tm_t_binary_outcome.md @@ -31,8 +31,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -68,8 +67,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) } @@ -96,8 +94,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) } @@ -141,8 +138,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) } @@ -182,8 +178,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) } @@ -211,8 +206,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ADSL) } @@ -270,8 +264,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } diff --git a/tests/testthat/_snaps/tm_t_coxreg.md b/tests/testthat/_snaps/tm_t_coxreg.md index aacb9470f..35b47c9a5 100644 --- a/tests/testthat/_snaps/tm_t_coxreg.md +++ b/tests/testthat/_snaps/tm_t_coxreg.md @@ -25,7 +25,7 @@ "hr", "ci", "pval"), na_str = "") $table - result <- rtables::build_table(lyt = lyt, df = anl) + table <- rtables::build_table(lyt = lyt, df = anl) # template_coxreg generates correct univariate cox regression expressions with interactions @@ -55,7 +55,7 @@ "hr", "ci", "pval", "pval_inter"), na_str = "") $table - result <- rtables::build_table(lyt = lyt, df = anl) + table <- rtables::build_table(lyt = lyt, df = anl) # template_coxreg generates correct multivariate cox regression expressions @@ -85,8 +85,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl) - result + table <- rtables::build_table(lyt = lyt, df = anl) } diff --git a/tests/testthat/_snaps/tm_t_events.md b/tests/testthat/_snaps/tm_t_events.md index 7e9f4302a..a99064ad7 100644 --- a/tests/testthat/_snaps/tm_t_events.md +++ b/tests/testthat/_snaps/tm_t_events.md @@ -34,21 +34,21 @@ append_varlabels(adae, "AEDECOD", indent = 1L) $table - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) $prune { - pruned_result <- result %>% rtables::prune_table() + pruned_result <- rtables::prune_table(table) } $sort { - idx_split_col <- which(sapply(col_paths(result), tail, 1) == + idx_split_col <- which(sapply(col_paths(table), tail, 1) == "All Patients") pruned_and_sorted_result <- pruned_result %>% sort_at_path(path = c("AEBODSYS"), scorefun = cont_n_onecol(idx_split_col)) %>% sort_at_path(path = c("AEBODSYS", "*", "AEDECOD"), scorefun = score_occurrences_cols(col_indices = seq(1, - ncol(result)))) + ncol(table)))) pruned_and_sorted_result } @@ -94,21 +94,21 @@ append_varlabels(adae, "AEDECOD", indent = 1L) $table - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) $prune { - pruned_result <- result %>% rtables::prune_table() + pruned_result <- rtables::prune_table(table) } $sort { - idx_split_col <- which(sapply(col_paths(result), tail, 1) == + idx_split_col <- which(sapply(col_paths(table), tail, 1) == "All Patients") pruned_and_sorted_result <- pruned_result %>% sort_at_path(path = c("AEBODSYS"), scorefun = cont_n_onecol(idx_split_col)) %>% sort_at_path(path = c("AEBODSYS", "*", "AEDECOD"), scorefun = score_occurrences_cols(col_indices = seq(1, - ncol(result)))) + ncol(table)))) pruned_and_sorted_result } @@ -138,16 +138,16 @@ append_varlabels(adcm, "CMDECOD") $table - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) $prune { - pruned_result <- result %>% rtables::prune_table() + pruned_result <- rtables::prune_table(table) } $sort { - idx_split_col <- which(sapply(col_paths(result), tail, 1) == + idx_split_col <- which(sapply(col_paths(table), tail, 1) == "All Patients") pruned_and_sorted_result <- pruned_result %>% sort_at_path(path = c("CMDECOD"), scorefun = score_occurrences) @@ -193,11 +193,11 @@ append_varlabels(adae, "AEDECOD", indent = 1L) $table - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) $prune { - pruned_result <- result %>% rtables::prune_table() + pruned_result <- rtables::prune_table(table) } $sort @@ -243,12 +243,12 @@ append_varlabels(adae, "AEDECOD", indent = 1L) $table - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) $prune { - pruned_result <- result %>% rtables::prune_table() - col_indices <- 1:(ncol(result) - TRUE) + pruned_result <- rtables::prune_table(table) + col_indices <- 1:(ncol(table) - TRUE) row_condition <- has_fraction_in_any_col(atleast = 0.4, col_indices = col_indices) & has_fractions_difference(atleast = 0.1, col_indices = col_indices) pruned_result <- pruned_result %>% rtables::prune_table(keep_rows(row_condition)) @@ -256,12 +256,12 @@ $sort { - idx_split_col <- which(sapply(col_paths(result), tail, 1) == + idx_split_col <- which(sapply(col_paths(table), tail, 1) == "All Patients") pruned_and_sorted_result <- pruned_result %>% sort_at_path(path = c("AEBODSYS"), scorefun = cont_n_onecol(idx_split_col)) %>% sort_at_path(path = c("AEBODSYS", "*", "AEDECOD"), scorefun = score_occurrences_cols(col_indices = seq(1, - ncol(result)))) + ncol(table)))) criteria_fun <- function(tr) { inherits(tr, "ContentRow") } @@ -312,12 +312,12 @@ append_varlabels(adae, "AEDECOD", indent = 1L) $table - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) $prune { - pruned_result <- result %>% rtables::prune_table() - col_indices <- 1:(ncol(result) - TRUE) + pruned_result <- rtables::prune_table(table) + col_indices <- 1:(ncol(table) - TRUE) row_condition <- has_fraction_in_any_col(atleast = 0.4, col_indices = col_indices) & has_fractions_difference(atleast = 0.1, col_indices = col_indices) pruned_result <- pruned_result %>% rtables::prune_table(keep_rows(row_condition)) @@ -325,12 +325,12 @@ $sort { - idx_split_col <- which(sapply(col_paths(result), tail, 1) == + idx_split_col <- which(sapply(col_paths(table), tail, 1) == "All Patients") pruned_and_sorted_result <- pruned_result %>% sort_at_path(path = c("AEBODSYS"), scorefun = cont_n_onecol(idx_split_col)) %>% sort_at_path(path = c("AEBODSYS", "*", "AEDECOD"), scorefun = score_occurrences_cols(col_indices = seq(1, - ncol(result)))) + ncol(table)))) criteria_fun <- function(tr) { inherits(tr, "ContentRow") } diff --git a/tests/testthat/_snaps/tm_t_events_by_grade.md b/tests/testthat/_snaps/tm_t_events_by_grade.md index c16269577..030113353 100644 --- a/tests/testthat/_snaps/tm_t_events_by_grade.md +++ b/tests/testthat/_snaps/tm_t_events_by_grade.md @@ -50,7 +50,6 @@ 1), decreasing = TRUE) %>% sort_at_path(path = c("AEBODSYS", "*", "AEDECOD"), scorefun = cont_n_onecol(length(levels(adsl$ACTARM)) + 1), decreasing = TRUE) - pruned_and_sorted_result } @@ -110,7 +109,6 @@ 1), decreasing = TRUE) %>% sort_at_path(path = c("AEBODSYS", "*", "AEDECOD"), scorefun = cont_n_onecol(length(levels(adsl$ACTARM)) + 1), decreasing = TRUE) - pruned_and_sorted_result } @@ -162,7 +160,6 @@ pruned_and_sorted_result <- pruned_result %>% sort_at_path(path = "AEBODSYS", scorefun = cont_n_allcols, decreasing = TRUE) %>% sort_at_path(path = c("AEBODSYS", "*", "AEDECOD"), scorefun = cont_n_allcols, decreasing = TRUE) - pruned_and_sorted_result } @@ -212,7 +209,6 @@ pruned_and_sorted_result <- pruned_result %>% sort_at_path(path = "AEBODSYS", scorefun = cont_n_onecol(length(levels(adsl$ACTARM)) + 1), decreasing = TRUE) - pruned_and_sorted_result } @@ -279,7 +275,6 @@ col_indices = col_indices) pruned_and_sorted_result <- sorted_result %>% rtables::trim_rows(criteria = criteria_fun) %>% rtables::prune_table(keep_rows(at_least_percent_any)) - pruned_and_sorted_result } @@ -341,7 +336,6 @@ col_indices = col_indices) pruned_and_sorted_result <- sorted_result %>% rtables::trim_rows(criteria = criteria_fun) %>% rtables::prune_table(keep_rows(at_least_percent_any)) - pruned_and_sorted_result } @@ -401,7 +395,6 @@ col_indices = col_indices) pruned_and_sorted_result <- sorted_result %>% rtables::trim_rows(criteria = criteria_fun) %>% rtables::prune_table(keep_rows(at_least_percent_any)) - pruned_and_sorted_result } @@ -460,7 +453,6 @@ col_indices = col_indices) pruned_and_sorted_result <- sorted_result %>% rtables::trim_rows(criteria = criteria_fun) %>% rtables::prune_table(keep_rows(at_least_percent_any)) - pruned_and_sorted_result } diff --git a/tests/testthat/_snaps/tm_t_events_patyear.md b/tests/testthat/_snaps/tm_t_events_patyear.md index b6ef72e88..fbaa31bcf 100644 --- a/tests/testthat/_snaps/tm_t_events_patyear.md +++ b/tests/testthat/_snaps/tm_t_events_patyear.md @@ -23,8 +23,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -52,8 +51,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -87,8 +85,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } diff --git a/tests/testthat/_snaps/tm_t_events_summary.md b/tests/testthat/_snaps/tm_t_events_summary.md index 6a7334d7b..4e13d750b 100644 --- a/tests/testthat/_snaps/tm_t_events_summary.md +++ b/tests/testthat/_snaps/tm_t_events_summary.md @@ -28,7 +28,7 @@ .formats = c(count_fraction = format_count_fraction), denom = "N_col") $table_parent - result_parent <- rtables::build_table(lyt = lyt_parent, df = adsl, + table_parent <- rtables::build_table(lyt = lyt_parent, df = adsl, alt_counts_df = adsl) $layout_anl @@ -41,12 +41,12 @@ .labels = c(count = "Total AEs"), table_names = "total_aes") $table_anl - result_anl <- rtables::build_table(lyt = lyt_anl, df = anl, alt_counts_df = adsl) + table_anl <- rtables::build_table(lyt = lyt_anl, df = anl, alt_counts_df = adsl) $table { - rtables::col_info(result_parent) <- rtables::col_info(result_anl) - result <- rtables::rbind(result_anl, result_parent) + rtables::col_info(table_parent) <- rtables::col_info(table_anl) + table <- rtables::rbind(table_anl, table_parent) } @@ -79,7 +79,7 @@ rtables::split_cols_by(var = "ARM") %>% rtables::add_overall_col(label = "All Patients") $table_parent - result_parent <- rtables::build_table(lyt = lyt_parent, df = adsl, + table_parent <- rtables::build_table(lyt = lyt_parent, df = adsl, alt_counts_df = adsl) $layout_anl @@ -114,12 +114,12 @@ show_labels = "visible") $table_anl - result_anl <- rtables::build_table(lyt = lyt_anl, df = anl, alt_counts_df = adsl) + table_anl <- rtables::build_table(lyt = lyt_anl, df = anl, alt_counts_df = adsl) $table { - rtables::col_info(result_parent) <- rtables::col_info(result_anl) - result <- rtables::rbind(result_anl[1:2, ], result_anl[3:nrow(result_anl), + rtables::col_info(table_parent) <- rtables::col_info(table_anl) + table <- rtables::rbind(table_anl[1:2, ], table_anl[3:nrow(table_anl), ]) } diff --git a/tests/testthat/_snaps/tm_t_exposure.md b/tests/testthat/_snaps/tm_t_exposure.md index f436b5704..02f54739b 100644 --- a/tests/testthat/_snaps/tm_t_exposure.md +++ b/tests/testthat/_snaps/tm_t_exposure.md @@ -26,8 +26,8 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - rtables::prune_table(result) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) + table <- rtables::prune_table(table) } @@ -59,8 +59,8 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = myadsl) - rtables::prune_table(result) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = myadsl) + table <- rtables::prune_table(table) } @@ -92,8 +92,8 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - rtables::prune_table(result) + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) + table <- rtables::prune_table(table) } diff --git a/tests/testthat/_snaps/tm_t_logisitic.md b/tests/testthat/_snaps/tm_t_logisitic.md index 9a1a99a81..e4e7ecae2 100644 --- a/tests/testthat/_snaps/tm_t_logisitic.md +++ b/tests/testthat/_snaps/tm_t_logisitic.md @@ -27,10 +27,9 @@ $table { - result <- rtables::basic_table(title = "Summary of Logistic Regression Analysis for Best Confirmed Overall Response by Investigator for CR Responders") %>% + table <- rtables::basic_table(title = "Summary of Logistic Regression Analysis for Best Confirmed Overall Response by Investigator for CR Responders") %>% summarize_logistic(conf_level = 0.95, drop_and_remove_str = "_NA_") %>% rtables::append_topleft("BESRSPI") %>% rtables::build_table(df = mod) - result } @@ -63,10 +62,9 @@ $table { - result <- rtables::basic_table(title = "Summary of Logistic Regression Analysis for Best Confirmed Overall Response by Investigator for CR Responders") %>% + table <- rtables::basic_table(title = "Summary of Logistic Regression Analysis for Best Confirmed Overall Response by Investigator for CR Responders") %>% summarize_logistic(conf_level = 0.95, drop_and_remove_str = "_NA_") %>% rtables::append_topleft("BESRSPI") %>% rtables::build_table(df = mod) - result } @@ -88,10 +86,9 @@ $table { - result <- rtables::basic_table(title = "Summary of Logistic Regression Analysis for Best Confirmed Overall Response by Investigator for CR Responders") %>% + table <- rtables::basic_table(title = "Summary of Logistic Regression Analysis for Best Confirmed Overall Response by Investigator for CR Responders") %>% summarize_logistic(conf_level = 0.95, drop_and_remove_str = "_NA_") %>% rtables::append_topleft("BESRSPI") %>% rtables::build_table(df = mod) - result } diff --git a/tests/testthat/_snaps/tm_t_mult_events.md b/tests/testthat/_snaps/tm_t_mult_events.md index fbf4492a7..0a825e6cb 100644 --- a/tests/testthat/_snaps/tm_t_mult_events.md +++ b/tests/testthat/_snaps/tm_t_mult_events.md @@ -43,8 +43,7 @@ $final_table { - result <- sorted_result - result + table <- sorted_result } @@ -95,8 +94,7 @@ $final_table { - result <- sorted_result - result + table <- sorted_result } @@ -151,8 +149,7 @@ $final_table { - result <- sorted_result - result + table <- sorted_result } @@ -211,8 +208,7 @@ $final_table { - result <- sorted_result - result + table <- sorted_result } @@ -256,8 +252,7 @@ $final_table { - result <- sorted_result - result + table <- sorted_result } @@ -306,8 +301,7 @@ $final_table { - result <- sorted_result - result + table <- sorted_result } diff --git a/tests/testthat/_snaps/tm_t_pp_medical_history.md b/tests/testthat/_snaps/tm_t_pp_medical_history.md index 50a9a80d2..997603bcc 100644 --- a/tests/testthat/_snaps/tm_t_pp_medical_history.md +++ b/tests/testthat/_snaps/tm_t_pp_medical_history.md @@ -11,12 +11,11 @@ dplyr::arrange(mhbodsys) %>% dplyr::mutate_if(is.character, as.factor) %>% dplyr::mutate_if(is.factor, function(x) explicit_na(x, "UNKNOWN")) %>% dplyr::distinct() %>% `colnames<-`(labels) - result <- rtables::basic_table() %>% rtables::split_cols_by_multivar(colnames(result_raw)[2:3]) %>% + table <- rtables::basic_table() %>% rtables::split_cols_by_multivar(colnames(result_raw)[2:3]) %>% rtables::split_rows_by(colnames(result_raw)[1], split_fun = rtables::drop_split_levels) %>% rtables::split_rows_by(colnames(result_raw)[2], split_fun = rtables::drop_split_levels, child_labels = "hidden") %>% rtables::analyze_colvars(function(x) x[seq_along(x)]) %>% rtables::build_table(result_raw) - main_title(result) <- paste("Patient ID:", NULL) - result + main_title(table) <- paste("Patient ID:", NULL) } diff --git a/tests/testthat/_snaps/tm_t_shift_by_arm.md b/tests/testthat/_snaps/tm_t_shift_by_arm.md index 31e8c262d..b37651019 100644 --- a/tests/testthat/_snaps/tm_t_shift_by_arm.md +++ b/tests/testthat/_snaps/tm_t_shift_by_arm.md @@ -22,8 +22,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adeg) - result + table <- rtables::build_table(lyt = lyt, df = adeg) } @@ -51,8 +50,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adeg) - result + table <- rtables::build_table(lyt = lyt, df = adeg) } @@ -80,8 +78,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adeg) - result + table <- rtables::build_table(lyt = lyt, df = adeg) } diff --git a/tests/testthat/_snaps/tm_t_shift_by_arm_by_worst.md b/tests/testthat/_snaps/tm_t_shift_by_arm_by_worst.md index 137032875..c219c2245 100644 --- a/tests/testthat/_snaps/tm_t_shift_by_arm_by_worst.md +++ b/tests/testthat/_snaps/tm_t_shift_by_arm_by_worst.md @@ -22,8 +22,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adeg) - result + table <- rtables::build_table(lyt = lyt, df = adeg) } @@ -52,8 +51,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adeg) - result + table <- rtables::build_table(lyt = lyt, df = adeg) } @@ -81,8 +79,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = adeg) - result + table <- rtables::build_table(lyt = lyt, df = adeg) } diff --git a/tests/testthat/_snaps/tm_t_shift_by_grade.md b/tests/testthat/_snaps/tm_t_shift_by_grade.md index 5227edd6c..89a3f8c8c 100644 --- a/tests/testthat/_snaps/tm_t_shift_by_grade.md +++ b/tests/testthat/_snaps/tm_t_shift_by_grade.md @@ -53,9 +53,8 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% rtables::prune_table() - result } @@ -114,9 +113,8 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% rtables::prune_table() - result } diff --git a/tests/testthat/_snaps/tm_t_smq.md b/tests/testthat/_snaps/tm_t_smq.md index 33b82a9b2..83014b17f 100644 --- a/tests/testthat/_snaps/tm_t_smq.md +++ b/tests/testthat/_snaps/tm_t_smq.md @@ -52,8 +52,7 @@ all_zero <- function(tr) { !inherits(tr, "ContentRow") && rtables::all_zero_or_na(tr) } - pruned_and_sorted_result <- sorted_result %>% rtables::trim_rows(criteria = all_zero) - pruned_and_sorted_result + table <- sorted_result %>% rtables::trim_rows(criteria = all_zero) } @@ -107,8 +106,7 @@ all_zero <- function(tr) { !inherits(tr, "ContentRow") && rtables::all_zero_or_na(tr) } - pruned_and_sorted_result <- sorted_result %>% rtables::trim_rows(criteria = all_zero) - pruned_and_sorted_result + table <- sorted_result %>% rtables::trim_rows(criteria = all_zero) } diff --git a/tests/testthat/_snaps/tm_t_summary.md b/tests/testthat/_snaps/tm_t_summary.md index b62aabeca..6d406c046 100644 --- a/tests/testthat/_snaps/tm_t_summary.md +++ b/tests/testthat/_snaps/tm_t_summary.md @@ -24,8 +24,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -55,8 +54,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -91,8 +89,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -128,8 +125,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -163,8 +159,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -201,8 +196,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } diff --git a/tests/testthat/_snaps/tm_t_summary_by.md b/tests/testthat/_snaps/tm_t_summary_by.md index 41e7a9d90..e150e211d 100644 --- a/tests/testthat/_snaps/tm_t_summary_by.md +++ b/tests/testthat/_snaps/tm_t_summary_by.md @@ -29,8 +29,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -64,8 +63,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -107,8 +105,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -142,8 +139,7 @@ $table { - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) - result + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) } @@ -185,9 +181,8 @@ rvs <- unlist(unname(row_values(tr))) isTRUE(all(rvs == 0)) } - result <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% + table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = adsl) %>% rtables::trim_rows(criteria = all_zero) - result } diff --git a/tests/testthat/_snaps/tm_t_tte.md b/tests/testthat/_snaps/tm_t_tte.md index b3621e75c..e51da0c8d 100644 --- a/tests/testthat/_snaps/tm_t_tte.md +++ b/tests/testthat/_snaps/tm_t_tte.md @@ -39,7 +39,6 @@ $table { table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ANL_ADSL) - table } @@ -84,7 +83,6 @@ $table { table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ANL_ADSL) - table } @@ -143,7 +141,6 @@ $table { table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ANL_ADSL) - table } @@ -199,7 +196,6 @@ $table { table <- rtables::build_table(lyt = lyt, df = anl, alt_counts_df = ANL_ADSL) - table } From 9c4612cb47a09ecb09bd743e72b7f85189b948d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Ver=C3=ADssimo?= <211358+averissimo@users.noreply.github.com> Date: Tue, 17 Dec 2024 12:47:36 +0000 Subject: [PATCH 86/86] fix: adds stats prefix --- R/tm_a_mmrm.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/tm_a_mmrm.R b/R/tm_a_mmrm.R index 5b784a5ab..63455af4f 100644 --- a/R/tm_a_mmrm.R +++ b/R/tm_a_mmrm.R @@ -1485,7 +1485,7 @@ srv_mmrm <- function(id, decorated_objs_q <- c( decorated_tables_q, lapply( - setNames(nm = c("lsmeans_plot", "diagnostic_plot")), + stats::setNames(nm = c("lsmeans_plot", "diagnostic_plot")), function(output_function) { srv_decorate_teal_data( id = sprintf("d_%s", output_function),