Applying demographic requirements to a cohort
Source:vignettes/a03_require_demographics.Rmd
a03_require_demographics.Rmd
library(CodelistGenerator)
library(CohortConstructor)
library(CohortCharacteristics)
library(ggplot2)
In this vignette we’ll show how requirements related to patient demographics can be applied to a cohort. Again we’ll use the Eunomia synthetic data.
con <- DBI::dbConnect(duckdb::duckdb(), dbdir = eunomia_dir())
cdm <- cdm_from_con(con, cdm_schema = "main",
write_schema = c(prefix = "my_study_", schema = "main"))
Let’s start by creating a cohort of people with a fracture. We’ll first look for codes that might represent a fracture and the build a cohort using these codes, setting cohort exit to 180 days after the fracture.
fracture_codes <- getCandidateCodes(cdm, "fracture")
fracture_codes <- list("fracture" = fracture_codes$concept_id)
cdm$fracture <- conceptCohort(cdm = cdm,
conceptSet = fracture_codes,
name = "fracture")
summary_attrition <- summariseCohortAttrition(cdm$fracture)
plotCohortAttrition(summary_attrition)
Restrict cohort by age
We can choose a specific age range for individuals in our cohort
using requireAge()
from CohortConstructor.
cdm$fracture <- cdm$fracture |>
requireAge(indexDate = "cohort_start_date",
ageRange = list(c(18, 100)))
summary_attrition <- summariseCohortAttrition(cdm$fracture)
plotCohortAttrition(summary_attrition)
Note that by default individuals are filtered based on the age they were when they entered the cohort.
Restrict cohort by sex
We can also specify a sex criteria for individuals in our cohort
using requireSex()
from CohortConstructor.
cdm$fracture <- cdm$fracture |>
requireSex(sex = "Female")
summary_attrition <- summariseCohortAttrition(cdm$fracture)
plotCohortAttrition(summary_attrition)
Restrict cohort by number of prior observations
We can also specify a minimum number of days of prior observations
for each individual using requirePriorObservation()
from
CohortConstructor.
cdm$fracture <- cdm$fracture |>
requirePriorObservation(indexDate = "cohort_start_date",
minPriorObservation = 365)
summary_attrition <- summariseCohortAttrition(cdm$fracture)
plotCohortAttrition(summary_attrition)
As well as specifying a minimum amount of prior observation, we can
require some mimimum amount of follow-up by using
requireFutureObservation()
in a similar way.
Applying multiple demographic requirements to a cohort
We can implement multiple demographic requirements at the same time
by using the more general requireDemographics()
function.
cdm$fracture <- conceptCohort(cdm = cdm,
conceptSet = fracture_codes,
name = "fracture") |>
requireDemographics(indexDate = "cohort_start_date",
ageRange = c(18,100),
sex = "Female",
minPriorObservation = 365,
minFutureObservation = 30)
summary_attrition <- summariseCohortAttrition(cdm$fracture)
plotCohortAttrition(summary_attrition)