FHIR-Ressourcen nach BigQuery exportieren

Auf dieser Seite wird erläutert, wie Sie FHIR-Ressourcen zur Untersuchung und Analyse nach BigQuery exportieren. Der Exportvorgang gibt 1 BigQuery aus für jeden FHIR-Ressourcentyp im FHIR-Speicher ermitteln.

Sie können BigQuery konfigurieren, um die Abfrageleistung zu verbessern und die Kosten zu senken Streaming in partitionierte Tabellen Für finden Sie unter FHIR-Ressourcen in partitionierte Tabellen exportieren

BigQuery-Berechtigungen festlegen

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

FHIR-Ressourcen exportieren

In den folgenden Beispielen wird gezeigt, wie Sie FHIR-Ressourcen in eine BigQuery-Tabelle exportieren.

Verwenden Sie beim Festlegen des BigQuery-Ziels den vollständig qualifizierten URI so:

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

Das Verhalten des Exportvorgangs kann je nach Folgenden Elementen variieren:

  • Gibt an, ob die Zieltabelle bereits vorhanden ist.
  • Ob Sie das Feld force festlegen.
  • Ob Sie eine Aufzählung in WriteDisposition angeben. Wenn Sie eine Aufzählung angeben, dürfen Sie das Feld force nicht festlegen.

Das Verhalten in den einzelnen Fällen ist so:

  • Wenn die Zieltabelle bereits vorhanden und für force der Wert true festgelegt ist, wird die vorhandene Tabelle vom Exportvorgang überschrieben.
  • Wenn die Zieltabelle bereits vorhanden ist und für force der Wert false festgelegt ist, tritt ein Fehler auf.
  • Wenn die Zieltabelle noch nicht vorhanden ist, wird vom Exportvorgang eine neue Tabelle erstellt, unabhängig davon, ob Sie das Feld force festlegen.
  • Wenn Sie WriteDisposition verwenden und die Zieltabelle bereits vorhanden und leer ist, wird der Exportvorgang erfolgreich abgeschlossen, anstatt einen Fehler zurückzugeben.

Der Vorgang gibt für jeden Ressourcentyp im FHIR-Speicher eine BigQuery-Tabelle aus.

Console

So exportieren Sie FHIR-Ressourcen nach BigQuery mithilfe der Führen Sie in der Google Cloud Console die folgenden Schritte aus:

  1. Rufen Sie in der Google Cloud Console die Seite Datasets auf.

    Zu Datasets

  2. Klicken Sie auf das Dataset, das den FHIR-Speicher mit den zu exportierenden Daten enthält.

  3. Öffnen Sie in der Zeile, die sich auch im FHIR-Speicher befindet, die Liste Aktionen und wählen Sie Exportieren aus.

  4. Suchen Sie auf der Seite FHIR-Ressourcen exportieren den Bereich Ziel auswählen. Wählen Sie BigQuery-Tabelle aus.

  5. Wählen Sie im Abschnitt Schreibanordnung für Zieltabelle die Option eine der folgenden Optionen, um das Verhalten des Exportvorgangs zu bestimmen:

    • Daten nur exportieren, wenn die Zieltabellen leer sind: Äquivalent: zur Auswahl der WRITE_EMPTY-Enum in WriteDisposition.
    • Daten an Zieltabellen anhängen: Dies entspricht dem Vorgang. zur Auswahl der WRITE_APPEND-Enum in WriteDisposition.
    • Alle vorhandenen Daten in Zieltabellen löschen, bevor die FHIR-Ressourcen geschrieben werden: Dies entspricht der Auswahl des WRITE_TRUNCATE-Eintrags in WriteDisposition.
  6. Klicken Sie im Abschnitt FHIR-Exportkonfiguration auf Durchsuchen, um wählen Sie das BigQuery-Projekt und das Dataset aus.

  7. Wählen Sie im Drop-down-Menü Schematyp das Ausgabeschema für die BigQuery-Tabelle. Die folgenden Schemas sind verfügbar:

    • Analytics: Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da BigQuery nur 10.000 Spalten pro Tabelle zulässt, werden keine Schemas für die Felder Parameters.parameter.resource, Bundle.entry.resource und Bundle.entry.response.outcome generiert.
    • Analytics Version 2: Ein Schema, das dem Analytics-Schema ähnelt, mit zusätzlicher Unterstützung für Folgendes: Das Analytics V2-Schema verwendet in der Zieltabelle mehr Speicherplatz als das Analytics-Schema.

  8. Wählen Sie im Schieberegler Rekursive Strukturtiefe eine Tiefe aus, um die Tiefe für alle rekursiven Strukturen im Ausgabeschema festzulegen. Standardmäßig ist der rekursive Wert 2.

    Weitere Informationen finden Sie unter recursiveStructureDepth.

  9. Klicken Sie auf Exportieren, um FHIR-Ressourcen nach BigQuery zu exportieren.

  10. Klicken Sie auf den Tab Vorgänge, um den Status des Vorgangs zu verfolgen. Wenn der Vorgang abgeschlossen ist, werden folgende Hinweise angezeigt:
    • Im Abschnitt Status: Lang andauernder Vorgang befindet sich unter der Überschrift OK ein grünes Häkchen.
    • Der Abschnitt Übersicht hat ein grünes Häkchen und einen OK-Indikator in der Zeile, in der sich auch die Vorgangs-ID befindet.
    Falls Fehler auftreten, klicken Sie auf Aktionen und dann auf Details in Cloud Logging ansehen.

gcloud

Um FHIR-Ressourcen nach BigQuery zu exportieren, führen Sie den gcloud healthcare fhir-stores export bq .

  1. Exportieren Sie die FHIR-Ressourcen.

    Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
    • FHIR_STORE_ID: die FHIR-Speicher-ID
    • BIGQUERY_DATASET_ID: der Name des vorhandenen BigQuery-Datasets, in das Sie FHIR-Ressourcen exportieren
    • SCHEMA_TYPE: ein Wert für SchemaType Verwenden Sie einen der folgenden Werte:
      • analytics. Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da BigQuery nur 10.000 Spalten pro Tabelle zulässt, werden keine Schemas für die Felder Parameters.parameter.resource, Bundle.entry.resource und Bundle.entry.response.outcome generiert.
      • analytics_v2 Ein Schema, das analytics ähnelt, mit zusätzlicher Unterstützung für Folgendes:

        analytics-v2 belegt mehr Speicherplatz in der Zieltabelle als analytics.

    • WRITE_DISPOSITION: ein Wert für WriteDisposition Verwenden Sie einen der folgenden Werte:
      • write-empty Exportieren Sie nur Daten, wenn die BigQuery-Zieltabellen leer sind.
      • write-truncate Löschen Sie alle vorhandenen Daten in den BigQuery-Tabellen, bevor Sie die FHIR-Ressourcen schreiben.
      • write-append Sie können Daten an die BigQuery-Zieltabellen anhängen.
    • FHIR_RESOURCE_TYPE: ein optionales Feld. Geben Sie einen oder mehrere durch Kommas getrennte FHIR-Ressourcentypen an, um nur FHIR-Ressourcen dieser Typen zu exportieren.
    • SINCE_TIMESTAMP: ein optionales Feld. Geben Sie einen Wert im Format YYYY-MM-DDThh:mm:ss.sss+zz:zz an, um nur FHIR-Ressourcen zu exportieren, die nach einem bestimmten Zeitpunkt aktualisiert wurden. Geben Sie die Uhrzeit auf die Sekunde genau an und geben Sie eine Zeitzone an. Zum Beispiel sind 2015-02-07T13:28:17.239+02:00 und 2017-01-01T00:00:00Z gültige Zeiten.

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder Cloud Shell

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID \
      --location=LOCATION \
      --dataset=DATASET_ID \
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID \
      --schema-type=SCHEMA_TYPE \
      --write-disposition=WRITE_DISPOSITION \
      --resource-type=FHIR_RESOURCE_TYPE \
      --since=SINCE_TIMESTAMP

    Windows (PowerShell)

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID `
      --location=LOCATION `
      --dataset=DATASET_ID `
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID `
      --schema-type=SCHEMA_TYPE `
      --write-disposition=WRITE_DISPOSITION `
      --resource-type=FHIR_RESOURCE_TYPE `
      --since=SINCE_TIMESTAMP

    Windows (cmd.exe)

    gcloud healthcare fhir-stores export bq FHIR_STORE_ID ^
      --location=LOCATION ^
      --dataset=DATASET_ID ^
      --bq-dataset=bq://PROJECT_ID.BIGQUERY_DATASET_ID ^
      --schema-type=SCHEMA_TYPE ^
      --write-disposition=WRITE_DISPOSITION ^
      --resource-type=FHIR_RESOURCE_TYPE ^
      --since=SINCE_TIMESTAMP
    Die Antwort lautet so: Die Antwort enthält eine Kennung für ein Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen sehr lange dauern kann. Der Befehl fragt den lang andauernden Vorgang ab gibt den Namen des Vorgangs im Feld name aus, nachdem der Export abgeschlossen ist. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

    Antwort

    Request issued for: [FHIR_STORE_ID]
    Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    

  2. Führen Sie den Befehl gcloud healthcare operations describe und geben Sie OPERATION_ID aus der Antwort an.

    Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder Cloud Shell

    gcloud healthcare operations describe OPERATION_ID \
        --project=PROJECT_ID \
        --dataset=DATASET_ID \
        --location=LOCATION

    Windows (PowerShell)

    gcloud healthcare operations describe OPERATION_ID `
        --project=PROJECT_ID `
        --dataset=DATASET_ID `
        --location=LOCATION

    Windows (cmd.exe)

    gcloud healthcare operations describe OPERATION_ID ^
        --project=PROJECT_ID ^
        --dataset=DATASET_ID ^
        --location=LOCATION

    Sie sollten eine Antwort ähnlich der folgenden erhalten:

    Antwort

    done: true
    // If there were any errors, an `error` field displays instead of a `response` field.
    // See Troubleshooting long-running operations for a list of response codes.
    error: ERROR
      code: ERROR_CODE
      message: DESCRIPTION
    metadata:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata'
      apiMethodName: 'google.cloud.healthcare.v1.fhir.FhirStoreService.ExportResources_bq'
      counter:
        success: 'SUCCESS_COUNT'
        // If there were any failures, they display in the `failure` field.
        failure: 'FAILURE_COUNT'
      createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    // The `response` field only displays if there were no errors.
    response:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.fhir.ExportResourcesResponse'
    

