Entity Relationship with Graph Database for Healthcare

Traverse 7.5 million nodes and relationships with increased query speed, and simplification of the traversal rules using Neo4j instead of SQL


  • Reason why a particular adverse event was raised by showing the relationship between ontology entities and raised events.
  • Traverse from the raised events to the ontology entities and vice versa, and to any child and parent relationship across ontology.
  • Traverse from raised events to similar or identical events if they are associated with similar ontology grouping or categories.
  • Enhance user experience by asking adhoc questions from any entity and at any depth.
  • Create an intuitive graph visualization with multiple node coloring and relationships between them for users to understand why an event was triggered.


  • Complex ontology parent child relationships.
  • Inability to perform variety of traversals as the old system was able to navigate only in one direction.
  • Identify and benchmark different GraphDB technologies that satisfies all the business goals.
  • Provide backward compatibility between new and legacy system till rollout is complete.
  • Perform data quality checks between new and legacy system to ensure relationship from the legacy system are not lost.


  • Treselle’s Engineering team chose Neo4j for GraphDB and Spring REST API that proxies Neo4j REST API.
  • Designed a schema model for nodes and relationship with appropriate attributes to ensure the nodes and relationships are easily traversable with
    optimal performance.
  • Neo4j was first populated with the existing ontology entities and their relationships with data from multiple data sources such as Internal Ontology system, FAERS, MAUDE, MedWatch, and by creating custom plugins.
  • The events identified during the existing data pipeline process was sent to Kafka messaging queue.
  • Created necessary nodes and relationships using these events with Storm spouts and bolts on top of the existing ontology graph.
  • Custom Rest API was implemented to pull the nodes and relationships from Neo4j for the Web app to use.
  • AngularJS and Highcharts were used for visualization of nodes and relationships based on user search criteria.
  • Executed multiple SoapUI functional test cases and Gatling performance stress tests to ensure the new GraphDB system performed far better than the legacy system.
  • Retired legacy graph model in MySQL and cut off all the integration points to make the data pipeline process more efficient.