## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = FALSE ) ## ----prerequisites------------------------------------------------------------ # for (pkg in c("DatabaseConnector", "Eunomia", "Andromeda")) { # if (!requireNamespace(pkg, quietly = TRUE)) install.packages(pkg) # } # # library(OdysseusCharacterizationModule) # library(DatabaseConnector) # library(Eunomia) ## ----connect------------------------------------------------------------------ # connectionDetails <- getEunomiaConnectionDetails() # Eunomia::createCohorts(connectionDetails) # connection <- connect(connectionDetails) ## ----common-params------------------------------------------------------------ # COHORT_ID <- 1L # Celecoxib new users # CDM_SCHEMA <- "main" ## ----settings-basic----------------------------------------------------------- # ocmSettings <- createOcmCovariateSettings( # analysisWindows = defineAnalysisWindows( # startDays = c(-365), # endDays = c(-1) # ), # useBaseFeatures = list( # condition_occurrence = list(include = TRUE, type = "start"), # drug_exposure = list(include = TRUE, atc = FALSE), # condition_era = list(include = FALSE), # drug_era = list(include = FALSE), # procedure_occurrence = list(include = FALSE), # observation = list(include = FALSE), # device_exposure = list(include = FALSE), # visit_occurrence = list(include = FALSE), # measurement = list(include = FALSE) # ) # ) # # class(ocmSettings) # #> [1] "covariateSettings" # # attr(ocmSettings, "fun") # #> [1] "getDbOcmCovariateData" ## ----standalone--------------------------------------------------------------- # covData <- getDbOcmCovariateData( # connection = connection, # cdmDatabaseSchema = CDM_SCHEMA, # cohortTable = "main.cohort", # cohortIds = c(COHORT_ID), # rowIdField = "subject_id", # covariateSettings = ocmSettings, # aggregated = FALSE # ) ## ----covariates--------------------------------------------------------------- # covDf <- covData$covariates |> as.data.frame() # cat("Total covariate entries:", nrow(covDf), "\n") # cat("Unique patients:", length(unique(covDf$rowId)), "\n") # cat("Unique covariates:", length(unique(covDf$covariateId)), "\n") # head(covDf) ## ----covariate-ref------------------------------------------------------------ # refDf <- covData$covariateRef |> as.data.frame() # head(refDf, 10) ## ----analysis-ref------------------------------------------------------------- # analysisDf <- covData$analysisRef |> as.data.frame() # analysisDf ## ----close-standalone--------------------------------------------------------- # Andromeda::close(covData) ## ----fe-integration----------------------------------------------------------- # if (requireNamespace("FeatureExtraction", quietly = TRUE)) { # # covDataFE <- FeatureExtraction::getDbCovariateData( # connection = connection, # cdmDatabaseSchema = CDM_SCHEMA, # cohortDatabaseSchema = CDM_SCHEMA, # cohortTable = "cohort", # cohortIds = c(COHORT_ID), # covariateSettings = ocmSettings, # aggregated = FALSE # ) # # cat("Covariates (via FE):", nrow(as.data.frame(covDataFE$covariates)), "\n") # Andromeda::close(covDataFE) # # } else { # message("FeatureExtraction not installed — skipping integration demo.") # } ## ----combined----------------------------------------------------------------- # if (requireNamespace("FeatureExtraction", quietly = TRUE)) { # # feSettings <- FeatureExtraction::createCovariateSettings( # useDemographicsGender = TRUE, # useDemographicsAge = TRUE, # useDemographicsIndexYear = TRUE # ) # # combinedCovData <- FeatureExtraction::getDbCovariateData( # connection = connection, # cdmDatabaseSchema = CDM_SCHEMA, # cohortDatabaseSchema = CDM_SCHEMA, # cohortTable = "cohort", # cohortIds = c(COHORT_ID), # covariateSettings = list(feSettings, ocmSettings), # aggregated = FALSE # ) # # covDf <- as.data.frame(combinedCovData$covariates) # cat("Total covariate entries (combined):", nrow(covDf), "\n") # cat("Unique covariates (combined):", length(unique(covDf$covariateId)), "\n") # # Andromeda::close(combinedCovData) # # } else { # message("FeatureExtraction not installed — skipping combined demo.") # } ## ----multi-domain------------------------------------------------------------- # ocmSettingsWide <- createOcmCovariateSettings( # analysisWindows = defineAnalysisWindows( # startDays = c(-365, -30, 1), # endDays = c(-1, -1, 30) # ), # useBaseFeatures = list( # condition_occurrence = list(include = TRUE, type = "start"), # drug_exposure = list(include = TRUE, atc = FALSE), # procedure_occurrence = list(include = TRUE), # condition_era = list(include = FALSE), # drug_era = list(include = FALSE), # observation = list(include = FALSE), # device_exposure = list(include = FALSE), # visit_occurrence = list(include = TRUE, type = "start"), # measurement = list(include = TRUE) # ) # ) # # covDataWide <- getDbOcmCovariateData( # connection = connection, # cdmDatabaseSchema = CDM_SCHEMA, # cohortTable = "main.cohort", # cohortIds = c(COHORT_ID), # covariateSettings = ocmSettingsWide, # aggregated = FALSE # ) # # cat("Analyses:", nrow(as.data.frame(covDataWide$analysisRef)), "\n") # cat("Covariates:", nrow(as.data.frame(covDataWide$covariates)), "\n") # # Andromeda::close(covDataWide) ## ----concept-set-------------------------------------------------------------- # ocmConceptSet <- createOcmCovariateSettings( # analysisWindows = defineAnalysisWindows( # startDays = c(-365), # endDays = c(-1) # ), # useBaseFeatures = list( # condition_occurrence = list(include = FALSE), # condition_era = list(include = FALSE), # drug_exposure = list(include = FALSE), # drug_era = list(include = FALSE), # procedure_occurrence = list(include = FALSE), # observation = list(include = FALSE), # device_exposure = list(include = FALSE), # visit_occurrence = list(include = FALSE), # measurement = list(include = FALSE) # ), # useConceptSetFeatures = list( # include = TRUE, # type = "binary", # conceptSets = list( # hypertension = list( # items = list( # list( # concept = list(CONCEPT_ID = 316866L), # includeDescendants = TRUE, # includeMapped = FALSE, # isExcluded = FALSE # ) # ), # tables = c("condition_occurrence") # ) # ) # ) # ) # # covDataCS <- getDbOcmCovariateData( # connection = connection, # cdmDatabaseSchema = CDM_SCHEMA, # cohortTable = "main.cohort", # cohortIds = c(COHORT_ID), # covariateSettings = ocmConceptSet, # aggregated = FALSE # ) # # cat("Concept-set covariates:", nrow(as.data.frame(covDataCS$covariates)), "\n") # as.data.frame(covDataCS$covariateRef) # # Andromeda::close(covDataCS) ## ----disconnect--------------------------------------------------------------- # disconnect(connection)