问题描述
我目前正在构建一个应用程序,对于该应用程序,检查具有特定配置文件的资源是否存在很重要。
因为我们需要检查 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。
解决方法
显然我在规格中看起来不够好,因为我刚刚发现以下内容:
对于批处理或成功的事务,响应服务器应返回一个类型设置为批处理响应或事务响应的包,其中包含请求中每个条目的一个条目,在相同的顺序,与处理条目的结果相同。