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
发布订阅框架是用于不同组件或服务之间异步通信的一种架构设计模式。消息的发送者不会将消息直接发送给特定的接收者,而是通过通知代理将消息广播出去,让订阅该消息主题的订阅者消费到。发布订阅模式允许在系统的不同组件之间传递消息,而这些组件之间无需知道彼此的身份(即它们是解耦的),使它更加灵活和可扩展。
基于主题的订阅使订阅者能够在事件发生时接收通知,是服务器驱动的工作流,并使客户端避免轮询数据更改。
测试系统是否支持[[发布订阅框架实施指南]]声明的功能,包括:
SubscriptionTopic 资源的创建。
        SubscriptionTopic 的读取、查询和删除`。Subscription 资源的创建、查询和取消操作。$status 操作SubscriptionTopic 资源Subscription实例$status 操作来检查/验证订阅的状态Subscription 的开发人员。可以将发布订阅框架实施指南中规定的三种角色划分为三个系统角色:
Subscription的工具。Subscription、SubscriptionStatus和SubscriptionTopic的存储以及对资源的访问端点。本主题依赖FHIR Connectathon Track Form主题的系统角色充当通知的发布者和接收者。
只有报名参加FHIR Connectathon Track Form主题或者已经测评通过该主题的厂商才能报名当前主题。另外需要注意的是,需要重新根据FHIR Connectathon Track Form进行功能完善,以支持发布订阅框架实施指南的发布和通知要求。
受国家疾病预防控制局委托,某主管部门开展本次调查,以了解我国新冠病毒感染情况。
SubscriptionTopic注册到通知代理服务器上。SubscriptionTopic资源。订阅代理服务角色的系统中,应实现SubscriptionTopic资源的增删改查等方法。发布者角色的系统中,可以设计一个启用通知的系统配置项。
        订阅代理服务的端点,以与订阅代理服务进行交互。
            发布者存在多个订阅主题,可以选择需要注册的订阅主题。订阅代理服务上是否存在要注册的订阅主题(通过url元素判定,而不是name元素)SubscriptionTopic资源注册到订阅代理服务上。SubscriptionTopic 创建 Subscription。订阅代理服务角色的系统中,应实现Subscription资源的增删改查等方法。订阅者角色的系统中,应提供订阅管理的菜单项。
        发布者向配置项指定的订阅代理服务端点推送通知消息。发布者角色的系统中,应实现:
        通知接收者。Subscription已经激活,且发布者已经推送了事件通知。订阅代理服务角色的系统中,其订阅执行环境应实现:
        发布者推送的通知后,应能根据通知的主题以及更详细的过滤条件,将通知转发给通知接收者。发布者推送的事件通知,避免因系统崩溃导致的事件通知丢失。订阅端从通知代理服务上获取指定Subscription的SubscriptionStatus。订阅代理服务角色的系统中,应实现:
        Subscription被激活后,会在运行时的上下文中维护当前订阅的状态,该状态中的值通常维护在内存中。订阅者角色的系统中的订阅管理页面中:
        error时,应提供详细的错误信息本主题测评按如下步骤进行:
工作人员以管理员系统角色进入表单填报系统的前端管理界面,跳转到系统配置管理页面,勾选启用通知的系统配置项,并填写通知代理服务端点地址。
点击应用或保存按钮时触发。
订阅代理服务应提供SubscriptionTopic资源的Create和Search操作,满足发布者的调用需求。发布者应提供启用通知的系统配置项,且允许输入订阅代理服务的端点地址。发布者应首先调用订阅代理服务的SubscriptionTopic资源的Search操作,根据url参数查看该主题是否已注册。发布者应调用订阅代理服务的SubscriptionTopic资源的Create操作,注册订阅主题。通知代理服务上存在该主题且应处于激活状态。应包括 R5 约定的所有必要字段。订阅代理服务和发布者交互的调试能力,可以直接查看服务互操作时HTTP的调用过程。例如:浏览器提供的「开发者工具」。工作人员以管理员系统角色进行订阅服务系统的前端管理界面,跳转到订阅管理页面,在订阅列表页面上点击新增订阅按钮,跳转到订阅创建页面。
在填写内容时:
表单填报就绪;Rest-Hook,并填写通知的端点地址;(本次测评仅测试该形式)id-only;完成之后(系统检测所有必选项是否填充),点击保存按钮,完成订阅的创建过程。
点击保存按钮触发。生成Subscription资源,调用Create操作。
订阅代理服务应提供Subscription资源的Create、Update、Delete、Read、Search等操作,满足订阅者的调用需求。订阅者应调用订阅代理服务的Subscription资源的Create操作,创建订阅。订阅者应调用订阅代理服务的Subscription资源的Update、Delete、Read、Search操作,管理订阅。订阅代理服务上订阅存在且处于活动状态。它包括 R5 中的所有必要字段。订阅代理服务和订阅者交互的调试能力,可以直接查看服务互操作时HTTP的调用过程。例如:浏览器提供的「开发者工具」。工作人员以填报者角色进入表单填报系统的前端界面,进行新冠病毒感染情况的调查报告填写。
完成之后(系统检测所有必选项是否填充),点击保存按钮,完成调查报告的存储。
表单填报系统存储‘QuestionnaireResponse’资源后触发。
订阅代理服务应提供发布者的通知接收服务,满足发布者的调用需求。发布者应调用订阅代理服务的通知接收服务,推送通知消息。订阅代理服务接收到发布者推送的通知消息。订阅代理服务和发布者交互的调试能力,可以直接查看服务互操作时HTTP的调用过程。例如:浏览器提供的「开发者工具」。工作人员以监管者角色进入表单监管系统的前端界面,可以查看疫苗接种的统计信息。以饼图显示,可以显示每种情况的占比、人数、以及总数。
订阅服务系统接收到表单填报系统发布的通知消息后触发。
通知接收者应提供基于Rest的通知接收端点,满足订阅服务系统的调用需求。订阅服务系统应调用通知接收者的通知接收端点,转发通知消息。通知接收者接收到订阅服务系统推送的通知消息。订阅代理服务和通知接收者交互的调试能力,可以直接查看服务互操作时HTTP的调用过程。例如:浏览器提供的「开发者工具」。工作人员以管理员系统角色进入订阅服务系统的前端管理界面,跳转到订阅管理页面,在订阅列表中选择本次测评创建的订阅,查看该订阅的运行状态。
点击订阅列表中指定订阅,跳转到订阅状态展示页面时触发。
订阅代理服务应提供Subscription资源的$status操作,满足订阅者的调用需求。订阅者应提供订阅状态展示页面,且应在订阅列表中点击某订阅项后跳转到该页面。订阅者应调用订阅代理服务的Subscription资源的$status操作,来获取当前订阅的运行状态。订阅代理服务和订阅者交互的调试能力,可以直接查看服务互操作时HTTP的调用过程。例如:浏览器提供的「开发者工具」。在测评环境中没有对OAuth或TLS的要求(尽管在生产环境中需要此类技术)。