用于安排相遇的 FHIR 消息
FHIR messages for scheduling of encounters
我们有一个场景,我们正在评估使用 FHIR 将计划中的相遇信息从 EHR 应用程序(源应用程序)传输到互联网门户应用程序(目标应用程序)。触发此消息传输的事件是计划中的相遇,或者计划中的相遇被取消。
引用 https://www.hl7.org/fhir/messaging.html:
In FHIR messaging, a "request message" is sent from a source
application to a destination application when an event happens.
一些questions/issues:
- 首先:FHIR消息的使用适合这种场景吗?
- 如果我正确理解 FHIR 网站,源应用程序应该向目标应用程序发送 "Bundle"。正确吗?
- 目标应用程序需要有关预定会面的各种信息,例如位置和推荐请求。我是否正确地假设这些 "extra" 信息元素也应该在包中,并且 "main" 元素应该以某种方式引用这些元素?
- 主元素应该如何引用额外元素?是否有显示 "intra-bundle" 引用的 XML 示例?
- 如果我正确阅读规范,目标应用程序应该会发回响应消息。此响应包应包含什么以指示消息已正常接收?
更新
澄清:
- 源应用程序没有 FHIR REST 端点。
- 我们已决定将信息从源应用程序推送到目标应用程序(而不是拉取)
消息是最合适的机制:
- 您想将多个资源作为一个包传递
- 您不需要文档的开销(table 的内容,严格的渲染规则)
- 路由通信可能需要异步通信and/or
- 您想做比简单的 CRUD 操作更复杂的事情
- 您想使用 HTTP 以外的传输方式
但是,您可以选择使用消息进行任何通信。 IE。 No-one 会打电话给你 non-conformant 选择使用消息传递,即使另一个范例可能更 'typical'。
消息是 Bundle 资源,其中第一个条目是 MessageHeader。 MessageHeader 使用 'data' 元素指向焦点资源。在这种情况下,焦点将是遭遇。还可以传送额外的资源。通常,您使用配置文件来提供有关捆绑包中应包含哪些内容和不包含哪些内容的指导。 (element.type.aggregation 标识某些内容是否需要出现在包中)。唯一的规则是,当你追踪束中资源之间的所有关系时,它们形成了一个完全连接的网络。但是,关联可以在任一方向上。 IE。可以包含指向 Encounter 的内容,而不仅仅是 Encounter 指向的内容。
在 Bundle 中,引用可以是完整的 URLs、相对的 URLs(基于引用资源的 URL)或 UUID。您可以看到示例消息 here.
对于 notification-type 消息交互,您的响应消息通常只包含一个 MessageHeader,其 .response 将指向原始消息手的标识符,代码为 "ok"。在其他情况下,消息响应可能包含数据。例如。创建或合并的结果、对查询的响应、决策支持信息等
抱歉,这不是肯定或否定的答案。
我已将 REST+FHIR 资源 API 用于两个门户系统 - 这是为了从源系统获取数据。
我们也有一个类似的场景,我们需要将数据传递到门户,我们在存在 HL7v2 提要的地方使用消息传递,或者在不存在的地方使用 REST+FHIR 资源 API。劳埃德关于什么是适当的观点是正确的。
如果一切正常,我通常会回复 200。当我上次查看规范时,未指定响应,它建议使用 OperationOutcome 或其他资源。
我遵循了 'REST in Practice' (O'Reilly) 一书中的做法,因此我会修改发送给我的资源(例如新标识符或额外数据),并 return 发送给发件人。
我们为我们的客户端门户界面做类似的事情。
本质上,我们有一个 publishing/subscription 服务来监视我们内部系统的相关更改,然后对门户进行 FHIR 休息调用以更新它。 (我们的门户界面是 FHIR 服务器)
不完全是消息传递,但也不完全是 REST/subscription。
对于我们的门户而言,它只是CRUD。
对我来说,这归结为您希望选择需要发送的内容和时间的逻辑在哪里(以及您有什么可用的工具)。
我们有一个场景,我们正在评估使用 FHIR 将计划中的相遇信息从 EHR 应用程序(源应用程序)传输到互联网门户应用程序(目标应用程序)。触发此消息传输的事件是计划中的相遇,或者计划中的相遇被取消。
引用 https://www.hl7.org/fhir/messaging.html:
In FHIR messaging, a "request message" is sent from a source application to a destination application when an event happens.
一些questions/issues:
- 首先:FHIR消息的使用适合这种场景吗?
- 如果我正确理解 FHIR 网站,源应用程序应该向目标应用程序发送 "Bundle"。正确吗?
- 目标应用程序需要有关预定会面的各种信息,例如位置和推荐请求。我是否正确地假设这些 "extra" 信息元素也应该在包中,并且 "main" 元素应该以某种方式引用这些元素?
- 主元素应该如何引用额外元素?是否有显示 "intra-bundle" 引用的 XML 示例?
- 如果我正确阅读规范,目标应用程序应该会发回响应消息。此响应包应包含什么以指示消息已正常接收?
更新
澄清:
- 源应用程序没有 FHIR REST 端点。
- 我们已决定将信息从源应用程序推送到目标应用程序(而不是拉取)
消息是最合适的机制:
- 您想将多个资源作为一个包传递
- 您不需要文档的开销(table 的内容,严格的渲染规则)
- 路由通信可能需要异步通信and/or
- 您想做比简单的 CRUD 操作更复杂的事情
- 您想使用 HTTP 以外的传输方式
但是,您可以选择使用消息进行任何通信。 IE。 No-one 会打电话给你 non-conformant 选择使用消息传递,即使另一个范例可能更 'typical'。
消息是 Bundle 资源,其中第一个条目是 MessageHeader。 MessageHeader 使用 'data' 元素指向焦点资源。在这种情况下,焦点将是遭遇。还可以传送额外的资源。通常,您使用配置文件来提供有关捆绑包中应包含哪些内容和不包含哪些内容的指导。 (element.type.aggregation 标识某些内容是否需要出现在包中)。唯一的规则是,当你追踪束中资源之间的所有关系时,它们形成了一个完全连接的网络。但是,关联可以在任一方向上。 IE。可以包含指向 Encounter 的内容,而不仅仅是 Encounter 指向的内容。
在 Bundle 中,引用可以是完整的 URLs、相对的 URLs(基于引用资源的 URL)或 UUID。您可以看到示例消息 here.
对于 notification-type 消息交互,您的响应消息通常只包含一个 MessageHeader,其 .response 将指向原始消息手的标识符,代码为 "ok"。在其他情况下,消息响应可能包含数据。例如。创建或合并的结果、对查询的响应、决策支持信息等
抱歉,这不是肯定或否定的答案。
我已将 REST+FHIR 资源 API 用于两个门户系统 - 这是为了从源系统获取数据。 我们也有一个类似的场景,我们需要将数据传递到门户,我们在存在 HL7v2 提要的地方使用消息传递,或者在不存在的地方使用 REST+FHIR 资源 API。劳埃德关于什么是适当的观点是正确的。
如果一切正常,我通常会回复 200。当我上次查看规范时,未指定响应,它建议使用 OperationOutcome 或其他资源。 我遵循了 'REST in Practice' (O'Reilly) 一书中的做法,因此我会修改发送给我的资源(例如新标识符或额外数据),并 return 发送给发件人。
我们为我们的客户端门户界面做类似的事情。 本质上,我们有一个 publishing/subscription 服务来监视我们内部系统的相关更改,然后对门户进行 FHIR 休息调用以更新它。 (我们的门户界面是 FHIR 服务器)
不完全是消息传递,但也不完全是 REST/subscription。 对于我们的门户而言,它只是CRUD。
对我来说,这归结为您希望选择需要发送的内容和时间的逻辑在哪里(以及您有什么可用的工具)。