3

根据此处的规范,如果您创建资源,服务器应返回创建的 201 以及包含已创建资源的新逻辑 ID 和版本 ID 的 Location 标头。

我正在将患者资源上传到http://fhir.healthintersections.com.au/open/Patient并使用 Chrome 调试工具我可以看到返回的“Content-Location”响应标头包含逻辑 ID,但我不能使用 jqXHR.getResponseHeader('Content-Location') 或 jqXHR.getAllResponseHeaders() 访问它。

经过大量搜索,问题似乎是除非将 Access-Control-Expose-Headers 标头添加到服务器,否则我无法在我的应用程序中查看标头,因为它是跨源请求。

是否有其他方法可以解决此问题,以便在创建资源后找到逻辑 ID?

4

1 回答 1

2

FHIR 仅在标头中公开其元数据(id、特定于版本的 id、上次更新),因此您确实需要访问该 Location 标头以获取新创建的资源的 id。可能有一种变通方法,即使用“搜索”操作来检索仅包含此新创建资源的提要(假设它具有识别业务键,如患者 ID)。资源的原子条目将有一个带有 id 的。

也就是说,这确实是一个黑客。然而,这不是与 FHIR 相关的问题(参见例如How to get responseheader location by jquery)。

为了解决这个问题,我将更新我的 FHIR 服务器(位于 spark.furore.com/fhir)以包含这些 Access-Control-Expose 标头。它应该会在接下来的几个小时内更新,因此您可以尝试这是否适合您。

于 2014-01-10T09:02:49.760 回答