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)
#> Registered S3 method overwritten by 'visOmopResults':
#> method from
#> tidy.summarised_result omopgenerics
cdm <- mockCohortCharacteristics()
#> Note: method with signature 'DBIConnection#Id' chosen for function 'dbExistsTable',
#> target signature 'duckdb_connection#Id'.
#> "duckdb_connection#ANY" would also be valid
result <- summariseCharacteristics(cdm$cohort1) |>
bind(summariseCohortAttrition(cdm$cohort1))
#> ℹ adding demographics columns
#> ℹ summarising data
#> ✔ summariseCharacteristics finished!
#> `cohort_definition_id` casted to character.
exportStaticApp(result = result, directory = tempdir())
#> ℹ Processing data
#> ✔ Data processed: 2 panels idenfied: `summarise_characteristics` and
#> `summarise_cohort_attrition`.
#> ℹ Creating shiny from provided data
#> `cohort_definition_id` eliminated from settings as all elements are NA.
#> ✔ Shiny created in:
#> /var/folders/pl/k11lm9710hlgl02nvzx4z9wr0000gp/T//RtmpYP9P88/shiny
This 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
-
background
whether to allow for an .md file for customisation of a background panel. -
summary
whether to include or not a summary panel. -
panelStructure
allows you to structure the different panels in dropdown menus. -
panelDetails
allows 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.R
loads the data. -
ui.R
with all the ui code. You can edit there the buttons and its default values. -
server.R
server logic, you can edit that file to change some of the displays. -
functions.R
some utility functions that are used in the shiny app. -
data/result.csv
the original summarised_result provided. -
data/ShinyData.RData
the .RData file that contains the data used in the shiny. -
data/preprocess.R
the 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.