Exporter des ressources FHIR vers BigQuery

Cette page explique comment exporter des ressources FHIR vers BigQuery à des fins d'exploration et d'analyse. L'opération d'exportation génère un seul BigQuery pour chaque type de ressource FHIR dans le store FHIR.

Pour améliorer les performances des requêtes et réduire les coûts, vous pouvez configurer BigQuery vers des tables partitionnées. Pour instructions, consultez l'article Exporter des ressources FHIR vers des tables partitionnées

Définir des autorisations BigQuery

Avant d'exporter des ressources FHIR vers BigQuery, vous devez accorder des autorisations supplémentaires au compte de service Agent de service Cloud Healthcare. Pour en savoir plus, consultez la section Autorisations BigQuery pour les datastores FHIR.

Exporter des ressources FHIR

Les exemples suivants montrent comment exporter des ressources FHIR vers une table BigQuery.

Lorsque vous définissez la destination BigQuery, utilisez l'URI complet, comme suit :

bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID

Le comportement de l'opération d'exportation peut varier en fonction des éléments suivants :

  • Indique si la table de destination existe déjà.
  • Définit si vous définissez le champ force.
  • Indique si vous spécifiez une énumération dans WriteDisposition. Si vous spécifiez une énumération, ne définissez pas le champ force.

Le comportement associé à chacun de ces cas est le suivant :

  • Si la table de destination existe déjà et que le champ force est défini sur true, l'opération d'exportation écrase la table existante.
  • Si la table de destination existe déjà et que le champ force est défini sur false, une erreur se produit.
  • Si la table de destination n'existe pas déjà, l'opération d'exportation crée une table, que vous définissiez ou non le champ force.
  • Lorsque vous utilisez WriteDisposition, si la table de destination existe déjà et qu'elle est vide, l'opération d'exportation se termine avec succès au lieu de renvoyer une erreur.

L'opération génère une table BigQuery pour chaque type de ressource dans le datastore FHIR.

Console

Pour exporter des ressources FHIR vers BigQuery à l'aide de la console Google Cloud, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Ensembles de données.

    Accéder à la page "Ensembles de données"

  2. Cliquez sur le jeu de données contenant le store FHIR avec les données que vous exportez.

  3. Sur la même ligne que le store FHIR, ouvrez la liste Actions et sélectionnez Export (Exporter).

  4. Sur la page Export FHIR resources (Exporter les ressources FHIR) qui s'affiche, recherchez le Section Sélectionner une destination. Sélectionnez Table BigQuery.

  5. Dans la section Disposition d'écriture pour la table de destination, sélectionnez l'une des options suivantes pour déterminer le comportement de l'opération d'exportation:

    • N'exportez les données que si les tables de destination sont vides: cela équivaut à à la sélection de l'énumération WRITE_EMPTY dans WriteDisposition.
    • Ajouter des données aux tables de destination: cela équivaut à à la sélection de l'énumération WRITE_APPEND dans WriteDisposition.
    • Effacer toutes les données existantes dans les tables de destination avant d'écrire le FHIR ressources: cela revient à sélectionner l'énumération WRITE_TRUNCATE dans WriteDisposition
  6. Dans la section Configuration de l'exportation FHIR, cliquez sur Parcourir pour sélectionnez le projet et l'ensemble de données BigQuery.

  7. Dans la liste déroulante Schema type (Type de schéma), sélectionnez le schéma de sortie pour le table BigQuery. Les schémas suivants sont disponibles:

    • Données analytiques : Schéma basé sur le document SQL sur FHIR. Étant donné que BigQuery n'accepte que 10 000 colonnes par table, aucun schéma n'est généré pour les champs Parameters.parameter.resource, Bundle.entry.resource et Bundle.entry.response.outcome.
    • Analytics V2. Un schéma semblable au schéma Analytics, avec une prise en charge supplémentaire des éléments suivants: Le schéma Analytics V2 utilise plus d'espace dans la table de destination que le schéma Analytics.

  8. Sélectionnez un niveau de profondeur dans Recursive Structure Depth (Profondeur de la structure récursive). pour définir la profondeur de toutes les structures récursives du schéma de sortie. Par défaut, la valeur récursive est 2.

    Pour en savoir plus, consultez la page recursiveStructureDepth.

  9. Cliquez sur Exporter pour exporter les ressources FHIR vers BigQuery.

  10. Pour suivre l'état de l'opération, cliquez sur l'onglet Opérations. Une fois l'opération terminée, les indications suivantes s'affichent :
    • La section État de l'opération de longue durée est représentée par une coche verte sous l'en-tête OK.
    • La section Présentation comporte une coche verte et un indicateur OK sur la même ligne que l'ID de l'opération.
    Si vous rencontrez des erreurs, cliquez sur Actions, puis sur Afficher les détails dans Cloud Logging.

