Esportazione delle risorse FHIR in BigQuery

In questa pagina viene spiegato come esportare le risorse FHIR in BigQuery ai fini dell'approfondimento e dell'analisi. L'operazione di esportazione produce un BigQuery per ogni tipo di risorsa FHIR nel datastore FHIR.

Per migliorare le prestazioni delle query e ridurre i costi, puoi configurare BigQuery inserimento di flussi di dati in tabelle partizionate. Per istruzioni, vedi Esporta le risorse FHIR in tabelle partizionate.

Impostazione delle autorizzazioni BigQuery

Prima di esportare le risorse FHIR in BigQuery, devi concedi autorizzazioni aggiuntive all'agente di servizio Cloud Healthcare. account di servizio. Per ulteriori informazioni, vedi Autorizzazioni BigQuery per gli archivi FHIR.

Esportazione delle risorse FHIR

Gli esempi riportati di seguito mostrano come esportare le risorse FHIR in una tabella BigQuery.

Quando imposti la destinazione BigQuery, utilizza l'architettura URI qualificato, in questo modo:

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

Il comportamento dell'operazione di esportazione può variare in base a quanto segue:

  • Se la tabella di destinazione esiste già.
  • Se hai impostato il campo force.
  • Se specifichi un'enumerazione in WriteDisposition. Se specifichi un'enumerazione, non impostare il campo force.

Il comportamento in ognuno di questi casi è il seguente:

  • Se la tabella di destinazione esiste già e il criterio force è impostato su true, l'operazione di esportazione sovrascrive la tabella esistente.
  • Se la tabella di destinazione esiste già e force è impostato su false, si verifica un errore.
  • Se la tabella di destinazione non esiste già, l'operazione di esportazione crea una nuova tabella, a prescindere dalla specifica del campo force.
  • Quando utilizzi WriteDisposition, se la tabella di destinazione esiste già ed è vuota, l'operazione di esportazione viene completata correttamente anziché restituire un errore.

L'operazione genera una tabella BigQuery per ogni tipo di risorsa nel datastore FHIR.

Console

Per esportare le risorse FHIR in BigQuery utilizzando Console Google Cloud, completa i seguenti passaggi:

  1. Nella console Google Cloud, vai alla pagina Set di dati.

    Vai a Set di dati

  2. Fai clic sul set di dati contenente il datastore FHIR con i dati che stai esportando.

  3. Nella stessa riga dell'archivio FHIR, apri l'elenco Azioni e seleziona Esporta.

  4. Nella pagina Esporta risorse FHIR visualizzata, trova il valore Sezione Seleziona una destinazione. Seleziona Tabella BigQuery.

  5. Nella sezione Disposizione di scrittura della tabella di destinazione, seleziona una delle seguenti opzioni per determinare il comportamento dell'operazione di esportazione:

    • Esporta i dati solo se le tabelle di destinazione sono vuote: equivale per selezionare l'enum WRITE_EMPTY in WriteDisposition.
    • Aggiungi dati alle tabelle di destinazione: equivale per selezionare l'enum WRITE_APPEND in WriteDisposition.
    • Cancella tutti i dati esistenti nelle tabelle di destinazione prima di scrivere il FHIR risorse: equivale a selezionare l'enumerazione WRITE_TRUNCATE in WriteDisposition.
  6. Nella sezione Configurazione dell'esportazione FHIR, fai clic su Sfoglia per seleziona il progetto e il set di dati BigQuery.

  7. Nel menu a discesa Tipo di schema, seleziona lo schema di output per il Tabella BigQuery. Sono disponibili i seguenti schemi:

    • Analisi. Uno schema basato sul documento SQL su FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, non vengono generati schemi per i campi Parameters.parameter.resource, Bundle.entry.resource e Bundle.entry.response.outcome.
    • Analytics V2. Uno schema simile a quello di Analytics, con un supporto aggiuntivo per i seguenti elementi: Lo schema di Analytics V2 utilizza più spazio nella tabella di destinazione rispetto allo schema di Analytics.

  8. Seleziona un livello di profondità in Profondità della struttura ricorsiva. per impostare la profondità di tutte le strutture ricorsive nello schema di output. Per impostazione predefinita, il valore ricorsivo è 2.

    Per ulteriori informazioni, vedi recursiveStructureDepth.

  9. Fai clic su Esporta per esportare le risorse FHIR in BigQuery.

  10. Per monitorare lo stato dell'operazione, fai clic sulla scheda Operazioni. Dopo l'operazione vengono visualizzate le seguenti indicazioni:
    • La sezione Stato dell'operazione a lunga esecuzione ha un segno di spunta verde sotto la Intestazione OK.
    • La sezione Panoramica ha un segno di spunta verde e un indicatore OK. nella stessa riga dell'ID operazione.
    In caso di errori, fai clic su Azioni e poi su Visualizza dettagli in Cloud Logging,

