Giter Club home page Giter Club logo

ethereum-hipaa-audit-log-improved's Introduction

ethereum-hipaa-audit-log-improved

Prototype implementation of a HIPAA audit log using ethereum blockchain


Concept

A HIPAA audit log keeps track of which users access which patients at what time.
Implementing this functionality using blockchain is interesting because:

  1. Blockchain is immutable - once an audit record is stored, it cannot be removed or changed.
  2. Blockchain is built on public key cryptography. Users and patients could have their own unique public keys on the blockchain that can be referenced by the audit log without revealing the actual users identity or any PHI.
  3. Blockchain is accessible - the audit records can be easily accessed by anonymous users without revealing any PHI

This prototype uses ethereum for the blockchain implementation and has a smart contract that contains an audit log entry (see contracts/Patient.sol).

Pre-requisites

  1. Setup a private ethereum network from here: https://github.com/chafey/ethereum-private-network

  2. Metamask with supported browser (Chrome is what I use)

  3. Meteor

How to run

  1. Make sure your ethereum private test network is running.

  2. Make sure you have created an account with metamask and are connected it to the localhost 8545 network

Start the meteor application:

cd patientApp  
meteor npm install  
meteor  

Open your web browser to localhost:3000

You should see the page "Welcome to Nucleus.io" and "Welcome Ethereum Account ". If you don't see an ethereum account number, you need to create an account in metamask.

Click "Register", the registation page should appear.

Click "Submit", to connect your ethereum account to the "Alice Liddel" user.
Metamask should prompt you with a "CONFIRM TRANASCTION" dialog to sign message.

Click "Sign". You should now be logged into the application and see a nav bar with tabs for "Patients" and "Reports". You will also notice that the system shows your name as "Alice Liddel" in the upper right corner.

Click "Add Patient". This will present a screen to add a patient with a diagnostic report.

Click "Save". This will result in the system creating a new Patient document in mongodb with the PHI. It will also create a Patient smart contract in ethereum and save the address in the patient document. You should now see the patient John Doe in the worklist.

Click "John Doe". This will cause the view report screen to be displayed showing the PHI. The system will also log an audit even to the patient smart contract.

Click "Reports" in the navbar. You will see the report screen.

Click "Search". The report should show the audit event created when you clicked john doe. The audit events are discovered using an ethereum filter.

FHIR Conformance

This demo supports the storage of Patient records according to the FHIR Patient 1.6.0 resource schema.

Because the FHIR standard also specifies the support of REST APIs, these Patients are available at the following endpoints.

GET    /fhir-1.6.0/Patient/:id    
GET    /fhir-1.6.0/Patient/:id/_history  
PUT    /fhir-1.6.0/Patient/:id  
GET    /fhir-1.6.0/Patient  
POST   /fhir-1.6.0/Patient/:param  
POST   /fhir-1.6.0/Patient  
DELETE /fhir-1.6.0/Patient/:id

However, because these endpoints are protected by OAuth, they won't be accessible without an OAuth signin infrastructure, or disabling OAuth. You can disable OAuth by using the NOAUTH environment variable. So, to access the Patient resource, you'll need to run the following:

# start the meteor application with OAuth disabled  
NOAUTH=true meteor  

# perform an open query of the Patients collection 
curl http://localhost:3000/fhir-1.6.0/Patient

Please see the clinical:hl7-resource-patient package for more implementation details.

FHIR Utilities

We recommend the following utitilies for inspecting the Mongo database, and querying the app via REST calls.

Robomongo - Mongo database management
Postman - REST utitlity for the Chrome browser

ethereum-hipaa-audit-log-improved's People

Contributors

chafey avatar awatson1978 avatar

Stargazers

kennyslim avatar Johnny Bender avatar cwyalpha avatar Brian Tobin avatar Jason Du avatar Ryan avatar yicheng wang avatar Takis Panagopoulos avatar mmacedo avatar Igor Sirkovich avatar Dylan Koji-Cheslin avatar  avatar

Watchers

Matt Carpenter avatar James Cloos avatar  avatar Tommy Chang avatar Renato Alexandre avatar  avatar

ethereum-hipaa-audit-log-improved's Issues

FHIR AuditEvent Resource

Next step would be to implement the AuditEvent resource.

I don't actually have the AuditEvent resource implemented yet. It's very much on my todo list; and I'm hoping to upgrade the hipaa-audit-log utility with it, then get it passing Touchstone conformance, and then it should be ready for integration into the Ethereum audit log.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.