Patient-controlled electronic health records platform (EHR)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
blockchain
contracts
img
proxy Add records set dumb creation and list api point Oct 25, 2018
re_encryption
users Add Dockerfile and fix test_data_sending Oct 27, 2018
.gitignore
CNAME Update CNAME Nov 6, 2018
Dockerfile
README.md
manage.py
requirements.txt Records delegation create api Oct 26, 2018
umbral_playground.py Added umbral sample test script Oct 22, 2018

README.md

Patient-controlled electronic health records platform (EHR)

A client-server prototype illustrating prospective DApp operation principles for self-sovereign medical data. Private/Public key cryptography and encryption-decapsulation technologies offer a promising solution to the problems of medical record-keeping systems which are currently centralizsed and insecure. It's possible to push ownership of health records from centralized service providers to individuals.

Decentralised Patient-Controlled electronic health records (PCEDR) can be buil using

  • blockchain with arbitrary code execution capabilities (smart-contracts) like Ethereum
  • decentralised global content-addressable storage like swarm/ipfs or/and channels/queues/messengers like plasma/whisper/libp2p transports
  • decentralised cryptography-based access-control and key management layer with incentivised reencryption engines.

We use Django web framework for modeling the components mentioned above.

System description

It's a Django webserver with pythonic API and RESTful HTTP interface illustrating abstract call flow for record-keeping, access-control and reencryption. Tests cover the following case:

  • Patient and Recepient register their entities (public keys) in the framework
  • Patient populates its medical records encrypted with its public key
  • Upon receiving disclosure request Patient approves it giving the permission to read
  • Recepient gets the data recapsulated for its private key
  • Recipient now able to extract plaintext from the capsule

Some screenshots of REST client you can find here

HowTo

Buidl

docker -t pcehr build .

Test

docker run -it pcehr test -v 3

Run REST API webserver

docker run -p 8000:8000/tcp -it pcehr

API endpoints (opens with browser, thanks Django Rest Framework tool)

Authors