《Fabric 云存储的电子健康病历系统》(2)病历结构体 Records

1. 对病历结构体 Records 进行操作的接口包括

  • 初始化
  • 查询
  • 状态修改

1.1 病历结构体 Records

  • 病历 ID
    病历ID 作为病历的 key 值,用于在账本中检索病历;
  • 患者 name
  • 文件路径
    文件路径path 表示病历在 HDFS 中存储的路径,用于查找和获取病历文件。
  • 拥有者
  • 数字摘要 hashcode,
    hashcode 是云端存储的病历经过哈希函数计算产生的哈希值,在文件传输过程中会根据数字摘要判断云端病历是否发生修改或变动;
 type Records struct {
     
    ObjectType    string `json:"objectType"`      /*对象类型*/
    Recordsid     int `json:"recordsid"`          /*病历 ID*/
    Recordsname   string `json:"recordsname"` 
    Path        string `json:"path"` 
    Owner        string `json:"owner"` 
    HashCode     int `json:"hashcode"`          /*数字摘要*/
}

1.2. 编写智能合约入口函数 main,并重写 Init()和 Invoke()方法。

 
func main() {
     
   err := shim.Start(new(recordsChaincode))
   if err != nil {
     
     fmt.Printf("Error starting Records chaincode: %s", err)
   }
}
func (t *recordsChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response {
     
   fmt.Println("Records Init Success")
   return shim.Success(nil)
}

func (t *recordsChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
     
   fmt.Println("Records Invoke")
   function,args := stub.GetFunctionAndParameters()
   if ( function == ‘initRecords’){
               /* initRecords 方法示例*/
      return t.initRecords(stub,args)
   }
   ...
}

参考:
【1】“基于Hyperledger Fabric和云存储的电子健康病历系统的研究与实现”.西安电子科技大学.杨洲 2019.6

你可能感兴趣的:(Hyperledger,Fabric)