如何将批处理响应条目与 FHIR (DSTU3)

问题描述

我目前正在构建一个应用程序,对于该应用程序,检查具有特定配置文件的资源是否存在很重要。

因为我们需要检查 40 多个配置文件,所以我想将所有这些都放在 1 个批处理请求中,让我们的 HAPI-FHIR 服务器实现处理这个,而不是一个一个查询它们。否则这会变得太健谈了。

因为我只需要知道资源是否存在我想使用 _summary=count。我假设这会提高请求的性能

示例请求

{
  "resourceType": "Bundle","type": "batch","entry": [
    {
      "request": {
        "method": "GET","url": "/Observation?_profile=http://nictiz.nl/fhir/StructureDeFinition/zib-DrugUse&_summary=true"
      }
    },{
      "request": {
        "method": "GET","url": "/RelatedPerson?_profile=http://fhir.nl/fhir/StructureDeFinition/nl-core-relatedperson&_summary=count"
      }
    }
  ]
}

回复

{
    "resourceType": "Bundle","id": "fd66cfd9-4693-496d-86fc-98289067480b","type": "batch-response","link": [
        {
            "relation": "self","url": "<redacted>"
        }
    ],"entry": [
        {
            "resource": {
                "resourceType": "Bundle","id": "2647a49f-0503-496b-b274-07d4e9163f1b","Meta": {
                    "lastUpdated": "2021-02-15T11:44:18.035+00:00","tag": [
                        {
                            "system": "http://hl7.org/fhir/v3/ObservationValue","code": "SUBSETTED","display": "Resource encoded in summary mode"
                        }
                    ]
                },"type": "searchset","total": 48
            },"response": {
                "status": "200 OK"
            }
        },{
            "resource": {
                "resourceType": "Bundle","id": "2f9cc861-5d20-4da1-aa9f-12153b75539d","Meta": {
                    "lastUpdated": "2021-02-15T11:44:18.151+00:00","total": 10
            },"response": {
                "status": "200 OK"
            }
        }
    ]
}

我可以假设批响应的顺序与批请求的顺序相同吗?

或者是否有一种方法可以注释持久化到批处理响应中的批处理条目?

或者最后,有没有我可以打开的标志使响应包含 request.url 部分?

我正在为客户端和服务器使用 HAPI-FHIR 5.1.0。

解决方法

显然我在规格中看起来不够好,因为我刚刚发现以下内容:

来自FHIR spec

对于批处理或成功的事务,响应服务器应返回一个类型设置为批处理响应或事务响应的包,其中包含请求中每个条目的一个条目,在相同的顺序,与处理条目的结果相同。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...