AresAres
Home
ARES Documentation
Home
ARES Documentation
  • ARES Documentation

ARES Documentation

Background

ARES is A Research Exploration System designed for use in the study of patient level observational data that has been converted into the Observational Medical Outcomes Partnership (OMOP) Common Data Model (CDM). ARES was developed by Frank DeFalco, a member of the Observational Health Data Sciences & Informatics (OHDSI) community.

OHDSI

The Observational Health Data Sciences and Informatics (or OHDSI, pronounced "Odyssey") program is a multi-stakeholder, interdisciplinary collaborative to bring out the value of health data through large-scale analytics. All our solutions are open-source. Learn more about OHDSI.

Installation

Requirements

  • git client (GitHub Desktop recommended). On macOS git comes preinstalled and can be accessed via the Terminal app. On linux systems might require installation using the appropriate package manager.
  • Node.js v18 or higher is required. Download link
  • NPM (node package manager) - installed by default with Node.js

Installation Steps

Using pre-built files

Open the Ares releases page and download the latest available release (Ares.x.x-beta.zip), unpack the zip archive and serve using your favourite web server.

Here's an example running Ares using the "http-server" web server:

    npm install -g http-server #download and install the http-server web server
    
    http-server aresFolder #replace with the name of the folder containing Ares files

The link to the app will be available within the terminal once the http-server is launched.

Building manually

Begin by downloading the source code for the ARES web application, which can be obtained by cloning the repository found on Github.

   git clone https://github.com/ohdsi/ares

Once the repository is cloned locally the application can be built by using npm. These steps should be run from a bash shell or command prompt and are as follows:

   cd aresDirectory #navigate to the directory Ares was cloned into
   npm install #install Ares dependencies
   npm run build -- --base=/ # Build the app. Replace "/" if you wish to run Ares within a subdirectory

The "--base" option is used to specify the base public path of the app. The default value is " /ares/" in case this option is not indicated.

