AIW Neo4j ETL

AIW Neo4j ETL is a Protempa query results handler for loading data and abstractions into the Neo4j graph database.

License

License

Categories

Categories

Neo4J Data Databases CLI User Interface Eureka Container Microservices
GroupId

GroupId

org.eurekaclinical
ArtifactId

ArtifactId

aiw-neo4j-etl
Last Version

Last Version

4.5
Release Date

Release Date

Type

Type

jar
Description

Description

AIW Neo4j ETL
AIW Neo4j ETL is a Protempa query results handler for loading data and abstractions into the Neo4j graph database.
Project URL

Project URL

https://github.com/eurekaclinical/aiw-neo4j-etl.git
Project Organization

Project Organization

Emory University
Source Code Management

Source Code Management

https://github.com/eurekaclinical/aiw-neo4j-etl.git

Download aiw-neo4j-etl

How to add to project

<!-- https://jarcasting.com/artifacts/org.eurekaclinical/aiw-neo4j-etl/ -->
<dependency>
    <groupId>org.eurekaclinical</groupId>
    <artifactId>aiw-neo4j-etl</artifactId>
    <version>4.5</version>
</dependency>
// https://jarcasting.com/artifacts/org.eurekaclinical/aiw-neo4j-etl/
implementation 'org.eurekaclinical:aiw-neo4j-etl:4.5'
// https://jarcasting.com/artifacts/org.eurekaclinical/aiw-neo4j-etl/
implementation ("org.eurekaclinical:aiw-neo4j-etl:4.5")
'org.eurekaclinical:aiw-neo4j-etl:jar:4.5'
<dependency org="org.eurekaclinical" name="aiw-neo4j-etl" rev="4.5">
  <artifact name="aiw-neo4j-etl" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.eurekaclinical', module='aiw-neo4j-etl', version='4.5')
)
libraryDependencies += "org.eurekaclinical" % "aiw-neo4j-etl" % "4.5"
[org.eurekaclinical/aiw-neo4j-etl "4.5"]

Dependencies

compile (9)

Group / Artifact Type Version
org.neo4j : neo4j jar 2.2.2
org.eurekaclinical : protempa-framework jar 5.2-Alpha-2
org.slf4j : slf4j-api jar 1.7.29
org.apache.commons : commons-exec jar 1.3
org.apache.commons : commons-lang3 jar 3.9
commons-io : commons-io jar 2.6
com.sun.xml.bind : jaxb-core jar 2.3.0.1
javax.xml.bind : jaxb-api jar 2.3.1
com.sun.xml.bind : jaxb-impl jar 2.3.1

Project Modules

There are no modules declared in this project.

Protempa Neo4j Tools

Department of Biomedical Informatics, Emory University, Atlanta, GA

What does it do?

It provides a Protempa destination for loading data into a Neo4j graph database. Protempa destinations implement the org.protempa.dest.Destination interface and process output from the temporal abstraction process. See the Protempa project's README for more details on Protempa's architecture.

Latest release: Latest release

Version 4.0

Updated Protempa dependency.

Version 3.0

Updated Protempa dependency.

Version 2.0

Updated Protempa dependency.

Version 1.0

Supports loading and updating a Neo4j database with the output of Protempa.

Build requirements

Runtime requirements

Building it

The project uses the maven build tool. Typically, you build it by invoking mvn clean install at the command line. For simple file changes, not additions or deletions, you can usually use mvn install. See https://github.com/eurekaclinical/dev-wiki/wiki/Building-Eureka!-Clinical-projects for more details.

Maven dependency

<dependency>
    <groupId>org.eurekaclinical</groupId>
    <artifactId>aiw-neo4j-etl</artifactId>
    <version>version</version>
</dependency>

Installation

Just put the aiw-neo4j-etl jarfile and its dependencies in the classpath, and Protempa will automatically register it.

Using it

Here is an example:

import org.protempa.SourceFactory;
import org.protempa.backend.Configurations;
import org.protempa.bconfigs.ini4j.INIConfigurations;
import org.protempa.Protempa;
import org.protempa.dest.Destination;
import org.protempa.dest.map.MapDestination;
import org.protempa.query.DefaultQueryBuilder;
import org.protempa.query.Query;
import edu.emory.cci.aiw.neo4jetl.Neo4jDestination;

// An implementation of org.protempa.backend.Configurations provides the backends to use.
Configurations backends = new INIConfigurations(new File("src/test/resources"));
SourceFactory sourceFactory = new SourceFactory(backends.load("protempa-config.ini"));

// Use try-with-resources to ensure resources are cleaned up.
try (Protempa protempa = Protempa.newInstance(sourceFactory)) {
    DefaultQueryBuilder q = new DefaultQueryBuilder();
    q.setName("My test query");
    q.setPropositionIds(new String[]{"ICD9:Diagnoses", "ICD9:Procedures", "LAB:LabTest", "Encounter", "MED:medications", "VitalSign",     
        "PatientDetails"}); // an array of the concept ids of the data to retrieve and/or temporal patterns to compute
    Query query = protempa.buildQuery(q);

    // An implementation of org.protempa.dest.Destination processes output from the temporal abstraction process.
    Configuration neo4jConfig = //implementation of edu.emory.cci.aiw.neo4jetl.config.Configuration
    Destination dest = new Neo4jDestination(neo4jConfig); 
    protempa.execute(query, dest);
}

This Protempa destination loads data into Neo4j using Neo4j's embedded mode for performance. It will shut Neo4j server down at the beginning of the data load, and start it after the data load has ended.

License

Unlike other Eureka! Clinical projects, this one is available under GNU General Public License version 3 due to the licensing of the Neo4j libraries on which this project depends.

org.eurekaclinical

Eureka! Clinical

Microservices for clinical and translational research

Versions

Version
4.5
4.3
4.2
4.0
4.0-Beta-3
4.0-Beta-2
4.0-Beta-1
4.0-Alpha-3
4.0-Alpha-2
4.0-Alpha-1
3.0
2.1-Alpha-1
2.0
2.0-Beta-1
1.0
1.0-Alpha-3