gcloud

Per esportare le risorse FHIR in BigQuery, esegui il comando gcloud healthcare fhir-stores export bq .

  1. Esporta le risorse FHIR.

    Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • LOCATION: la posizione del set di dati
    • DATASET_ID: il set di dati padre del datastore FHIR
    • FHIR_STORE_ID: l'ID del datastore FHIR
    • BIGQUERY_DATASET_ID: il nome del set di dati BigQuery esistente in cui stai esportando le risorse FHIR
    • SCHEMA_TYPE: un valore di SchemaType. Utilizza uno dei seguenti valori:
      • analytics. Uno schema basato sul documento SQL su FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, non vengono generati schemi per i campi Parameters.parameter.resource, Bundle.entry.resource e Bundle.entry.response.outcome.
      • analytics_v2. Uno schema simile a analytics con ulteriore supporto per quanto segue:

        analytics-v2 utilizza più spazio nella tabella di destinazione di analytics.

    • WRITE_DISPOSITION: un valore di WriteDisposition. Utilizza uno dei seguenti valori:
      • write-empty. Esporta i dati solo se le tabelle BigQuery di destinazione sono vuote.
      • write-truncate. Cancella tutti i dati esistenti nelle tabelle BigQuery prima di scrivere le risorse FHIR.
      • write-append. Aggiungere dati alle tabelle BigQuery di destinazione.
    • FHIR_RESOURCE_TYPE: un campo facoltativo. Specifica uno o più tipi di risorse FHIR delimitati da virgole per esportare solo le risorse FHIR di questi tipi.
    • SINCE_TIMESTAMP: un campo facoltativo. Specifica un valore nel formato YYYY-MM-DDThh:mm:ss.sss+zz:zz per esportare solo le risorse FHIR aggiornate dopo un intervallo di tempo specifico. Specifica l'ora per il secondo e includi un fuso orario. Ad esempio, 2015-02-07T13:28:17.239+02:00 e 2017-01-01T00:00:00Z sono orari validi.

    Esegui la persone che seguo :

    Linux, macOS o 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
    
    La risposta è la seguente. La risposta contiene un identificatore per un operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi possono richiedere un per il completamento. Il comando esegue il polling dell'operazione a lunga esecuzione, visualizza il nome dell'operazione nel campo name al termine dell'esportazione. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.

    Risposta

    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. Per visualizzare ulteriori dettagli sull'operazione, esegui il comando gcloud healthcare operations describe e fornisci il valore OPERATION_ID della risposta.

    Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • DATASET_ID: l'ID del set di dati
    • LOCATION: la posizione del set di dati
    • OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione

    Esegui la persone che seguo :

    Linux, macOS o 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
    

    Dovresti ricevere una risposta simile alla seguente:

    Risposta

    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

