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

1. Введение

1f4764c4ca4c50d9.png

Последнее обновление: 16 мая 2020 г.

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

В этой лабораторной работе по кодированию вы узнаете:

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

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

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

Если у вас нет проекта GCP, выполните следующие действия , чтобы создать новый проект GCP.

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

  • gs://hcls_testing_data_fhir_10_phases/fhir_r4_ndjson/ — Регулярные ресурсы

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

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

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

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. В проект будет добавлена ​​учетная запись службы Healthcare API.

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

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

  1. С адреса электронной почты, который вы используете для входа в Cloud Console, отправьте электронное письмо на адрес hcls-solutions-external+subscribe@google.com с просьбой присоединиться.
  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» и «Разрешения хранилища 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 FHIR Cloud Healthcare:

Создайте набор данных о здравоохранении и магазин FHIR.

Создайте набор данных о здравоохранении с помощью API Cloud Healthcare.

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

Создайте хранилище FHIR в наборе данных с помощью API Cloud Healthcare.

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

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

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

Мы будем использовать предварительно загруженные файлы из GCS Bucket. Эти файлы содержат обычные ресурсы 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 Health и набор данных BigQuery, используя следующие инструкции.

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

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

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

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

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

Следуйте инструкциям , чтобы удалить набор данных BigQuery, используя разные интерфейсы.

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

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Поздравления

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

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

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

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