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