REST

Verwenden Sie zum Exportieren von FHIR-Ressourcen nach BigQuery die Methode projects.locations.datasets.fhirStores.export .

  1. Exportieren Sie die FHIR-Ressourcen:

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
    • FHIR_STORE_ID: die FHIR-Speicher-ID
    • BIGQUERY_DATASET_ID: der Name des vorhandenen BigQuery-Datasets, in das Sie FHIR-Ressourcen exportieren
    • SCHEMA_TYPE: ein Wert für SchemaType Verwenden Sie einen der folgenden Werte:
      • ANALYTICS Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da BigQuery nur 10.000 Spalten pro Tabelle zulässt, werden keine Schemas für die Felder Parameters.parameter.resource, Bundle.entry.resource und Bundle.entry.response.outcome generiert.
      • ANALYTICS_V2 Ein Schema, das ANALYTICS ähnelt, mit zusätzlicher Unterstützung für Folgendes:

        ANALYTICS_V2 verwendet in der Zieltabelle mehr Speicherplatz als ANALYTICS

        .
    • WRITE_DISPOSITION: ein Wert für WriteDisposition Verwenden Sie einen der folgenden Werte:
      • WRITE_EMPTY Exportieren Sie nur Daten, wenn die BigQuery-Zieltabellen leer sind.
      • WRITE_TRUNCATE Löschen Sie alle vorhandenen Daten in den BigQuery-Tabellen, bevor Sie die FHIR-Ressourcen schreiben.
      • WRITE_APPEND Sie können Daten an die BigQuery-Zieltabellen anhängen.
    • FHIR_RESOURCE_TYPE: ein optionales Feld. Geben Sie einen oder mehrere durch Kommas getrennte FHIR-Ressourcentypen an, um nur FHIR-Ressourcen dieser Typen zu exportieren.
    • SINCE_TIMESTAMP: ein optionales Feld. Geben Sie einen Wert im Format YYYY-MM-DDThh:mm:ss.sss+zz:zz an, um nur FHIR-Ressourcen zu exportieren, die nach einem bestimmten Zeitpunkt aktualisiert wurden. Geben Sie die Zeit bis auf die Sekunde an und fügen Sie eine Zeitzone hinzu. Beispiel: 2015-02-07T13:28:17.239+02:00 und 2017-01-01T00:00:00Z sind gültige Zeiten.

    JSON-Text der Anfrage:

    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand Content

    APIs Explorer

    Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für ein lang andauernden Vorgang ausführen. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie das Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, wird der lang andauernden Vorgang abgeschlossen ist.

