sherwyn11 / Medi-Care

A decentralized web application using ReactJS, Flask, Solidity, IPFS and the Ethereum Blockchain to store and view all medical documents securely.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Medi-Care

A decentralized web application using ReactJS, Flask, Solidity, IPFS and the Ethereum Blockchain to store and view all medical documents securely.

About the D-App

The app has 2 main users:

  1. Patient
  2. Doctor (in development)

Patients can:

  1. Upload a document to the blockchain. The document is added as a node in IPFS which returns a hash. The hash is then stored on the blockchain
  2. View the uploaded documents.
  3. Analyse the uploaded documents. The text from the document is extracted and NER(Named Entity Recognition) is performed on the text using BERN(Biomedical Entity Recognition and multi-type Normalization tool.)
  4. Analyse their reports to find keywords related to Drugs or Diseases.
  5. Add a trusted doctor to view their medical documents.

Doctors can:

  1. Upload a medical document about a certain patient to the blockchain.
  2. View a certain patient's uploaded document.

System Architecture

System Architecture

Number Description
1 User scans and uploads a medical record.
2 The record is then encrypted from the client side and sent to the Flask Server.
3, 4 The Flask server sends this encrypted file to the IPFS network for storage. Once stored, it returs back a file hash.
5 The file hash is then returned back to the client app.
6 The hash is then stored securely on the Ethereum Blockchain
7 The user can then choose to perform NER(Named-Entity-Recognition) on the data in the medical record. This is the make the user aware about the complex terms and data in the report. The record is sent to the Flask server.
8, 9 The Flask server runs the BERN model on the recieved data after performing OCR on the report to get the text from the scanned medical record PDF. The medical keywords are then passed back to the Flask server.
10 The Flask server sends this data back to the client app and the client can view the keywords and click on it for more information
11 The doctor can view the medical record(s) of ONLY his/her patient.

About the Ethereum Blockchain

Ethereum is an open source, public, blockchain-based distributed computing platform and operating system featuring smart contract functionality.

About the InterPlanetary File System(IPFS)

The InterPlanetary File System is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.

Dependencies

  • React.js
  • Web3.js
  • Ganache-cli
  • Truffle
  • Solidity
  • Metamask
  • Flask
  • Ipfs
  • Pytesseract

Getting Started

Clone the repository

git clone https://github.com/sherwyn11/Medi-Care.git

To run React development server

cd blockchain
npm install
npm start

To run Flask server

  • First start IPFS daemon
cd server
python app.py

Working Demonstration

(This project is still under development)

References

How Can Blockchain Keep Medical Records Secure?

License

License: MIT

MIT License Link

© 2020 Sherwyn D'souza

About

A decentralized web application using ReactJS, Flask, Solidity, IPFS and the Ethereum Blockchain to store and view all medical documents securely.

License:MIT License


Languages

Language:JavaScript 87.6%Language:HTML 3.9%Language:Python 3.6%Language:Solidity 3.3%Language:CSS 1.7%