## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- library(tidyOhdsiSolutions) ## ----------------------------------------------------------------------------- diabetes_df <- data.frame( concept_id = c(201826L, 442793L), concept_name = c("Type 2 diabetes mellitus", "Diabetes mellitus due to insulin resistance"), domain_id = c("Condition", "Condition"), vocabulary_id = c("SNOMED", "SNOMED"), standard_concept = c("S", "S"), descendants = c(TRUE, TRUE), excluded = c(FALSE, FALSE) ) hypertension_df <- data.frame( concept_id = 320128L, concept_name = "Essential hypertension", domain_id = "Condition", vocabulary_id = "SNOMED", standard_concept = "S", descendants = TRUE, excluded = FALSE ) ## ----------------------------------------------------------------------------- diabetes_cs <- toConceptSet(diabetes_df, name = "Type 2 Diabetes") hypertension_cs <- toConceptSet(hypertension_df, name = "Hypertension") ## ----------------------------------------------------------------------------- all_cs <- toConceptSets(list( "Type 2 Diabetes" = diabetes_df, "Hypertension" = hypertension_df )) ## ----------------------------------------------------------------------------- cohort <- cohortFromConceptSet( conceptSetList = all_cs, limit = "earliest", requiredObservation = c(365L, 0L), end = "observation_period_end_date" ) ## ----------------------------------------------------------------------------- json <- cohortToJson(cohort) cat(substr(json, 1, 300), "...\n") ## ----eval = FALSE------------------------------------------------------------- # writeLines(json, "my_cohort.json") ## ----------------------------------------------------------------------------- cohort_obs <- cohortFromConceptSet( all_cs, end = "observation_period_end_date" ) ## ----------------------------------------------------------------------------- cohort_fixed <- cohortFromConceptSet( all_cs, end = "fixed_exit", endArgs = list(index = "startDate", offsetDays = 180) ) # Verify cohort_fixed$EndStrategy$DateOffset ## ----------------------------------------------------------------------------- drug_df <- data.frame( concept_id = 1503297L, concept_name = "Metformin", domain_id = "Drug", vocabulary_id = "RxNorm", standard_concept = "S", descendants = TRUE, excluded = FALSE ) drug_cs <- toConceptSets(list("Metformin" = drug_df)) cohort_drug <- cohortFromConceptSet( drug_cs, end = "drug_exit", endArgs = list(persistenceWindow = 30, surveillanceWindow = 7) ) # Verify cohort_drug$EndStrategy$CustomEra ## ----------------------------------------------------------------------------- # Keep only the earliest qualifying event per person earliest <- cohortFromConceptSet(all_cs, limit = "earliest") earliest$PrimaryCriteria$PrimaryCriteriaLimit$Type # Keep all qualifying events all_events <- cohortFromConceptSet(all_cs, limit = "all") all_events$PrimaryCriteria$PrimaryCriteriaLimit$Type # Keep only the latest qualifying event latest <- cohortFromConceptSet(all_cs, limit = "latest") latest$PrimaryCriteria$PrimaryCriteriaLimit$Type ## ----------------------------------------------------------------------------- cohort_src <- cohortFromConceptSet(all_cs, addSourceCriteria = TRUE) length(cohort_src$PrimaryCriteria$CriteriaList) # Without source criteria cohort_plain <- cohortFromConceptSet(all_cs, addSourceCriteria = FALSE) length(cohort_plain$PrimaryCriteria$CriteriaList) ## ----------------------------------------------------------------------------- names(cohort) ## ----------------------------------------------------------------------------- # Number of concept sets length(cohort$ConceptSets) # Names of concept sets vapply(cohort$ConceptSets, `[[`, character(1), "name") # Observation window cohort$PrimaryCriteria$ObservationWindow