Questo tutorial descrive gli scenari in cui puoi utilizzare lo streaming BigQuery per mantenere un archivio FHIR sincronizzato con un set di dati BigQuery quasi in tempo reale.
Obiettivi
Il tutorial mostra i seguenti passaggi:
- Configura le autorizzazioni BigQuery.
- Crea un archivio FHIR e aggiungi risorse Patient.
- Configura lo streaming BigQuery nell'archivio FHIR.
- Verifica la configurazione dello streaming in BigQuery.
- Esporta le risorse FHIR esistenti in BigQuery.
- Trasmetti risorse in streaming da più archivi FHIR allo stesso set di dati BigQuery.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Healthcare API.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
Passaggio 1: configura le autorizzazioni BigQuery
Per trasmettere in streaming le modifiche delle risorse FHIR a BigQuery, devi concedere autorizzazioni aggiuntive all'account di servizio dell'agente di servizio Cloud Healthcare. Per ulteriori informazioni, consulta Autorizzazioni BigQuery per gli archivi FHIR.
Passaggio 2: configura e verifica lo streaming BigQuery
Per attivare lo streaming a BigQuery:
Crea un archivio FHIR e aggiungi risorse Patient
Per creare un archivio FHIR e aggiungere due risorse Patient:
Crea l'archivio FHIR:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID:
un identificatore per il datastore FHIR. L'ID datastore FHIR deve avere le seguenti caratteristiche:
- Un ID univoco nel suo set di dati
- Una stringa Unicode di 1-256 caratteri composta da:
- Numeri
- Lettere
- Trattini bassi
- Trattini
- Punti
- FHIR_STORE_VERSION: la versione FHIR del datastore FHIR. Le opzioni disponibili sono DSTU2, STU3 o R4.
Corpo JSON della richiesta:
{ "version": "FHIR_STORE_VERSION" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "version": "FHIR_STORE_VERSION" } EOF
Quindi esegui questo comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "version": "FHIR_STORE_VERSION" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi esegui questo comando per inviare la richiesta REST:
$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 ContentExplorer API
Copia il corpo della richiesta e apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Crea la prima risorsa Patient nell'archivio FHIR:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
Corpo JSON della richiesta:
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF
Quindi esegui questo comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi esegui questo comando per inviare la richiesta REST:
$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 ContentDovresti ricevere una risposta JSON simile alla seguente:
Crea la seconda risorsa Patient nell'archivio FHIR:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati padre
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
Corpo JSON della richiesta:
{ "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } EOF
Quindi esegui questo comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "name": [ { "use": "official", "family": "Zhang", "given": [ "Michael" ] } ], "gender": "male", "birthDate": "1980-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi esegui questo comando per inviare la richiesta REST:
$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 ContentDovresti ricevere una risposta JSON simile alla seguente:
Cerca le risorse Patient nell'archivio FHIR e verifica che l'archivio contenga le due risorse Patient:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati padre
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentDovresti ricevere una risposta JSON simile alla seguente:
Configura lo streaming BigQuery nell'archivio FHIR
Aggiorna il datastore FHIR per configurare lo streaming BigQuery. Dopo aver configurato lo streaming, l'API Cloud Healthcare trasmette in streaming qualsiasi modifica delle risorse al set di dati BigQuery.
Aggiorna l'archivio FHIR esistente per aggiungere la posizione del set di dati BigQuery:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati padre
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID del tuo datastore FHIR
- BIGQUERY_PROJECT_ID: il progetto Google Cloud contenente il set di dati BigQuery per lo streaming delle modifiche delle risorse FHIR
- BIGQUERY_DATASET_ID: il set di dati BigQuery in cui trasmetti in streaming le modifiche alle risorse FHIR
Corpo JSON della richiesta:
{ "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } EOF
Quindi esegui questo comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS_V2" } } } ] } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi esegui questo comando per inviare la richiesta REST:
$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 ContentExplorer API
Copia il corpo della richiesta e apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Verifica la configurazione dello streaming in BigQuery
Verifica che lo streaming sia configurato correttamente completando i seguenti passaggi:
Crea una terza risorsa Patient nell'archivio FHIR:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati padre
- DATASET_ID: il set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID datastore FHIR
Corpo JSON della richiesta:
{ "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } EOF
Quindi esegui questo comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi esegui questo comando per inviare la richiesta REST:
$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 ContentDovresti ricevere una risposta JSON simile alla seguente:
Esegui una query sulla tabella
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
eseguendobq query
. BigQuery organizza le tabelle in base al tipo di risorsa FHIR. La terza risorsa Paziente che hai creato si trova nella tabellaPatient
.bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
La query restituisce il seguente risultato. Il risultato mostra che nella tabella BigQuery è presente un record di risorsa Patient, perché hai aggiunto la risorsa Patient dopo aver configurato lo streaming nell'archivio FHIR.
+-----+ | f0_ | +-----+ | 1 | +-----+
Passaggio 3: esporta le risorse FHIR esistenti in BigQuery
Se hai un archivio FHIR esistente contenente dati che vuoi sincronizzare con un set di dati BigQuery, devi completare i seguenti passaggi per assicurarti che i dati esistenti si trovino in BigQuery:
- Configura lo streaming in BigQuery.
- Esporta i dati esistenti nel set di dati BigQuery.
Per esportare le due risorse Patient esistenti nell'archivio FHIR prima di configurare lo streaming nel set di dati BigQuery, completa i seguenti passaggi:
Per esportare le risorse nell'archivio FHIR in BigQuery, esegui il comando
gcloud healthcare fhir-stores export bq
. Il comando utilizza il flag--write-disposition=write-append
, che aggiunge dati alla tabella BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
esistente.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
Esegui una query sulla tabella
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
per verificare il numero di risorse Paziente nel set di dati BigQuery:bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
La query restituisce il seguente risultato, che mostra che nella tabella BigQuery sono presenti 4 record di risorse Patient:
+-----+ | f0_ | +-----+ | 4 | +-----+
Il numero effettivo di risorse Patient nella tabella BigQuery è 3, ma la query restituisce 4. Potrebbero verificarsi incoerenze quando una risorsa contiene duplicati di operazioni diverse. In questo caso, la prima risorsa Patient è stata aggiunta alla tabella BigQuery due volte:
- Quando è stato eseguito lo streaming della creazione della risorsa Patient
- Quando le risorse nell'archivio FHIR sono state esportate in BigQuery
La tabella BigQuery contiene anche una cronologia delle modifiche della prima risorsa Patient. Ad esempio, se elimini la risorsa Patient utilizzando
fhir.delete
, la tabella BigQuery ha una colonnameta.tag.code
con il valoreDELETE
.Per ottenere l'ultimo snapshot dei dati nell'archivio FHIR, esegui una query sulla visualizzazione. L'API Cloud Healthcare crea la visualizzazione esaminando solo l'ultima versione di ogni risorsa. L'esecuzione di query sulle viste è il modo più preciso per mantenere sincronizzati un archivio FHIR e la relativa tabella BigQuery.
Per eseguire una query sulla visualizzazione, esegui questo comando:
bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'
La query restituisce il seguente risultato, che mostra correttamente che nella tabella BigQuery sono presenti 3 risorse Patient:
+-----+ | f0_ | +-----+ | 3 | +-----+
Passaggio 4: trasmetti risorse da più archivi FHIR allo stesso set di dati BigQuery
In alcuni casi, potresti voler trasmettere in streaming le risorse FHIR da più archivi FHIR allo stesso set di dati BigQuery per eseguire analisi sulle risorse FHIR aggregate degli archivi FHIR.
Nei passaggi successivi, crei un secondo archivio FHIR nello stesso set di dati dell'API Cloud Healthcare del primo archivio FHIR, ma puoi utilizzare archivi FHIR di set di dati diversi durante l'aggregazione delle risorse FHIR.
Crea un secondo archivio FHIR con lo streaming BigQuery abilitato e utilizza lo stesso set di dati BigQuery che hai utilizzato in Configura lo streaming BigQuery nell'archivio FHIR.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati padre
- DATASET_ID: il set di dati padre dell'archivio FHIR
- SECOND_FHIR_STORE_ID: un identificatore per il secondo datastore FHIR. L'ID datastore FHIR deve essere univoco nel set di dati. L'ID del datastore FHIR può essere qualsiasi stringa Unicode da 1 a 256 caratteri composta da numeri, lettere, trattini bassi, trattini e punti.
- FHIR_STORE_VERSION: la versione del datastore FHIR: DSTU2, STU3 o R4
- BIGQUERY_PROJECT_ID: il progetto Google Cloud contenente il set di dati BigQuery per lo streaming delle modifiche delle risorse FHIR
- BIGQUERY_DATASET_ID: il set di dati BigQuery in cui trasmetti in streaming le modifiche alle risorse FHIR
Corpo JSON della richiesta:
{ "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] } EOF
Quindi esegui questo comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "version": "FHIR_STORE_VERSION" "streamConfigs": [ { "bigqueryDestination": { "datasetUri": "bq://BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID", "schemaConfig": { "schemaType": "ANALYTICS" } } } ] } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi esegui questo comando per inviare la richiesta REST:
$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 ContentExplorer API
Copia il corpo della richiesta e apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Incolla il corpo della richiesta in questo strumento, compila gli altri campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Crea una risorsa Patient nel secondo archivio FHIR:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto Google Cloud
- LOCATION: la posizione del set di dati padre
- DATASET_ID: il set di dati padre dell'archivio FHIR
- SECOND_FHIR_STORE_ID: il secondo ID datastore FHIR
Corpo JSON della richiesta:
{ "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" }
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } EOF
Quindi esegui questo comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "name": [ { "use": "official", "family": "Lee", "given": [ "Alex" ] } ], "gender": "male", "birthDate": "1990-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi esegui questo comando per inviare la richiesta REST:
$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 ContentDovresti ricevere una risposta JSON simile alla seguente:
Esegui una query sulla tabella
BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient
per verificare il numero di risorse Paziente nella tabella BigQuery:bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.Patient`'
Durante lo streaming dei dati sulla nuova risorsa Patient, BigQuery ha utilizzato la tabella
Patient
esistente nel set di dati BigQuery. La query restituisce il seguente risultato, che mostra che nella tabella BigQuery sono presenti 5 record di risorse Patient. Consulta Esportare le risorse FHIR esistenti in BigQuery per una spiegazione del motivo per cui la tabella contiene 5 risorse anziché 4.+-----+ | f0_ | +-----+ | 5 | +-----+
Esegui questo comando per eseguire query sulla vista:
bq query \ --project_id=BIGQUERY_PROJECT_ID \ --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID.PatientView`'
La query restituisce il seguente risultato, che mostra che ci sono 4 risorse Patient nei primi due FHIR store combinati e nella tabella BigQuery:
+-----+ | f0_ | +-----+ | 4 | +-----+
Esegui la pulizia
Se hai creato un nuovo progetto per questo tutorial, segui i passaggi descritti in Eliminare il progetto. Per eliminare solo le risorse dell'API Cloud Healthcare e BigQuery, completa i passaggi descritti in Eliminare il set di dati dell'API Cloud Healthcare e Eliminare il set di dati BigQuery.
Elimina il progetto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Elimina il set di dati dell'API Cloud Healthcare
Se non hai più bisogno del set di dati dell'API Cloud Healthcare creato in questo tutorial, puoi eliminarlo. L'eliminazione di un set di dati è definitiva ed elimina permanentemente tutti gli archivi FHIR al suo interno.
Per eliminare un set di dati, utilizza il comando
gcloud healthcare datasets delete
:gcloud healthcare datasets delete DATASET_ID \ --location=LOCATION \ --project=PROJECT_ID
Sostituisci quanto segue:
- DATASET_ID: il set di dati dell'API Cloud Healthcare
- LOCATION: la posizione del set di dati
- PROJECT_ID: il tuo ID progetto Google Cloud
Per confermare, digita Y.
L'output è il seguente:
Deleted dataset [DATASET_ID].
Elimina il set di dati BigQuery
Se non hai più bisogno del set di dati BigQuery creato in questo tutorial, puoi eliminarlo. L'eliminazione di un set di dati è definitiva ed elimina permanentemente tutti i dati al suo interno.
Rimuovi l'attributo BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID eseguendo il comando
bq rm
:bq rm --recursive=true BIGQUERY_PROJECT_ID.BIGQUERY_DATASET_ID
Il flag
--recursive
elimina tutte le tabelle nel set di dati, inclusa la tabellaPatient
.Per confermare, digita Y.
Passaggi successivi
- Se si verificano errori durante lo streaming in BigQuery, gli errori vengono registrati in Cloud Logging. Per ulteriori informazioni, consulta Visualizzazione dei log degli errori in Cloud Logging.
- Consulta una panoramica sull'esportazione delle risorse FHIR in BigQuery.
- Per creare, visualizzare, elencare o eliminare gli archivi FHIR, consulta Creazione e gestione degli archivi FHIR.