Panels definned in OmopViewer

The OmopViewer package generates shiny apps from predefined configurations, you can check the existent panels using the defaultPanels() function:

defaultPanels()
#>  [1] "summarise_omop_snapshot"                 
#>  [2] "summarise_observation_period"            
#>  [3] "summarise_clinical_records"              
#>  [4] "summarise_record_count"                  
#>  [5] "summarise_missing_data"                  
#>  [6] "summarise_in_observation"                
#>  [7] "orphan_code_use"                         
#>  [8] "cohort_code_use"                         
#>  [9] "code_use"                                
#> [10] "achilles_code_use"                       
#> [11] "unmapped_codes"                          
#> [12] "summarise_cohort_overlap"                
#> [13] "summarise_cohort_count"                  
#> [14] "summarise_cohort_attrition"              
#> [15] "summarise_cohort_timing"                 
#> [16] "summarise_characteristics"               
#> [17] "summarise_large_scale_characteristics"   
#> [18] "incidence"                               
#> [19] "incidence_attrition"                     
#> [20] "prevalence"                              
#> [21] "prevalence_attrition"                    
#> [22] "summarise_dose_coverage"                 
#> [23] "summarise_proportion_of_patients_covered"
#> [24] "summarise_drug_restart"                  
#> [25] "summarise_drug_utilisation"              
#> [26] "summarise_indication"                    
#> [27] "summarise_treatment"                     
#> [28] "default"

You can check the details of a panel using getPanel() function:

getPanel("incidence")
#> Incidence (OmopViewer panel)
#> • icon: chart-line
#> • data: result_type: <incidence>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Incidence (gt); Plot Incidence (plot)

The exported object omopViewerPanels contains all the defined panels in the package:

