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:

L'inserimento di flussi di metadati DICOM in una tabella BigQuery sincronizza la tabella con i tuoi dati DICOM in modo da poter eseguire query complesse sull'ultima versione nell'archivio DICOM.

Prima di iniziare

Prima di configurare l'archivio DICOM, completa quanto segue

Imposta le autorizzazioni BigQuery

Prima di trasmettere flussi di metadati DICOM a BigQuery, devi concedere le autorizzazioni necessarie per l'agente di servizio Cloud Healthcare account di servizio. Per ulteriori informazioni, vedi Autorizzazioni BigQuery per gli archivi DICOM.

Scopri come esportare i metadati DICOM in BigQuery

Prima di configurare i flussi di dati, scopri come esportare i metadati DICOM in BigQuery.

configura l'archivio DICOM

Per attivare i flussi verso BigQuery, configura StreamConfig nel tuo archivio DICOM. Nell'oggetto StreamConfig, imposta il valore BigQueryDestination a un URI della tabella BigQuery completo come un file DICOM dei metadati dell'istanza.

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

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 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 streaming, 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 lo streaming di BigQuery. In questi esempi, l'archivio DICOM e BigQuery sono 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, 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 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 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 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 erano esportata in BigQuery quando un'istanza DICOM è stata inserita in un . Durante la scrittura dei metadati per l'eliminazione, sono state aggiunte due nuove colonne denominate Type e LastUpdated alla colonna contenente i metadati DICOM.

Tutti i metadati della tabella esistenti prima dell'introduzione dei metadati di eliminazione hanno un valore NULL per queste colonne. NULL è il valore più basso e appare per ultima quando l'ordinamento è 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 la vista. In caso contrario, la visualizzazione viene aggiornata.

Limitazioni e comportamento aggiuntivo

Nei metadati esportati potrebbero mancare alcuni tag DICOM. Se sì, i valori mancanti i tag vengono aggiunti a una colonna separata denominata DroppedTags.TagName nel 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 sua base la tabella contiene metadati aggiunti prima dei metadati di eliminazione è stata introdotta.

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

  1. Inserirai un'istanza DICOM in un archivio DICOM.
  2. Elimina l'istanza DICOM dall'archivio DICOM.
  3. Modifichi i tag dell'istanza DICOM originale e inserisci DICOM nell'archivio DICOM.

Poiché la tabella BigQuery conteneva i metadati originali prima dei metadati di eliminazione, l'istanza DICOM originale e i relativi metadati hanno gli stessi studi, serie e istanze identificatori univoci (UID). La vista generata potrebbe contenere l'istanza DICOM originale o l'istanza DICOM più recente. Senza colonna LastUpdated, la vista non riesce a identificare quale istanza DICOM è più recente.

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

  • 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 contiene la colonna LastUpdated con valori validi.

Risolvi i problemi relativi alle richieste di flussi di dati DICOM

Se si verificano errori durante un'esportazione DICOM in BigQuery gli errori vengono registrati in Cloud Logging. Per ulteriori informazioni le informazioni, vedi 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.