Diffuser des métadonnées DICOM vers BigQuery

Cette page explique comment configurer un magasin DICOM à exporter des métadonnées d'instance DICOM vers une table BigQuery chaque fois que l'une des se produit:

Diffuser des métadonnées DICOM vers une table BigQuery synchronise la table avec vos données DICOM afin de pouvoir exécuter des requêtes complexes sur la dernière version de dans votre magasin DICOM.

Avant de commencer

Avant de configurer votre store DICOM, procédez comme suit :

Définir les autorisations BigQuery

Avant de diffuser des métadonnées DICOM vers BigQuery, vous devez accorder Les autorisations requises pour l'agent de service Cloud Healthcare compte de service. Pour en savoir plus, consultez la section Autorisations BigQuery pour les magasins DICOM.

Découvrir comment exporter des métadonnées DICOM vers BigQuery

Avant de configurer le streaming, apprenez à Exporter les métadonnées DICOM vers BigQuery

Configurer le store DICOM

Pour activer la diffusion vers BigQuery, configurez l'objet StreamConfig dans votre magasin DICOM. Dans l'objet StreamConfig, définissez BigQueryDestination vers un URI de table BigQuery complet en tant que fichier DICOM la destination des métadonnées de l'instance.

Vous pouvez spécifier jusqu'à cinq destinations BigQuery des objets JSON séparés par une virgule.

La suppression d'instances DICOM dans un magasin DICOM ne supprime pas l'instance BigQuery des lignes contenant les métadonnées de ces instances.

Console

Pour mettre à jour un store DICOM afin d'activer le streaming BigQuery, 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. Sélectionnez l'ensemble de données contenant le magasin DICOM que vous souhaitez modifier.
  3. Sélectionnez le store DICOM pour lequel vous ajoutez une configuration de streaming.
  4. Dans l'onglet Présentation de la page Informations sur Datastore, Cliquez sur Add new streaming configuration (Ajouter une configuration de streaming).
  5. Dans le champ Nouvelle configuration de streaming, cliquez sur Parcourir.
    1. Dans le volet Sélectionner une table, sélectionnez une table BigQuery.
    2. Cliquez sur Sélectionner.
  6. Cliquez sur OK.

REST

Les exemples suivants montrent comment mettre à jour un magasin DICOM pour activer la diffusion BigQuery. Dans ces exemples, le magasin DICOM et la table BigQuery se trouvent dans le même projet. Pour exporter des métadonnées DICOM vers un autre projet, consultez Exporter des métadonnées DICOM vers un autre projet.

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 DICOM
  • DICOM_STORE_ID : ID du store DICOM
  • BIGQUERY_DATASET_ID : nom d'un ensemble de données BigQuery existant
  • BIGQUERY_TABLE_ID : nom unique d'une table dans l'ensemble de données BigQuery. Pour connaître les règles de dénomination des tables, consultez la section Nommer les tables. L'ensemble de données BigQuery doit exister, mais l'API Cloud Healthcare peut mettre à jour une table existante ou en créer une.

Corps JSON de la requête :