omopViewerPanels
#> $summarise_omop_snapshot
#> Snapshot (OmopViewer panel)
#> • icon: clipboard-list
#> • data: result_type: <summarise_omop_snapshot>
#> • filters: 1 filters + 1 automatic filters
#> • content: Tidy (DT); Table Snapshot (gt)
#> 
#> $summarise_observation_period
#> Observation period (OmopViewer panel)
#> • icon: eye
#> • data: result_type: <summarise_observation_period>
#> • filters: 1 filters + 4 automatic filters
#> • content: Tidy (DT); Table Observation period (gt); Plot Observation period
#>   (plot)
#> 
#> $summarise_clinical_records
#> Clinical records (OmopViewer panel)
#> • icon: bars-staggered
#> • data: result_type: <summarise_clinical_records>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Clinical records (gt)
#> 
#> $summarise_record_count
#> Record count (OmopViewer panel)
#> • icon: signal
#> • data: result_type: <summarise_record_count>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Plot record count (plot)
#> 
#> $summarise_missing_data
#> Missing data (OmopViewer panel)
#> • icon: circle-exclamation
#> • data: result_type: <summarise_missing_data>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Missing data (gt)
#> 
#> $summarise_in_observation
#> In Observation (OmopViewer panel)
#> • icon: explosion
#> • data: result_type: <summarise_in_observation>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Plot in observation (plot)
#> 
#> $orphan_code_use
#> Orphan codes (OmopViewer panel)
#> • icon: magnifying-glass-arrow-right
#> • data: result_type: <orphan_code_use>
#> • filters: 1 filters + 4 automatic filters
#> • content: Tidy (DT); Table Orphan codes (gt)
#> 
#> $cohort_code_use
#> Cohort code use (OmopViewer panel)
#> • icon: chart-column
#> • data: result_type: <cohort_code_use>
#> • filters: 1 filters + 4 automatic filters
#> • content: Tidy (DT); Table Cohort code use (gt)
#> 
#> $code_use
#> Code use (OmopViewer panel)
#> • icon: chart-column
#> • data: result_type: <code_use>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Code use (gt)
#> 
#> $achilles_code_use
#> Achilles code use (OmopViewer panel)
#> • icon: chart-column
#> • data: result_type: <achilles_code_use>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Achilles code use (gt)
#> 
#> $unmapped_codes
#> Unmapped codes (OmopViewer panel)
#> • icon: chart-column
#> • data: result_type: <unmapped_codes>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Unmapped codes (gt)
#> 
#> $summarise_cohort_overlap
#> Cohort Overlap (OmopViewer panel)
#> • icon: circle-half-stroke
#> • data: result_type: <summarise_cohort_overlap>
#> • filters: 1 filters + 5 automatic filters
#> • content: Tidy (DT); Table Overlap (gt); Plot Overlap (plot)
#> 
#> $summarise_cohort_count
#> Cohort Count (OmopViewer panel)
#> • icon: users
#> • data: result_type: <summarise_cohort_count>
#> • filters: 1 filters + 4 automatic filters
#> • content: Tidy (DT); Table Counts (gt); Plot Counts (plot)
#> 
#> $summarise_cohort_attrition
#> Cohort Attrition (OmopViewer panel)
#> • icon: layer-group
#> • data: result_type: <summarise_cohort_attrition>
#> • filters: 1 filters + 2 automatic filters
#> • content: Tidy (DT); Table Attrition (gt); Diagram (grViz)
#> 
#> $summarise_cohort_timing
#> Cohort Timing (OmopViewer panel)
#> • icon: chart-simple
#> • data: result_type: <summarise_cohort_timing>
#> • filters: 1 filters + 2 automatic filters
#> • content: Tidy (DT); Table Timing (gt); Plot Timing (plot)
#> 
#> $summarise_characteristics
#> Cohort Characteristics (OmopViewer panel)
#> • icon: users-gear
#> • data: result_type: <summarise_characteristics>
#> • filters: 1 filters + 4 automatic filters
#> • content: Tidy (DT); Table Characteristics (gt); Plot Characteristics (plot)
#> 
#> $summarise_large_scale_characteristics
#> Large Scale Characteristics (OmopViewer panel)
#> • icon: arrow-up-right-dots
#> • data: result_type: <summarise_large_scale_characteristics>
#> • filters: 1 filters + 4 automatic filters
#> • content: Table (reactable); Most common codes (gt); Plot Compared (plotly)
#> 
#> $incidence
#> Incidence (OmopViewer panel)
#> • icon: chart-line
#> • data: result_type: <incidence>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Incidence (gt); Plot Incidence (plot)
#> 
#> $incidence_attrition
#> Incidence Attrition (OmopViewer panel)
#> • icon: layer-group
#> • data: result_type: <incidence_attrition>
#> • filters: 1 filters + 2 automatic filters
#> • content: Tidy (DT); Table Incidence Attrition (gt)
#> 
#> $prevalence
#> Prevalence (OmopViewer panel)
#> • icon: chart-column
#> • data: result_type: <prevalence>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Prevalence (gt); Plot Prevalence (plot)
#> 
#> $prevalence_attrition
#> Prevalence Attrition (OmopViewer panel)
#> • icon: layer-group
#> • data: result_type: <prevalence_attrition>
#> • filters: 1 filters + 2 automatic filters
#> • content: Tidy (DT); Table Prevalence Attrition (gt)
#> 
#> $summarise_dose_coverage
#> Dose coverage (OmopViewer panel)
#> • icon: pills
#> • data: result_type: <summarise_dose_coverage>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Dose coverage (gt)
#> 
#> $summarise_proportion_of_patients_covered
#> Proportion of patients covered (OmopViewer panel)
#> • icon: chart-gantt
#> • data: result_type: <summarise_proportion_of_patients_covered>
#> • filters: 1 filters + 3 automatic filters
#> • content: Tidy (DT); Table PPC (gt); Plot PPC (plot)
#> 
#> $summarise_drug_restart
#> Drug Restart (OmopViewer panel)
#> • icon: chart-gantt
#> • data: result_type: <summarise_drug_restart>
#> • filters: 1 filters + 3 automatic filters
#> • content: Tidy (DT); Table Drug Restart (gt); Plot Drug Restart (plot)
#> 
#> $summarise_drug_utilisation
#> Drug Utilisation (OmopViewer panel)
#> • icon: capsules
#> • data: result_type: <summarise_drug_utilisation>
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table Drug Utilisation (gt); Plot Drug Utilisation (plot)
#> 
#> $summarise_indication
#> Indication (OmopViewer panel)
#> • icon: disease
#> • data: result_type: <summarise_indication>
#> • filters: 1 filters + 7 automatic filters
#> • content: Tidy (DT); Table Indication (gt); Plot Indication (plot)
#> 
#> $summarise_treatment
#> Treatments (OmopViewer panel)
#> • icon: disease
#> • data: result_type: <summarise_treatment>
#> • filters: 1 filters + 7 automatic filters
#> • content: Tidy (DT); Table Treatments (gt); Plot Treatment (plot)
#> 
#> $default
#> <result_type> (OmopViewer panel)
#> • icon: folder
#> • data: -no data-
#> • filters: 1 filters + 6 automatic filters
#> • content: Tidy (DT); Table (gt)

Panel details stucture

Panel details print shows:

More details on the internal structure and how to define new panels is explained in adding_new_panels. To see the internal structure you can use unclass:

