用于安排遭遇的FHIR消息

时间:2016-01-20 09:59:06

标签: messaging hl7-fhir

我们有一个场景,我们正在评估使用FHIR将计划遇到的信息从EHR应用程序(源应用程序)传输到Internet门户应用程序(目标应用程序)。触发此消息传输的事件是计划遭遇,或计划的遭遇被取消。

引用https://www.hl7.org/fhir/messaging.html

  

在FHIR消息传递中,"请求消息"从一个来源发送   事件发生时应用程序到目标应用程序。

一些问题/问题:

  • 首先:FHIR消息的使用是否适合这种情况?
  • 如果我正确理解FHIR网站,源应用程序应该发送" Bundle"到目标应用程序。正确的吗?
  • 目标应用程序需要有关预定遭遇的各种信息,例如位置和引荐请求。我是否正确地假设这些"额外"信息元素也应该在捆绑中,并且" main"元素应该以某种方式引用这些元素吗?
  • 主要元素应如何引用额外元素?是否有一个XML示例显示" intra-bundle"引用?
  • 如果我正确读取规范,目标应用程序应该发回响应消息。该响应包应包含什么以指示收到的消息是否正常?

更新

澄清:

  • 源应用程序没有FHIR REST端点。
  • 我们决定将信息从源应用程序推送到目标应用程序(而非拉动)

3 个答案:

答案 0 :(得分:1)

在以下情况下,消息传递是最合适的机制:

  • 您希望将多个资源作为单个包传递
  • 您不需要文档的开销(目录,对渲染的严格规则)
  • 可能需要异步通信和/或路由通信
  • 你想做一些比简单的CRUD操作更复杂的事情
  • 您想使用HTTP以外的传输

但是,您可以选择使用消息传递进行任何通信。即即使另一种范式可能更“典型”,没有人会认为你选择使用消息不符合。

消息是Bundle资源,其中第一个条目是MessageHeader。 MessageHeader使用'data'元素指向焦点资源。在这种情况下,焦点将是遭遇。还可以传达额外的资源。通常,您使用配置文件来提供有关捆绑包中应包含哪些内容的指导。 (element.type.aggregation标识是否需要在包中出现某些内容)。唯一的规则是,当您跟踪捆绑中资源之间的所有关系时,它们会形成一个完全连接的网络。但是,这种关联可以是两个方向。即可以包含指向Encounter的东西,而不仅仅是Encounter指向的东西。

在Bundle中,引用可以是完整URL,相对URL(基于引用资源的URL)或UUID。您可以看到示例消息here

对于通知类型的消息交互,您的响应消息通常只包含一个MessageHeader,其.response将指向原始消息hand的标识符,其代码为“ok”。在其他情况下,消息响应可能包含数据。例如。创建或合并的结果,对查询的响应,决策支持信息等。

答案 1 :(得分:1)

对不起,这不是肯定或没有答案。

我已经将两个门户系统使用过的REST + FHIR资源API用于从源系统获取数据。 我们还有一个类似的场景,我们需要将数据传递到门户网站,我们使用了存在HL7v2源的消息传递,或者我们使用的是REST + FHIR资源API。劳埃德指出适当的是正确的。

如果一切正常,我通常会回复200。当我上次查看规范时,没有指定响应,它建议使用OperationOutcome或其他资源。 我遵循了“实践中的REST”(O'Reilly)一书中的做法,因此我将修改发送给我的资源(例如新标识符或额外数据)并将其返回给发件人。

答案 2 :(得分:1)

我们为客户端门户界面做类似的事情。 基本上我们有一个发布/订阅服务,监视我们的内部系统的相关变化,然后让FHIR休息调用门户来更新它。 (我们的门户界面是FHIR服务器)

不完全是消息传递,但也不是完全REST /订阅。 就我们的门户而言,它只是CRUD。

对我来说,这取决于你想要选择需要发送什么的逻辑以及何时(以及你可用的工具)。