BigQuery'ye FHIR (Hızlı Sağlık Hizmetleri Birlikte Çalışabilirlik Kaynakları) aktarma

1. Giriş

1f4764c4ca4c50d9.png

Son Güncelleme: 16.05.2020

Bu codelab'de, FHIR R4 biçimli sağlık hizmeti verilerini (Normal Kaynaklar) Cloud Healthcare FHIR API'lerini kullanarak BigQuery'ye aktarmak için kullanılacak bir veri kullanımı kalıbı gösterilmiştir. Gerçekçi sağlık hizmetleri test verileri oluşturuldu ve sizin için Google Cloud Storage paketinde (gs://hcls_testing_data_fhir_10_patients/) kullanıma sunuldu.

Bu kod laboratuvarında şunları öğreneceksiniz:

  • FHIR R4 kaynaklarını GCS'den Cloud Healthcare FHIR Deposu'na aktarma.
  • FHIR verilerini FHIR Deposu'ndan BigQuery'deki bir veri kümesine aktarma.

Bu demoyu çalıştırmak için nelere ihtiyacınız var?

  • Bir GCP projesine erişiminiz olmalıdır.
  • GCP projesinde Sahip rolü atanmış olmalıdır.
  • NDJSON biçimindeki FHIR R4 kaynakları (content-structure=SOURCE)

GCP Projeniz yoksa yeni bir GCP projesi oluşturmak için bu adımları uygulayın.

NDJSON biçimindeki FHIR R4 kaynakları, aşağıdaki konumlardaki GCS paketine önceden yüklenmiştir:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ - Normal Kaynaklar

Yukarıdaki kaynakların tümü yeni satır ayırıcı JSON (NDJSON) dosya biçimine ancak farklı içerik yapılarına sahiptir:

  • ndjson biçiminde Normal Kaynaklar: Dosyadaki her satır JSON biçiminde (ör. Hasta, Gözlem) temel bir FHIR kaynağı içerir. Her ndjson dosyası, aynı kaynak türünde FHIR kaynakları içerir. Örneğin Patient.ndjson, resourceType = " Patient" olan bir veya daha fazla FHIR kaynağı içerir. ve Observation.ndjson, resourceType = " Observation" olan bir veya daha fazla FHIR kaynağı içerir.

Yeni bir veri kümesine ihtiyacınız olursa dilediğiniz zaman SyntheaTM'yi kullanarak veri kümesi oluşturabilirsiniz. Ardından, codelab'de sağlanan paketi kullanmak yerine GCS'ye yükleyin.

2. Proje Ayarları

Healthcare API'yi etkinleştirmek ve gerekli izinleri vermek için şu adımları uygulayın:

Ortamınız için kabuk değişkenlerini başlatma

PROJECT_NUMBER ve PROJECT_ID'yi bulmak için Projeleri tanımlama başlıklı bölüme bakın.

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

Healthcare API'yi etkinleştirme

Aşağıdaki adımlar, GCP Projenizde Healthcare API'lerini etkinleştirir. Bu işlem, Healthcare API hizmet hesabını projeye ekler.

  1. GCP Console API Kitaplığı'na gidin.
  2. Proje listesinden projenizi seçin.
  3. API Kitaplığı'nda, etkinleştirmek istediğiniz API'yi seçin. API'yi bulma konusunda yardıma ihtiyacınız varsa arama alanını ve filtreleri kullanın.
  4. API sayfasında ETKİNLEŞTİR'i tıklayın.

Yapay veri kümesine erişim elde etme

  1. Cloud Console'a giriş yapmak için kullandığınız e-posta adresinden hcls-solutions-external+subscribe@google.com adresine katılma isteğinde bulunan bir e-posta gönderin.
  2. İşlemi nasıl onaylayacağınıza ilişkin talimatları içeren bir e-posta alacaksınız.
  3. Gruba katılmak için e-postayı yanıtlama seçeneğini kullanın.
  4. 525a0fa752e0acae.png düğmesini TIKLAMAYIN. İşe yaramıyor.
  5. Onay e-postasını aldıktan sonra, codelab'de bir sonraki adıma geçebilirsiniz.

GCP Projenizde bir Google Cloud Storage paketi oluşturma

gsutil mb gs://$BUCKET_NAME

Yapay verileri GCP Projenize kopyalama

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

İzin Verme

