Общие сведения о средстве поиска FHIR

Спецификация fast Healthcare Interoperability Resources (FHIR®) определяет API для запроса ресурсов в базе данных сервера FHIR. В этой статье рассматриваются некоторые ключевые аспекты запроса данных в FHIR. Полные сведения об API поиска FHIR см. в документации по поиску HL7 FHIR.

В этой статье мы продемонстрируем синтаксис поиска FHIR в примере вызовов API с {{FHIR_URL}} заполнителем для представления URL-адреса сервера FHIR. В случае службы FHIR в службах данных Работоспособности Azure этот URL-адрес будет иметь следующий https://<WORKSPACE-NAME>-<FHIR-SERVICE-NAME>.fhir.azurehealthcareapis.comURL-адрес.

Поиск FHIR может находиться в соответствии с определенным типом ресурсов, указанным отсеком или всеми ресурсами в базе данных сервера FHIR. Самый простой способ выполнения поиска в FHIR — использовать GET запрос. Например, если вы хотите извлечь все Patient ресурсы в базе данных, можно использовать следующий запрос:

GET {{FHIR_URL}}/Patient

Вы также можете искать с помощью POST. Для поиска по использованию POSTпараметры поиска доставляются в тексте запроса. Это упрощает отправку запросов с более длинным, более сложным рядом параметров.

POSTGETЕсли запрос поиска выполнен успешно, вы получите пакет FHIRsearchset, содержащий экземпляры ресурсов, возвращенные из поиска. Если поиск завершается ошибкой, вы найдете сведения об ошибке в ответе OperationOutcome .

В следующих разделах мы рассмотрим различные аспекты запроса ресурсов в FHIR. После ознакомления с этими разделами перейдите на страницу примеров поиска FHIR, в которой представлены примеры различных методов поиска FHIR.

Параметры поиска

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

Для каждого параметра поиска спецификация FHIR определяет тип данных, которые можно использовать. Поддержка в службе FHIR для различных типов данных описана ниже.

Тип параметра поиска Служба FHIR в Службах данных работоспособности Azure Azure API для FHIR Комментарий
number Да Да
Дата Да Да
строка Да Да
token Да Да
Получение Да Да
Композитных Частично Частично Список поддерживаемых составных типов приведен далее в этой статье.
quantity Да Да
uri Да Да
специальный No No

Распространенные параметры поиска

Существуют распространенные параметры поиска, которые применяются ко всем ресурсам в FHIR. Они перечислены ниже, а также их поддержка в службе FHIR:

Распространенный параметр поиска Служба FHIR в Службах данных работоспособности Azure Azure API для FHIR Комментарий
_id Да Да
_lastUpdated Да Да
_tag Да Да
_type Да Да
_security Да Да
_profile Да Да
_has Да Да
_query No No
_filter No No
_list No No
_text No No
_content No No

Параметры, относящиеся к ресурсу

Служба FHIR в Службах данных Работоспособности Azure поддерживает почти все параметры поиска, определенные в спецификации FHIR. Параметры поиска, которые не поддерживаются, перечислены в приведенных ниже ссылках:

Вы также можете просмотреть текущую поддержку параметров поиска в операторе возможностей FHIR со следующим запросом:

GET {{FHIR_URL}}/metadata

Чтобы просмотреть поддерживаемые параметры поиска в инструкции возможностей, перейдите к CapabilityStatement.rest.resource.searchParam параметрам поиска, зависящим от ресурса, и CapabilityStatement.rest.searchParam для параметров поиска, которые применяются ко всем ресурсам.

Примечание.

Служба FHIR в службах данных Работоспособности Azure не индексировать параметры поиска, которые не определены в базовой спецификации FHIR. Однако служба FHIR поддерживает пользовательские параметры поиска.

Составные параметры поиска

Составные поиски в FHIR позволяют искать пары элементов как логически подключенные единицы. Например, если вы искали наблюдения, где высота пациента составила более 60 дюймов, необходимо убедиться, что одно свойство наблюдения содержало код высоты и значение больше 60 дюймов (значение должно относиться только к высоте). Вы бы не хотели вернуть положительное совпадение по наблюдению с кодом высоты и рукой для руки длиной более 60 дюймов, например. Составные параметры поиска препятствуют этой проблеме путем поиска по предопределенным парам элементов, значения которых должны соответствовать критериям поиска для положительного совпадения.

Служба FHIR в Службах данных Работоспособности Azure поддерживает следующие пары типов параметров поиска для составных поисков:

  • Справочник, маркер
  • Токен, дата
  • Токен, число, число
  • Токен, количество
  • Токен, строка
  • Токен, токен

Дополнительные сведения см. в документации по параметрам составного поиска HL7.

Примечание.

Составные параметры поиска не поддерживают модификаторы, как указано в спецификации FHIR.