unclass(getPanel("incidence"))
#> $title
#> [1] "Incidence"
#> 
#> $icon
#> [1] "chart-line"
#> 
#> $data
#> $data$result_type
#> [1] "incidence"
#> 
#> 
#> $automatic_filters
#> [1] "group"         "strata"        "additional"    "settings"     
#> [5] "variable_name" "estimate_name"
#> 
#> $exclude_filters
#> [1] "denominator_cohort_name" "incidence_end_date"     
#> 
#> $filters
#> $filters$cdm_name
#> $filters$cdm_name$button_type
#> [1] "pickerInput"
#> 
#> $filters$cdm_name$label
#> [1] "CDM name"
#> 
#> $filters$cdm_name$column
#> [1] "cdm_name"
#> 
#> $filters$cdm_name$column_type
#> [1] "main"
#> 
#> $filters$cdm_name$choices
#> [1] "choices$"
#> 
#> $filters$cdm_name$selected
#> [1] "selected$"
#> 
#> $filters$cdm_name$multiple
#> [1] TRUE
#> 
#> 
#> 
#> $content
#> $content$tidy
#> $content$tidy$title
#> [1] "Tidy"
#> 
#> $content$tidy$output_type
#> [1] "DT"
#> 
#> $content$tidy$render
#> [1] "tidyDT(<filtered_data>, input$columns, input$pivot_estimates)"
#> 
#> $content$tidy$filters
#> $content$tidy$filters$columns
#> $content$tidy$filters$columns$button_type
#> [1] "pickerInput"
#> 
#> $content$tidy$filters$columns$label
#> [1] "Columns"
#> 
#> $content$tidy$filters$columns$choices
#> [1] "cdm_name"       "<group>"        "<strata>"       "<additional>"  
#> [5] "<settings>"     "variable_name"  "variable_level"
#> 
#> $content$tidy$filters$columns$selected
#> [1] "cdm_name"       "<group>"        "<strata>"       "<additional>"  
#> [5] "variable_name"  "variable_level"
#> 
#> $content$tidy$filters$columns$multiple
#> [1] TRUE
#> 
#> 
#> $content$tidy$filters$pivot_estimates
#> $content$tidy$filters$pivot_estimates$button_type
#> [1] "checkbox"
#> 
#> $content$tidy$filters$pivot_estimates$label
#> [1] "Pivot estimates"
#> 
#> $content$tidy$filters$pivot_estimates$value
#> [1] TRUE
#> 
#> 
#> 
#> $content$tidy$download
#> $content$tidy$download$label
#> [1] "Download csv"
#> 
#> $content$tidy$download$render
#> [1] "<filtered_data> |>\n    omopgenerics::tidy() |>\n    readr::write_csv(file = file)"
#> 
#> $content$tidy$download$filename
#> [1] "tidy_results.csv"
#> 
#> 
#> 
#> $content$table
#> $content$table$title
#> [1] "Table Incidence"
#> 
#> $content$table$output_type
#> [1] "gt"
#> 
#> $content$table$render
#> [1] "res <- <filtered_data>\n      res |>\n      IncidencePrevalence::tableIncidence(\n      header = input$header,\n      groupColumn = input$group_column,\n      hide = input$hide,\n      settingsColumn = omopgenerics::settingsColumns(res)\n      )"
#> 
#> $content$table$filters
#> $content$table$filters$none
#> $content$table$filters$none$button_type
#> [1] "rank_list"
#> 
#> $content$table$filters$none$text
#> [1] "None"
#> 
#> $content$table$filters$none$labels
#> [1] "<strata>"              "incidence_start_date"  "incidence_end_date"   
#> [4] "denominator_age_group" "denominator_sex"      
#> 
#> 
#> $content$table$filters$header
#> $content$table$filters$header$button_type
#> [1] "rank_list"
#> 
#> $content$table$filters$header$text
#> [1] "Header"
#> 
#> $content$table$filters$header$labels
#> [1] "estimate_name"
#> 
#> 
#> $content$table$filters$group_column
#> $content$table$filters$group_column$button_type
#> [1] "rank_list"
#> 
#> $content$table$filters$group_column$text
#> [1] "Group columns"
#> 
#> $content$table$filters$group_column$labels
#> [1] "cdm_name"            "outcome_cohort_name"
#> 
#> 
#> $content$table$filters$hide
#> $content$table$filters$hide$button_type
#> [1] "rank_list"
#> 
#> $content$table$filters$hide$text
#> [1] "Hide"
#> 
#> $content$table$filters$hide$labels
#>  [1] "denominator_cohort_name"             
#>  [2] "analysis_interval"                   
#>  [3] "analysis_censor_cohort_name"         
#>  [4] "analysis_complete_database_intervals"
#>  [5] "analysis_outcome_washout"            
#>  [6] "analysis_repeated_events"            
#>  [7] "denominator_days_prior_observation"  
#>  [8] "denominator_end_date"                
#>  [9] "denominator_requirements_at_entry"   
#> [10] "denominator_start_date"              
#> [11] "denominator_target_cohort_name"      
#> [12] "denominator_time_at_risk"            
#> 
#> 
#> 
#> $content$table$download
#> $content$table$download$label
#> [1] "Download table"
#> 
#> $content$table$download$filters
#> $content$table$download$filters$format
#> $content$table$download$filters$format$button_type
#> [1] "pickerInput"
#> 
#> $content$table$download$filters$format$label
#> [1] "Format"
#> 
#> $content$table$download$filters$format$choices
#> [1] "docx" "png"  "pdf"  "html"
#> 
#> $content$table$download$filters$format$selected
#> [1] "docx"
#> 
#> $content$table$download$filters$format$multiple
#> [1] FALSE
#> 
#> 
#> 
#> $content$table$download$render
#> [1] "gt::gtsave(<rendered_data>, file)"
#> 
#> $content$table$download$filename
#> [1] "paste0(\"table_incidence.\", input$format)"
#> 
#> 
#> 
#> $content$plot
#> $content$plot$title
#> [1] "Plot Incidence"
#> 
#> $content$plot$output_type
#> [1] "plot"
#> 
#> $content$plot$render
#> [1] "<filtered_data> |>\n      IncidencePrevalence::plotIncidence(\n      x = input$x,\n      facet = input$facet,\n      colour = input$colour\n      )"
#> 
#> $content$plot$filters
#> $content$plot$filters$x
#> $content$plot$filters$x$button_type
#> [1] "pickerInput"
#> 
#> $content$plot$filters$x$label
#> [1] "x axis"
#> 
#> $content$plot$filters$x$choices
#> [1] "cdm_name"     "<group>"      "<strata>"     "<additional>" "<settings>"  
#> 
#> $content$plot$filters$x$selected
#> [1] "incidence_start_date"
#> 
#> $content$plot$filters$x$multiple
#> [1] FALSE
#> 
#> 
#> $content$plot$filters$facet
#> $content$plot$filters$facet$button_type
#> [1] "pickerInput"
#> 
#> $content$plot$filters$facet$label
#> [1] "Facet"
#> 
#> $content$plot$filters$facet$choices
#> [1] "cdm_name"     "<group>"      "<strata>"     "<additional>" "<settings>"  
#> 
#> $content$plot$filters$facet$selected
#> [1] "cdm_name"
#> 
#> $content$plot$filters$facet$multiple
#> [1] TRUE
#> 
#> 
#> $content$plot$filters$colour
#> $content$plot$filters$colour$button_type
#> [1] "pickerInput"
#> 
#> $content$plot$filters$colour$label
#> [1] "Colour"
#> 
#> $content$plot$filters$colour$choices
#> [1] "cdm_name"     "<group>"      "<strata>"     "<additional>" "<settings>"  
#> 
#> $content$plot$filters$colour$selected
#> [1] "outcome_cohort_name"
#> 
#> $content$plot$filters$colour$multiple
#> [1] TRUE
#> 
#> 
#> 
#> $content$plot$download
#> $content$plot$download$label
#> [1] "Download plot"
#> 
#> $content$plot$download$filters
#> $content$plot$download$filters$width
#> $content$plot$download$filters$width$button_type
#> [1] "numericInput"
#> 
#> $content$plot$download$filters$width$label
#> [1] "Width"
#> 
#> $content$plot$download$filters$width$value
#> [1] 15
#> 
#> 
#> $content$plot$download$filters$height
#> $content$plot$download$filters$height$button_type
#> [1] "numericInput"
#> 
#> $content$plot$download$filters$height$label
#> [1] "Height"
#> 
#> $content$plot$download$filters$height$value
#> [1] 15
#> 
#> 
#> $content$plot$download$filters$units
#> $content$plot$download$filters$units$button_type
#> [1] "pickerInput"
#> 
#> $content$plot$download$filters$units$label
#> [1] "Units"
#> 
#> $content$plot$download$filters$units$selected
#> [1] "cm"
#> 
#> $content$plot$download$filters$units$choices
#> [1] "px"   "cm"   "inch"
#> 
#> $content$plot$download$filters$units$multiple
#> [1] FALSE
#> 
#> 
#> $content$plot$download$filters$dpi
#> $content$plot$download$filters$dpi$button_type
#> [1] "numericInput"
#> 
#> $content$plot$download$filters$dpi$label
#> [1] "DPI"
#> 
#> $content$plot$download$filters$dpi$value
#> [1] 300
#> 
#> 
#> 
#> $content$plot$download$render
#> [1] "plt <- <rendered_data>\n        ggplot2::ggsave(\n          filename = file,\n          plot = plt,\n          width = as.numeric(input$width),\n          height = as.numeric(input$height),\n          units = input$units,\n          dpi = as.numeric(input$dpi)\n        )"
#> 
#> $content$plot$download$filename
#> [1] "plot_incidence.png"