FHIR-Ressourcen in partitionierte Tabellen exportieren

Wenn Sie FHIR-Ressourcen in partitionierte BigQuery-Tabellen exportieren möchten, legen Sie das TimePartitioning-Enum im Feld lastUpdatedPartitionConfig in Ihrem FHIR-Speicher fest.

Die partitionierten Tabellen funktionieren wie nach Zeiteinheit partitionierte Tabellen in BigQuery. Partitionierten Tabellen wurde die Spalte lastUpdated hinzugefügt. Diese ist ein Duplikat. der Spalte meta.lastUpdated, die aus dem Feld meta.lastUpdated in eine FHIR-Ressource. BigQuery verwendet die lastUpdated , um Tabellen nach Stunde, Tag, Monat oder Jahr zu partitionieren.

Weitere Informationen finden Sie unter Tägliche, stündliche, monatliche oder jährliche Partitionierung auswählen finden Sie Empfehlungen zur Auswahl eines Detaillierungsgrads für die Partition.

Vorhandene, nicht partitionierte BigQuery-Tabellen können nicht in partitionierte Tabellen erstellen. Wenn Sie Änderungen an Patientenressourcen in eine nicht partitionierte Patients-Tabelle exportieren und später einen neuen FHIR-Speicher mit Tabellenpartitionierung erstellen, der in dasselbe BigQuery-Dataset exportiert, exportiert die Cloud Healthcare API weiterhin Daten in die nicht partitionierte Patients-Tabelle. Wenn Sie eine partitionierte Tabelle nutzen möchten, Löschen Sie die vorhandene Tabelle Patients oder verwenden Sie ein anderes BigQuery-Dataset.

Wenn Sie eine Partitionierung zu einer vorhandenen FHIR-Speicherkonfiguration hinzufügen, können Sie in vorhandene nicht partitionierte Tabellen exportieren. Die Partitionierung wird jedoch nur wirksam, für neue Tabellen.

Die folgenden Beispiele zeigen, wie FHIR-Ressourcen nach BigQuery exportiert werden partitionierte Tabellen erstellen.

Console

Die Google Cloud Console und die gcloud CLI unterstützen diese Aktion nicht. Verwenden Sie stattdessen curl, PowerShell oder Ihre bevorzugte Sprache.

gcloud

Die Google Cloud Console und die gcloud CLI unterstützen diese Aktion nicht. Verwenden Sie stattdessen curl, PowerShell oder Ihre bevorzugte Sprache.

REST