Модификаторы и префиксы

Модификаторы позволяют квалифицировать параметры поиска с дополнительными условиями. Ниже приведен список модификаторов FHIR и их поддержка в службе FHIR:

Модификаторы Служба FHIR в Службах данных работоспособности Azure Azure API для FHIR Комментарий
:missing Да Да
:exact Да Да
:contains Да Да
:text Да Да
:type (справочник) Да Да
:not Да Да
:below (URI) Да Да
:above (URI) Да Да
:in (токен) No No
:below (токен) No No
:above (токен) No No
:not-in (токен) No No

Для параметров поиска, имеющих определенный порядок (числа, даты и количества), можно использовать префикс перед значением параметра для уточнения критериев поиска (например, Patient?_lastUpdated=gt2022-08-01 где префикс gt означает "больше"). Служба FHIR в Службах данных Работоспособности Azure поддерживает все префиксы, определенные в стандарте FHIR.

Параметры результата поиска

FHIR задает набор параметров результата поиска для управления сведениями, возвращаемыми из поиска. Подробные сведения об использовании параметров результатов поиска в FHIR см. на веб-сайте HL7 . Ниже приведен список параметров результатов поиска FHIR и их поддержка в службе FHIR.

Параметры результата поиска Служба FHIR в Службах данных работоспособности Azure Azure API для FHIR Комментарий
_elements Да Да
_count Да Да _count ограничено 1000 ресурсами. Если задано значение более 1000, возвращается только 1000, а предупреждение будет включено в пакет.
_include Да Да Элементы, полученные с _include ограничением 100. _includeв PaaS и OSS в Azure Cosmos DB не поддерживается :iterate(No 2137).
_revinclude Да Да Элементы, полученные с _revinclude ограничением 100. _revincludeв PaaS и OSS в Azure Cosmos DB не поддерживается :iterate(No 2137). Существует также неправильный код состояния для плохого запроса #1319.
_summary Да Да
_total Частично Частично _total=none и _total=accurate.
_sort Частично Частично sort=_lastUpdated поддерживается в службе FHIR. Для службы FHIR и серверов FHIR базы данных SQL OSS поддерживаются сортировка по строкам и полям dateTime. Для баз данных Azure API для FHIR и OSS Azure Cosmos DB, созданных после 20 апреля 2021 г., сортировка поддерживается по имени, фамилии, рождению и клинической дате.
_contained No No
_containedType No No
_score No No

Примечание.

  1. По умолчанию _sort упорядочивает записи по возрастанию. Префикс - можно также использовать для сортировки в порядке убывания. Служба FHIR позволяет отсортировать только одно поле одновременно.
  2. Служба FHIR поддерживает дикие карта поиски с повторной очисткой. Добавление параметра запроса "." в повторном запросе направляет службу FHIR для ссылки на все ресурсы, сопоставленные с исходным ресурсом.

По умолчанию служба FHIR в Службах данных Работоспособности Azure настроена на строгую обработку. Это означает, что сервер игнорирует любые неизвестные или неподдерживаемые параметры. Если вы хотите использовать строгую Prefer обработку, можно включить заголовок и задать handling=strict.

Поиск в цепочке и обратной цепочке

Поиск в цепочке позволяет выполнять подробные целевые запросы для ресурсов, имеющих ссылку на другой ресурс. Например, если вы хотите найти встречи, где имя пациента — Джейн, используйте следующую команду:

GET {{FHIR_URL}}/Encounter?subject:Patient.name=Jane

В . приведенном выше запросе управляется путь к целевому параметру в цепочке поиска (name в данном случае).

Аналогичным образом можно выполнить обратный поиск по цепочке с параметром _has . Это позволяет извлекать экземпляры ресурсов, указывая критерии для других ресурсов, ссылающихся на интересующие ресурсы. Примеры цепочки и обратного поиска см. на странице примеров поиска FHIR.

Разбиение на страницы

Как упоминание выше, результаты поиска FHIR доступны в форме с разбивкой на страницы по ссылке, предоставленной в пакетеsearchset. По умолчанию служба FHIR отображает 10 результатов поиска на страницу, но это можно увеличить (или уменьшить), задав _count параметр. Если на одной странице больше совпадений, пакет включает ссылку next . Повторное получение из next ссылки дает последующие страницы результатов. Обратите внимание, что _count значение параметра не может превышать 1000.

В настоящее время служба FHIR в Службах данных Работоспособности Azure поддерживает next только ссылку и не поддерживает firstlastprevious ссылки в пакетах, возвращаемых из поиска.

Следующие шаги

Теперь, когда вы узнали об основах поиска FHIR, ознакомьтесь со страницей примеров поиска, чтобы узнать, как выполнять поиск с помощью параметров поиска, модификаторов и других методов поиска FHIR.

FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .