1. Введение

Последнее обновление: 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 для здравоохранения в проект.
- Перейдите в библиотеку API консоли GCP .
- Выберите свой проект из списка проектов.
- В библиотеке API выберите API, который хотите включить. Если вам нужна помощь в поиске API, воспользуйтесь полем поиска и фильтрами.
- На странице API нажмите «Включить» .
Получите доступ к синтетическому набору данных.
- Отправьте письмо на адрес hcls-solutions-external+subscribe@google.com с того адреса электронной почты, который вы используете для входа в Cloud Console, с просьбой о присоединении.
- Вы получите электронное письмо с инструкциями по подтверждению действия.
- Воспользуйтесь возможностью ответить на электронное письмо, чтобы присоединиться к группе.
- НЕ нажимайте на
Кнопка. Она не работает. - После получения подтверждающего письма вы можете перейти к следующему шагу в практическом задании.
Создайте корзину 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, чтобы они не занимали вашу квоту, и вам не выставлялись за них счета в будущем. В следующих разделах описано, как удалить или отключить эти ресурсы.
Удалить проект
Самый простой способ избежать выставления счетов — удалить проект, созданный для этого урока.
Чтобы удалить проект:
- В консоли GCP перейдите на страницу «Проекты» . ПЕРЕЙДИТЕ НА СТРАНИЦУ ПРОЕКТОВ
- В списке проектов выберите проект, который хотите удалить, и нажмите «Удалить» .
- В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить» , чтобы удалить проект.
Если вам необходимо сохранить проект, вы можете удалить набор данных 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 в сфере анализа данных в здравоохранении.