Обзор поиска в API Azure для FHIR
Важно!
Azure API для FHIR будет прекращен 30 сентября 2026 г. Следуйте стратегиям миграции, чтобы перейти в службу FHIR служб azure Health Data Services к этой дате. Из-за прекращения использования AZURE API для FHIR новые развертывания не будут разрешены с 1 апреля 2025 г. Служба FHIR служб работоспособности Azure — это развивающаяся версия Azure API для FHIR, которая позволяет клиентам управлять службами FHIR, DICOM и MedTech с интеграцией с другими службами Azure.
Спецификация "Ресурсы быстрого взаимодействия здравоохранения" (FHIR) определяет основы поиска ресурсов FHIR®. В этой статье описаны некоторые ключевые аспекты поиска ресурсов в FHIR. Полные сведения о поиске ресурсов FHIR см . в разделе "Поиск " в спецификации HL7 FHIR. В этой статье приведены примеры синтаксиса поиска. Каждый поиск будет находиться на сервере FHIR, который обычно имеет URL-адрес https://<FHIRSERVERNAME>.azurewebsites.net
. В примерах мы будем использовать заполнитель {{FHIR_URL}} для этого URL-адреса.
Поиск FHIR может быть в отношении определенного типа ресурса, указанного отсека или всех ресурсов. Самый простой способ выполнения поиска в FHIR — использовать GET
запрос. Например, если вы хотите извлечь всех пациентов в базе данных, можно использовать следующий запрос:
GET {{FHIR_URL}}/Patient
Вы также можете выполнить поиск по запросу POST
, что полезно, если строка запроса слишком длинна. Для поиска с помощью POST
параметров поиска можно отправить в виде текста формы. Это позволяет выполнять более длинный, более сложный ряд параметров запроса, которые могут быть трудно видеть и понимать в строке запроса.
Если запрос поиска выполнен успешно, вы получите ответ пакета FHIR с типом searchset
. Если поиск завершается ошибкой, вы найдете сведения об ошибке, OperationOutcome
чтобы понять, почему поиск завершился ошибкой.
В следующих разделах мы рассмотрим различные аспекты, связанные с поиском. После просмотра этих сведений ознакомьтесь с нашей страницей примеров поиска, которые можно выполнить в API Azure для FHIR.
Параметры поиска
При выполнении поиска вы будете искать на основе различных атрибутов ресурса. Эти атрибуты называются параметрами поиска. Каждый ресурс имеет набор определенных параметров поиска. Параметр поиска должен быть определен и индексирован в базе данных для успешного поиска по нему.
Каждый параметр поиска имеет определенные типы данных. Поддержка различных типов данных описана ниже.
Предупреждение
В настоящее время возникает проблема при использовании _sort в API Azure для FHIR с цепочкой поиска. Дополнительные сведения см. в статье о проблеме с открытым исходным кодом #2344. Это будет разрешено во время выпуска в декабре 2021 года.
Тип параметра поиска | Azure API для FHIR | Служба FHIR в Службах данных работоспособности Azure | Комментарий |
---|---|---|---|
number | Да | Да | |
Дата | Да | Да | |
строка | Да | Да | |
token | Да | Да | |
Получение | Да | Да | |
Композитных | Частично | Частично | Список поддерживаемых составных типов описан далее в этой статье |
quantity | Да | Да | |
uri | Да | Да | |
специальный | No | No |
Распространенные параметры поиска
Существуют распространенные параметры поиска, которые применяются ко всем ресурсам. Они перечислены ниже, а также их поддержка в Azure API для FHIR:
Распространенный параметр поиска | Azure API для FHIR | Служба FHIR в Службах данных работоспособности Azure | Комментарий |
---|---|---|---|
_id | Да | Да | |
_Lastupdated | Да | Да | |
_Тег | Да | Да | |
_type | Да | Да | |
_security | Да | Да | |
_Профиль | Да | Да | |
_Hsa | Частично | Да | Поддержка _has находится в MVP в API Azure для FHIR и версии OSS, поддерживаемой Azure Cosmos DB. Дополнительные сведения см. в разделе "Цепочка" ниже. |
_Запроса | No | No | |
_Фильтр | No | No | |
_Список | No | No | |
_Текст | No | No | |
_Содержимого | No | No |
Параметры, относящиеся к ресурсу
С помощью Azure API для FHIR мы поддерживаем почти все параметры поиска, относящиеся к ресурсам, определенные спецификацией FHIR. В приведенных ниже ссылках доступны только параметры поиска, которые мы не поддерживаем:
Вы также можете просмотреть текущую поддержку параметров поиска в операторе возможностей FHIR со следующим запросом:
GET {{FHIR_URL}}/metadata
Чтобы просмотреть параметры поиска в инструкции возможностей, перейдите к CapabilityStatement.rest.resource.searchParam
просмотру параметров поиска для каждого ресурса и CapabilityStatement.rest.searchParam
поиск параметров поиска для всех ресурсов.
Примечание.
Azure API для FHIR не создает или индексируют параметры поиска, которые не определены спецификацией FHIR. Однако мы предоставляем поддержку для определения собственных параметров поиска.
Составные параметры поиска
Составной поиск позволяет выполнять поиск по парам значений. Например, если вы искали наблюдение высоты, где человек был 60 дюймов, необходимо убедиться, что один компонент наблюдения содержал код высоты и значение 60. Вы не хотите получить наблюдение, где хранится вес 60 и высота 48, несмотря на то, что наблюдение будет иметь записи, соответствующие значению 60 и коду высоты, только в разных разделах компонентов.
С помощью Azure API для FHIR мы поддерживаем следующие пары типов параметров поиска:
- Справочник, маркер
- Токен, дата
- Токен, число, число
- Токен, количество
- Токен, строка
- Токен, токен
Дополнительные сведения см. в параметрах составного поиска HL7.
Примечание.
Составные параметры поиска не поддерживают модификаторы для спецификации FHIR.
Модификаторы и префиксы
Модификаторы позволяют изменять параметр поиска. Ниже приведен обзор всех модификаторов FHIR и поддержки в API Azure для FHIR.
Модификаторы | Azure API для FHIR | Служба FHIR в Службах данных работоспособности Azure | Комментарий |
---|---|---|---|
:Отсутствует | Да | Да | |
:Точное | Да | Да | |
:Содержит | Да | Да | |
текст: | Да | Да | |
:type (reference) | Да | Да | |
:Не | Да | Да | |
:ниже (URI) | Да | Да | |
:above (URI) | Да | Да | |
:in (токен) | No | No | |
:ниже (токен) | No | No | |
:above (token) | No | No | |
:not-in (token) | No | No |
Для параметров поиска, имеющих определенный порядок (числа, даты и количества), можно использовать префикс параметра для поиска совпадений. API Azure для FHIR поддерживает все префиксы.
Параметры результата поиска
Для управления возвращаемыми ресурсами существуют параметры результатов поиска, которые можно использовать в поиске. Дополнительные сведения об использовании каждого из параметров результата поиска см. на веб-сайте HL7 .
Параметры результата поиска | Azure API для FHIR | Служба FHIR в Службах данных работоспособности Azure | Комментарий |
---|---|---|---|
_Элементы | Да | Да | |
_Рассчитывать | Да | Да | _count ограничено 1000 ресурсами. Если задано значение выше 1000, будет возвращено только 1000, а предупреждение будет возвращено в пакете. |
_Включают | Да | Да | Включенные элементы ограничены 100. _include в PaaS и OSS в Azure Cosmos DB не включают поддержку :iterate (#2137). |
_revinclude | Да | Да | Включенные элементы ограничены 100. _revinclude в PaaS и OSS в Azure Cosmos DB не включают :итерацию поддержки (No 2137). Существует также неправильный код состояния для плохого запроса #1319 |
_Сводка | Да | Да | |
_Общая | Частично | Частично | _total=none и _total=точный |
_Сортировки | Частично | Частично | sort=_lastUpdated поддерживается в Azure API для FHIR и службе FHIR. Для баз данных Azure API для FHIR и OSS Azure Cosmos DB, созданных после 20 апреля 2021 г., сортировка поддерживается по имени, фамилии, рождению и клинической дате. |
_Содержащиеся | No | No | |
_containedType | No | No | |
_Оценка по | No | Нет |
Примечание.
По умолчанию _sort
выполняет сортировку записи по возрастанию. Префикс '-'
можно использовать для сортировки в порядке убывания. Кроме того, служба FHIR и AZURE API для FHIR позволяют выполнять сортировку только по одному полю одновременно.
По умолчанию API Azure для FHIR устанавливается на строгой обработку. Это означает, что сервер будет игнорировать любые неизвестные или неподдерживаемые параметры. Если вы хотите использовать строгую обработку, можно использовать заголовок "Предпочитать" и задать.handling=strict
Поиск в цепочке и обратной цепочке
Поиск в цепочке позволяет выполнять поиск с помощью параметра поиска в ресурсе, на который ссылается другой ресурс. Например, если вы хотите найти встречи, где имя пациента — Джейн, используйте следующую команду:
GET {{FHIR_URL}}/Encounter?subject:Patient.name=Jane
Аналогичным образом можно также выполнять обратный связный поиск. Это позволяет получить ресурсы, указав критерии на других ресурсах, которые ссылаются на них. Дополнительные примеры цепочки и обратного поиска см. на странице примеров поиска FHIR.
Примечание.
В API Azure для FHIR и открытый код, поддерживаемых Azure Cosmos DB, существует ограничение, в котором каждый вложенный запрос, необходимый для поиска в цепочке и обратной цепочке, возвращает только 1000 элементов. Если найдено более 1000 элементов, вы получите следующее сообщение об ошибке: "Вложенные запросы в цепочке выражения не могут возвращать более 1000 результатов, используйте более выборочные критерии". Чтобы получить успешный запрос, вам потребуется быть более конкретным в том, что вы ищете.
Разбиение на страницы
Как упоминание выше, результаты поиска будут страницами пакета. По умолчанию поиск возвращает 10 результатов на страницу, но это можно увеличить (или уменьшить), указав _count
. В пакете будет локальная ссылка, содержащая текущий результат поиска. Если есть дополнительные совпадения, пакет будет содержать следующую ссылку. Чтобы получить последующие страницы результатов, можно продолжить использовать следующую ссылку. _count
ограничено 1000 элементами или меньше.
Следующая ссылка в пакете имеет ограничение на размер маркера продолжения 3 КБ. Вы можете настроить размер маркера продолжения от 1 до 3 КБ с помощью заголовка x-ms-documentdb-responsecontinuationtokenlimitinkb.
В настоящее время API Azure для FHIR поддерживает только следующую ссылку в пакетах, и она не поддерживает первые, последние или предыдущие ссылки.
Следующие шаги
Теперь, когда вы узнали об основах поиска, ознакомьтесь со страницей примеров поиска, чтобы узнать, как выполнять поиск с помощью различных параметров поиска, модификаторов и других сценариев поиска FHIR.
FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .