Population diagnostics

Introduction

In this example we’re going to just create a cohort of individuals with an ankle sprain using the Eunomia synthetic data.

library(CDMConnector)
library(CohortConstructor)
library(CodelistGenerator)
library(PatientProfiles)
library(IncidencePrevalence)
library(PhenotypeR)


con <- DBI::dbConnect(duckdb::duckdb(), 
                      CDMConnector::eunomiaDir("synpuf-1k", "5.3"))
cdm <- CDMConnector::cdmFromCon(con = con, 
                                cdmName = "Eunomia Synpuf",
                                cdmSchema   = "main",
                                writeSchema = "main", 
                                achillesSchema = "main")

cdm$injuries <- conceptCohort(cdm = cdm,
  conceptSet = list(
    "ankle_sprain" = 81151
  ),
  name = "injuries")

We can get the incidence and prevalence of our study cohort using populationDiagnostics():

pop_diag <- populationDiagnostics(cdm$injuries)

This function builds on IncidencePrevalence R package to perform the following analyses:

All analyses are performed for:

Visualising the results

We can use IncidencePrevalence package to visualise the results obtained.

Incidence

tableIncidence(pop_diag,     
               groupColumn = c("cdm_name", "outcome_cohort_name"),
               hide = "denominator_cohort_name",
               settingsColumn = c("denominator_age_group",
                         "denominator_sex",
                         "denominator_days_prior_observation",
                         "outcome_cohort_name"))
results <- pop_diag |> 
  omopgenerics::filterSettings(result_type == "incidence") |>
  visOmopResults::filterAdditional(analysis_interval == "years")
plotIncidence(results,
              colour = "denominator_age_group",
              facet = c("denominator_sex", "denominator_days_prior_observation"))

Prevalence

tablePrevalence(pop_diag,     
               groupColumn = c("cdm_name", "outcome_cohort_name"),
               hide = "denominator_cohort_name",
               settingsColumn = c("denominator_age_group",
                         "denominator_sex",
                         "denominator_days_prior_observation",
                         "outcome_cohort_name"))
results <- pop_diag |> 
  omopgenerics::filterSettings(result_type == "prevalence") |>
  visOmopResults::filterAdditional(analysis_interval == "years")
plotPrevalence(results,
               colour = "denominator_age_group",
               facet = c("denominator_sex", "denominator_days_prior_observation"))