【问题标题】:Resource Identifiers between two FHIR servers两个 FHIR 服务器之间的资源标识符
【发布时间】:2015-08-20 20:23:13
【问题描述】:

我们的场景是有一个 EHR 系统使用 FHIR 与设备传感器合作伙伴集成。在这种情况下,两家公司都将拥有独立的 FHIR 服务器。他们每个人都有不同的患者和组织记录,并带有自己的标识符。首选是传感器 FHIR 服务器将 EHR 标识符映射到它自己的这些资源的内部标识符

EHR 想要将患者分配给具有传感器 FHIR 服务器的设备。

第 1 步:首先,EHR 将@GET 给定组织的设备资源列表,其中患者当前未从传感器 FHIR 服务器分配,例如

/api/Device?organization.identifier=xyz&patient:missing=true

这里我假设组织标识符是 EHR 系统的标识符,因为此时 EHR 系统不知道传感器系统组织标识符。

对此调用的回复将是一组设备:

...剪断...

"owner": {
"reference": "http://sensor-server.com/api/Organization/3"
},  

...剪断...

问题 2:所有者组织引用是否具有来自搜索的标识符或传感器 FHIR 服务器已知的内部/逻辑 ID,如上面的 sn-p 中?

第 2 步:EHR 系统的临床医生从列表中选择一个设备,将其分配给 EHR 系统中的患者

第 3 步:EHR 系统现在将向传感器 FHIR 服务器发出 @PUT /api/Device/{id} 请求,以将患者资源分配给设备资源,例如

{
  "resourceType": "Device",
  "owner": {
    "reference": "http://sensor-server.com/api/Organization/3"
  },  
  "id": "b4994c31f906",
  "patient": {
    "reference": "https://ehr-server.com/api/Patient/4754475"
  },
  "identifier": [
    {
      "use": "official",
      "system": "bluetooth",
      "value": "b4:99:4c:31:f9:06",
      "label": "Bluetooth address"
    }
  ]
}

问题 3:Patient 资源应该使用什么资源 URI/标识符?我会假设它是 EHR 系统,因为 EHR 系统不知道传感器系统患者标识符。但是请注意,Organization 引用是传感器 FHIR 服务器中的 URI,而 Patient 引用是 EHR 系统的 URI - 这闻起来很有趣。

第 4 步:EHR 可以在传感器 FHIR 服务器上发出 @GET /api/Device/{id} 并取回设备资源,例如

{
  "resourceType": "Device",
  "owner": {
    "reference": "http://sensor-server.com/api/Organization/3"
  },  
  "id": "b4994c31f906",
  "patient": {
    "reference": "https://sensor-server.com/api/Patient/abcdefg"
  },
  "identifier": [
    {
      "use": "official",
      "system": "bluetooth",
      "value": "b4:99:4c:31:f9:06",
      "label": "Bluetooth address"
    }
  ]
}

问题 4:我们是否希望看到对包含 EHR FHIR 服务器的绝对 URI 的患者的引用(就像在第 3 步中的 @PUT 上一样),或者传感器 FHIR 服务器是否会/可能会修改它以返回使用其内部逻辑 ID 对其 FHIR 服务器中的资源的引用?

【问题讨论】:

  • 对于“问题 2”,您是否在问“sensor-server.com/api/Organization/3”是否保证具有值为“xyz”的标识符?或者您是否想询问结果是否应该类似于“参考”:“... xyz ...”,其中“xyz”以某种方式出现在参考中?
  • 至于“问题 4”,maybe this other question about accepting absolute references may help(不过,您需要阅读答案中的 cmets)
  • 对于问题 2,我问的是从 @GET 返回的设备资源是否会引用带有传感器 FHIR 服务器逻辑 ID 的组织资源,或者它是否应该具有使用的标识符在查询字符串的搜索参数中。

标签: hl7-fhir


【解决方案1】:

我没有看到问题 1,所以我假设它是您第一个示例前面的“假设”句子。如果 EHR 正在查询设备传感器服务器,并且设备传感器服务器上的组织包括 EHR 已知的业务标识符,那么这是合理的。不过,您需要某种业务流程来确保发生这种情况。

问题 2:设备所有者元素将使用资源引用,这意味着它指向目标组织的“id”元素。将资源 ID 视为主键。它们通常由存储数据的服务器分配,但在某些体系结构中,它们可以由客户端(使用 PUT 而不是 POST 创建记录)设置。无论如何,您不能指望它们成为有意义的业务标识符——根据大多数数据存储最佳实践,它们通常不应该是。如果,如我所料,您的场景涉及多个 EHR 客户端可能与“设备”服务器通信,则资源 ID 不可能与所有 EHR 的业务 ID 保持一致。 (这就是说“没有'xyz'可能不会是'3')

问题 3:如果 EHR 有自己的服务器,EHR 客户端可以更新“传感器”服务器上的设备以指向 EHR 服务器上的 URL。这是否合适取决于您的架构。如果您希望其他 EHR 识别患者,那么您可能希望“传感器”服务器也托管患者,并让 EHR 通过业务 ID 查找患者,然后引用“传感器”服务器的 URL。如果没有,那么指向 EHR 服务器的 URL 就可以了。

问题 4:当您执行“GET”时,通常会收到您在 POST 中指定的相同数据。服务器更改数据(包括可能更新引用)是合法的。但这可能会使很多客户端系统感到困惑,因此通常不推荐或不典型。

【讨论】:

  • 问题 2:不太确定我是否清楚这一点。因此,我在传感器服务器上发布了一个带有组织标识符查询搜索参数“xyz”的@GET,并返回了一个包含匹配设备列表的捆绑包。我应该对这些设备的所有者参考有什么期望?从阅读您的回复看来,它可能/应该是传感器服务器上该组织的引用/URI,该组织将具有传感器服务器已知的主键/逻辑 ID。我理解正确吗?
  • 对。因此,您使用“标识符”进行搜索 - 这是与组织关联的业务标识符。引用将是资源 id - 本质上是主键。组织可能托管在传感器服务器上,也可能托管在其他地方。无论哪种情况,您都不能指望它与业务标识符相同。 (特别是考虑到一个资源只能有一个资源 id/url,但可以有多个业务标识符。)
猜你喜欢
  • 2022-01-27
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
相关资源
最近更新 更多