CISP: A novel, graph-based surveillance metadata repository

The CDC Integrated Surveillance Portal (CISP) prototype  is a comprehensive, real-time, interactive resource for CDC, its partners, and the public to explore and discover information about the full inventory of CDC’s Surveillance Systems, Programs, Registries, Health Surveys, Tools, and Collaboratives. CISP contains not only descriptive information about these CDC resources — CISP also describes the relationships between resources.

Just as Facebook’s social graph depicts the relationships between you and the people, places, and things you interact with online, our CDC Surveillance Graph depicts the relationship between the wide variety of resources (e.g., systems, programs, tools, datasets, etc.) involved in the activity of surveillance at CDC.

The term graph, used here, refers to graph theory. Graphs are mathematical structures used to model pairwise relations between objects. Graphs consist of distinct nodes or objects, which are connected to each other via lines, or edges. Thus, each CDC resource is considered a node. If there is any type of relationship between nodes (e.g., uses, oversees, collaborates with, shares data with, etc.), a connection is created

To try out the resource, go to http://jupiter.phiresearchlab.org

The technology stack leveraged for this resource was novel for the team – but we have found it to be very powerful and flexible.

 

TECHNOLOGY STACK:

Database

Neo4J – http://www.neo4j.org/

“Neo4j is a highly scalable, robust (fully ACID) native graph database. Neo4j is used in mission-critical apps by thousands of leading startups, enterprises, and governments around the world.” – Neo4J Website

PostgreSQL – http://www.postgresql.org/

“PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. …” – PostgreSQL website

 

Application Server

NodeJS – http://nodejs.org/

“Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.” – Node website

Express.js – http://expressjs.com

“Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.” – Express website

 

Client-Side

AngularJS – http://angularjs.org/

“HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop” – Angular website

Twitter Bootstrap – http://getbootstrap.com

“Bootstrap makes front-end web development faster and easier. It’s made for folks of all skill levels, devices of all shapes, and projects of all sizes.” – Bootstrap website

Jade.js – http://jade-lang.com/

“Jade is designed primarily for server side templating in node.js” – Jade website

 

Data Visualization

D3.js – http://d3js.org/

“D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG and CSS. D3’s emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a data-driven approach to DOM manipulation.” – D3 website

 

Build and Deploy

Bamboo – http://www.atlassian.com/software/bamboo

“Bamboo does more than just run builds and tests. It connects issues, commits, test results, and deploys so the whole picture is available to your entire product team – from project managers, to devs and testers, to sys admins” – Atlassian website