With such rapidly escalating costs, governments and health insurance providers would certainly welcome any new technology that could help them save money while also ensuring better patient care. One technology that promises to help improve efficiency and security within the healthcare industry is blockchain. First pioneered to allow for the creation of a decentralized digital currency by the name of Bitcoin, blockchain can also be used to improve a number of the existing systems the global economy currently relies on. Within the healthcare industry, blockchain solutions promise to create vastly more secure systems that will improve everything from drug supply chains to electronic medical records.
So, how can blockchain keep medical records secure?
Blockchain technology would prevent the majority of the 477 separate breaches that took place last year from ever happening. Any attack that exploited the single point of failure weakness of the traditional client-server model has would be useless against a blockchain database. Since blockchain technology relies on a distributed network there is no one point of failure. This means that it is not possible for hackers to simply find a security flaw and then gain access to the data in this way. Should a hacker target any one node on the blockchain network and attempt to make an unauthorized change then the other nodes will prevent it from happening. As each participant on the network has a complete copy of the entire blockchain ledger, they are able to independently verify any new block being added and identify any attempt to alter any previous block. Blockchains are designed to be unalterable once written unless the change has the support of 51% of the network. This makes them excellent for storing patient medical records as it means any data in the record cannot be tampered with. As every new data block that is added would also contain details of the doctor who added it, blockchain EMRs would offer full accountability for the data that they contain. In the case of incorrect diagnoses, for example, patients could be confident that there is no way that records could be altered should the doctor or healthcare provider wish to deny accountability.
What it does
The app has 2 main users:
- 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 BNER(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.
- Upload a medical document about a certain patient to the blockchain.
- View a certain patient's uploaded document.
How we built it
|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 BNER(Biomedical NER) 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.
Challenges we ran into
- Blockchain is a relatively new topic so, it took time and effort to understand fundamental concepts and how to use it in our problem statement.
- Finding a good model for performing NER was challenging.
- Community help for blockchain was relatively low.
Accomplishments that we're proud of
- As blockchain is a relatively new to us, reading & researching different articles and research papers to find a interesting use case is something we are very proud of.
- This is our first attempt at a blockchain project, so learning new concepts and the theory is something we are very proud of too.
What we learnt
- For using the Ethereum blockchain, we had to learn a completely new language called Solidity. This was to write our 'Smart Contacts'.
- Working with NER models helped us gain a better insight on how 'Named Entity Recognition' is done.
What's next for Medi-Care
- Learning more about blockchain and finding better ways to increase security and thus privacy of the user.
- Adding more features to the existing app.