Использование _include в FHIR

В спецификации запроса FHIR говорится, что параметр _include может быть добавлен к URL-адресу запроса, чтобы запросить, чтобы указанные ресурсы были возвращены полностью, чтобы предотвратить дальнейшие сетевые запросы на получение этих ресурсов.

i.e.

диагностический отчет / поиск? _include = DiagnosticReport.subject & _include = Patient.provider

Эта конструкция требует, чтобы вы знали ресурсы, на которые будут ссылаться в результирующем наборе, до выполнения запроса. Я подозреваю, что для таких ресурсов, как «Наблюдение», где потенциально может быть много профилей, каждый из которых может иметь разные расширения, это не так.

Возможно ли иметь синтаксис, при котором все ресурсы, на которые имеются ссылки, будут «включены»?


person BENBUN Coder    schedule 14.05.2013    source источник


Ответы (2)


Умм, это могло быть возможно. Хотя есть риск, что вы получите массу ресурсов, о которых вы даже не догадывались. И сервер может быть более склонен отклонить такой запрос. Это, безусловно, намного медленнее для сервера - ему нужно оценить гораздо больше контента, чтобы решить, какие ссылки включать или нет.

person Grahame Grieve    schedule 14.05.2013
comment
Я согласен с тем, что это загрузит сервер, но альтернативой для взаимодействия на основе обмена сообщениями будет первоначальный запрос, за которым следует последовательность последующих запросов, чтобы разрешить полное информационное содержание возвращенного сообщения - я подозреваю, что в сумме намного больше нагрузки на сервер, хотя, по общему признанию, она не будет израсходована за одно обращение. - person BENBUN Coder; 15.05.2013
comment
ну, мы могли бы определить подстановочные знаки в формате, например _include = DiagnosticReport. *. Или _include = *. - person Grahame Grieve; 15.05.2013
comment
да, вы запрашиваете _include = * - сколько миллионов ресурсов будет возвращено с этим? вы можете получить весь набор ресурсов ... Я добавил примечание, что и клиент, и сервер должны быть осторожны с этим - person Grahame Grieve; 17.05.2013

Эта страница: https://www.hl7.org/implement/standards/FHIR/search.html#return описывает следующее:

2.2.4.1 Пути включения
Пути включения могут включать подстановочные знаки, такие как MedicationDispense.results. * или даже _include = *, хотя и клиенты, и серверы должны позаботиться о том, чтобы при этом не запрашивать и не возвращать слишком много ресурсов. В частности, повторное применение путей включения к вновь включенным ресурсам может привести к циклам или извлечению полного файла пациента: ресурсы организованы во взаимосвязанную сеть, и широкие пути _include могут в конечном итоге пересекать все возможные пути на сервере. Для серверов эти рекурсивные и подстановочные символы _includes являются требовательными и могут значительно замедлить время отклика при поиске. Ожидается, что серверы будут ограничивать количество выполняемых итераций и не обязаны выполнять запросы на включение дополнительных ресурсов в результаты поиска.

person Stef Heyenrath    schedule 17.09.2015