BLOCKCHAIN-BASED ELECTRONIC MEDICAL RECORDS (EMR) MANAGEMENT WITH OCR ASSISTED SUMMARIZATION
A decentralized web application using ReactJS, Flask, Solidity, IPFS and the Ethereum Blockchain to store and view all medical documents securely.
The advantages of having a secure, immutable and decentralized Electronic Health Record (EHR) database:
- Single version of the truth verified by the consensus of the participating hospitals
- Easy to share selective or all EHRs as consented by the patient
- Full medical history of a patient at one single point
- Easy verification of medical prescription
- Redacted EHRs for research purposes
- Increased transparency
- No insurance fraud
The Health-Book app has 2 main users:
- Patient
- Doctor
Patients can:
- 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
- View the uploaded documents
- Analyse the uploaded documents. The text from the document is extracted and NER(Named Entity Recognition) is performed on the text using BERN(Biomedical Named Entity recognition and multi-type Normalization)
- Analyse their reports to find keywords related to Drugs or Diseases
- Add a trusted doctor to view their medical documents
Doctors can:
- Upload a medical document about a certain patient to the blockchain
- View a certain patient's uploaded document
Ethereum is an open source, public, blockchain-based distributed computing platform and operating system featuring smart contract functionality.
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
Tech Stack Used: -> ReactJS, CSS and Javascript for Front-End -> Python, Flask for OCR and hosting API -> PyTesseract for OCR -> Solidity for Smart Contracts -> Metamask for simulation -> Ganache (Truffle Suite) for Test Nodes and simulation -> IPFS for Database (storing electronic records) -> Infura API and Web3 for provider
How to run?
- Install metamask extension on your default browser from https://metamask.io/
- Download Ganache on your PC from https://www.trufflesuite.com/ganache
- Install IPFS desktop client from https://github.com/ipfs/ipfs-desktop
- Clone the repository
- cd to Health-Book/blockchain
- do yarn install (recommended) or npm install for downloading the required dependencies
- Make a new workspace in ganache and add the truffle-config.js file to the workspace
- in Health-Book/server directory, run python app.py
- Run IPFS
- Run Ganache
- in Health-Book/blockchain do yarn start
- Enjoy! Your project should be working now.

