在FHIR服务器上创建资源后,如何读取其逻辑ID?

时间:2014-01-09 10:29:00

标签: hl7-fhir

根据规范here,如果您创建资源,服务器应返回创建的201以及Location头,其中包含已创建资源的新Logical Id和Version Id。

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

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

是否存在解决此问题的另一种方法,以便在创建资源后找到逻辑ID?

1 个答案:

答案 0 :(得分:2)

FHIR仅在标题中公开其元数据(id,版本特定ID,最后更新),因此您确实需要到达该Location标头以获取新创建的资源ID。可能有一种解决方法,即使用"搜索"仅使用此新创建的资源检索Feed的操作(假设它具有识别业务键,如患者ID)。资源的原子条目将包含id。

那就是说,这真的是一个黑客。但这不是与FHIR相关的问题(例如参见How to get responseheader location by jquery)。

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