In dieser Anleitung werden Szenarien erläutert, in denen Sie BigQuery-Streaming verwenden können, um einen FHIR-Speicher nahezu in Echtzeit mit einem BigQuery-Dataset zu synchronisieren.
Schritt 1: BigQuery-Berechtigungen konfigurieren
Um FHIR-Ressourcenänderungen an BigQuery zu streamen, müssen Sie dem Dienstkonto Cloud Healthcare-Dienst-Agent zusätzliche Berechtigungen erteilen. Weitere Informationen finden Sie unter BigQuery-Berechtigungen für FHIR-Speicher.
Schritt 2: BigQuery-Streaming konfigurieren und prüfen
So aktivieren Sie das Streaming in BigQuery
FHIR-Speicher erstellen und Patientenressourcen hinzufügen
So erstellen Sie einen FHIR-Speicher und fügen zwei Patientenressourcen hinzu:
Erstellen Sie den FHIR-Speicher:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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:
Eine Kennzeichnung für den FHIR-Speicher. Die FHIR-Speicher-ID muss Folgendes enthalten:
- Eine im eigenen Dataset eindeutige ID
- Einen Unicode-String mit 1 bis 256 Zeichen, der Folgendes umfasst:
- Nummern
- Buchstaben
- Unterstriche
- Bindestriche
- Punkte
- FHIR_STORE_VERSION ist die FHIR-Version des FHIR-Speichers Verfügbare Optionen sind DSTU2, STU3 oder R4.
JSON-Text der Anfrage:
{ "version": "FHIR_STORE_VERSION" }
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' { "version": "FHIR_STORE_VERSION" } 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?fhirStoreId=FHIR_STORE_ID"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:@' { "version": "FHIR_STORE_VERSION" } '@ | 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?fhirStoreId=FHIR_STORE_ID" | Select-Object -Expand ContentAPIs 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:
Erstellen Sie die erste Patientenressource im FHIR-Speicher:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- 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
JSON-Text der Anfrage:
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
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' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } 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/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"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:@' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | 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/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Erstellen Sie die zweite Patientenressource im FHIR-Speicher:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud Projekt-ID
- LOCATION: der Speicherort des übergeordneten Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
JSON-Text der Anfrage:
{ "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" }
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' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } 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/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"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:@' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } '@ | 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/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Suchen Sie im FHIR-Speicher nach Patientenressourcen und prüfen Sie, ob der Speicher die beiden Patientenressourcen enthält:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud Projekt-ID
- LOCATION: der Speicherort des übergeordneten Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID ist die FHIR-Speicher-ID
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/fhirStores/FHIR_STORE_ID/fhir/Patient"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/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentSie sollten eine JSON-Antwort erhalten, die in etwa so aussieht:
BigQuery-Streaming im FHIR-Speicher konfigurieren
Aktualisieren Sie den FHIR-Speicher, um das BigQuery-Streaming zu konfigurieren. Nach der Konfiguration des Streamings streamt die Cloud Healthcare API alle Ressourcenänderungen an das BigQuery-Dataset.
Aktualisieren Sie Ihren vorhandenen FHIR-Speicher, um den Speicherort des BigQuery-Datasets hinzuzufügen:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud Projekt-ID
- LOCATION: der Speicherort des übergeordneten Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: Ihre FHIR-Speicher-ID
- BIGQUERY_PROJECT_ID: Das Google Cloud Projekt, das das BigQuery-Dataset zum Streamen von FHIR-Ressourcenänderungen enthält.
- BIGQUERY_DATASET_ID ist das BigQuery-Dataset, in das Sie Änderungen an der FHIR-Ressource streamen.
JSON-Text der Anfrage:
{ "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] }
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' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X PATCH \
-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?updateMask=streamConfigs"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:@' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } '@ | 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 PATCH `
-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?updateMask=streamConfigs" | Select-Object -Expand ContentAPIs 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:
Streamingkonfiguration nach BigQuery prüfen
Prüfen Sie mit den folgenden Schritten, ob das Streaming korrekt konfiguriert ist:
Erstellen Sie eine dritte Patientenressource im FHIR-Speicher:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud Projekt-ID
- LOCATION: der Speicherort des übergeordneten Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
JSON-Text der Anfrage:
{ "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }
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' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } 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/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"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:@' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } '@ | 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/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Fragen Sie die Tabelle
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
mit dem Befehlbq query
ab. BigQuery organisiert Tabellen nach dem FHIR-Ressourcentyp. Die von Ihnen erstellte dritte Patientenressource befindet sich in der TabellePatient
.bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
Die Abfrage gibt das folgende Ergebnis zurück: Das Ergebnis zeigt, dass in der BigQuery-Tabelle ein Patientenressourceneintrag vorhanden ist, da Sie die Patientenressource nach dem Konfigurieren des Streamings im FHIR-Speicher hinzugefügt haben.
+-----+ | f0_ | +-----+ | 1 | +-----+
Schritt 3: Vorhandene FHIR-Ressourcen nach BigQuery exportieren
Wenn Sie bereits einen FHIR-Speicher haben, der Daten enthält, die Sie mit einem BigQuery-Dataset synchronisieren möchten, müssen Sie die folgenden Schritte ausführen, um sicherzustellen, dass sich die vorhandenen Daten in BigQuery befinden:
- Streaming zu BigQuery konfigurieren.
- Exportieren Sie die vorhandenen Daten in das BigQuery-Dataset.
Führen Sie die folgenden Schritte aus, um die beiden Patientenressourcen zu exportieren, die im FHIR-Speicher vorhanden waren, bevor Sie das Streaming in das BigQuery-Dataset konfiguriert haben:
Führen Sie den Befehl
gcloud healthcare fhir-stores export bq
aus, um die Ressourcen im FHIR-Speicher nach BigQuery zu exportieren. In dem Befehl wird das Flag--write-disposition=write-append
verwendet, das Daten an die vorhandene Tabelle BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
anhängt.gcloud healthcare fhir-stores export bq FHIR_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --bq-dataset=bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET \ --schema-type=analytics_v2 \ --write-disposition=write-append
Fragen Sie die Tabelle
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
ab, um die Anzahl der Patientenressourcen im BigQuery-Dataset zu prüfen:bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
Die Abfrage gibt das folgende Ergebnis zurück, das zeigt, dass die BigQuery-Tabelle vier Patientenressourceneinträge enthält:
+-----+ | f0_ | +-----+ | 4 | +-----+
Die tatsächliche Anzahl von Patientenressourcen in der BigQuery-Tabelle beträgt 3, aber die Abfrage gibt 4 zurück. Inkonsistenzen können auftreten, wenn eine Ressource Duplikate aus verschiedenen Vorgängen enthält. In diesem Fall wurde die erste Patientenressource zweimal der BigQuery-Tabelle hinzugefügt:
- Zeitpunkt der Erstellung der Patientenressource
- Wann die Ressourcen im FHIR-Speicher nach BigQuery exportiert wurden
Die BigQuery-Tabelle enthält auch einen Mutationsverlauf der ersten Patientenressource. Wenn Sie beispielsweise die Patientenressource mit
fhir.delete
löschen, enthält die BigQuery-Tabelle einemeta.tag.code
-Spalte mit dem WertDELETE
.Fragen Sie die Ansicht ab, um den neuesten Snapshot der Daten im FHIR-Speicher abzurufen. Die Cloud Healthcare API erstellt die Ansicht nur anhand der neuesten Version jeder Ressource. Die Abfrage von Ansichten ist die genaueste Möglichkeit, einen FHIR-Speicher und die entsprechende BigQuery-Tabelle synchron zu halten.
Führen Sie den folgenden Befehl aus, um die Ansicht abzufragen:
bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'
Die Abfrage gibt das folgende Ergebnis zurück, das richtig zeigt, dass sich in der BigQuery-Tabelle drei Patientenressourcen befinden:
+-----+ | f0_ | +-----+ | 3 | +-----+
Schritt 4: Ressourcen aus mehreren FHIR-Speichern in dasselbe BigQuery-Dataset streamen
In einigen Fällen möchten Sie FHIR-Ressourcen aus mehreren FHIR-Speichern in dasselbe BigQuery-Dataset streamen, um eine Analyse der aggregierten FHIR-Ressourcen aus den FHIR-Speichern durchzuführen.
In den folgenden Schritten erstellen Sie einen zweiten FHIR-Speicher im selben Cloud Healthcare API-Dataset wie der erste FHIR-Speicher. Sie können jedoch FHIR-Speicher aus verschiedenen Datasets verwenden, um FHIR-Ressourcen zu aggregieren.
Erstellen Sie einen zweiten FHIR-Speicher mit aktiviertem BigQuery-Streaming und verwenden Sie dasselbe BigQuery-Dataset, das Sie unter BigQuery-Streaming im FHIR-Speicher konfigurieren verwendet haben.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud Projekt-ID
- LOCATION: der Speicherort des übergeordneten Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- SECOND_FHIR_STORE_ID: Eine Kennzeichnung für den zweiten FHIR-Speicher. Die FHIR-Speicher-ID muss im Dataset eindeutig sein. Die FHIR-Speicher-ID kann ein beliebiger Unicode-String mit 1 bis 256 Zeichen sein, der aus Zahlen, Buchstaben, Unterstrichen, Bindestrichen und Punkten besteht.
- FHIR_STORE_VERSION: die FHIR-Speicherversion: DSTU2, STU3 oder R4
- BIGQUERY_PROJECT_ID: Das Google Cloud Projekt, das das BigQuery-Dataset zum Streamen von FHIR-Ressourcenänderungen enthält.
- BIGQUERY_DATASET_ID ist das BigQuery-Dataset, in das Sie Änderungen an der FHIR-Ressource streamen.
JSON-Text der Anfrage:
{ "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] }
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' { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] } 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?fhirStoreId=SECOND_FHIR_STORE_ID"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:@' { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] } '@ | 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?fhirStoreId=SECOND_FHIR_STORE_ID" | Select-Object -Expand ContentAPIs 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:
Erstellen Sie eine Patientenressource im zweiten FHIR-Speicher:
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud Projekt-ID
- LOCATION: der Speicherort des übergeordneten Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- SECOND_FHIR_STORE_ID: die zweite FHIR-Speicher-ID
JSON-Text der Anfrage:
{ "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }
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' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } 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/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/SECOND_FHIR_STORE_ID/fhir/Patient"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:@' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } '@ | 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/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/SECOND_FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Fragen Sie die Tabelle
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
ab, um die Anzahl der Patientenressourcen in der BigQuery-Tabelle zu prüfen:bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
Beim Streamen der Daten zur neuen Patientenressource verwendet BigQuery die vorhandene Tabelle
Patient
im BigQuery-Dataset. Die Abfrage gibt das folgende Ergebnis zurück, das zeigt, dass in der BigQuery-Tabelle fünf Patientenressourceneinträge vorhanden sind. Unter Vorhandene FHIR-Ressourcen nach BigQuery exportieren wird erläutert, warum die Tabelle fünf Ressourcen anstelle von vier enthält.+-----+ | f0_ | +-----+ | 5 | +-----+
Führen Sie den folgenden Befehl aus, um die Ansicht abzufragen:
bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'
Die Abfrage gibt das folgende Ergebnis zurück, das zeigt, dass in den kombinierten ersten und zweiten FHIR-Speichern und in der BigQuery-Tabelle vier Patientenressourcen vorhanden sind:
+-----+ | f0_ | +-----+ | 4 | +-----+