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 ogni volta che si verifica una delle seguenti condizioni:

La trasmissione di flussi di metadati DICOM a una tabella BigQuery sincronizza la tabella con i dati DICOM in modo da poter eseguire query complesse sulla versione più recente del tuo archivio DICOM.

Prima di iniziare

Prima di configurare l'archivio DICOM, completa quanto segue

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.

Configurare l'archivio DICOM

Per attivare lo streaming in BigQuery, configura l'oggetto StreamConfig nel tuo archivio DICOM. Nell'oggetto StreamConfig, imposta l'oggetto BigQueryDestination su un URI tabella BigQuery completamente qualificato come destinazione per i metadati delle istanze DICOM.

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

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

Console

Per aggiornare un archivio DICOM in modo da attivare lo streaming di 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 di 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 progetto Google Cloud
  • LOCATION: la posizione del set di dati
  • DATASET_ID: il set di dati principale dell'archivio DICOM
  • DICOM_STORE_ID: l'ID dell'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 Nomi 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 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'
{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
EOF

Quindi, esegui il seguente 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 il seguente 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. Il riquadro Esplora API si apre sul lato destro della pagina. 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, nella tabella generata contenente i metadati DICOM sono state aggiunte due nuove colonne, denominate Type e LastUpdated.

Tutti i metadati della 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 visualizzazione della tabella, viene creata. In caso contrario, la visualizzazione viene aggiornata.

Limitazioni e comportamento aggiuntivo

Nei metadati esportati potrebbero mancare alcuni tag DICOM. 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 realtà virtuale 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 ignorati senza una notifica e viene generato un log di avviso. Per ulteriori informazioni, consulta la sezione 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à dei metadati di eliminazione.

Supponiamo che una tabella BigQuery contenga metadati DICOM precedenti al supporto dei metadati di eliminazione e 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 i metadati di eliminazione fossero supportati, l'istanza DICOM originale e la relativa versione modificata hanno gli stessi studi, serie e identificatori univoci (UID) delle istanze. La visualizzazione generata potrebbe contenere l'istanza DICOM originale o l'istanza DICOM 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ù recenti, svolgi una delle seguenti operazioni:

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

    Questa opzione rimuove i metadati storici dello streaming, 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 in streaming nella console Google Cloud:

  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 di errore vengono visualizzati nella sezione Risultati delle query.