knitr::opts_chunk$set(echo = TRUE)
library(DatabaseConnector)
library(SqlRender)
library(Eunomia)
library(FeatureExtraction)
library(AssociationRuleMining)
#library(tidyr)
#library(rJava)
#library(stringr)
devtools::load_all()

Connect to the database

### Define database parameters
cdmdatabaseschema = "main"
resultsdatabaseschema = "main"

connectionDetails <- Eunomia::getEunomiaConnectionDetails()
connection <- connect(connectionDetails)
#on.exit(DatabaseConnector::disconnect(connection)) #Close db connection on error or exit

Define cohort

# Define cohort
cohort <- readSql("../data/cohorts/Eunomia_MI_cohort.sql")

renderTranslateExecuteSql(connection, cohort, cdm = "main")

sql <- "ALTER TABLE #diagnoses ADD cohort_definition_id INT NOT NULL DEFAULT(1)"

# Execute the script to receive the data
renderTranslateExecuteSql(connection, sql)

querySql(connection, "SELECT count(*) FROM diagnoses;")

Get the data and close the connection

# Define covariate settings
TemporalcovariateSettings_eunomia <- createTemporalCovariateSettings(useConditionOccurrence = TRUE, 
                                                      temporalStartDays = seq(-(60*365), -1, by = 1) ,
                                                      temporalEndDays = seq(-(60*365)+1, 0, by = 1))

# Extract covariates
TemporalcovariateData_eunomia <- getDbCovariateData(connection = connection, 
                         cdmDatabaseSchema = cdmdatabaseschema, 
                         cohortDatabaseSchema = resultsdatabaseschema, 
                         cohortTable = "diagnoses", 
                         rowIdField = "subject_id", 
                         covariateSettings = TemporalcovariateSettings_eunomia, 
                         cohortTableIsTemp = TRUE)

disconnect(connection)

Prepare the data

getInputFileForFrequentPatterns(covariateDataObject = TemporalcovariateData_eunomia, fileToSave = "example1.txt")

Running Analysis

frequentPatterns <- runFrequentPatterns(algorithm = "SPADE", inputFile = "example1.txt", outputFile = "results_example1.txt", minsup = 0.5, showID = TRUE)
str(frequentPatterns)
dfWithIDs <- getIdDataFrame("results_example1.txt")
dim(dfWithIDs)


mi-erasmusmc/AssociationRuleMining documentation built on Oct. 26, 2021, 1:31 a.m.