HL7中国FHIR Connectathon测试实施指南
2024.5.5 - release

本指南适用于HL7中国的FHIR Connectathon测试。

处方流转服务规范

概述

2020年2月,国家卫生健康委等六部委印发的 《关于加强医疗机构药事管理促进合理用药的意见》(国卫医发〔2020〕2 号)提出规范“互联网+药学服务” ,部分省份制定了《互联网医院处方流转平台规范化管理专家共识》,规范管理互联网医院、药店(社会药店或医院实体药房)和患者三者数据对接,在医生、药师和患者之间实现处方和药品信息互联互通。

本测试针对独立药房系统角色和医院端的电子病历系统角色涉及处方信息交互场景。

测试仅覆盖处方流转相关的核心资源(Patient,AllergyIntolerance,Condition,Observation、MedicationRequest等),不涉及相关流程和扩展资源,引用的相应FHIR资源不进行扩展性验证。

测试采用基于HTTP协议的RESTful API方式,现场点对点联接客户端和服务器端测试。

角色与交易

角色

在本文档中包括如下角色:

  • 药房系统: 处方相关信息的检索发起方和处理方;
  • 电子病历: 处方相关信息的生产者和发布者;

用例

用例1

电子病历系统将患者刘康的处方信息、诊断信息、过敏信息等产生消息,发送给药房系统,药房系统对相关信息进行解析和存储。

用例2

药房系统需要向电子病历系统检索患者刘康的诊断信息、过敏信息、检验报告和处方信息等相关信息;电子病历系统接收到检索请求后,获取相关信息并生成应答消息返回。

角色与交易

下图描述了角色以及角色之间的交易服务:

这里有张用例图

交易如下表所示:

角色 标识 交易描述 可选性
药房系统 SMT-FHIR-001 推送处方信息 R
  SMT-FHIR-002 查询患者相关信息 O
电子病历 SMT-FHIR-001 推送处方信息 R
  SMT-FHIR-002 查询患者相关信息 R

处方流转的流程交互图如下:

这里有张用例图

交易

本交互规范中涉及2个交易。

推送处方信息(SMT-FHIR-001)

本交易由电子病历系统和药房系统角色使用。推送处方信息(SMT-FHIR-001)交易用于电子病历系统向药房系统主动推送一个患者的处方信息。

调用地址:

POST http://[ip]:[port]/fhir/$process-message
请求消息

此消息使用POST方法将消息作为Bundle资源进行传输。

请求消息体的Content-Type应为application/fhir+json 或者 application/fhir+xml

消息体定义参见推送处方请求消息结构定义

消息体示例参见推送处方请求消息示例页面

请求消息体应遵循如下约束条件:

  • Bundle资源的元素type取值应为message
  • Bundle资源应含有一个MessageHeader资源(eventCode=push),且应是元素entry列表的首个资源
  • Bundle资源应含有一个Patient资源,用以表示处方所对应的患者信息
  • Bundle资源应含有至少一个MedicationRequest资源,用以表示处方中的药物请求信息
  • Bundle资源应含有一个Organization资源,用以表示电子病历系统所处的机构信息(处方源)
  • Bundle资源可含有一个Practitioner资源,用以表示开立处方的医生。
响应消息

响应消息返回恰当的HTTP状态代码,应遵循如下约束条件:

  • 处理成功:
    • 使用状态码200 OK表示整个请求处理成功
  • 处理失败:
    • 使用状态码400和500表示整个请求处理失败
    • 使用单个的OperationOutcome来代替Bundle来描述失败原因。

查询患者相关信息(SMT-FHIR-002)

本交易由药房系统和电子病历系统角色使用。查询患者相关信息(SMT-FHIR-002)交易用于药房系统向电子病历系统传输一个检索消息,包含检索参数、患者、药房等,用于获取与处方相关的症状、诊断、过敏等信息。

调用地址:

POST http://[ip]:[port]/fhir/$process-message
请求消息

此消息使用POST方法将消息作为Bundle资源进行传输。

消息体的Content-Type应为application/fhir+json 或者 application/fhir+xml

消息体定义参见查询患者相关信息请求消息结构定义

消息体示例参见查询患者相关信息请求消息示例页面

请求消息体应遵循如下约束条件:

  • Bundle资源的元素type取值应为message
  • Bundle资源应含有一个MessageHeader资源(eventCode=query),且应是元素entry列表的首个资源
  • Bundle资源应含有一个Parameters资源,用以表示检索条件
  • Bundle资源应含有一个Patient资源,用以表示处方所对应的患者信息
  • 应含有唯一一个MedicationRequest资源
  • Bundle资源应含有一个Organization资源,用以表示药房系统所处的机构信息
  • Bundle资源可含有一个Practitioner资源,用以表示药房的卫生服务人员
响应消息

消息体的Content-Type应为application/fhir+json 或者 application/fhir+xml

消息体定义参见查询患者相关信息响应消息结构定义

消息体示例参见查询患者相关信息响应消息示例页面

响应消息返回恰当的HTTP状态代码。

  • 处理成功:
    • 使用状态码200 OK表示整个请求处理成功,且消息体应为Bundle资源
    • Bundle资源应含有一个MessageHeader资源(eventCode=query-response),且应是元素entry列表的首个资源
    • Bundle资源应含有一个Parameters资源,与请求消息中保持一致
    • Bundle资源应含有一个Patient资源,与请求消息中保持一致
    • Bundle资源应含有至少一个Bundle资源,用以记录检索结果集(type取值应为searchset
  • 处理失败:
    • 使用状态码400和500表示整个请求处理失败。
    • 使用单个的OperationOutcome来描述失败原因。

参考资料