Экспорт данных 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}}
). Примечание. Чтобы указать {{containerName}}
этот запрос, необходимо создать контейнер в учетной записи Data Lake Storage 2-го поколения.
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
, отправив запрос DELETE на URL-адрес, указанный в заголовке Content-Location, чтобы отменить запрос.
Примечание.
В службе FHIR время $export
простоя операции в плохом состоянии составляет 10 минут до остановки операции и перехода на новое задание.
Следующие шаги
В этой статье вы узнали об экспорте ресурсов FHIR с помощью $export
операции. Сведения о настройке и использовании других параметров экспорта см. в следующем разделе:
Примечание.
FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешением HL7 .