FHIR (Fast Healthcare Interoperability Resources) in BigQuery aufnehmen

1. Einführung

1f4764c4ca4c50d9.png

Zuletzt aktualisiert: 16.05.2020

In diesem Codelab wird ein Muster für die Datenaufnahme gezeigt, mit dem Gesundheitsdaten im FHIR R4-Format (reguläre Ressourcen) mit den Cloud Healthcare FHIR-APIs in BigQuery aufgenommen werden. Es wurden realistische Gesundheitsdaten für Tests generiert und im Google Cloud Storage-Bucket gs://hcls_testing_data_fhir_10_patients/) für Sie bereitgestellt.

In diesem Codelab lernen Sie Folgendes:

  • FHIR R4-Ressourcen aus GCS in den Cloud Healthcare FHIR-Speicher importieren
  • FHIR-Daten aus dem FHIR-Speicher in ein Dataset in BigQuery exportieren

Was benötige ich, um diese Demo auszuführen?

  • Sie benötigen Zugriff auf ein GCP-Projekt.
  • Sie müssen dem GCP-Projekt die Rolle „Inhaber“ zugewiesen haben.
  • FHIR R4-Ressourcen im NDJSON-Format (content-structure=RESOURCE)

Wenn Sie kein GCP-Projekt haben, erstellen Sie ein neues.

FHIR R4-Ressourcen im NDJSON-Format wurden an den folgenden Speicherorten in den GCS-Bucket vorab geladen:

  • gs://hcls_testing_data_fhir_10_patients/fhir_r4_ndjson/ – Reguläre Ressourcen

Alle oben genannten Ressourcen haben das Dateiformat JSON mit Zeilenumbrüchen als Trennzeichen (NDJSON), aber eine unterschiedliche Inhaltsstruktur:

  • Reguläre Ressourcen im NDJSON-Format: Jede Zeile in der Datei enthält eine FHIR-Kernressource im JSON-Format (z. B. Patient, Observation usw.). Jede NDJSON-Datei enthält FHIR-Ressourcen desselben Ressourcentyps. Die Datei „Patient.ndjson“ enthält beispielsweise eine oder mehrere FHIR-Ressourcen vom Typ „resourceType“ = „ Patient“ und die Datei „Observation.ndjson“ eine oder mehrere FHIR-Ressourcen vom Typ „resourceType“ = „ Observation“.

Wenn Sie ein neues Dataset benötigen, können Sie es jederzeit mit SyntheaTM generieren. Laden Sie es dann in GCS hoch, anstatt den im Codelab bereitgestellten Bucket zu verwenden.

2. Projekt einrichten

Führen Sie die folgenden Schritte aus, um die Healthcare API zu aktivieren und die erforderlichen Berechtigungen zu erteilen:

Shell-Variablen für Ihre Umgebung initialisieren

Wie Sie die PROJECT_NUMBER und PROJECT_ID herausfinden, erfahren Sie unter Projekte identifizieren.

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

Mit den folgenden Schritten aktivieren Sie Healthcare APIs in Ihrem GCP-Projekt. Dadurch wird dem Projekt das Dienstkonto der Healthcare API hinzugefügt.

  1. Rufen Sie die API-Bibliothek der GCP Console auf.
  2. Wählen Sie Ihr Projekt aus der Projektliste aus.
  3. Wählen Sie in der API-Bibliothek die API aus, die Sie aktivieren möchten. Wenn Sie Hilfe bei der Suche nach der API benötigen, verwenden Sie das Suchfeld und die Filter.
  4. Klicken Sie auf der API-Seite auf AKTIVIEREN.

Zugriff auf das synthetische Dataset erhalten

  1. Senden Sie von der E-Mail-Adresse, mit der Sie sich in der Cloud Console anmelden, eine E-Mail an hcls-solutions-external+subscribe@google.com, um eine Beitrittsanfrage zu senden.
  2. Sie erhalten eine E‑Mail mit einer Anleitung, wie Sie die Aktion bestätigen können.
  3. Verwenden Sie die Option, um auf die E‑Mail zu antworten und der Gruppe beizutreten.
  4. Klicken Sie NICHT auf die Schaltfläche 525a0fa752e0acae.png. Es funktioniert nicht.
  5. Sobald Sie die Bestätigungs-E-Mail erhalten haben, können Sie mit dem nächsten Schritt im Codelab fortfahren.

Google Cloud Storage-Bucket in Ihrem GCP-Projekt erstellen

gsutil mb gs://$BUCKET_NAME

Synthetische Daten in Ihr GCP-Projekt kopieren

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

Berechtigungen erteilen

Bevor Sie FHIR-Ressourcen aus Cloud Storage importieren und nach BigQuery exportieren, müssen Sie dem Dienstkonto Cloud Healthcare Service Agent zusätzliche Berechtigungen erteilen. Weitere Informationen finden Sie unter Cloud Storage-Berechtigungen für FHIR-Speicher und BigQuery-Berechtigungen für FHIR-Speicher.

Storage-Administratorberechtigung gewähren

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

BigQuery-Administratorberechtigungen erteilen

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

3. Umgebung einrichten

Führen Sie die folgenden Schritte aus, um Daten aus NDJSON-Dateien in ein Gesundheitsdatenset in BigQuery aufzunehmen. Verwenden Sie dazu die Cloud Healthcare FHIR APIs:

Healthcare-Dataset und FHIR-Speicher erstellen

Healthcare-Dataset mit Cloud Healthcare APIs erstellen

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

FHIR-Speicher im Dataset mit Cloud Healthcare APIs erstellen

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

4. Daten in FHIR-Speicher importieren

Testdaten aus Google Cloud Storage in den FHIR-Speicher importieren

Wir verwenden vorab geladene Dateien aus dem GCS-Bucket. Diese Dateien enthalten reguläre FHIR R4-Ressourcen im NDJSON-Format. Als Antwort erhalten Sie OPERATION_NUMBER, die im Validierungsschritt verwendet werden kann.

Reguläre Ressourcen aus dem GCS-Bucket in Ihrem GCP-Projekt importieren

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

Validieren

Der Validierungsvorgang wurde abgeschlossen. Es kann einige Minuten dauern, bis der Vorgang abgeschlossen ist. Möglicherweise müssen Sie diesen Befehl also einige Male mit einer gewissen Verzögerung wiederholen.

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

5. Daten aus dem FHIR-Speicher nach BigQuery exportieren

BigQuery-Dataset erstellen

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

Gesundheitsdaten aus dem FHIR-Speicher in ein BigQuery-Dataset exportieren

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

Als Antwort erhalten Sie OPERATION_NUMBER, die im Validierungsschritt verwendet werden kann.

Validieren

Validierungsvorgang erfolgreich abgeschlossen

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

Prüfen, ob das BigQuery-Dataset alle 16 Tabellen enthält

bq ls $PROJECT_ID:$BQ_DATASET

6. Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie die in der GCP erstellten Ressourcen bereinigen, damit sie kein Kontingent verbrauchen und Ihnen nicht später in Rechnung gestellt werden. In den folgenden Abschnitten wird erläutert, wie Sie diese Ressourcen löschen oder deaktivieren.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.

So löschen Sie das Projekt:

  1. Rufen Sie in der GCP Console die Seite Projekte auf. ZUR SEITE „PROJEKTE“
  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

Wenn Sie das Projekt beibehalten möchten, können Sie das Cloud Healthcare-Dataset und das BigQuery-Dataset anhand der folgenden Anleitung löschen.

Dataset der Cloud Healthcare API löschen

Folgen Sie dieser Anleitung, um ein Healthcare API-Dataset mit der GCP Console und der gcloud CLI zu löschen.

Schnellbefehl für die Befehlszeile:

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

BigQuery-Dataset löschen

Folgen Sie der Anleitung, um BigQuery-Datasets über verschiedene Schnittstellen zu löschen.

Schnellbefehl für die Befehlszeile:

bq rm -r -f $PROJECT_ID:$DATASET_ID

7. Glückwunsch

Herzlichen Glückwunsch! Sie haben das Codelab zum Aufnehmen von Gesundheitsdaten in BigQuery mit Cloud Healthcare APIs erfolgreich abgeschlossen.

Sie haben FHIR R4-kompatible synthetische Daten aus Google Cloud Storage in die Cloud Healthcare FHIR-APIs importiert.

Sie haben Daten aus den Cloud Healthcare FHIR APIs nach BigQuery exportiert.

Sie kennen jetzt die wichtigsten Schritte, die erforderlich sind, um mit der Healthcare-Datenanalyse mit BigQuery auf der Google Cloud Platform zu beginnen.