Menyerap FHIR (Fast Healthcare Interoperability Resources) ke BigQuery

1. Pengantar

1f4764c4ca4c50d9.png

Terakhir Diperbarui: 16-05-2020

Codelab ini menunjukkan pola penyerapan data untuk menyerap data kesehatan berformat FHIR R4 (Regular Resources) ke BigQuery menggunakan Cloud Healthcare FHIR API. Data pengujian layanan kesehatan yang realistis telah dibuat dan tersedia di bucket Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/) untuk Anda.

Dalam codelab ini, Anda akan mempelajari:

  • Cara mengimpor resource FHIR R4 dari GCS ke Cloud Healthcare FHIR Store.
  • Cara mengekspor data FHIR dari FHIR Store ke Set Data di BigQuery.

Apa yang Anda butuhkan untuk menjalankan demo ini?

  • Anda memerlukan akses ke Project GCP.
  • Anda harus diberi peran Pemilik untuk Project GCP.
  • Resource FHIR R4 dalam format NDJSON (content-structure=RESOURCE)

Jika Anda tidak memiliki Project GCP, ikuti langkah-langkah ini untuk membuat Project GCP baru.

Resource FHIR R4 dalam format NDJSON telah dimuat sebelumnya ke dalam bucket GCS di lokasi berikut:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ - Regular Resources

Semua resource di atas memiliki format file JSON dengan pembatas baris baru (NDJSON), tetapi struktur kontennya berbeda:

  • Regular Resources dalam format ndjson - setiap baris dalam file berisi resource FHIR inti dalam format JSON (seperti Patient, Observation, dll.). Setiap file ndjson berisi resource FHIR dengan jenis resource yang sama. Misalnya, Patient.ndjson akan berisi satu atau beberapa resource FHIR dengan resourceType = ‘ Patient' dan Observation.ndjson akan berisi satu atau beberapa resource FHIR dengan resourceType = ‘ Observation'.

Jika memerlukan set data baru, Anda dapat membuatnya kapan saja menggunakan SyntheaTM. Kemudian, upload ke GCS, bukan menggunakan bucket yang disediakan di codelab.

2. Penyiapan Project

Ikuti langkah-langkah berikut untuk mengaktifkan Healthcare API dan memberikan izin yang diperlukan:

Menginisialisasi variabel shell untuk lingkungan Anda

Untuk menemukan PROJECT_NUMBER dan PROJECT_ID, lihat Mengidentifikasi project.

<!-- 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>

Mengaktifkan Healthcare API

Langkah-langkah berikut akan mengaktifkan Healthcare API di Project GCP Anda. Tindakan ini akan menambahkan akun layanan Healthcare API ke project.

  1. Buka Library API Konsol GCP.
  2. Dari daftar project, pilih project Anda.
  3. Di Library API, pilih API yang ingin Anda aktifkan. Jika Anda memerlukan bantuan untuk menemukan API, gunakan kolom penelusuran dan filter.
  4. Di halaman API, klik ENABLE.

Mendapatkan akses ke set data sintetis

  1. Dari alamat email yang Anda gunakan untuk login ke Konsol Cloud, kirim email ke hcls-solutions-external+subscribe@google.com untuk meminta bergabung.
  2. Anda akan menerima email berisi petunjuk tentang cara mengonfirmasi tindakan tersebut.
  3. Gunakan opsi untuk membalas email guna bergabung dengan grup.
  4. JANGAN klik tombol 525a0fa752e0acae.png. Tidak berfungsi.
  5. Setelah menerima email konfirmasi, Anda dapat melanjutkan ke langkah berikutnya dalam codelab.

Buat bucket Google Cloud Storage di Project GCP Anda

gsutil mb gs://$BUCKET_NAME

Menyalin data sintetis ke Project GCP Anda

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

Memberikan Izin

Sebelum mengimpor resource FHIR dari Cloud Storage dan mengekspor ke BigQuery, Anda harus memberikan izin tambahan ke akun layanan Cloud Healthcare Service Agent. Untuk mengetahui informasi selengkapnya, lihat izin Cloud Storage FHIR store dan BigQuery FHIR store.

Memberikan Izin Admin Penyimpanan

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

Memberikan Izin Admin 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. Penyiapan Lingkungan

Ikuti langkah-langkah berikut untuk menyerap data dari file NDJSON ke set data kesehatan di BigQuery menggunakan Cloud Healthcare FHIR API:

Membuat Set Data Layanan Kesehatan dan FHIR Store

Buat set data Healthcare menggunakan Cloud Healthcare API

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

Membuat Penyimpanan FHIR di set data menggunakan Cloud Healthcare API

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

4. Mengimpor data ke FHIR Store

Mengimpor data pengujian dari Google Cloud Storage ke FHIR Store.

Kita akan menggunakan file yang sudah dimuat sebelumnya dari Bucket GCS. File ini berisi resource reguler FHIR R4 dalam format NDJSON. Sebagai respons, Anda akan mendapatkan OPERATION_NUMBER, yang dapat digunakan dalam langkah validasi.

Mengimpor Resource Reguler dari Bucket GCS di Project GCP Anda

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

Validasi

Operasi validasi berhasil diselesaikan. Mungkin perlu waktu beberapa menit untuk menyelesaikan operasi ini, jadi Anda mungkin perlu mengulangi perintah ini beberapa kali dengan jeda.

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

5. Mengekspor data dari FHIR Store ke BigQuery

Membuat Set Data BigQuery

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

Mengekspor data kesehatan dari FHIR Store ke Dataset 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

Sebagai respons, Anda akan mendapatkan OPERATION_NUMBER, yang dapat digunakan dalam langkah validasi.

Validasi

Operasi validasi berhasil diselesaikan

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

Memvalidasi apakah Set Data BigQuery memiliki semua 16 tabel

bq ls $PROJECT_ID:$BQ_DATASET

6. Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Platform Anda untuk resource yang digunakan dalam tutorial ini, Anda dapat membersihkan resource yang Anda buat di GCP sehingga tidak akan menggunakan kuota Anda, dan Anda tidak akan ditagih untuk resource tersebut di masa mendatang. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

Untuk menghapus project:

  1. Di Konsol GCP, buka halaman Project. BUKA HALAMAN PROJECT
  2. Dalam daftar project, pilih project yang ingin dihapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Jika Anda perlu menyimpan project, Anda dapat menghapus set data Cloud Healthcare dan set data BigQuery menggunakan petunjuk berikut.

Hapus set data Cloud Healthcare API

Ikuti langkah-langkah untuk menghapus set data Healthcare API menggunakan GCP Console dan gcloud CLI.

Perintah CLI cepat:

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

Menghapus set data BigQuery

Ikuti langkah-langkah untuk menghapus set data BigQuery menggunakan antarmuka yang berbeda.

Perintah CLI cepat:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Selamat

Selamat, Anda telah berhasil menyelesaikan codelab untuk menyerap data kesehatan di BigQuery menggunakan Cloud Healthcare API.

Anda mengimpor data sintetis yang kompatibel dengan FHIR R4 dari Google Cloud Storage ke Cloud Healthcare FHIR API.

Anda mengekspor data dari FHIR API Cloud Healthcare ke BigQuery.

Sekarang Anda mengetahui langkah-langkah utama yang diperlukan untuk memulai perjalanan Analisis Data Layanan Kesehatan dengan BigQuery di Google Cloud Platform.