Как связать записи пакетного ответа с записями запроса в FHIR (DSTU3)

В настоящее время я создаю приложение, для которого важно проверять наличие ресурсов с определенным профилем.

Поскольку нам нужно проверить это для 40+ профилей, я хотел бы поместить все это в один пакетный запрос и позволить нашей реализации сервера 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",
                    "tag": [
                        {
                            "system": "http://hl7.org/fhir/v3/ObservationValue",
                            "code": "SUBSETTED",
                            "display": "Resource encoded in summary mode"
                        }
                    ]
                },
                "type": "searchset",
                "total": 10
            },
            "response": {
                "status": "200 OK"
            }
        }
    ]
}

Могу ли я предположить, что порядок пакетного ответа такой же, как и для пакетного запроса?

Или есть способ аннотировать пакетные записи, которые сохраняются в пакетном ответе?

Или, наконец, есть ли флаг, который я могу включить, чтобы ответ включал часть request.url?

Я использую HAPI-FHIR 5.1.0 как для клиента, так и для сервера.


person MrDooker    schedule 15.02.2021    source источник
comment
Имейте в виду, что выполняемый вами поиск просто скажет вам, если ресурс объявляет профиль, а не найдет все, что ему соответствует. Теоретически возможно (хотя и несовместимо) что-то заявить о поддержке профиля, которому оно не соответствует. Также вполне возможно (даже часто), когда экземпляр соответствует профилям, которые он не декларирует. К сожалению, нет эффективного способа их поиска, хотя, если у вас есть кандидаты, вы можете использовать операцию $ validate для их проверки.   -  person Lloyd McKenzie    schedule 15.02.2021


Ответы (1)


По-видимому, я не выглядел достаточно хорошо в спецификациях, так как обнаружил следующее:

Из спецификации FHIR

Для пакета или успешной транзакции ответ сервера ДОЛЖЕН возвращать Bundle с типом, установленным на batch-response или transaction-response, который содержит по одной записи для каждой записи в запросе, в том же порядке < / strong> с результатом обработки записи.

person MrDooker    schedule 15.02.2021