gcloud

Pour exporter des ressources FHIR vers BigQuery, exécutez la gcloud healthcare fhir-stores export bq .

  1. Exportez les ressources FHIR.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • LOCATION : emplacement de l'ensemble de données
    • DATASET_ID : ensemble de données parent du magasin FHIR.
    • FHIR_STORE_ID : ID du magasin FHIR.
    • BIGQUERY_DATASET_ID: nom de l'ensemble de données BigQuery existant dans lequel vous exportez des ressources FHIR
    • SCHEMA_TYPE: une valeur pour SchemaType. Utilisez l'une des valeurs suivantes:
      • analytics Schéma basé sur le document SQL sur FHIR. Étant donné que BigQuery n'accepte que 10 000 colonnes par table, aucun schéma n'est généré pour les champs Parameters.parameter.resource, Bundle.entry.resource et Bundle.entry.response.outcome.
      • analytics_v2 Un schéma semblable à analytics, avec une prise en charge supplémentaire des éléments suivants:

        analytics-v2 utilise plus d'espace dans la table de destination que analytics.

    • WRITE_DISPOSITION: une valeur pour WriteDisposition. Utilisez l'une des valeurs suivantes:
      • write-empty N'exportez des données que si les tables BigQuery de destination sont vides.
      • write-truncate Effacez toutes les données existantes dans les tables BigQuery avant d'écrire les ressources FHIR.
      • write-append Ajouter des données aux tables BigQuery de destination
    • FHIR_RESOURCE_TYPE: champ facultatif. Spécifiez un ou plusieurs types de ressources FHIR séparés par une virgule pour n'exporter que les ressources FHIR de ces types.
    • SINCE_TIMESTAMP: champ facultatif. Spécifiez une valeur au format YYYY-MM-DDThh:mm:ss.sss+zz:zz pour n'exporter que les ressources FHIR mises à jour après un délai spécifique. Indiquez l'heure à la seconde et incluez un fuseau horaire. Par exemple, 2015-02-07T13:28:17.239+02:00 et 2017-01-01T00:00:00Z sont des heures valides.

    Exécutez la commande suivante :

    Linux, macOS ou 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 réponse est la suivante. La réponse contient l'identifiant d'un opération de longue durée. Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre un temps considérable. La commande interroge l'opération de longue durée, puis affiche le nom de l'opération dans le champ name une fois l'exportation terminée. Notez la valeur de OPERATION_ID. Vous en aurez besoin à l'étape suivante.

    Réponse

    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. Pour afficher plus de détails sur l'opération, exécutez la gcloud healthcare operations describe et fournir le OPERATION_ID de la réponse.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • DATASET_ID : ID de l'ensemble de données
    • LOCATION : emplacement de l'ensemble de données
    • OPERATION_ID : ID renvoyé par l'opération de longue durée

    Exécutez la commande suivante :

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

    Vous devriez obtenir un résultat semblable à celui-ci :

    Réponse

    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

