knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(CodelistGenerator) library(CohortConstructor) library(CohortCharacteristics) library(ggplot2)
knitr::opts_chunk$set( collapse = TRUE, eval = TRUE, message = FALSE, warning = FALSE, comment = "#>" ) library(CDMConnector) library(dplyr, warn.conflicts = FALSE) if (Sys.getenv("EUNOMIA_DATA_FOLDER") == ""){ Sys.setenv("EUNOMIA_DATA_FOLDER" = file.path(tempdir(), "eunomia"))} if (!dir.exists(Sys.getenv("EUNOMIA_DATA_FOLDER"))){ dir.create(Sys.getenv("EUNOMIA_DATA_FOLDER")) downloadEunomiaData() }
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 = eunomiaDir()) cdm <- CDMConnector::cdmFromCon(con, cdmSchema = "main", writeSchema = "main", writePrefix = "my_study_")
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)
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.
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)
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.
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)
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.