Zum Exportieren von FHIR-Ressourcen in nach BigQuery partitionierte Tabellen verwenden Sie die projects.locations.datasets.fhirStores.export .

  1. Exportieren Sie die FHIR-Ressourcen:

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
    • FHIR_STORE_ID: die FHIR-Speicher-ID
    • BIGQUERY_DATASET_ID: der Name des vorhandenen BigQuery-Datasets, in das Sie FHIR-Ressourcen exportieren
    • SCHEMA_TYPE: ein Wert für SchemaType Verwenden Sie einen der folgenden Werte:
      • ANALYTICS Ein Schema, das auf dem Dokument SQL on FHIR basiert. Da BigQuery nur 10.000 Spalten pro Tabelle zulässt, werden keine Schemas für die Felder Parameters.parameter.resource, Bundle.entry.resource und Bundle.entry.response.outcome generiert.
      • ANALYTICS_V2 Ein Schema, das ANALYTICS ähnelt, mit zusätzlicher Unterstützung für Folgendes:

        ANALYTICS_V2 belegt mehr Platz in der Zieltabelle als ANALYTICS

        .
    • TIME_PARTITION_TYPE: die Detailebene, auf der exportierte FHIR-Ressourcen partitioniert werden sollen. Verwenden Sie einen der folgenden Werte:
      • HOUR: Daten nach Stunde partitionieren
      • DAY: Daten nach Tag partitionieren
      • MONTH: Daten nach Monat partitionieren
      • YEAR: Daten nach Jahr partitionieren
    • WRITE_DISPOSITION: ein Wert für WriteDisposition. Verwenden Sie einen der folgenden Werte:
      • WRITE_EMPTY: Daten nur exportieren, wenn die BigQuery-Tabelle leer ist.
      • WRITE_TRUNCATE: Alle vorhandenen Daten in der BigQuery-Tabelle werden gelöscht, bevor die DICOM-Instanzen geschrieben werden.
      • WRITE_APPEND: Damit werden Daten an die BigQuery-Tabelle angehängt.

    JSON-Text der Anfrage:

    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    cat > request.json << 'EOF'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    EOF

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:export" | Select-Object -Expand Content

    APIs Explorer

    Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.

    Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    Führen Sie folgenden Befehl aus:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    APIs Explorer

    Öffnen Sie das Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, wird der lang andauernden Vorgang abgeschlossen ist.

Partitionierte Tabelle abfragen

Um die Abfragekosten beim Abfragen von partitionierten Tabellen zu reduzieren, verwenden Sie die Methode WHERE um nach Zeiteinheiten zu filtern.

Angenommen, Sie legen den Parameter PartitionType enum in DAY auf. Um eine Patients-Tabelle nach Patientenressourcen abzufragen, die an einem bestimmten Datum, führen Sie die folgende Abfrage aus:

SELECT * FROM `PROJECT_ID.BIGQUERY_DATASET.Patients`
  WHERE DATE(lastUpdated) = 'YYYY-MM-DD'

FHIR-Daten in BigQuery abfragen und analysieren

Nach dem Export der FHIR-Ressourcen nach BigQuery finden Sie unter FHIR-Daten in BigQuery analysieren Informationen zum Abfragen und Analysieren der exportierten Daten. Die verwendet die SyntheaTM-generierte synthetischen Daten in FHIR öffentliches Dataset mit über 1 Million synthetischen Patientenakten in den Formaten Synthea™ und FHIR.

Fehlerbehebung bei FHIR-Exportanfragen

Wenn während einer FHIR-Exportanfrage Fehler auftreten, werden die Fehler in Cloud Logging protokolliert. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.

Wenn der gesamte Vorgang einen Fehler zurückgibt, finden Sie weitere Informationen unter Fehlerbehebung bei Vorgängen mit langer Ausführungszeit.

Spalte kann nicht von NULLABLE in REPEATED konvertiert werden

Dieser Fehler wird durch eine wiederholte Erweiterung verursacht. Um diesen Fehler zu beheben, ANALYTICS_V2 verwenden Schematyp. Wenn Sie ANALYTICS_V2 bereits verwenden, gibt es möglicherweise eine Konflikt zwischen zwei Erweiterungen oder Konflikt zwischen einer und einer anderen Erweiterung ein.

Spaltennamen werden aus dem Text nach dem letzten / Zeichen generiert in Erweiterungs-URLs. Wenn eine Erweiterungs-URL mit einem Wert wie endet /resource_field name, kann ein Konflikt auftreten.

Damit dieser Fehler nicht noch einmal auftritt, sollten Sie Erweiterungen nicht verwenden, wenn ihr Feld sind mit den Ressourcenfeldern identisch, die Sie füllen.

Nächste Schritte