两个FHIR服务器之间的资源标识符

时间:2015-08-20 20:23:14

标签: hl7-fhir

我们的情况是有一个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,如上面的代码片段所示?

步骤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:患者资源应使用哪种资源URI /标识符?我认为它是EHR系统的,因为EHR系统不了解传感器系统患者标识符。但请注意,组织引用是传感器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服务器中的资源的引用?

1 个答案:

答案 0 :(得分:2)

我没有看到问题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上指定的相同数据。它是服务器更改数据的 legal ,包括可能更新引用。但这可能会混淆很多客户端系统,因此通常不推荐或典型。