Прием FHIR (ресурсы по совместимости в сфере быстрого здравоохранения) в BigQuery

1. Введение

1f4764c4ca4c50d9.png

Последнее обновление: 16.05.2020

В этом практическом занятии демонстрируется шаблон загрузки данных для импорта медицинских данных в формате FHIR R4 (обычные ресурсы) в BigQuery с использованием API Cloud Healthcare FHIR. Реалистичные данные медицинских тестов были сгенерированы и предоставлены в хранилище Google Cloud Storage ( gs://hcls_testing_data_fhir_10_patients/) .

В этой практической работе по программированию вы узнаете:

  • Как импортировать ресурсы FHIR R4 из GCS в хранилище FHIR Cloud Healthcare.
  • Как экспортировать данные FHIR из хранилища FHIR в набор данных в BigQuery.

Что вам понадобится для запуска этой демонстрации?

  • Вам необходим доступ к проекту GCP.
  • Для участия в проекте GCP вам должна быть назначена роль владельца.
  • Ресурсы FHIR R4 в формате NDJSON (content-structure=RESOURCE)

Если у вас нет проекта GCP, выполните следующие шаги для создания нового проекта GCP.

Ресурсы FHIR R4 в формате NDJSON предварительно загружены в хранилище GCS по следующим адресам:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ - Регулярные ресурсы

Все перечисленные выше ресурсы имеют новый формат JSON с разделителями строк (NDJSON), но различную структуру содержимого:

  • Обычные ресурсы в формате ndjson — каждая строка в файле содержит основной ресурс FHIR в формате JSON (например, Patient , Observation и т. д.). Каждый файл ndjson содержит ресурсы FHIR одного и того же типа. Например, файл Patient.ndjson будет содержать один или несколько ресурсов FHIR с resourceType = ' Patient ', а файл Observation.ndjson будет содержать один или несколько ресурсов FHIR с resourceType = ' Observation '.

Если вам нужен новый набор данных, вы всегда можете сгенерировать его с помощью Synthea™ . Затем загрузите его в GCS вместо использования хранилища, предоставленного в кодовой лаборатории.

2. Настройка проекта

Выполните следующие шаги, чтобы включить Healthcare API и предоставить необходимые разрешения:

Инициализируйте переменные оболочки для вашей среды.

Чтобы найти номер проекта (PROJECT_NUMBER) и идентификатор проекта (PROJECT_ID ), обратитесь к разделу «Идентификация проектов» .

<!-- CODELAB: Initialize shell variables -->
export PROJECT_ID=<PROJECT_ID>
export PROJECT_NUMBER=<PROJECT_NUMBER>
export SRC_BUCKET_NAME=hcls_testing_data_fhir_10_patients
export BUCKET_NAME=<BUCKET_NAME>
export DATASET_ID=<DATASET_ID>
export FHIR_STORE=<FHIR_STORE>
export BQ_DATASET=<BQ_DATASET>

Включить API для здравоохранения

Выполнение следующих шагов позволит включить API для здравоохранения в вашем проекте GCP. Это добавит учетную запись службы API для здравоохранения в проект.

  1. Перейдите в библиотеку API консоли GCP .
  2. Выберите свой проект из списка проектов.
  3. В библиотеке API выберите API, который хотите включить. Если вам нужна помощь в поиске API, воспользуйтесь полем поиска и фильтрами.
  4. На странице API нажмите «Включить» .

Получите доступ к синтетическому набору данных.

  1. Отправьте письмо на адрес hcls-solutions-external+subscribe@google.com с того адреса электронной почты, который вы используете для входа в Cloud Console, с просьбой о присоединении.
  2. Вы получите электронное письмо с инструкциями по подтверждению действия.
  3. Воспользуйтесь возможностью ответить на электронное письмо, чтобы присоединиться к группе.
  4. НЕ нажимайте на 525a0fa752e0acae.png Кнопка. Она не работает.
  5. После получения подтверждающего письма вы можете перейти к следующему шагу в практическом задании.

Создайте корзину Google Cloud Storage в своем проекте GCP.

gsutil mb gs://$BUCKET_NAME

Скопируйте синтетические данные в свой проект GCP.

gsutil -m cp gs://$SRC_BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
gs://$BUCKET_NAME/fhir_r4_ndjson/

Предоставление разрешений

Перед импортом ресурсов FHIR из Cloud Storage и экспортом в BigQuery необходимо предоставить дополнительные разрешения учетной записи службы Cloud Healthcare Service Agent . Дополнительную информацию см. в разделах «Разрешения для хранилища FHIR в Cloud Storage» и «Разрешения для хранилища FHIR в BigQuery» .

Предоставить права администратора хранилища

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/storage.objectViewer

Предоставьте BigQuery права администратора.

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member=serviceAccount:service-$PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
  --role=roles/bigquery.admin

3. Настройка среды

Выполните следующие шаги, чтобы загрузить данные из файлов NDJSON в набор данных по здравоохранению в BigQuery, используя API Cloud Healthcare FHIR:

Создание набора данных по здравоохранению и хранилища FHIR.

Создание набора данных по здравоохранению с использованием API облачных сервисов здравоохранения.

gcloud beta healthcare datasets create $DATASET_ID --location=us-central1

Создание хранилища FHIR в наборе данных с использованием API облачных медицинских учреждений.

gcloud beta healthcare fhir-stores create $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --version=r4

4. Импортируйте данные в магазин FHIR.

Импорт тестовых данных из Google Cloud Storage в FHIR Store .

Мы будем использовать предварительно загруженные файлы из хранилища GCS. Эти файлы содержат стандартные ресурсы FHIR R4 в формате NDJSON. В ответ вы получите OPERATION_NUMBER, который можно использовать на этапе проверки.

Импортируйте стандартные ресурсы из хранилища GCS в свой проект GCP.

gcloud beta healthcare fhir-stores import gcs $FHIR_STORE \
  --dataset=$DATASET_ID --async \
  --gcs-uri=gs://$BUCKET_NAME/fhir_r4_ndjson/**.ndjson \
  --location=us-central1 --content-structure=RESOURCE

Проверить

Операция проверки успешно завершена. Для её выполнения может потребоваться несколько минут, поэтому, возможно, вам потребуется повторить эту команду несколько раз с некоторой задержкой.

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

5. Экспорт данных из хранилища FHIR в BigQuery

Создайте набор данных BigQuery.

bq mk --location=us --dataset $PROJECT_ID:$BQ_DATASET

Экспорт данных о здравоохранении из хранилища FHIR в набор данных BigQuery.

gcloud beta healthcare fhir-stores export bq $FHIR_STORE \
  --dataset=$DATASET_ID --location=us-central1 --async \
  --bq-dataset=bq://$PROJECT_ID.$BQ_DATASET \
  --schema-type=analytics

В ответ вы получите OPERATION_NUMBER, который можно использовать на этапе проверки.

Проверить

Проверка успешного завершения операции

gcloud beta healthcare operations describe OPERATION_NUMBER \
  --dataset=$DATASET_ID --location=us-central1

Проверьте, содержит ли набор данных BigQuery все 16 таблиц.

bq ls $PROJECT_ID:$BQ_DATASET

6. Уборка

Чтобы избежать списания средств с вашего аккаунта Google Cloud Platform за ресурсы, используемые в этом руководстве, вы можете удалить созданные вами ресурсы в GCP, чтобы они не занимали вашу квоту, и вам не выставлялись за них счета в будущем. В следующих разделах описано, как удалить или отключить эти ресурсы.

Удалить проект

Самый простой способ избежать выставления счетов — удалить проект, созданный для этого урока.

Чтобы удалить проект:

  1. В консоли GCP перейдите на страницу «Проекты» . ПЕРЕЙДИТЕ НА СТРАНИЦУ ПРОЕКТОВ
  2. В списке проектов выберите проект, который хотите удалить, и нажмите «Удалить» .
  3. В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить» , чтобы удалить проект.

Если вам необходимо сохранить проект, вы можете удалить набор данных Cloud healthcare и набор данных BigQuery, следуя приведенным ниже инструкциям.

Удалите набор данных Cloud Healthcare API.

Выполните следующие действия , чтобы удалить набор данных Healthcare API, используя как консоль GCP, так и интерфейс командной строки gcloud.

Быстрая команда командной строки:

gcloud beta healthcare datasets delete $DATASET_ID --location=us-central1

Удалите набор данных BigQuery.

Выполните следующие действия , чтобы удалить набор данных BigQuery, используя различные интерфейсы.

Быстрая команда командной строки:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Поздравляем!

Поздравляем, вы успешно завершили практическое задание по загрузке медицинских данных в BigQuery с использованием облачных API для здравоохранения.

Вы импортировали синтетические данные, соответствующие стандарту FHIR R4, из Google Cloud Storage в API Cloud Healthcare FHIR.

Вы экспортировали данные из API Cloud Healthcare FHIR в BigQuery.

Теперь вы знаете ключевые шаги, необходимые для начала работы с BigQuery на платформе Google Cloud Platform в сфере анализа данных в здравоохранении.