《Fabric 云存储的电子健康病历系统》(3)病历结构体API
生活随笔
收集整理的這篇文章主要介紹了
《Fabric 云存储的电子健康病历系统》(3)病历结构体API
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. IPMR初始化患者病歷
IPMR 初始化患者病歷接口通過 initRecords()方法實現,根據接口傳入的病歷信息完成病歷初始化并將病歷 Records 記錄到賬本中。
- 5 個參數:病歷 ID,病歷名、文件路徑、擁有者和數字摘要信息;
- 處理過程:
step1. 讀取參數后根據 stub.GetState()進行檢索,假如同ID 病歷已經存在則返回 Error 信息;
step2. 創建 Records 類型變量并賦值,使用 json.Marshal()方法將新建變量序列化并寫入 JSON 格式
step3. 因自定義格式的變量需要序列化之后才能寫入賬本,同理,取出過程需要進行反序列化操作;
step4. 調用 stub.PutState()將 JSON數組寫入賬本,并設定 recordsid 為鍵值存儲
2. QDPMR 患者病歷查詢接口
通過 getQueryResult()方法實現,該方法通過患者名查詢患者的所有病歷 Records,將病歷 Records 寫入 buffer 數組后結束。
- 參數:患者名
- 處理過程:
step1. 執行富查詢(rich search)返回 JSON 數組
step2. 構造迭代器遍歷返回數組,對 JSON數組進行解析并以鍵值對的形式將 key 和 value 寫入 buffer 數組;
step3. 返回buffer 數組即為指定患者的所有病歷記錄
3. PRT 接口
PRT 患者病歷交易接口可以用于修改病歷的 Owner 屬性,即對病歷文件進行交易,傳入病歷 ID 和新的 Owner 名,由 changeRecordsOwner()函數實現。
- 參數:病歷 ID 和擁有者名稱。
- 處理過程:
step1. 通過執行stub.GetState()函數取得賬本的當前病歷 ID 的信息 records;
step2. 接下來將 records 反序列化為 Records 類型,使用json.unmarshal()方法進行,同時修改 Records 對象中的 Owner 參數
step3. 將結構體對象再次序列化為JSON 格式并寫入賬本。
4. SPMR 查詢患者病歷接口
用于使用病歷 ID 在賬本中查詢病歷 Records 信息。
通過 getRecordsInfoByID()函數實現
- 參數:病歷 ID 參數。
- 調用stub.GetState()函數判斷賬本中是否存在對應 ID 的病歷信息,存在則返回病歷 Records信息,否則提示病歷不存在信息。
5. DPMR 刪除患者病歷接口
使用病歷 ID 在賬本中查找并刪除病歷信息,通過deleteRecordsByID()函數實現。
- 參數:recordsID 參數。
- 通過 stub.GetState()方法判斷賬本中是否存在對相應病歷 ID 的信息,存在則通過 stub.DelState()方法刪除賬本中的記錄
參考:
【1】“基于Hyperledger Fabric和云存儲的電子健康病歷系統的研究與實現”.西安電子科技大學.楊洲 2019.6
總結
以上是生活随笔為你收集整理的《Fabric 云存储的电子健康病历系统》(3)病历结构体API的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Fabric 云存储的电子健康病历系统
- 下一篇: 智能合约重构社会契约 (4)预言机基础说