Общие сведения о средстве поиска 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.com
URL-адрес.
Поиск FHIR может находиться в соответствии с определенным типом ресурсов, указанным отсеком или всеми ресурсами в базе данных сервера FHIR. Самый простой способ выполнения поиска в FHIR — использовать GET
запрос. Например, если вы хотите извлечь все Patient
ресурсы в базе данных, можно использовать следующий запрос.
GET {{FHIR_URL}}/Patient
Вы также можете искать с помощью POST
. Для поиска по использованию POST
параметры поиска доставляются в тексте запроса. Это упрощает отправку запросов с более длинным, более сложным рядом параметров.
POST
GET
Если запрос поиска выполнен успешно, вы получите пакет 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 | |
:identifier |
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 |
Примечание.
- По умолчанию
_sort
упорядочивает записи по возрастанию. Префикс-
можно также использовать для сортировки в порядке убывания. Служба FHIR позволяет отсортировать только одно поле одновременно. - Служба 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
только ссылку и не поддерживает first
last
previous
ссылки в пакетах, возвращаемых из поиска.
Вопросы и ответы
Что означает "частичная поддержка" в параметрах поиска R4, неподдерживаемых?
Некоторые параметры поиска, относящиеся к ресурсу, охватывают несколько типов данных, а служба FHIR в Службах данных Работоспособности Azure может поддерживать только этот параметр поиска в одном из этих типов данных. Например, условие -abatement-age и условие-начало-возраст охватывают два разных типа данных, возраст и диапазон; Однако служба FHIR в службах данных Работоспособности Azure поддерживает эти два параметра поиска в диапазоне, но не в возрасте.
Поддерживается ли операция $lastn для наблюдений?
Такой способ связывания не поддерживается. Альтернативный подход — использовать _count для ограничения ресурсов, возвращаемых на страницу, и _sort для предоставления результатов в порядке убывания.
Следующие шаги
Теперь, когда вы узнали об основах поиска FHIR, ознакомьтесь со страницей примеров поиска, чтобы узнать, как выполнять поиск с помощью параметров поиска, модификаторов и других методов поиска FHIR.
Примечание.
FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .