#' benefits UI Function
#'
#' @noRd
#' @importFrom shiny NS tagList
#' @importFrom shiny.quartz QCard Container Item QSelect.shinyInput make_options QSwitch.shinyInput
mod_ve_ui <- function(id) {
ns <- NS(id)
CustomAgeCard(title = "Vaccine Effectiveness",
data = shiny.fluToolkit::ve,
ns = ns,
ItemSelect(ns("strains"), "Strain(s)", shiny.fluToolkit::ve_strains, default = list("A or B")),
Stat(ns("result"))
)
}
#' benefits Server Functions
#'
#' @noRd
#' @importFrom dplyr across mutate
mod_ve_server <- function(id, globalInput, ve_reactive) {
moduleServer(id, function(input, output, session) {
ns <- session$ns
base_filtered_data <- reactive({
shiny.fluToolkit::ve %>%
base_filter(input, globalInput)
})
output$result <- renderText({
base_filtered_data() %>%
subset(strain %in% input$strains) %>%
summarise_at(c("value", "lower_ci", "upper_ci"), mean, na.rm = T) -> tmp
ve_reactive(tmp)
tmp %>%
get_ci()
})
observe({
req(base_filtered_data())
available_strains <- unique(base_filtered_data()$strain)
shiny.mui::updateReactInput("strains", options = available_strains, session = session)
})
}
)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.