Trasmissione di flussi di metadati DICOM in BigQuery

Questa pagina descrive come configurare un archivio DICOM per esportare i metadati delle istanze DICOM in una tabella BigQuery quando si verifica uno dei seguenti eventi:

La trasmissione di flussi di metadati DICOM a una tabella BigQuery sincronizza la tabella con i tuoi dati DICOM, in modo da poter eseguire query complesse sull'ultima versione del tuo archivio DICOM.

Prima di iniziare

Prima di configurare l'archivio DICOM, completa le seguenti operazioni

Imposta le autorizzazioni BigQuery

Prima di eseguire lo streaming dei metadati DICOM in BigQuery, devi concedere le autorizzazioni richieste all'account di servizio dell'agente di servizio Cloud Healthcare. Per ulteriori informazioni, consulta Autorizzazioni BigQuery per gli archivi DICOM.

Scopri come esportare i metadati DICOM in BigQuery

Prima di configurare lo streaming, scopri come esportare i metadati DICOM in BigQuery.

Configura l'archivio DICOM

Per abilitare lo streaming a BigQuery, configura l'oggetto StreamConfig nel tuo archivio DICOM. Nell'oggetto StreamConfig, imposta l'oggetto BigQueryDestination su un URI di tabella BigQuery completo come destinazione dei metadati dell'istanza DICOM.

Puoi specificare fino a cinque destinazioni BigQuery come oggetti JSON separati da virgole.

L'eliminazione delle istanze DICOM in un archivio DICOM non elimina le righe BigQuery contenenti i metadati di queste istanze.

Console

Per aggiornare un archivio DICOM in modo da attivare lo streaming BigQuery:

  1. Nella console Google Cloud , vai alla pagina Set di dati.
    Vai a Set di dati
  2. Seleziona il set di dati contenente l'archivio DICOM da modificare.
  3. Seleziona l'archivio DICOM per cui stai aggiungendo una configurazione di streaming.
  4. Nella scheda Panoramica della pagina Dettagli datastore, fai clic su Aggiungi nuova configurazione di streaming.
  5. Nel campo Nuova configurazione di streaming, fai clic su Sfoglia.
    1. Nel riquadro Seleziona tabella, seleziona una tabella BigQuery.
    2. Fai clic su Seleziona.
  6. Fai clic su Fine.

REST

Gli esempi riportati di seguito mostrano come aggiornare un archivio DICOM per abilitare lo streaming BigQuery. In questi esempi, l'archivio DICOM e la tabella BigQuery si trovano nello stesso progetto. Per esportare i metadati DICOM in un altro progetto, consulta Esportazione dei metadati DICOM in un altro progetto.

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 principale dell'archivio DICOM
  • DICOM_STORE_ID: l'ID archivio DICOM
  • BIGQUERY_DATASET_ID: il nome di un set di dati BigQuery esistente
  • BIGQUERY_TABLE_ID: un nome univoco per una tabella nel set di dati BigQuery. Per i requisiti di denominazione, consulta Denominazione delle tabelle. Il set di dati BigQuery deve esistere, ma l'API Cloud Healthcare può aggiornare una tabella esistente o crearne una nuova.

Corpo JSON della richiesta:

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

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

Explorer 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:

Metadati di eliminazione

Nelle versioni precedenti dell'API Cloud Healthcare, i metadati delle istanze DICOM venivano esportati in BigQuery solo quando un'istanza DICOM veniva inserita in un archivio DICOM. Quando è stata aggiunta la scrittura dei metadati per le eliminazioni, sono state aggiunte due nuove colonne, denominate Type e LastUpdated, alla tabella generata contenente i metadati DICOM.

Tutti i metadati nella tabella esistenti prima dell'introduzione dei metadati di eliminazione hanno un valore NULL per queste colonne. Un NULL è il valore più basso e viene visualizzato per ultimo quando l'ordinamento è in ordine decrescente.

Vista BigQuery generata

Quando inserisci o elimini un'istanza DICOM in un archivio DICOM, la tabella BigQuery configurata viene aggiornata.

Se non esiste una vista della tabella, viene creata la vista. In caso contrario, la visualizzazione viene aggiornata.

Limitazioni e comportamento aggiuntivo

Alcuni tag DICOM potrebbero non essere presenti nei metadati esportati. In questo caso, i tag mancanti vengono aggiunti a una colonna separata denominata DroppedTags.TagName nella tabella BigQuery di destinazione.

I tag non saranno presenti per uno dei seguenti motivi:

  • Il tag DICOM è una VR non supportata elencata in VR escluse.
  • Il tag DICOM supera approssimativamente 1 MB.
  • Il numero di colonne nella tabella BigQuery di destinazione supera il numero massimo di colonne. Quando l'esportazione dei metadati DICOM in una tabella BigQuery supera il limite di colonne, i tag DICOM che non corrispondono a una colonna esistente vengono aggiunti alla colonna DroppedTags.Name. Se non è possibile aggiungere la colonna DroppedTags, i tag DICOM vengono eliminati senza una notifica e viene generato un log di avviso. Per ulteriori informazioni, consulta Risoluzione dei problemi relativi alle richieste di streaming DICOM per la visualizzazione dei log.

Incorporare i metadati di eliminazione in una tabella esistente

Il comportamento della vista generata dipende dal fatto che la tabella di base contenga metadati aggiunti prima dell'introduzione della funzionalità metadati di eliminazione.

Supponiamo che una tabella BigQuery contenga metadati DICOM precedenti all'introduzione del supporto dei metadati di eliminazione e che si verifichi quanto segue:

  1. Inserisci un'istanza DICOM in un archivio DICOM.
  2. Elimini l'istanza DICOM dall'archivio DICOM.
  3. Modifica i tag dell'istanza DICOM originale e inserisci l'istanza DICOM modificata nell'archivio DICOM.

Poiché la tabella BigQuery conteneva i metadati originali prima che fossero supportati i metadati di eliminazione, l'istanza DICOM originale e la relativa versione modificata hanno gli stessi identificatori univoci (UID) di studi, serie e istanze. La visualizzazione generata potrebbe contenere l'istanza DICOM originale o quella più recente. Senza la colonna LastUpdated, la visualizzazione non può identificare quale istanza DICOM è più recente.

Per assicurarti di eseguire query sui metadati dell'istanza DICOM più recente, esegui una delle seguenti operazioni:

  • Esegui una query della tabella di base anziché della vista. Assicurati che la query cerchi i tag aggiornati nell'istanza DICOM modificata.
  • Elimina la tabella esistente contenente i metadati DICOM e ricreala esportando manualmente i metadati DICOM in BigQuery. La tabella ricreata contiene la colonna LastUpdated.

    Questa opzione rimuove i metadati di streaming storici, ma garantisce che la tabella contenga la colonna LastUpdated con valori validi.

Risolvere i problemi relativi alle richieste di streaming DICOM

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

Per filtrare i log degli errori dei metadati DICOM di streaming nella console Google Cloud , completa i seguenti passaggi:

  1. Vai alla pagina Esplora log.

    Vai a Esplora log

  2. Nel campo Query, inserisci la seguente query:

    logName="healthcare.googleapis.com%2Fdicom_stream"
    
  3. Fai clic su Esegui query.

    Eventuali log degli errori vengono visualizzati nella sezione Risultati delle query.