Questa pagina descrive come gestire i dati DICOM nell'API Cloud Healthcare utilizzando diverse classi di archiviazione. La scelta della classe di archiviazione giusta può aiutarti a ridurre i costi e a soddisfare i requisiti normativi per la conservazione dei dati.
Questa pagina è destinata agli utenti tecnici che hanno già familiarità con DICOM e l'API Cloud Healthcare.
Panoramica
Le classi di archiviazione DICOM funzionano in modo simile alle classi di archiviazione Cloud Storage, offrendo diverse caratteristiche di costo e prestazioni in base alla frequenza con cui accedi ai dati e al periodo di tempo per cui devi archiviarli. Per ulteriori informazioni su ciascuna classe di archiviazione, consulta Descrizioni delle classi.
Potresti voler modificare la classe di archiviazione degli oggetti DICOM a seconda della frequenza con cui accedi all'oggetto o per quanto tempo deve essere conservato. Ad esempio:
- Puoi spostare le immagini DICOM a cui si accede raramente da Standard Storage a Nearline Storage o Coldline Storage per risparmiare sui costi di fatturazione.
- Puoi spostare i dati dei pazienti che devono essere conservati per motivi legali in Archive Storage, la classe di archiviazione più economica e duratura.
Classi di archiviazione DICOM disponibili
Puoi utilizzare le seguenti classi di archiviazione per gli oggetti DICOM:
- Standard (predefinito)
- Nearline
- Coldline
- Archivia
Prezzi delle classi di archiviazione
Ogni classe di archiviazione ha una propria struttura tariffaria. La modifica della classe di archiviazione degli oggetti DICOM potrebbe influire sui costi di fatturazione. Per ulteriori informazioni, consulta le seguenti risorse:
Modificare la classe di archiviazione per i singoli oggetti DICOM
Puoi modificare la classe di archiviazione degli oggetti DICOM a livello di studio, serie o istanza.
Gli esempi riportati di seguito mostrano come modificare la classe di archiviazione di un'istanza DICOM.
REST
Modifica la classe di archiviazione dell'istanza DICOM utilizzando il metodo
projects.locations.datasets.dicomStores.studies.series.instances.setBlobStorageSettings
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati principale dell'archivio DICOMDICOM_STORE_ID
: l'ID archivio DICOMSTUDY_INSTANCE_UID
: l'identificatore univoco dell'istanza dello studioSERIES_INSTANCE_UID
: l'identificatore univoco dell'istanza della serieINSTANCE_UID
: l'identificatore univoco dell'istanzaSTORAGE_CLASS
: la classe di archiviazione per l'istanza DICOM. Uno traSTANDARD
,NEARLINE
,COLDLINE
oARCHIVE
.
Corpo JSON della richiesta:
{ "blobStorageSettings": { "blobStorageClass": "STORAGE_CLASS" } }
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' { "blobStorageSettings": { "blobStorageClass": "STORAGE_CLASS" } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-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/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:setBlobStorageSettings"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:@' { "blobStorageSettings": { "blobStorageClass": "STORAGE_CLASS" } } '@ | 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 POST `
-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/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:setBlobStorageSettings" | Select-Object -Expand ContentExplorer 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.
OPERATION_ID
. Ti servirà nel passaggio successivo.Recupera lo stato dell'operazione a lunga esecuzione utilizzando il metodo
projects.locations.datasets.operations.get
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati principale dell'archivio DICOMOPERATION_ID
: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content"done": true
, l'operazione di recupero a lungo termine è terminata.
Modificare la classe di archiviazione per più oggetti utilizzando un file di filtro
Le sezioni riportate di seguito mostrano come creare e utilizzare un file di filtri per modificare la classe di archiviazione degli oggetti DICOM in base a un criterio di filtro.
Filtrare i requisiti dei file
- Ogni riga del file di filtro definisce lo studio, la serie o l'istanza e
utilizza il formato
/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID
. - Puoi troncare una riga per specificare il livello a cui funziona il filtro.
Ad esempio, puoi selezionare un intero studio specificando
/studies/STUDY_INSTANCE_UID
oppure puoi selezionare un'intera serie specificando/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID
.
Considera il seguente file di filtri:
/studies/1.123.456.789 /studies/1.666.333.111/series/123.456 /studies/1.666.333.111/series/567.890 /studies/1.888.999.222/series/123.456/instances/111 /studies/1.888.999.222/series/123.456/instances/222 /studies/1.888.999.222/series/123.456/instances/333
Questo file di filtri di esempio si applica a:
- L'intero studio con l'UID istanza studio
1.123.456.789
- Due serie distinte con UID istanza serie come
123.456
e567.890
nello studio1.666.333.111
- Tre singole istanze con ID istanza
111
,222
e333
nello studio1.888.999.222
e nella serie123.456
Creare un file di filtri utilizzando BigQuery
Per creare un file di filtri utilizzando BigQuery, devi prima esportare i metadati dell'archivio DICOM in BigQuery. I metadati esportati mostrano gli UID di studio, serie e istanza dei dati DICOM nell'archivio DICOM.
Dopo aver esportato i metadati, completa i seguenti passaggi:
Esegui una query per restituire gli UID dello studio, della serie e delle istanze che vuoi aggiungere al file di filtri.
Ad esempio, la seguente query mostra come concatenare gli UID di studio, serie e istanza per soddisfare i requisiti del formato del file di filtro:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
(Facoltativo) Se la query restituisce un set di risultati di grandi dimensioni che supera la dimensione massima della risposta, salva i risultati della query in una nuova tabella di destinazione in BigQuery.
Salva i risultati della query in un file ed esportalo in Cloud Storage. Se hai salvato i risultati della query in una nuova tabella di destinazione nel passaggio 2, consulta Esportazione dei dati delle tabelle per esportare i contenuti della tabella in Cloud Storage.
Modifica il file esportato in base alle esigenze e includilo nella richiesta di modifica della classe di archiviazione di più oggetti DICOM.
Crea manualmente un file di filtri
Per creare manualmente un file di filtri:
- Crea un file di filtro contenente gli oggetti DICOM su cui stai filtrando.
- Carica il file di filtri su Cloud Storage. Per le istruzioni, vedi Carica oggetti da un file system.
Utilizzare un file di filtri
Gli esempi riportati di seguito mostrano come applicare un file di filtro quando si modifica la classe di archiviazione degli oggetti DICOM.
REST
Modifica la classe di archiviazione delle istanze DICOM nel file di filtro utilizzando il metodo
projects.locations.datasets.dicomStores.studies.series.instances.setBlobStorageSettings
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati principale dell'archivio DICOMDICOM_STORE_ID
: l'ID archivio DICOMSTORAGE_CLASS
: la classe di archiviazione per gli oggetti DICOM. Uno traSTANDARD
,NEARLINE
,COLDLINE
oARCHIVE
.CLOUD_STORAGE_BUCKET
: il nome del bucket Cloud Storage contenente il file di filtriFILTER_FILE_PATH
: l'URI completo del file di filtro nel bucket Cloud Storage
Corpo JSON della richiesta:
{ "blobStorageSettings": { "blobStorageClass": "STORAGE_CLASS" }, "filterConfig": { "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET/FILTER_FILE_PATH" } }
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' { "blobStorageSettings": { "blobStorageClass": "STORAGE_CLASS" }, "filterConfig": { "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET/FILTER_FILE_PATH" } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:setBlobStorageSettings"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:@' { "blobStorageSettings": { "blobStorageClass": "STORAGE_CLASS" }, "filterConfig": { "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET/FILTER_FILE_PATH" } } '@ | 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 POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:setBlobStorageSettings" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Recupera lo stato dell'operazione a lunga esecuzione utilizzando il metodo
projects.locations.datasets.operations.get
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati principale dell'archivio DICOMOPERATION_ID
: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content"done": true
, l'operazione di recupero a lungo termine è terminata.
Visualizzare la classe di archiviazione di un oggetto DICOM
Puoi visualizzare la classe di archiviazione degli oggetti DICOM a livello di studio, serie o istanza.
Le sezioni seguenti descrivono come visualizzare la classe di archiviazione di un'istanza DICOM.
Recuperare le informazioni sulla classe di archiviazione per un oggetto DICOM
Gli esempi riportati di seguito mostrano come utilizzare
il metodo instances.getStorageInfo
per visualizzare la classe di archiviazione degli oggetti DICOM.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo Google Cloud progettoLOCATION
: la posizione del set di datiDATASET_ID
: il set di dati principale dell'archivio DICOMDICOM_STORE_ID
: l'ID archivio DICOMSTUDY_INSTANCE_UID
: l'identificatore univoco dell'istanza dello studioSERIES_INSTANCE_UID
: l'identificatore univoco dell'istanza della serieINSTANCE_UID
: l'identificatore univoco dell'istanza
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:getStorageInfo"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:getStorageInfo" | Select-Object -Expand Content
Explorer API
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. Completa i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Esegui query sui metadati DICOM esportati in BigQuery
Puoi esportare i metadati DICOM in BigQuery e poi eseguire query per visualizzare le classi di archiviazione degli oggetti DICOM esportati.
La seguente query mostra come recuperare l'UID istanza studio, l'UID istanza serie, l'UID istanza, le dimensioni di archiviazione e la classe di archiviazione di un massimo di 1000 istanze DICOM da un set di dati BigQuery:
SELECT StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, BlobStorageSize, StorageClass FROM PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE LIMIT 1000
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo Google Cloud progettoBIGQUERY_DATASET
: il set di dati BigQuery principale della tabella contenente i metadati DICOM esportatiBIGQUERY_TABLE
: la tabella BigQuery contenente i metadati DICOM esportati