Skip to content

Pranay-Pandey/hrm

Repository files navigation

Healthcare Record Management Project

Overview

The Healthcare Record Management (HRM) project focuses on providing a secure platform for managing patient and doctor information by leveraging the Tezos blockchain and advanced encryption techniques.

Project's Description

The Healthcare Record Management (HRM) project aims to provide a platform for the patients, doctors and various healthcare stakeholders where access-controlled data is stored, exchanged and kept as a medical record for a patient.

Problem we are trying to solve

The HRM project aims to address the challenges of securely managing healthcare data, ensuring patient privacy, and enabling efficient communication between patients and doctors. This project also aims to leverage tools like blockchain, decentralized storage and access control mechanisms to reduce redundancy and protect privacy.

Tech Stack Used While Building the Project

The project utilizes technologies including Tezos blockchain, AES encryption, RSA encryption, IPFS (InterPlanetary File System), and TequitoJS and node libraries like chakra and react for the front end.

Deployed Smart contract link

The smart contract address is KT1KKknhpn1iiBqB315okxm7iiscPtpRWgwy You can see it on blockchain explorer https://ghostnet.tzkt.io/KT1KKknhpn1iiBqB315okxm7iiscPtpRWgwy/entrypoints

Live Project Link

Can be accessed from the left side of this repository or you can directly access it from https://hrm-chi.vercel.app/

Team Info

Team name - Dizzyn
Members - Pranay Pandey

Features

  • Utilizes the Tezos blockchain to securely store patient, doctor, and hospital information.
  • Ensures information privacy by offering public visibility to stored data through encryption.
  • Employs AES encryption to safeguard individual pieces of sensitive information, guaranteeing data confidentiality.
  • Generates unique public/private key pairs for patients and doctors, enabling secure communication.
  • Enhances data control by sharing AES keys securely encrypted using the RSA algorithm, allowing controlled access.
  • Utilizes IPFS (InterPlanetary File System) to store diagnosis documents, and the hash of the documents is encrypted within the diagnosis information.
  • Offers a robust backend for comprehensive identity management, including key verification and efficient message encryption/decryption services.

Getting Started

To set up and run the project:

  1. Open a terminal and navigate to the project directory where package.json exists. Run command : npm install && cd backend/ && npm install && cd ..
  2. Execute the main code using the command: npm run dev
  3. For starting the backend, use the command: npm start

Usage

Upon launching the project, follow these essential steps:

  1. Access the project's web interface or APIs to seamlessly interact with the blockchain and effectively manage stored information.
  2. Ensure secure authentication using your personalized public/private key pair.
  3. Encrypt and securely store patient, doctor, and hospital information onto the Tezos blockchain.
  4. Enhance data privacy with AES encryption, ensuring the confidentiality of sensitive data.
  5. Control information sharing by securely transmitting encrypted AES keys using the robust RSA algorithm, ensuring limited access.
  6. Leverage IPFS to securely store diagnosis documents while linking their hash to the encrypted diagnosis information.
  7. Harness the backend's comprehensive identity management capabilities, including secure key verification and efficient encryption/decryption services.

Additional Highlights

  • Each user is assigned a unique public-private key pair for robust identity and data security.
  • Users have the capability to upload their encrypted medical diagnoses onto the blockchain.
  • Data sharing is selective, with users maintaining control over whom they share their information with.
  • Secure key exchange mechanisms ensure that the AES key used for encryption remains confidential.
  • Recipient doctors can access shared data by decrypting the encrypted AES key.
  • Recipient doctors can also contribute by uploading encrypted document URLs.
  • Users have full authority to retract shared information, offering complete data control.

image


Patient View

image

image

image

image

image

image

image


Doctor View

image

image

image

image


Hospital View

image



HRM Application Instructions

Getting Started

Before using the HRM application, follow these steps:

  1. Create a wallet account using the Temple Wallet extension. Install it from here and make a new wallet.
  2. Obtain funds in your Ghost Net account for transactions. Get them from here.

Connecting to the Application

Access the HRM application through the GitHub repository's right-hand side or use this link: HRM Application.

  1. Click on "Connect Wallet" on the top-right corner.
  2. Choose "Temple Wallet" if you have it installed, and connect through the browser extension.
  3. Your wallet address will be displayed in the navigation bar.

Note: When the application contacts the smart contract, a popup will ask for your wallet password to sign transactions.

Clicking on the navbar header will return you to the home page.

Application Views

The application has three main views:

  • Hospital View: To see the doctor list and hospital list, click on the "Hospital View" tab. This will show the list of doctors and their associated hospitals.
  • Patient View:
    • Click on "Login/Register" on the Patient Tab to access the Patient view.
    • To register, enter your details and click "Register." After registration, a popup will open confirming your registration. You will be redirected to a page containing your secret key. Click "Reveal Now" to view your secret key and store it securely on your computer. You'll frequently need it to view and make diagnoses.
    • Click "Login" and enter your Aadhar number and secret key to log in.
    • You'll be redirected to the home page for patients.
    • To view your diagnoses, click "Show Diagnosis" and enter your secret key. You can filter your diagnoses with the input field. You'll also see doctors who can currently access your details and diagnoses. Click "Revoke Access" to control who sees your diagnoses.
    • To add a diagnosis, click on the "Add Diagnosis" tab and enter the diagnosis details.
    • To make an appointment with a doctor, click on the "Make Appointment" tab in the side pane. The appointment is visible as a normal diagnosis without any document or diagnosis information. This information will be filled in by the doctor.
  • Doctor View:
    • Registration is similar to patients.
    • For login, doctors only need their Aadhar number.
    • To view patients and their diagnoses, and to add them, enter your secret key on the doctor's home page and click "Get Patients." This will display a list of patients.
    • Click on "Show More" to view all diagnoses for a patient and click "Delete" to remove/revoke access for a patient.
    • Click on "Edit Diagnosis" for a particular diagnosis to add diagnosis information like documents and diagnosis for the patient. This will update that particular diagnosis.