Общие сведения о средстве поиска 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
ссылки в пакетах, возвращаемых из поиска.
Следующие шаги
Теперь, когда вы узнали об основах поиска FHIR, ознакомьтесь со страницей примеров поиска, чтобы узнать, как выполнять поиск с помощью параметров поиска, модификаторов и других методов поиска FHIR.
FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .