HL7中国发布订阅框架实施指南
2025.03.10 - release
HL7中国发布订阅框架实施指南 - Local Development build (v2025.03.10) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
在本交互规范的当前版本定义了如下7个交易:
本交易由通知代理和发布者角色使用。注册订阅主题(IST-SUB-001)交易用于
调用地址:
POST http://[base]/SubscriptionTopic
消息体定义参见BaseSubscriptionTopic:
这里提供了一个参考示例,具体格式和内容参见表单填报就绪订阅主题资源示例页面。
201 Create
标识整个请求处理成功。201 Created
。201 Created
,从而使客户端看起来好像已经创建新资源,即使该资源实际上是预先存在的资源。本交易由通知代理
和订阅者
角色使用。订阅(IST-SUB-002)交易用于订阅者
向通知代理
发出订阅请求消息。
调用地址:
POST http://[base]/Subscription
消息体定义和示例参见BaseSubscription:
这里提供了一个参考示例,具体格式和内容参见表单填报订阅资源示例页面。
响应消息反馈了提交订阅请求后的处理结果,应遵循如下约束条件:
201 Create
标识整个请求处理成功。status=requested
本交易由通知代理和订阅者角色使用。取消订阅(IST-SUB-003)交易用于当不再需要订阅时,订阅者
向通知代理
发出取消订阅请求消息。
此操作为满足业务需求而自定义的操作。操作的定义参见取消订阅的结构说明。
调用地址:
PUT http://[base]/Subscription/[id]/$cancel
消息体为空。
订阅不可修改、不可删除。修改Subscription.status
为off
表示取消。
通知代理应取消相应的订阅。
本交易由通知代理
和订阅者
角色使用。查询订阅(IST-SUB-004)交易用于订阅者
从通知代理
获取符合查询条件的订阅。
调用地址:
GET http://[base]/Subscription
查询参数表示为一系列的name-value对,这些name-value对表示查询的筛选器,在本规范中需支持:
params | description | mapping |
---|---|---|
status | 订阅的状态 | Subscription.status |
name | 订阅的名称 | Subscription.name |
topic | 订阅的主题 | Subscription.topic |
type | 订阅的通道类型 | Subscription.channelType |
响应消息应返回符合查询条件的资源结果集,应遵循如下约束条件:
200 OK
标识整个请求处理成功。Bundle
资源,其中包含零到多个Subscription
资源。本交易由通知代理
和订阅者
角色使用。获取订阅状态(IST-SUB-005)交易用于订阅者
从通知代理
获取指定订阅的运行状态。
调用地址:
GET http://[base]/Subscription/[id]/$status
消息体为空。
响应消息应返回指定标识订阅的运行状态,应遵循如下条件:
200 OK
标请求处理成功。Bundle
资源(type=searchset),且应包含一个SubscriptionStatus
资源记录订阅的运行状况。这里提供了一个参考示例,具体格式和内容参见获取订阅状态返回消息示例页面。
本交易由通知代理和通知接收者角色使用。通知(IST-SUB-006)交易用于从通知代理向通知接收者发送有关与现有订阅匹配的事件的通知。
接收通知的服务端点与订阅的Subscription.endpoint
保持一致。
调用地址:
POST http://[notify_rest_hook_endpoint]
消息体定义和示例参见NotifynMessage:
type=subscription-notification
200 OK
状态码)。本交易由通知代理和发布者角色使用。发布(IST-SUB-007)交易用于从发布者向通知代理提供有关可能具有订阅事件的消息。
调用地址:
POST http://[base]/notify
消息体定义和示例参见PublishMessage。
发布的消息和通知的消息基本一致,都是采用通知类型的容器(Bundle.type=subscription-notification),但是仍存在如下区别:
200 OK
状态码。订阅异常错误消息的定义和示例参见SubscribeOperationOutcome。
当处理流程出现错误时:
下表给出了details的取值:
代码 | 说明 |
---|---|
TopicNotSupportedFault | 订阅消息引用了通知代理不支持的主题 |
InvalidFilterFault | 订阅消息过滤器的过滤参数不被通知代理理解或支持。 |
ChannelNotSupportedFault | 订阅消息使用了通知代理不支持的通道类型。 |
SubscribeCreationFailedFault | 通知代理未能处理订阅消息。 |