《Fabric 云存储的电子健康病历系统》病历结构体API
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Fabric 云存储的电子健康病历系统》病历结构体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 云存储的电子健康病历系统》病历结构体API的主要内容,如果未能解决你的问题,请参考以下文章