Data Reconciliation Engine (DRE)
DRE is a patient frontend (UI) and Node.js server for reconciling health data.
High Level Overview
The purpose of the Data Reconciliation Engine is to take personal health data in a variety of formats (starting with BlueButton/CCDA) from multiple sources and parse/normalize/de-duplicate/merge it into a single Patient's Master Health Record with patient assistance (although most of hard work will be done automagically).
DRE has 4 primary elements
1 - Parsing and Normalization Library.
This parses incoming data into a homogenous, simplified and normalized data model in JSON format.
Parsing library code: amida-tech/blue-button
2 - Matching Library.
This takes the standardized data elements and flags probable duplicate values. New patient records are compared against the existing Master Health Record and automatically matched. The result produces a list of all entries in the new record, labelled as duplicates (0 % match), new entries (100% match), or partial matches (to be reconciled by patient in a next step).
Matching library code: amida-tech/blue-button-match
3 - Reconciliation Interface.
This provides a RESTful API and UI for review and evaluation of duplicate or partially matched entries, by the patient.
4 - Master Record Interface.
This provides a API for interaction with and access to the aggregated health record.
Documentation for record.js API
Screenshots of the Demo
##Quick up and running guide
- Node.js (v0.10+) and NPM
# you need Node.js and Grunt.js installed # and MongoDB + Redis runnning npm install -g bower gem update --system gem install compass npm install -g yo npm install -g grunt-cli npm install -g generator-angular #then npm install bower install
To run, use
grunt - To run Server Side tests
grunt test - To run and watch Client Side tests. Make sure a Selenium server and Node are running with
webdriver-manager start and
grunt travis-protractor - To run Client Side tests. Make sure a Selenium server and Node are running with
webdriver-manager start and
grunt build - Executes build and puts it into /dist.
grunt live - Build and watch files for development (just linting, compiling styles and watching).
# you need MongoDB, Redis, Node, and Selenium running # option selects which suite of tests to run (populate, scenarios, and/or medications) # screenshots and report are saved to ./protractor-result/ npm install -g protractor protractor client/test/conf.js --suite option
Contributors are welcome. See issues https://github.com/amida-tech/DRE/issues
- Dmitry Kachaev
- Matt McCall
- Ekavali Mishra
- Jamie Johnson
- Matt Martz
- Jacob Sachs
- Mike Hiner
- Byung Joo Shin (summer '14 intern, UVA)
- Kevin Young (summer '14 intern, UMD)
- Nadia Wallace (winter '15 intern, MIT)
We gratefully acknowledge PWC's essential support in the development of the FHIR components of DRE, among other important contributions to codebase of this open source project.
- Afsin Ustundag
See release notes [here] (./RELEASENOTES.md)
Licensed under Apache 2.0