DAPP Using Blockchain and Hyperledger Fabric to track Electronic Health Records consent givern by patient to different users
JavaScriptMIT
DAPP1-Electronic-Health-Records
Secure Management and Sharing of Electronic Health Records
Students:
Aditi Sharma
Neeraj Bhasin
Majid Shockoohi
Malhar Dave
Mariam Delos Reyes
Taj Sivers
DAPP Using Blockchain and Hyperledger Fabric to track Electronic Health Records consent given by patient to different users.
This solution will use Hyperledger Fabric Blockchain to be as a gateway to provide information on consent given by patient to various section of health care system to access patient medical records.
Actual records are not being stored and only id of each record will be stored on-chain alongside information on who may or may not access this information.
Functionalities will be exposed through REST Api , therefore bringing potential of all kind of systems, apps and architecture to be build on top of the system.
Modeling Ver:0.1.0
Assets
Pateint Medical Record
{
"patientName": "String Some name",
"patientId": "String some Id",
"eanabled": true,
"medicalRecord": [
{
"medicalRecordId": "String some Id",
"uploadedBy": "String uploader Id",
"dateUploaded": "String ISO Date",
"medicalRecordData": "String anything",
"consentTo": [
"String some Id or some public Key",
"String some Id or some public Key",
"String some Id or some public Key",
"String some Id or some public Key"
]
}
]
}
Contracts
=== MedicalRecord ===
Function
Input
output
Description
register user
patientName,patientId
bool (success registry)
Create new patient record
add data
patientId,medicalRecObj
string (medicalRecordId)
add medical record data
modify consent
patientId,medicalRecordId,consetTo,status
bool (success modification)
add/remove consent to user
read data
patientId, medicalRecordId
string(medical record data)
read mecical record
delete user
patientId
bool (delete registry)
disable user
=== exposed REST API endpoints details:
HTTP Method
path
input
output
POST
/register-user
patientName - patientId
success / fail
POST
/add-record
patientId - medicalRecObj -identity
medical record ID / fail
POST
/modify-consent
patientId - medicalRecordId - consetTo -identity
success / fail
GET
/get-medical-record
patientId - medicalRecordId -identity
Object medical record / fail
DELETE
/delete-user
PatientId - identity
success / fail
Transactions
Checked functions will change the state of blockchain and will cause a transaction on blockchain
register user
add data
modify consent
read data
delete user
Business Networks - Blockchain architecture
Participants
System participates in phase I:
Patients
Health data providers (Doctors,Hospitals, Health centers)
3rd Party data viewers (Family members, Government institutions, Research centers)
System overview Ver:0.1.0
States
State
Description of state
No Patient Records
State where no user has been created hence no records exists.
Patient records
After user registry or modification of data bew record will exists
Modifying consent for user
User will modify consent given for single record changing state
Adding new data to patient records
New data on patient will be added to the record changing state to new one
Deleting user from system
Deleting user will disable user in DB and disable modification on records
Transitions
Transition design
Transition
State From -> To
Description
register user
No Patient Records -> Patient Records
..
add data
Patient records -> Adding new data to patient records
..
add data to BC & DB
Adding new data to patient records -> Patient records