Trasmissione di flussi di metadati DICOM in BigQuery

Questa pagina descrive come configurare un archivio DICOM per esportare i metadati dell'istanza DICOM in una tabella BigQuery ogni volta che si verifica una delle seguenti condizioni:

I flussi di metadati DICOM in una tabella BigQuery sincronizzano la tabella con i tuoi 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

Impostare le autorizzazioni BigQuery

Prima di trasmettere in streaming i metadati DICOM a 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 il flusso di dati, scopri come esportare i metadati DICOM in BigQuery.

configura l'archivio DICOM

Per abilitare il flusso di dati verso BigQuery, configura l'oggetto StreamConfig nel tuo archivio DICOM. Nell'oggetto StreamConfig, imposta l'oggetto BigQueryDestination su un URI della 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 di istanze DICOM in un archivio DICOM non elimina le righe BigQuery contenenti i metadati per queste istanze.

Console

Per aggiornare un archivio DICOM per abilitare i flussi di dati BigQuery, completa i seguenti passaggi:

  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 che vuoi modificare.
  3. Seleziona l'archivio DICOM per il quale stai aggiungendo una configurazione di flussi di dati.
  4. Nella scheda Panoramica della pagina Dettagli datastore, fai clic su Aggiungi nuova configurazione di flussi di dati.
  5. Nel campo Nuova configurazione di flussi di dati, fai clic su Sfoglia.
    1. Nel riquadro Seleziona tabella, scegli 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 il flusso di dati 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 progetto diverso.

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: set di dati padre dell'archivio DICOM
  • DICOM_STORE_ID: l'ID datastore DICOM
  • BIGQUERY_DATASET_ID: il nome di un set di dati BigQuery esistente
  • BIGQUERY_TABLE_ID: nome univoco per una tabella nel set di dati BigQuery. Per i requisiti di denominazione, consulta Nome 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 attuale:

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

@'
{
  '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 tutti 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 dell'istanza DICOM venivano esportati in BigQuery solo quando un'istanza DICOM veniva inserita in un archivio DICOM. Durante 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. NULL è il valore più basso e compare per ultimo se 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

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:

Incorporare metadati di eliminazione in una tabella esistente

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

Supponiamo che una tabella BigQuery contenga i metadati DICOM precedenti al supporto dei metadati di eliminazione e che si verifichi quanto segue:

  1. Inserirai 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 fosse supportata l'eliminazione dei metadati, l'istanza DICOM originale e la sua versione modificata hanno gli stessi studi, serie e identificatori univoci dell'istanza (UID). La vista generata potrebbe contenere l'istanza DICOM originale o l'istanza DICOM più recente. Senza la colonna LastUpdated, la vista non può identificare quale istanza DICOM è più recente.

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

  • Esegui una query sulla tabella di base anziché sulla vista. 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 dei flussi di dati, ma garantisce che la tabella contenga la colonna LastUpdated con valori validi.

Risolvi i problemi relativi alle richieste di flussi di dati DICOM

Se si verificano errori durante una richiesta di esportazione dei metadati DICOM in BigQuery, questi vengono registrati in Cloud Logging. Per saperne di più, consulta Visualizzazione dei log degli errori in Cloud Logging.

Per filtrare i log degli errori dei metadati DICOM in modalità flusso 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.

    Gli eventuali log degli errori vengono visualizzati nella sezione Risultati delle query.