Install packages and load Eunomia and test that it works
library(tidyverse);library(magrittr)
library(DT)
# library(devtools)
# options(devtools.install.args = "--no-multiarch")
# install_github('OHDSI/DatabaseConnector')
# install_github('OHDSI/SqlRender')
#
# install_github('OHDSI/FeatureExtraction')
# install_github('OHDSI/OhdsiRTools')
# install_github('OHDSI/OhdsiSharing')
# devtools::install_github('OHDSI/Achilles')
# devtools::install_github('OHDSI/Eunomia')
# devtools::install_github('OHDSI/DataQualityDashboard')
# devtools::install_github('OHDSI/PatientLevelPrediction')
#remove.packages('Eunomia')
library(Eunomia)
## Loading required package: DatabaseConnector
connectionDetails <- Eunomia::getEunomiaConnectionDetails()
connection <- connect(connectionDetails)
## Connecting using SQLite driver
querySql(connection, "SELECT COUNT(*) FROM person;")
## COUNT(*)
## 1 2694
tables<-getTableNames(connection = connection)
tables
## [1] "CARE_SITE" "CDM_SOURCE"
## [3] "COHORT" "COHORT_ATTRIBUTE"
## [5] "CONCEPT" "CONCEPT_ANCESTOR"
## [7] "CONCEPT_CLASS" "CONCEPT_RELATIONSHIP"
## [9] "CONCEPT_SYNONYM" "CONDITION_ERA"
## [11] "CONDITION_OCCURRENCE" "COST"
## [13] "DEATH" "DEVICE_EXPOSURE"
## [15] "DOMAIN" "DOSE_ERA"
## [17] "DRUG_ERA" "DRUG_EXPOSURE"
## [19] "DRUG_STRENGTH" "FACT_RELATIONSHIP"
## [21] "LOCATION" "MEASUREMENT"
## [23] "METADATA" "NOTE"
## [25] "NOTE_NLP" "OBSERVATION"
## [27] "OBSERVATION_PERIOD" "PAYER_PLAN_PERIOD"
## [29] "PERSON" "PROCEDURE_OCCURRENCE"
## [31] "PROVIDER" "RELATIONSHIP"
## [33] "SOURCE_TO_CONCEPT_MAP" "SPECIMEN"
## [35] "VISIT_DETAIL" "VISIT_OCCURRENCE"
## [37] "VOCABULARY"
#DatabaseConnector::disconnect(connection)
Only mesures that we need. This can be skipped if you executed Achilles in the past.
library(Achilles)
cdmDatabaseSchema<-'main'
resultsDatabaseSchema<-cdmDatabaseSchema
vocabDatabaseSchema<-cdmDatabaseSchema
cdmSourceName='eunomia'
Achilles::achilles(connectionDetails,
cdmDatabaseSchema = cdmDatabaseSchema,
resultsDatabaseSchema=resultsDatabaseSchema,
vocabDatabaseSchema = vocabDatabaseSchema,
numThreads = 1,
sourceName = cdmSourceName,
cdmVersion = "5.3.0",
analysisIds=c(600,605,625), #procedural items
runHeel = FALSE,
runCostAnalysis = FALSE,createIndices = FALSE,conceptHierarchy = FALSE
)
## Connecting using SQLite driver
## Beginning single-threaded execution
## Connecting using SQLite driver
##
|
| | 0%
|
|================================ | 50%
|
|=================================================================| 100%
## Executing SQL took 0.006 secs
## Executing multiple queries. This could take a while
## Analysis 600 (Number of persons with at least one procedure occurrence, by procedure_concept_id) -- START
##
|
| | 0%
|
|================================ | 50%
|
|=================================================================| 100%
## Executing SQL took 0.036 secs
## [Main Analysis] [COMPLETE] 600 (0.047990 secs)
## Analysis 605 (Number of procedure occurrence records, by procedure_concept_id by procedure_type_concept_id) -- START
##
|
| | 0%
|
|================================ | 50%
|
|=================================================================| 100%
## Executing SQL took 0.037 secs
## [Main Analysis] [COMPLETE] 605 (0.046948 secs)
## Analysis 625 (Number of procedure_occurrence records by procedure_source_concept_id) -- START
##
|
| | 0%
|
|================================ | 50%
|
|=================================================================| 100%
## Executing SQL took 0.026 secs
## [Main Analysis] [COMPLETE] 625 (0.035125 secs)
## Merging scratch Achilles tables
##
|
| | 0%
|
|================================ | 50%
|
|=================================================================| 100%
## Executing SQL took 0.00498 secs
## Done. Achilles results can now be found in schema main
d<-Achilles::fetchAchillesAnalysisResults(connectionDetails = connectionDetails,
resultsDatabaseSchema = resultsDatabaseSchema,
analysisId = 600)$analysisResults
## Connecting using SQLite driver
#view of it
DT::datatable(d,rownames=FALSE)
restricted<-d %>% filter(COUNT_VALUE > 100)
restricted %>% write_csv('a600.csv')
d<-Achilles::fetchAchillesAnalysisResults(connectionDetails = connectionDetails,
resultsDatabaseSchema = resultsDatabaseSchema,
analysisId = 625)$analysisResults
## Connecting using SQLite driver
#view of it
DT::datatable(d,rownames=FALSE)
restricted<-d %>% filter(COUNT_VALUE > 100)
restricted %>% write_csv('a625.csv')