R/mod_ve.R

Defines functions mod_ve_server mod_ve_ui

#' 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)
})
  }
  )
}
QuartzSoftwareLLC/shiny.fluToolKit documentation built on April 28, 2022, 6:25 a.m.