Pour exporter des ressources FHIR vers BigQuery, utilisez le projects.locations.datasets.fhirStores.export .

  1. Exportez les ressources FHIR:

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • LOCATION : emplacement de l'ensemble de données
    • DATASET_ID : ensemble de données parent du magasin FHIR.
    • FHIR_STORE_ID : ID du magasin FHIR.
    • BIGQUERY_DATASET_ID: nom de l'ensemble de données BigQuery existant dans lequel vous exportez des ressources FHIR
    • SCHEMA_TYPE: une valeur pour SchemaType. Utilisez l'une des valeurs suivantes:
      • ANALYTICS Schéma basé sur le document SQL sur FHIR. Étant donné que BigQuery n'accepte que 10 000 colonnes par table, aucun schéma n'est généré pour les champs Parameters.parameter.resource, Bundle.entry.resource et Bundle.entry.response.outcome.
      • ANALYTICS_V2 Un schéma semblable à ANALYTICS, avec une prise en charge supplémentaire des éléments suivants:

        ANALYTICS_V2 utilise plus d'espace dans la table de destination que ANALYTICS

        .
    • WRITE_DISPOSITION: une valeur pour WriteDisposition. Utilisez l'une des valeurs suivantes:
      • WRITE_EMPTY N'exportez des données que si les tables BigQuery de destination sont vides.
      • WRITE_TRUNCATE Effacez toutes les données existantes dans les tables BigQuery avant d'écrire les ressources FHIR.
      • WRITE_APPEND Ajouter des données aux tables BigQuery de destination
    • FHIR_RESOURCE_TYPE: champ facultatif. Spécifiez un ou plusieurs types de ressources FHIR séparés par une virgule pour n'exporter que les ressources FHIR de ces types.
    • SINCE_TIMESTAMP: champ facultatif. Spécifiez une valeur au format YYYY-MM-DDThh:mm:ss.sss+zz:zz pour n'exporter que les ressources FHIR mises à jour après un délai spécifique. Indiquez l'heure à la seconde et incluez un fuseau horaire. Par exemple, 2015-02-07T13:28:17.239+02:00 et 2017-01-01T00:00:00Z sont des heures valides.

    Corps JSON de la requête :

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

    Pour envoyer votre requête, choisissez l'une des options suivantes :

    curl

    Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

    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

    Exécutez ensuite la commande suivante pour envoyer votre requête 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

    Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

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

    Exécutez ensuite la commande suivante pour envoyer votre requête 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

    API Explorer

    Copiez le corps de la requête et ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Collez le corps de la requête dans cet outil, renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).

    Le résultat est le suivant. La réponse contient l'identifiant d'un opération de longue durée (LRO). Les opérations de longue durée sont renvoyées lorsque les appels de méthode peuvent prendre davantage de temps. Notez la valeur de OPERATION_ID. Vous en aurez besoin à l'étape suivante.

  2. Utilisez la méthode projects.locations.datasets.operations.get pour obtenir l'état de l'opération de longue durée.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • DATASET_ID : ID de l'ensemble de données
    • LOCATION : emplacement de l'ensemble de données
    • OPERATION_ID : ID renvoyé par l'opération de longue durée

    Pour envoyer votre requête, choisissez l'une des options suivantes :

    curl

    Exécutez la commande suivante :

    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

    Exécutez la commande suivante :

    $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

    API Explorer

    Ouvrez le page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).

    Le résultat est le suivant. Lorsque la réponse contient "done": true, l'opération de longue durée est terminée.

Exporter des ressources FHIR vers des tables partitionnées

Pour exporter des ressources FHIR vers des tables partitionnées BigQuery, définissez le paramètre TimePartitioning "énumération" dans lastUpdatedPartitionConfig dans votre store FHIR.

Les tables partitionnées fonctionnent comme BigQuery tables partitionnées par unité de temps. Les tables partitionnées comportent une colonne supplémentaire nommée lastUpdated, qui est un doublon de la colonne meta.lastUpdated générée à partir du champ meta.lastUpdated dans une ressource FHIR. BigQuery utilise le lastUpdated pour partitionner les tables par heure, jour, mois ou année.

Voir Sélectionner un partitionnement quotidien, horaire, mensuel ou annuel pour obtenir des recommandations sur le choix d'une granularité de partition.

Vous ne pouvez pas convertir des tables BigQuery existantes non partitionnées en les tables partitionnées. Si vous exportez une ressource Patient les modifications apportées à une table Patients non partitionnée ; créer ultérieurement un nouveau store FHIR avec un partitionnement de table qui exporte vers le même ensemble de données BigQuery, l'API Cloud Healthcare exporte toujours les données. à la table Patients non partitionnée. Pour commencer à utiliser une table partitionnée, supprimez la table Patients existante ou utilisez un autre ensemble de données BigQuery.

Si vous ajoutez un partitionnement à une configuration de store FHIR existante, vous pouvez toujours exporter vers des tables non partitionnées existantes. Toutefois, le partitionnement ne prendra effet sur de nouvelles tables.

Les exemples suivants montrent comment exporter des ressources FHIR vers BigQuery les tables partitionnées.

Console

La console Google Cloud et gcloud CLI ne permettent pas d'effectuer cette opération. Utilisez plutôt curl, PowerShell ou le langage de votre choix.

gcloud

La console Google Cloud et gcloud CLI ne permettent pas d'effectuer cette opération. Utilisez plutôt curl, PowerShell ou le langage de votre choix.

REST

