Экспорт данных FHIR

С помощью массовой $export операции в службе FHIR можно экспортировать данные, как описано в спецификации HL7 FHIR Bulk Data Access.

Прежде чем пытаться использовать$export, убедитесь, что служба FHIR настроена для подключения к учетной записи Azure Data Lake Storage 2-го поколения. Чтобы настроить параметры экспорта и создать учетную запись Data Lake Storage 2-го поколения, см. раздел "Настройка параметров для экспорта".

Вызов конечной $export точки

После настройки службы FHIR для подключения к учетной записи Data Lake Storage 2-го поколения можно вызвать $export конечную точку, а служба FHIR экспортирует данные в контейнер Хранилище BLOB-объектов Azure внутри учетной записи хранения. В следующем примере запроса экспортируются все ресурсы в контейнер, который указывается по имени ({{containerName}}). Обратите внимание, что необходимо заранее создать контейнер в учетной записи Data Lake Storage 2-го поколения, если вы хотите указать его {{containerName}} в запросе.

GET {{fhirurl}}/$export?_container={{containerName}}

Если имя контейнера в запросе (например, вызывая GET {{fhirurl}}/$export), новый контейнер с автоматически созданным именем будет создан для экспортированных данных.

Общие сведения о спецификации API FHIR см. в документации по потоку запросов на экспорт HL7 FHIR$export.

Служба FHIR поддерживается $export на следующих уровнях:

  • Система: GET {{fhirurl}}/$export
  • Пациент: GET {{fhirurl}}/Patient/$export
  • Группа пациентов*: GET {{fhirurl}}/Group/[ID]/$export
    *Служба FHIR экспортирует все указанные ресурсы, но не экспортирует характеристики самого ресурса группы.

Данные экспортируются в нескольких файлах. Каждый файл содержит ресурсы только одного типа. Количество ресурсов в отдельном файле будет ограничено. Максимальное количество ресурсов основано на производительности системы. В настоящее время он имеет значение 5000, но может измениться. Результатом является то, что вы можете получить несколько файлов для типа ресурса. Имена файлов будут соответствовать формату <resourceName>-<number>-<number>.ndjson. Порядок файлов не гарантируется в соответствии с каким-либо порядком ресурсов в базе данных.

Примечание.

Patient/$export и Group/[ID]/$export может экспортировать повторяющиеся ресурсы, если ресурс находится в нескольких группах или в отсеке нескольких ресурсов.

Помимо проверка наличия экспортированных файлов в учетной записи хранения, можно проверка $export состояние операции с помощью URL-адреса заголовкаContent-Location, возвращаемого в ответе службы FHIR. Дополнительные сведения см. в документации по запросу состояния массовых данных из HL7.

Экспорт данных FHIR в Data Lake Storage 2-го поколения

В настоящее время служба FHIR поддерживает $export Data Lake Storage 2-го поколения учетные записи со следующими ограничениями:

  • Data Lake Storage 2-го поколения предоставляет иерархические пространства имен, но в контейнере нет способа целевых $export операций для определенных подкаталогов. Служба FHIR может указать только целевой контейнер для экспорта, где создается новая папка для каждой $export операции.
  • $export После завершения операции все данные записываются в папку, служба FHIR не экспортирует ничего в ту папку, так как последующие экспорты в тот же контейнер будут находиться внутри только что созданной папки.

Сведения о экспорте данных в учетную запись хранения за брандмауэром см. в разделе "Настройка параметров для экспорта".

Настройки и параметры

Заголовки

Для заданий необходимо задать $export два обязательных параметра заголовка. Значения задаются в соответствии с текущей спецификацией $export HL7.

  • Примите: application/fhir+json
  • Предпочитать: respond-async

Параметры запроса

Служба FHIR поддерживает следующие параметры запроса для фильтрации экспортированных данных. Все эти параметры являются необязательными.

Параметр запроса Определяется спецификацией FHIR? Description
_outputFormat Да В настоящее время поддерживается три значения для выравнивания по спецификации FHIR: application/fhir+ndjson, application/ndjsonили просто ndjson. Все задания экспорта возвращают .ndjson файлы, и переданное значение не влияет на поведение кода.
_since Да Позволяет экспортировать только те ресурсы, которые были изменены с указанного времени.
_type Да Позволяет указать, какие типы ресурсов будут включены. Например, _type=Patient будет возвращать только ресурсы пациентов.
_typeFilter Да Чтобы запросить более детальное фильтрацию, можно использовать _typeFilter вместе с параметром _type . Значение _typeFilter параметра — это разделенный запятыми список запросов FHIR, которые дополнительно ограничивают результаты.
_container No Указывает имя контейнера в настроенной учетной записи хранения, в которой должны экспортироваться данные. Если указан контейнер, данные будут экспортированы в папку в этом контейнере. Если контейнер не указан, данные будут экспортированы в новый контейнер с автоматически созданным именем.
_till No Позволяет экспортировать ресурсы, которые были изменены до указанного времени. Этот параметр применим только к экспорту на уровне системы. В этом случае, если исторические версии не были отключены или удалены, экспорт гарантирует истинное представление моментальных снимков или, другими словами, позволяет перемещаться по времени.
includeAssociatedData No Позволяет экспортировать журнал и обратимо удаленные ресурсы. Этот фильтр не работает с параметром запроса _typeFilter. Включите значение как "_history" для экспорта журналов или не последних версий ресурсов. Включите значение как "_deleted" для экспорта обратимо удаленных ресурсов.

Примечание.

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

Устранение неполадок

Следующие сведения помогут устранить проблемы с экспортом данных FHIR.

Задания застряли в плохом состоянии

В некоторых ситуациях возможно, что задание зависло в плохом состоянии, в то время как служба FHIR пытается экспортировать данные. Это может произойти, особенно если разрешения учетной записи Data Lake Storage 2-го поколения не настроены правильно.

Один из способов проверка состояние $export операции — перейти в браузер хранилища учетной записи хранения и узнать, присутствуют ли файлы .ndjson в контейнере экспорта. Если файлы отсутствуют и другие $export задания не выполняются, возможно, что текущее задание зависло в плохом состоянии. В этом случае задание можно отменить $export , вызвав API службы FHIR с запросом DELETE . Позже вы можете повторно выполнить задание и повторить попытку $export .

Дополнительные сведения об отмене $export операции см. в документации по запросу на удаление массовых данных из HL7.

Примечание.

В службе FHIR время $export простоя операции в плохом состоянии составляет 10 минут до остановки операции и перехода на новое задание.

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

В этой статье вы узнали об экспорте ресурсов FHIR с помощью $export операции. Сведения о настройке и использовании дополнительных параметров экспорта см. в следующем разделе:

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