Achilles::getAnalysisDetails() %>%
DT::datatable(options = list(
scrollX = T,
autoWidth = T,
columnDefs = list(
list(width = '500px', targets = 4),
list(width = '200px', targets = 11)
)
)
)Exercise
Use Achilles to
- View the kinds of analyses and characterizations it performs.
- Run Acilles
- Generate Achilles SQL
Packages
Installation
View Analyis Details
First, let’s look at the kind of analyses Achilles can perform. Note there are analysis_ids for each kind of analysis.
Since a full achilles run will take a long time, we will select a subset of analysis ids.
datasetName = "GiBleed"
dbms = "sqlite"
datasetLocation <- Eunomia::getDatabaseFile(
datasetName = datasetName,
dbms = dbms,
databaseFile = tempfile(fileext = ".sqlite")
)
connectionDetails <- DatabaseConnector::createConnectionDetails(dbms = dbms, server = datasetLocation)
connection = DatabaseConnector::connect(connectionDetails = connectionDetails)
Eunomia::createCohorts(connectionDetails)
DatabaseConnector::getTableNames(connection, databaseSchema = 'main')base_dir = "resources/artifacts/achilles"
result <- Achilles::achilles(connectionDetails,
cdmDatabaseSchema = "main",
resultsDatabaseSchema = "main",
sourceName = "Eunomia",
outputFolder = base_dir,
sqlOnly = T,
analysisIds = 1:10,
cdmVersion = "5.3.0")lines <- readLines(file.path(base_dir, "achilles.sql"))
sql <- paste(lines, collapse = "\n")DatabaseConnector::executeSql(connection, sql)DatabaseConnector::getTableNames(connection, databaseSchema = 'main')DatabaseConnector::querySql(connection, "select * from achilles_analysis limit 100")DatabaseConnector::querySql(connection, "select * from achilles_results limit 100")DatabaseConnector::querySql(connection, "select * from achilles_results_dist limit 100")ETLSyntheaBuilder::exportToSQLite(connectionDetails, "main", SQLiteDbName = "eunomia-achilles.sqlite")Achilles::exportToAres(
connectionDetails = connectionDetails,
cdmDatabaseSchema = "main",
resultsDatabaseSchema = "main",
vocabDatabaseSchema = "main",
outputPath = "./data")DataQualityDashboard::executeDqChecks(
connectionDetails,
cdmDatabaseSchema = "main",
resultsDatabaseSchema = "main",
outputFile = "synthea.json",
cdmSourceName = "Eunomia",
outputFolder = "./data")DatabaseConnector::getTableNames(connection, databaseSchema = 'main')# Note json_path must be an absolute path...
json_path <- file.path(getwd(), base_dir, "synthea.json")
DataQualityDashboard::viewDqDashboard(jsonPath = json_path)DatabaseConnector::querySql(connection = connection, "select * from main.\"main.dqdashboard_results\"")