Research Article

[Retracted] SmartMedChain: A Blockchain-Based Privacy-Preserving Smart Healthcare Framework

Algorithm 3

Data sharing contract.
Input: certificate, DataChainTxID, notification
Output: data
if Verify(certificate)==True then
 requesterID = Resolve(certificate);
 Data = DataChainTxID.data@ → data;
if requesterID==DataChainTxID.ownerID
then
  return Data;
  initLogChainTx (requesterID, DataChainTxID.data@, timestamp, signature, logs);
else if DataChainTxID.DPLevel==PL2 or (DataChainTxID.DPLevel==PL1 and requesterID in DataChainTxID.AuthUsers)
then
  return Data;
  initLogChainTx (requesterID, DataChainTxID.data@timestamp, signature, logs);
else
  initLogChainTx (requesterID, DataChainTxID.data@, timestamp, signature, logs);
  Notify (DataChainTxID.OwnerID, notifications);
  return NO PERMISSION
end
else
return CERTIFICATION ERROR
end