{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}

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'
{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
EOF

Exécutez ensuite la commande suivante pour envoyer votre requête 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/dicomStores/DICOM_STORE_ID?updateMask=streamConfigs"

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 :

@'
{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
'@  | 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 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/dicomStores/DICOM_STORE_ID?updateMask=streamConfigs" | 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 :

Métadonnées de suppression

Dans les versions précédentes de l'API Cloud Healthcare, les métadonnées d'instance DICOM n'étaient exportées que vers BigQuery lorsqu'une instance DICOM était insérée dans un store DICOM. Lorsque l'écriture de métadonnées pour les suppressions a été ajoutée, deux nouvelles colonnes, nommées Type et LastUpdated, ont été ajoutées à la table générée contenant les métadonnées DICOM.

Toutes les métadonnées de la table qui existaient avant l'introduction de la suppression Les métadonnées comportent une valeur NULL pour ces colonnes. NULL est la valeur la plus faible. apparaît en dernier lors du tri par ordre décroissant.

Vue BigQuery générée

Lorsque vous insérez ou supprimez une instance DICOM dans un magasin DICOM, la classe La table BigQuery est mise à jour.

Si aucune vue de la table n'existe, la vue est créée. Sinon, la vue est mise à jour.

Restrictions et comportements supplémentaires

Il est possible que certains tags DICOM soient absents des métadonnées exportées. Si c'est le cas, les sont ajoutés à une colonne distincte nommée DroppedTags.TagName dans la section dans la table BigQuery de destination.

Des balises seront manquantes pour l'une des raisons suivantes:

  • La balise DICOM est une RV non compatible répertoriée dans la section RV exclues.
  • La taille du tag DICOM dépasse environ 1 Mo.
  • Le nombre de colonnes dans la table BigQuery de destination dépasse la nombre maximal de colonnes. Lors de l'exportation de métadonnées DICOM vers une table BigQuery, la valeur limite de colonnes, les tags DICOM qui ne correspondent pas à une colonne existante sont ajoutés à la colonne DroppedTags.Name. Si la colonne DroppedTags ne peut pas être ajoutée, les tags DICOM sont supprimés sans notification et un journal d'avertissement est générées. Pour en savoir plus, consultez Dépannez les requêtes de streaming DICOM pour l'affichage des journaux.

Intégrer des métadonnées de suppression dans une table existante

Le comportement de la vue générée varie selon que sa base Le tableau contient les métadonnées ajoutées avant les métadonnées de suppression a été introduite.

Supposons qu'une table BigQuery contienne des métadonnées DICOM provenant métadonnées de suppression étaient acceptées, et voici ce qui se produit:

  1. Vous insérez une instance DICOM dans un store DICOM.
  2. Vous supprimez l'instance DICOM du store DICOM.
  3. Vous modifiez les tags de l'instance DICOM d'origine et insérez l'élément modifié l'instance DICOM dans le magasin DICOM.

Comme la table BigQuery contenait les métadonnées d'origine avant les métadonnées de suppression étaient prises en charge, l'instance DICOM d'origine et ses modifications ont les mêmes études, séries et instances des identifiants uniques (UID). La vue générée peut contenir soit l'instance DICOM d'origine, soit l'instance DICOM la plus récente. Sans la colonne LastUpdated, la vue ne peut pas identifier l'instance DICOM la plus récente.

Pour vous assurer d'interroger les métadonnées d'instance DICOM les plus récentes, effectuez l'une des opérations suivantes:

  • Interrogez la table de base plutôt que la vue. Assurez-vous que la requête recherche les tags mis à jour dans l'instance DICOM modifiée.
  • Supprimez la table existante contenant les métadonnées DICOM, puis recréez-la en exportant manuellement les métadonnées DICOM vers BigQuery. La table recréée contient la colonne LastUpdated.

    Cette option supprime les métadonnées de streaming historiques, tout en s'assurant que la table contient la colonne LastUpdated avec des valeurs valides.

Résoudre les problèmes liés aux requêtes de streaming DICOM

Si des erreurs se produisent lors d'une requête d'exportation de métadonnées DICOM vers BigQuery, elles sont consignées dans Cloud Logging. Pour en savoir plus, consultez la page Afficher les journaux d'erreurs dans Cloud Logging.

Pour filtrer les journaux d'erreurs liés aux métadonnées DICOM diffusées en streaming dans la console Google Cloud, procédez comme suit:

  1. Accédez à la page Explorateur de journaux.

    Accéder à l'explorateur de journaux

  2. Dans le champ Requête, saisissez la requête suivante :

    logName="healthcare.googleapis.com%2Fdicom_stream"
    
  3. Cliquez sur Exécuter la requête.

    Tous les journaux d'erreurs sont affichés dans la section Résultats de la requête.