The npm build process will create an output directory named "/dist" which will contain all files required for the ARES web application. These files should be placed in a directory that is served by any web server (like http-server), typically deployed in an "/ares" subdirectory (you can override that with the " --base" option as shown above.

Running in dev mode

The app could also be launched in dev mode and served by the built-in web server instantly. Run the following after cloning the repo and running "npm install"

   npm run serve

Once the server is running, the app will be available at http://localhost:8080/ares (port 8080 is the default value and might be different if it's already being used by another app).

After completing the deployment of the web application the data files for ARES must be placed in the "/data" subfolder within the "/yourAresDirectory/public/" directory. The ARES data files are generated from your existing OMOP CDM database and require both Achilles and DataQualityDashboard.

Here's an example script to generate Ares files (replace connectionDetails with your own)

# DatabaseConnector::downloadJdbcDrivers("postgresql","./") - use it to download the JDBC driver
options(connectionObserver = NULL)

cdmDatabaseSchema = "cdm"
resultsDatabaseSchema = "results" # used to store Achilles output
vocabDatabaseSchema = "cdm" #usually located within the cdm schema
numThreads = 1
cdmSourceName = 'synthea'
cdmVersion = "5.4"

aresDataDirectory = "./data" #Achilles output directory

#connectionDetails <- Eunomia::getEunomiaConnectionDetails() #Provides a sample dataset

connectionDetails <- DatabaseConnector::createConnectionDetails(
  dbms     = "postgresql",
  server   = "localhost/synthea",
  user     = "postgres",
  password = "12345",
  port     = 5432,
  pathToDriver = "./" #indicate path to your chosen dbms JDBC driver
) #Used to connect to your existing CDM

# Run Achilles
Achilles::achilles(
  connectionDetails,
  cdmDatabaseSchema = cdmDatabaseSchema ,
  resultsDatabaseSchema= resultsDatabaseSchema,
  vocabDatabaseSchema = vocabDatabaseSchema,
  numThreads = 1,
  cdmVersion = cdmVersion,
  createIndices = F,
  createTable = T,
  smallCellCount = 0,
)

# Export Achilles results to Ares supported format
Achilles::exportToAres(
  connectionDetails = connectionDetails,
  cdmDatabaseSchema = cdmDatabaseSchema,
  resultsDatabaseSchema = resultsDatabaseSchema,
  vocabDatabaseSchema = vocabDatabaseSchema,
  outputPath = aresDataDirectory,
)

sourceReleaseKey = AresIndexer::getSourceReleaseKey(connectionDetails, cdmDatabaseSchema)
datasourceReleaseOutputFolder <- file.path(aresDataDirectory, sourceReleaseKey)

#Run data quality checks
DataQualityDashboard::executeDqChecks(
  connectionDetails = connectionDetails,
  cdmDatabaseSchema = cdmDatabaseSchema,
  resultsDatabaseSchema = resultsDatabaseSchema,
  vocabDatabaseSchema = vocabDatabaseSchema,
  cdmSourceName = cdmSourceName,
  numThreads = numThreads,
  outputFolder = datasourceReleaseOutputFolder,
  outputFile = "dq-result.json",
  verboseMode = T,
  writeToTable = F,
  cdmVersion = cdmVersion

)
# Run Achilles temporal characterization
outputFile <- file.path(datasourceReleaseOutputFolder, "temporal-characterization.csv")
Achilles::performTemporalCharacterization(
  connectionDetails = connectionDetails,
  cdmDatabaseSchema = cdmDatabaseSchema,
  resultsDatabaseSchema = resultsDatabaseSchema,
  outputFile = outputFile,
)

# Get a list of sources generated by the exportToAres function
list <- list.dirs(aresDataDirectory, recursive = FALSE)

# Augment concept files with data quality details
AresIndexer::augmentConceptFiles(releaseFolder = file.path(aresDataDirectory, cdmSourceName, sourceReleaseKey))
# Export index of all sql functions used in data processing
AresIndexer::buildExportQueryIndex(aresDataDirectory)
# Compare data quality issues with previous source releases (used to display the issue delta)
AresIndexer::augmentDataQualityFiles(sourceFolders = list)
# Create index of quality issues across releases (used to render data quality delta chart)
AresIndexer::buildSourceDataQualityDelta(sourceFolders = list)
# Create index of all available sources and releases
AresIndexer::buildNetworkIndex(list, outputFolder = aresDataDirectory)
# Create quality index across network
AresIndexer::buildDataQualityIndex(list, outputFolder = aresDataDirectory)
# Create index of unmapped source codes across the network
AresIndexer::buildNetworkUnmappedSourceCodeIndex(list, outputFolder = aresDataDirectory)

Visiting the ARES website will now show the data results for your current network. Each individual CDM needs to be processed in order for it to be available in ARES. CDM data sources with the same source name will be versioned using the release key allowing analysis across multiple versions of the same data source. An example of generating a complete network of different data sources and loading them into ARES can be found here.

Visualizations

Visualizations are used throughout ARES to assist in the interpretation of information. In this section sample visualizations are presented with descriptions to ensure they are well understood.

Preattentive Processing

Visualization Techniques Cheat Sheet

Interpreting Box-Whisker Diagrams and Inter-Quartile Range (IQR)

IQR

Box-whisker diagrams present a simple picture representing the distribution of a set of data which include the values for the minimum, maximum, and quartiles of the distribution. They are also known as boxplots.

  • A - Lowest value
  • B - Lower Quartile (25%)
  • C - Median (50%)
  • D - Upper Quartile (75%)
  • E - Highest Value

Data Network reports

Overview

Quality Assessment

Population Overview

Data Strand Report

Data Source reports

Data Quality History

Domain Continuity

Data Source Release reports

Data Quality

Person

Data Density

Observation Period

Conditions

Condition Eras

Drugs

Drug Eras

Visit Occurrence

Visit Detail

Measurements

Observations

Procedures

Device Exposures

Death

Unmapped Source Codes

Performance

Metadata

Visit Detail

Roadmap

The roadmap for ARES is maintained on the GitHub repository.

OHDSI Libraries

ARES presents research generated through the suite of OHDSI related packages.

  • Achilles
  • Data Quality Dashboard
  • Database Connector
  • Sql Render
  • Castor

Open Source Ecosystem

ARES leverages many open source libraries and tools to achieve its goals without which the task would be entirely insurmountable.

  • Vue
  • PrimeVue
  • axios
  • Vega
  • Vega-lite
  • vega-embed
  • codemirror
  • d3
  • markdown-it
  • markdown-it-vue
  • npm
  • lodash
  • Material Design

Acknowledgements

Many people have provided valuable feedback in the development of ARES.

  • Clair Blacketer
  • Alan Andryc
  • Patrick Ryan
Last Updated:
Contributors: Mikhail-iontsev