我们有一个场景,我们正在评估使用FHIR将计划遇到的信息从EHR应用程序(源应用程序)传输到Internet门户应用程序(目标应用程序)。触发此消息传输的事件是计划遭遇,或计划的遭遇被取消。
引用https://www.hl7.org/fhir/messaging.html:
在FHIR消息传递中,"请求消息"从一个来源发送 事件发生时应用程序到目标应用程序。
一些问题/问题:
更新
澄清:
答案 0 :(得分:1)
在以下情况下,消息传递是最合适的机制:
但是,您可以选择使用消息传递进行任何通信。即即使另一种范式可能更“典型”,没有人会认为你选择使用消息不符合。
消息是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。
对我来说,这取决于你想要选择需要发送什么的逻辑以及何时(以及你可用的工具)。