A blockchain based model to securely share and store medical imaging records and data.
A decentralised web application was developed which allows a medical technologist to send medical image files to a patient. The file itself is stored off chain in IPFS while blocks in blockchain store the corresponding ipfshash. A few tools were utilised to develop the model. Firstly, Ganache was used to run a local blockchain. It provides ten free accounts with fake Ether that were used to carry out the transactions. The private and public keys of these accounts were used for encryption and decryption. Secondly, Metamask was used to connect to the local Ethereum network. The system was connected to an IPFS node instance with the help of Infura for uploading image files. Thirdly, the client-side website was created to communicate with the smart contract with the help of Truffle framework. And finally, Solidity programming language was used to write the smart contract.
There are two types of user interface from the perspective ofsender (medical technologist) and receiver (patient). With the help of Google developer tools,the right most side of both the Figures show what happens after each step in order to cross check.
From the medical technologist’s point of view, Step 1 of the proposed model involves logging into the account and selecting the medical image to be sent. Once the “Upload” button is clicked, the file gets uploaded to IPFS and generatesthe corresponding ipfshash. This echoes Step 2 of the proposedmodel. Next, the public key of the target patient (receiver) isentered and the “Encrypt” button is clicked. This encrypts theipfshash with the patient’s public key. Once “Send” is clicked,the encrypted ipfshash is stored in the blockchain which issimilar to Step 3 of the proposed model. A certain amount of Ether is deducted from the technologist’s account for thistransaction.
From the patient’s point of view, after successfully logging into the account as mentioned in Step 4 of the proposed model,the patient clicks “Get Hash” and the encrypted ipfshash sentto the patient’s address is received, just like Step 5. Next, private key is entered and “Decrypt” is clicked. If the privatekey is correct, the patient will be able to retrieve the ipfshash.If not, an error message is displayed. Next on clicking “GetImage”, the medical image is retrieved from IPFS using thedecrypted ipfshash. This concludes Step 6.