R/cohort_pathways.R

Defines functions gen_cohort_pathways

########################
#### COHORT PATHWAYS ###
########################

#' @export
gen_cohort_pathways <- function(){

### INITIAL PREPARATION ----

# select pre-defined baseline features of interest
covariateSettings <- createCovariateSettings(useDemographicsTimeInCohort = TRUE)

# create covariate settings for length of follow-up
LooCovSet <- createLooCovariateSettings(useLengthOfObs = TRUE, covariateID = 2, analysisID = 1002)

# create covariate settings for COPD exacerbations in all follow up
outcomeCountModCopdExV1CovSet <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of moderate COPD exacerbations in FU (using drug and disease codes)", covariateID = 3, analysisID = 1003, cohortID_out = 3)
outcomeCountModCopdExV2CovSet <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of moderate COPD exacerbations in FU (using drug and disease codes OR exac code)", covariateID = 4, analysisID = 1003, cohortID_out = 4)
outcomeCountSevereCopdExCovSet <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of severe COPD exacerbations in FU", covariateID = 5, analysisID = 1003, cohortID_out = 5)

# create covariate settings for COPD exacerbations in year 1
outcomeCountModCopdExV1CovSet_1yr <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of moderate COPD exacerbations in year 1 (using drug and disease codes)", covariateID = 6, analysisID = 1003, cohortID_out = 3, futime = 365)
outcomeCountModCopdExV2CovSet_1yr <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of moderate COPD exacerbations in year 1 (using drug and disease codes OR exac code)", covariateID = 7, analysisID = 1003, cohortID_out = 4, futime = 365)
outcomeCountSevereCopdExCovSet_1yr <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of severe COPD exacerbations in year 1", covariateID = 8, analysisID = 1003, cohortID_out = 5, futime = 365)

# create covariate settings for measures of healthcare utilisation in all follow up
outcomeCountInpatientCovSet <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of hospitalisations in FU", covariateID = 9, analysisID = 1003, cohortID_out = 9201)
outcomeCountOutpatientCovSet <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of outpatient visits in FU", covariateID = 10, analysisID = 1003, cohortID_out = 9202)
outcomeCountEmergencyCovSet <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of emergency room visits in FU", covariateID = 11, analysisID = 1003, cohortID_out = 9203)
outcomeCountOfficeCovSet <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of office room visits in FU", covariateID = 12, analysisID = 1003, cohortID_out = 8940)

# create covariate settings for measures of healthcare utilisation in year 1
outcomeCountInpatientCovSet_1yr <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of hospitalisations in year 1", covariateID = 13, analysisID = 1003, cohortID_out = 9201, futime = 365)
outcomeCountOutpatientCovSet_1yr <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of outpatient visits in year 1", covariateID = 14, analysisID = 1003, cohortID_out = 9202, futime = 365)
outcomeCountEmergencyCovSet_1yr <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of emergency room visits in year 1", covariateID = 15, analysisID = 1003, cohortID_out = 9203, futime = 365)
outcomeCountOfficeCovSet_1yr <- createoutcomeCountCovariateSettings(useoutcomeCount = TRUE,analysisName = "Number of office room visits in year 1", covariateID = 16, analysisID = 1003, cohortID_out = 8940, futime = 365)

# combine pre-defined and custom covariates
covariateSettingsList <- list(covariateSettings, LooCovSet, outcomeCountModCopdExV1CovSet, outcomeCountModCopdExV2CovSet, outcomeCountSevereCopdExCovSet,
                              outcomeCountModCopdExV1CovSet_1yr, outcomeCountModCopdExV2CovSet_1yr, outcomeCountSevereCopdExCovSet_1yr,
                              outcomeCountInpatientCovSet, outcomeCountOutpatientCovSet, outcomeCountEmergencyCovSet, outcomeCountOfficeCovSet,
                              outcomeCountInpatientCovSet_1yr, outcomeCountOutpatientCovSet_1yr, outcomeCountEmergencyCovSet_1yr, outcomeCountOfficeCovSet_1yr)

### COHORT 1 - COPD DIAG AND DRUG EVIDENCE ----

# Extract data and aggregate
covariates_pp <- getDbCovariateData(connectionDetails = connectionDetails,
                                    cdmDatabaseSchema = cdmDbSchema,
                                    cohortDatabaseSchema = cohortDbSchema,
                                    cohortTable = cohortTable,
                                    cohortId = 1,
                                    covariateSettings = covariateSettingsList)
covariates_agg <- aggregateCovariates(covariates_pp)

# generate detailed summaries of categorical covariates
bl_char_cohort1_catVars <- dplyr::left_join(covariates_agg$covariates[,], covariates_agg$covariateRef[,], by = "covariateId")

# continuous data
bl_char_cohort1_contVars <- dplyr::left_join(as.data.frame(covariates_agg$covariatesContinuous[,]), covariates_agg$covariateRef[,], by = "covariateId")

### COHORT 2 - COPD DIAG ONLY ----
# Extract data and aggregate
covariates_pp <- getDbCovariateData(connectionDetails = connectionDetails,
                                    cdmDatabaseSchema = cdmDbSchema,
                                    cohortDatabaseSchema = cohortDbSchema,
                                    cohortTable = cohortTable,
                                    cohortId = 2,
                                    covariateSettings = covariateSettingsList)
covariates_agg <- aggregateCovariates(covariates_pp)

# generate detailed summaries of categorical covariates
bl_char_cohort2_catVars <- dplyr::left_join(covariates_agg$covariates[,], covariates_agg$covariateRef[,], by = "covariateId")

# continuous data
bl_char_cohort2_contVars <- dplyr::left_join(as.data.frame(covariates_agg$covariatesContinuous[,]), covariates_agg$covariateRef[,], by = "covariateId")

# RESULTS TO EXTRACT ----

# set up results list
res.list <- list("cat_vars" = NULL, "cont_vars" = NULL)

# initiate outcomes list
out.list <- list("cohort1_COPD_diag_and_drug_exposure" = res.list, "cohort2_COPD_diag" = res.list)

# add in results
out.list$cohort1_COPD_diag_and_drug_exposure$cat_vars <- bl_char_cohort1_catVars
out.list$cohort1_COPD_diag_and_drug_exposure$cont_vars <- bl_char_cohort1_contVars
out.list$cohort2_COPD_diag$cat_vars <- bl_char_cohort2_catVars
out.list$cohort2_COPD_diag$cont_vars <- bl_char_cohort2_contVars

# output to return
return(out.list)

}
seamuskent/ehdenHtaCopd documentation built on Feb. 22, 2020, 8:14 a.m.