The goal of OmopViewer is to allow the user to easily create Shiny Apps
to visualise study results in <summarised_result>
format.
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")
library(OmopViewer)
The package has two functionalities:
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/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.csvThe 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.
launchDynamicApp()
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.
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.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.