Per esportare le risorse FHIR in BigQuery, utilizza projects.locations.datasets.fhirStores.export .

  1. Esporta le risorse FHIR:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • LOCATION: la posizione del set di dati
    • DATASET_ID: il set di dati padre del datastore FHIR
    • FHIR_STORE_ID: l'ID del datastore FHIR
    • BIGQUERY_DATASET_ID: il nome del set di dati BigQuery esistente in cui stai esportando le risorse FHIR
    • SCHEMA_TYPE: un valore di SchemaType. Utilizza uno dei seguenti valori:
      • ANALYTICS. Uno schema basato sul documento SQL su FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, non vengono generati schemi per i campi Parameters.parameter.resource, Bundle.entry.resource e Bundle.entry.response.outcome.
      • ANALYTICS_V2. Uno schema simile a ANALYTICS con ulteriore supporto per quanto segue:

        ANALYTICS_V2 utilizza più spazio nella tabella di destinazione di ANALYTICS

        .
    • WRITE_DISPOSITION: un valore di WriteDisposition. Utilizza uno dei seguenti valori:
      • WRITE_EMPTY. Esporta i dati solo se le tabelle BigQuery di destinazione sono vuote.
      • WRITE_TRUNCATE. Cancella tutti i dati esistenti nelle tabelle BigQuery prima di scrivere le risorse FHIR.
      • WRITE_APPEND. Aggiungere dati alle tabelle BigQuery di destinazione.
    • FHIR_RESOURCE_TYPE: un campo facoltativo. Specifica uno o più tipi di risorse FHIR delimitati da virgole per esportare solo le risorse FHIR di questi tipi.
    • SINCE_TIMESTAMP: un campo facoltativo. Specifica un valore nel formato YYYY-MM-DDThh:mm:ss.sss+zz:zz per esportare solo le risorse FHIR aggiornate dopo un intervallo di tempo specifico. Specifica l'ora per il secondo e includi un fuso orario. Ad esempio, 2015-02-07T13:28:17.239+02:00 e 2017-01-01T00:00:00Z sono orari validi.

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una delle seguenti 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'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
        },
        "writeDisposition": "WRITE_DISPOSITION"
      },
      "_type": "FHIR_RESOURCE_TYPE",
      "_since": "SINCE_TIMESTAMP"
    }
    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/FHIR_STORE_ID:export"

    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:

    @'
    {
      "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

    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/FHIR_STORE_ID:export" | Select-Object -Expand Content

    Explorer API

    Copia il corpo della richiesta e apri 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 tutti gli altri campi obbligatori e fai clic su Esegui.

    L'output è il seguente. La risposta contiene un identificatore per un un'operazione a lunga esecuzione (LRO). Le operazioni a lunga esecuzione vengono restituite quando il completamento delle chiamate ai metodi può richiedere più tempo. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.

  2. Utilizza il metodo projects.locations.datasets.operations.get per ottenere lo stato dell'operazione a lunga esecuzione.

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • DATASET_ID: l'ID del set di dati
    • LOCATION: la posizione del set di dati
    • OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione

    Per inviare la richiesta, scegli una delle seguenti 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/operations/OPERATION_ID"

    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/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorer API

    Apri l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.

    L'output è il seguente. Quando la risposta contiene "done": true, l'operazione a lunga esecuzione.

Esporta le risorse FHIR in tabelle partizionate

Per esportare le risorse FHIR in tabelle partizionate in BigQuery, imposta il valore TimePartitioning enum nel lastUpdatedPartitionConfig nel tuo datastore FHIR.

Le tabelle partizionate funzionano come BigQuery tabelle partizionate per unità di tempo. Alle tabelle partizionate è stata aggiunta una colonna denominata lastUpdated, che è un duplicato della colonna meta.lastUpdated generata dal campo meta.lastUpdated in a una risorsa FHIR. BigQuery utilizza lo lastUpdated colonna per partizionare le tabelle per ora, giorno, mese o anno.

Consulta Selezionare il partizionamento giornaliero, orario, mensile o annuale per suggerimenti su come selezionare la granularità della partizione.

Non puoi convertire tabelle BigQuery non partizionate esistenti in partizionate. Se esporti la risorsa Patient modifiche a una tabella Patients non partizionata e in seguito creerai un nuovo datastore FHIR con il partizionamento delle tabelle che esporta nello stesso Set di dati BigQuery, l'API Cloud Healthcare esporta comunque i dati alla tabella Patients non partizionata. Per iniziare a utilizzare una tabella partizionata, Elimina la tabella Patients esistente o utilizza un altro set di dati BigQuery.

Se aggiungi il partizionamento a una configurazione esistente del datastore FHIR, puoi comunque e esportare in tabelle non partizionate esistenti. Tuttavia, il partizionamento avrà effetto solo su nuove tabelle.

Gli esempi riportati di seguito mostrano come esportare le risorse FHIR in BigQuery partizionate.

Console

La console Google Cloud e gcloud CLI non supportano questa azione. Usa invece curl, PowerShell o il tuo linguaggio preferito.

gcloud

La console Google Cloud e gcloud CLI non supportano questa azione. Usa invece curl, PowerShell o il tuo linguaggio preferito.

REST

Per esportare le risorse FHIR in tabelle partizionate in BigQuery, utilizza projects.locations.datasets.fhirStores.export .

  1. Esporta le risorse FHIR:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • LOCATION: la posizione del set di dati
    • DATASET_ID: il set di dati padre del datastore FHIR
    • FHIR_STORE_ID: l'ID del datastore FHIR
    • BIGQUERY_DATASET_ID: il nome del set di dati BigQuery esistente in cui stai esportando le risorse FHIR
    • SCHEMA_TYPE: un valore di SchemaType. Utilizza uno dei seguenti valori:
      • ANALYTICS. Uno schema basato sul documento SQL su FHIR. Poiché BigQuery consente solo 10.000 colonne per tabella, non vengono generati schemi per i campi Parameters.parameter.resource, Bundle.entry.resource e Bundle.entry.response.outcome.
      • ANALYTICS_V2. Uno schema simile a ANALYTICS con ulteriore supporto per quanto segue:

        ANALYTICS_V2 utilizza più spazio nella tabella di destinazione di ANALYTICS

        .
    • TIME_PARTITION_TYPE: la granularità con cui eseguire il partizionamento delle risorse FHIR esportate. Utilizza uno dei seguenti valori:
      • HOUR: partiziona i dati in base all'ora
      • DAY: partiziona i dati in base al giorno
      • MONTH: partiziona i dati per mese
      • YEAR: partiziona i dati in base all'anno
    • WRITE_DISPOSITION: un valore di WriteDisposition. Utilizza uno dei seguenti valori:
      • WRITE_EMPTY: esporta i dati solo se la tabella BigQuery è vuota.
      • WRITE_TRUNCATE: cancella tutti i dati esistenti nella tabella BigQuery prima di scrivere le istanze DICOM.
      • WRITE_APPEND: aggiunge dati alla tabella BigQuery.

    Corpo JSON della richiesta:

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

    Per inviare la richiesta, scegli una delle seguenti 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'
    {
      "bigqueryDestination": {
        "datasetUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID",
        "schemaConfig": {
          "schemaType": "SCHEMA_TYPE",
          "lastUpdatedPartitionConfig": {
            "type": "TIME_PARTITION_TYPE"
          }
        },
        "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    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/FHIR_STORE_ID:export"

    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:

    @'
    {
      "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

    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/FHIR_STORE_ID:export" | Select-Object -Expand Content

    Explorer API

    Copia il corpo della richiesta e apri 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 tutti gli altri campi obbligatori e fai clic su Esegui.

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Utilizza il metodo projects.locations.datasets.operations.get per ottenere lo stato dell'operazione a lunga esecuzione.

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud
    • DATASET_ID: l'ID del set di dati
    • LOCATION: la posizione del set di dati
    • OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione

    Per inviare la richiesta, scegli una delle seguenti 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/operations/OPERATION_ID"

    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/operations/OPERATION_ID" | Select-Object -Expand Content

    Explorer API

    Apri l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.

    L'output è il seguente. Quando la risposta contiene "done": true, l'operazione a lunga esecuzione.

esegui una query su una tabella partizionata

Per ridurre i costi delle query quando esegui query su tabelle partizionate, utilizza il metodo WHERE per filtrare in base alle unità di tempo.

Ad esempio, supponiamo che tu abbia impostato PartitionType enum a DAY. Per eseguire query su una tabella Patients per le risorse Paziente aggiornate in base a una esegui questa query:

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

Esecuzione di query e analisi dei dati FHIR in BigQuery

Dopo aver esportato le risorse FHIR in BigQuery, controlla Analisi dei dati FHIR in BigQuery per informazioni su come eseguire query e analizzare i dati esportati. La utilizza dati sintetici generati SyntheaTM in FHIR che ospita oltre 1 milione di cartelle cliniche sintetiche, generate nei formati Synthea™ e FHIR.

Risoluzione dei problemi delle richieste di esportazione FHIR

Se si verificano errori durante una richiesta di esportazione FHIR, gli errori vengono registrati in Cloud Logging. Per ulteriori informazioni, vedi Visualizzazione dei log degli errori in Cloud Logging.

Se l'intera operazione restituisce un errore, consulta la sezione Risoluzione dei problemi relativi alle operazioni a lunga esecuzione.

Impossibile convertire la colonna da NULLABLE a REPEATED

Questo errore è causato da un'estensione ripetuta. Per risolvere l'errore, utilizza la ANALYTICS_V2 tipo di schema. Se utilizzi già ANALYTICS_V2, potresti avere un un conflitto tra due estensioni o un conflitto tra un'estensione e un'altra .

I nomi delle colonne vengono generati dal testo dopo l'ultimo / carattere in URL delle estensioni. Se l'URL di un'estensione termina con un valore come /resource_field name, è possibile che si verifichi un conflitto.

Per evitare che questo errore si ripresenti, non utilizzare le estensioni se il relativo campo corrispondono ai campi delle risorse che stai compilando.

Passaggi successivi