The goal of OmopViewer is to allow the user to easily create Shiny Apps to visualise study results in <summarised_result> format.
Installation
Install it from cran:
install.packages("OmopViewer")Or you can install the development version of OmopViewer from GitHub with:
install.packages("pak")
pak::pkg_install("OHDSI/OmopViewer")Static shiny app
The static shiny app functionality creates a static shiny from a list of summarised_result objects. This shiny is specific to the set of results and can be modified later locally.
# lets generate some results
library(CohortCharacteristics)
cdm <- mockCohortCharacteristics()
result <- summariseCharacteristics(cdm$cohort1) |>
bind(summariseCohortAttrition(cdm$cohort1))
#> ℹ adding demographics columns
#> ℹ summarising data
#> ℹ summarising cohort cohort_1
#> ℹ summarising cohort cohort_2
#> ℹ summarising cohort cohort_3
#> ✔ summariseCharacteristics finished!
exportStaticApp(result = result, directory = tempdir())
#> ℹ Processing data
#> ✔ Data processed: 2 panels idenfied: `summarise_cohort_attrition` and
#> `summarise_characteristics`.
#> ℹ Creating shiny from provided data
#> ✔ Shiny created in:
#> /var/folders/pl/k11lm9710hlgl02nvzx4z9wr0000gp/T//RtmpBLLZg0/shinyThis function allow some customisation of the shiny with the arguments:
-
theme(to choose a pre-built theme or a bslib one). -
logo(you can point to one of the pre-builr logos or to a local image). title-
backgroundwhether to allow for an .md file for customisation of a background panel. -
summarywhether to include or not a summary panel. -
panelStructureallows you to structure the different panels in dropdown menus. -
panelDetailsallows you to create panels at result_id level and assign which are the outputs that we want to include in each panel.
The shiny generated will have the following structure:
-
global.Rloads the data. -
ui.Rwith all the ui code. You can edit there the buttons and its default values. -
server.Rserver logic, you can edit that file to change some of the displays. -
functions.Rsome utility functions that are used in the shiny app. -
data/result.csvthe original summarised_result provided. -
data/ShinyData.RDatathe .RData file that contains the data used in the shiny. -
data/preprocess.Rthe file to generate ShinyData.RData from results.csv
Dynamic shiny app
The dynamic shiny app can be easily launched with launchDynamicApp() function. This function creates a shinyApp where you can upload multiple results sets and visualise them.
By default the shiny generated will have no data, you have to upload data from a csv or zip file that you have it locally. The summarised_results will be processed and you will be allowed to choose which results to visualise.
Example shiny
An example shiny can be found in: https://dpa-pde-oxford.shinyapps.io/OmopViewerExample/. This shinyApp is automatically build from main using the latest versions of omopViewerResults dataset and omopViewerPanels panels definitions.