FHIR kaynaklarını Cloud Storage'dan içe aktarmadan ve BigQuery'ye aktarmadan önce Cloud Healthcare Hizmet Aracısı hizmet hesabına ek izinler vermeniz gerekir. Daha fazla bilgi için FHIR deposu Cloud Storage ve FHIR deposu BigQuery izinlerine bakın.

Depolama Alanı Yöneticisi İzni Ver

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

BigQuery Yönetici İzinleri Verme

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

3. Ortam Kurulumu

Cloud Healthcare FHIR API'lerini kullanarak NDJSON dosyalarından BigQuery'deki sağlık hizmetleri veri kümesine veri aktarmak için aşağıdaki adımları uygulayın:

Sağlık Hizmetleri Veri Kümesi ve FHIR Deposu oluşturma

Cloud Healthcare API'lerini kullanarak Healthcare veri kümesi oluşturma

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

Cloud Healthcare API'lerini kullanarak veri kümesinde FHIR Deposu oluşturma

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

4. Verileri FHIR Deposu'na aktar

Test verilerini Google Cloud Storage'dan FHIR Store'a aktarın.

GCS Paketi'nden önceden yüklenmiş dosyaları kullanacağız. Bu dosyalar, NDJSON biçiminde FHIR R4 normal kaynakları içerir. Yanıt olarak, doğrulama adımında kullanabileceğiniz OPERATION_NUMBER hatasını alırsınız.

GCP Projenizdeki GCS Paketinden Normal Kaynakları İçe Aktarın

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

Doğrula

Doğrulama işlemi başarıyla tamamlandı. İşlemin tamamlanması birkaç dakika sürebilir. Bu nedenle, bu komutu biraz gecikmeyle birkaç kez tekrarlamanız gerekebilir.

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

5. FHIR Deposu'ndan BigQuery'ye veri aktarma

BigQuery veri kümesi oluşturma

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

Sağlık hizmeti verilerini FHIR Mağazası'ndan BigQuery Veri Kümesine aktarma

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

Yanıt olarak, doğrulama adımında kullanabileceğiniz OPERATION_NUMBER hatasını alırsınız.

Doğrula

Doğrulama işlemi başarıyla tamamlandı

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

BigQuery veri kümesinin 16 tablonun tümünü içerip içermediğini doğrulama

bq ls $PROJECT_ID:$BQ_DATASET

6. Temizleme

Bu eğitimde kullanılan kaynaklar için Google Cloud Platform hesabınızın ücretlendirilmesini önlemek amacıyla GCP'de oluşturduğunuz kaynakları temizleyebilirsiniz. Böylece, kotanız yer kaplamaz ve gelecekte bunlar için faturalandırılmazsınız. Aşağıdaki bölümlerde bu kaynakların nasıl silineceği veya devre dışı bırakılacağı açıklanmaktadır.

Projeyi silme

Faturalandırmayı ortadan kaldırmanın en kolay yolu, eğitim için oluşturduğunuz projeyi silmektir.

Projeyi silmek için:

  1. GCP Console'da Projeler sayfasına gidin. PROJELER SAYFASINA GİDİN
  2. Proje listesinde, silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
  3. İletişim kutusuna proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.

Projeyi tutmanız gerekiyorsa aşağıdaki talimatları uygulayarak Cloud Healthcare veri kümesini ve BigQuery veri kümesini silebilirsiniz.

Cloud Healthcare API veri kümesini silme

Hem GCP Console hem de gcloud KSA'yı kullanarak Healthcare API veri kümesini silmek için adımları uygulayın.

Hızlı CLI komutu:

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

BigQuery veri kümesini silme

Farklı arayüzler kullanarak BigQuery veri kümesini silme adımlarını uygulayın.

Hızlı CLI komutu:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Tebrikler

Tebrikler, Cloud Healthcare API'lerini kullanarak sağlık verilerini BigQuery'ye aktarmak için kod laboratuvarını başarıyla tamamladınız.

FHIR R4 uyumlu sentetik verileri Google Cloud Storage'dan Cloud Healthcare FHIR API'lerine aktardınız.

Cloud Healthcare FHIR API'lerinden BigQuery'ye veri aktardınız.

Artık Google Cloud Platform'da BigQuery ile Sağlık Hizmetleri Veri Analizi yolculuğunuza başlamak için gereken temel adımları biliyorsunuz.