Pour exporter des ressources FHIR vers des tables partitionnées BigQuery, utilisez la projects.locations.datasets.fhirStores.export .

  1. Exportez les ressources FHIR:

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • LOCATION : emplacement de l'ensemble de données
    • DATASET_ID : ensemble de données parent du magasin FHIR.
    • FHIR_STORE_ID : ID du magasin FHIR.
    • BIGQUERY_DATASET_ID: nom de l'ensemble de données BigQuery existant dans lequel vous exportez des ressources FHIR
    • SCHEMA_TYPE: une valeur pour SchemaType. Utilisez l'une des valeurs suivantes:
      • ANALYTICS Schéma basé sur le document SQL sur FHIR. Étant donné que BigQuery n'accepte que 10 000 colonnes par table, aucun schéma n'est généré pour les champs Parameters.parameter.resource, Bundle.entry.resource et Bundle.entry.response.outcome.
      • ANALYTICS_V2 Un schéma semblable à ANALYTICS, avec une prise en charge supplémentaire des éléments suivants:

        ANALYTICS_V2 utilise plus d'espace dans la table de destination que ANALYTICS

        .
    • TIME_PARTITION_TYPE: précision avec laquelle vous souhaitez partitionner les ressources FHIR exportées. Utilisez l'une des valeurs suivantes:
      • HOUR: partitionner les données par heure
      • DAY: partitionner les données par jour
      • MONTH: partitionner les données par mois
      • YEAR: partitionner les données par année
    • WRITE_DISPOSITION: une valeur pour WriteDisposition. Utilisez l'une des valeurs suivantes:
      • WRITE_EMPTY: n'exporte les données que si la table BigQuery est vide.
      • WRITE_TRUNCATE: effacez toutes les données existantes de la table BigQuery avant d'écrire les instances DICOM.
      • WRITE_APPEND: ajoute des données à la table BigQuery.

    Corps JSON de la requête :

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

    Pour envoyer votre requête, choisissez l'une des options suivantes :

    curl

    Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

    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

    Exécutez ensuite la commande suivante pour envoyer votre requête 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

    Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

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

    Exécutez ensuite la commande suivante pour envoyer votre requête 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

    API Explorer

    Copiez le corps de la requête et ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Collez le corps de la requête dans cet outil, renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).

    Vous devriez recevoir une réponse JSON de ce type :

  2. Utilisez la méthode projects.locations.datasets.operations.get pour obtenir l'état de l'opération de longue durée.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • PROJECT_ID : ID de votre projet Google Cloud
    • DATASET_ID : ID de l'ensemble de données
    • LOCATION : emplacement de l'ensemble de données
    • OPERATION_ID : ID renvoyé par l'opération de longue durée

    Pour envoyer votre requête, choisissez l'une des options suivantes :

    curl

    Exécutez la commande suivante :

    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

    Exécutez la commande suivante :

    $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

    API Explorer

    Ouvrez le page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).

    Le résultat est le suivant. Lorsque la réponse contient "done": true, l'opération de longue durée est terminée.

Interroger une table partitionnée

Pour réduire les coûts des requêtes lorsque vous interrogez des tables partitionnées, utilisez la classe WHERE pour filtrer par unité de temps.

Par exemple, supposons que vous définissiez PartitionType sur DAY. Pour interroger une table Patients sur les ressources patient mises à jour sur une exécutez la requête suivante:

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

Interroger et analyser des données FHIR dans BigQuery

Après avoir exporté les ressources FHIR vers BigQuery, consultez la solution Analyser des données FHIR dans BigQuery pour en savoir plus sur l'interrogation et l'analyse des données exportées. La solution utilise les données synthétiques générées par SyntheaTM dans FHIR un ensemble de données public qui héberge plus d'un million de dossiers patients synthétiques aux formats Synthea™ et FHIR.

Résoudre les problèmes liés aux requêtes d'exportation FHIR

Si des erreurs se produisent lors d'une requête d'exportation FHIR, elles sont consignées dans Cloud Logging. Pour en savoir plus, consultez la section Afficher les journaux d'erreurs dans Cloud Logging.

Si l'ensemble de l'opération renvoie une erreur, consultez la section Résoudre les problèmes d'opérations de longue durée.

Impossible de convertir la colonne NULLABLE en REPEATED

Cette erreur est causée par une extension répétée. Pour résoudre cette erreur, utilisez l'ANALYTICS_V2 type de schéma. Si vous utilisez déjà ANALYTICS_V2, vous avez peut-être conflit entre deux extensions, ou entre une extension et une autre .

Les noms de colonne sont générés à partir du texte situé après le dernier caractère / dans URL d'extension. Si une URL d'extension se termine par une valeur telle que /resource_field name, un conflit peut survenir.

Pour éviter que cette erreur ne se reproduise, n'utilisez pas les extensions si leur champ sont identiques à ceux des champs de ressources que vous remplissez.

Étape suivante