Halaman ini menjelaskan cara mengubah kelas penyimpanan untuk data DICOM di Cloud Healthcare API.
Ringkasan
Cloud Healthcare API menawarkan kelas penyimpanan berikut:
- Standar
- Nearline
- Coldline
- Arsip
Kelas penyimpanan ini mirip dengan yang ada di Cloud Storage.
Anda dapat mengubah kelas penyimpanan objek DICOM sebagai tindakan yang menghemat biaya dalam skenario berikut:
- Memindahkan serangkaian image DICOM yang jarang diakses dari penyimpanan standar ke Nearline Storage atau Coldline Storage. Tindakan ini akan mengosongkan bucket penyimpanan standar untuk menyimpan gambar yang lebih sering diakses.
- Memindahkan data pasien dari penyimpanan standar ke penyimpanan arsip ke arsip data yang perlu disimpan karena alasan hukum. Penyimpanan arsip adalah kelas penyimpanan paling murah dengan ketahanan tinggi.
Metode untuk mengubah kelas penyimpanan DICOM
Secara default, instance DICOM memiliki kelas penyimpanan standar. Anda dapat mengubah kelas penyimpanan menggunakan metode berikut:
- Metode
import
: menetapkan kelas penyimpanan saat Anda mengimpor instance DICOM dari bucket Cloud Storage dengan kolomblobStorageSettings
- Metode
storeInstances
: menetapkan kelas penyimpanan saat Anda menyimpan instance DICOM dari jalur lokal - Metode
setBlobStorageSettings
: ubah kelas penyimpanan instance DICOM, di penyimpanan DICOM pada tingkat instance, seri, atau studi
Sebelum memulai
Sebelum mengubah kelas penyimpanan instance DICOM di Cloud Healthcare API, tinjau detail harga berikut:
Mengubah kelas penyimpanan instance DICOM
Contoh berikut menunjukkan cara mengubah kelas penyimpanan instance DICOM pada tingkat instance, seri, atau studi.
Pada tingkat instance
Untuk mengubah kelas penyimpanan instance DICOM pada tingkat instance, selesaikan langkah-langkah berikut:
REST
Gunakan
metode
projects.locations.datasets.dicomStores.studies.series.instances.setBlobStorageSettings
.
- Ubah kelas penyimpanan instance DICOM pada tingkat instance.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMSTUDY_INSTANCE_UID
: ID unik instance studiSERIES_INSTANCE_UID
: ID unik instance deretINSTANCE_UID
: ID unik instanceSTORAGE_CLASS
: kelas penyimpanan untuk objek DICOM di penyimpanan DICOM dariSTANDARD
,NEARLINE
,COLDLINE
, danARCHIVE
Meminta isi JSON:
{ "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:cat > request.json << 'EOF' { "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instance/INSTANCE_UID:setBlobStorageSettings"PowerShell
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instance/INSTANCE_UID:setBlobStorageSettings" | Select-Object -Expand Content - Mendapatkan status operasi yang berjalan lama.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk penyimpanan DICOM
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
Pada level serial
Untuk mengubah kelas penyimpanan instance DICOM pada level deret, selesaikan langkah-langkah berikut:
REST
Gunakan
metode
projects.locations.datasets.dicomStores.studies.series.setBlobStorageSettings
.
- Ubah kelas penyimpanan instance DICOM pada level
seri.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMSTUDY_INSTANCE_UID
: ID unik instance studiSERIES_INSTANCE_UID
: ID unik instance deretSTORAGE_CLASS
: kelas penyimpanan untuk objek DICOM di penyimpanan DICOM dariSTANDARD
,NEARLINE
,COLDLINE
, danARCHIVE
Meminta isi JSON:
{ "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:cat > request.json << 'EOF' { "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID:setBlobStorageSettings"PowerShell
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID:setBlobStorageSettings" | Select-Object -Expand Content - Mendapatkan status operasi yang berjalan lama.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk penyimpanan DICOM
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
Di tingkat studi
Untuk mengubah kelas penyimpanan instance DICOM di tingkat studi, selesaikan langkah-langkah berikut:
REST
Gunakan
metode
projects.locations.datasets.dicomStores.studies.setBlobStorageSettings
.
- Ubah kelas penyimpanan instance DICOM di tingkat studi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMSTUDY_INSTANCE_UID
: ID unik instance studiSTORAGE_CLASS
: kelas penyimpanan untuk objek DICOM di penyimpanan DICOM dariSTANDARD
,NEARLINE
,COLDLINE
, danARCHIVE
Meminta isi JSON:
{ "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:cat > request.json << 'EOF' { "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID:setBlobStorageSettings"PowerShell
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID:setBlobStorageSettings" | Select-Object -Expand Content - Mendapatkan status operasi yang berjalan lama.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk penyimpanan DICOM
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
Gunakan filter
Bagian berikut menunjukkan cara memfilter instance tertentu dan mengubah kelas penyimpanannya pada tingkat studi, rangkaian, atau instance menggunakan file filter.
Anda harus menambahkan peran Storage Object Viewer ke akun layanan Healthcare Service Agent, yang memiliki akses ke bucket tempat file filter disimpan.
Mengonfigurasi file filter
Dengan menggunakan file filter, Anda dapat menentukan daftar file DICOM yang kelas penyimpanannya perlu diubah.
Setiap baris dalam file filter menentukan studi, rangkaian, atau instance dan
menggunakan format
/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID
.
Anda dapat memotong baris untuk menentukan tingkat fungsi filter.
Misalnya, Anda dapat mengubah kelas penyimpanan seluruh studi dengan menentukan /studies/STUDY_INSTANCE_UID
, atau Anda dapat mengubah kelas penyimpanan seluruh rangkaian dengan menentukan /studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID
.
Pertimbangkan file filter berikut:
/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
File filter ini akan memfilter hal berikut:
- Seluruh studi dengan UID instance studi sebagai
1.123.456.789
- Dua seri terpisah dengan UID instance seri sebagai
123.456
dan567.890
dalam studi1.666.333.111
- Tiga instance individual dengan ID instance sebagai
111
,222
, dan333
dalam1.888.999.222
studi dan seri123.456
Membuat file filter menggunakan BigQuery
Untuk membuat file filter menggunakan BigQuery, Anda harus mengekspor metadata penyimpanan DICOM ke BigQuery. Metadata yang diekspor menampilkan UID studi, rangkaian, dan instance dari data DICOM di penyimpanan DICOM Anda.
Setelah mengekspor, selesaikan langkah-langkah berikut:
Kueri untuk UID studi, rangkaian, dan instance yang diperlukan.
Misalnya, setelah mengekspor metadata DICOM ke BigQuery, jalankan kueri berikut untuk menggabungkan UID studi, rangkaian, dan instance agar sesuai dengan persyaratan format file filter:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Opsional: Jika kueri menampilkan kumpulan hasil besar yang melebihi ukuran respons maksimum, simpan hasil kueri ke tabel tujuan baru di BigQuery.
Simpan hasil kueri ke file dan ekspor ke Cloud Storage. Jika Anda menyimpan hasil kueri ke tabel tujuan baru di Langkah 2, lihat Mengekspor data tabel untuk mengekspor konten tabel ke Cloud Storage.
Edit file yang diekspor seperlunya, dan gunakan sebagai file filter. Lokasi file filter di Cloud Storage diperlukan dalam metode
setBlobStorageSettings
.
Membuat file filter secara manual
Untuk membuat file filter dengan konten kustom dan menguploadnya ke bucket Cloud Storage, selesaikan langkah-langkah berikut:
Buat file filter yang berisi daftar instance yang kelas penyimpanannya perlu diubah di mesin lokal Anda. Gunakan format yang dijelaskan di bagian Mengonfigurasi file filter.
Upload file teks filter ke lokasi Cloud Storage.
gsutil cp PATH_TO_FILTER_FILE/FILTER_FILE_NAME.txt gs://BUCKET/DIRECTORY
Ganti kode berikut:
PATH_TO_FILTER_FILE
: jalur ke file filter di komputer lokal AndaFILTER_FILE_NAME
: nama file filterBUCKET/DIRECTORY
: jalur ke lokasi Cloud Storage
Contoh:
gsutil cp my-local-folder/archive-filters.txt gs://my-bucket/my-directory
Meneruskan file filter
REST
Gunakan metode
projects.locations.datasets.dicomStores.studies.setBlobStorageSettings
untuk mengubah kelas penyimpanan semua instance dalam file filter di tingkat penyimpanan DICOM.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMSTORAGE_CLASS
: kelas penyimpanan untuk objek DICOM di penyimpanan DICOM dariSTANDARD
,NEARLINE
,COLDLINE
, danARCHIVE
BUCKET/DIRECTORY
Meminta isi JSON:
{ "filter_config": { "resource_paths_gcs_uri": "gs://BUCKET/DIRECTORY" }, "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:cat > request.json << 'EOF' { "filter_config": { "resource_paths_gcs_uri": "gs://BUCKET/DIRECTORY" }, "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:setBlobStorageSettings"PowerShell
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "filter_config": { "resource_paths_gcs_uri": "gs://BUCKET/DIRECTORY" }, "blobStorageSettings": { "blob_storage_class": "STORAGE_CLASS" } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:setBlobStorageSettings" | Select-Object -Expand ContentMendapatkan status operasi yang berjalan lama.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project Google Cloud Anda
- LOCATION: lokasi set data
- DATASET_ID: set data induk penyimpanan DICOM
- OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
Memeriksa kelas penyimpanan instance DICOM
Menggunakan metode getStorageInfo
Contoh berikut menunjukkan cara melihat kelas penyimpanan instance DICOM.
REST
Gunakan metodeprojects.locations.datasets.dicomStores.dicomWeb.studies.series.instances.getStorageInfo
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMSTUDY_INSTANCE_UID
: ID unik instance studiSERIES_INSTANCE_UID
: ID unik instance deretINSTANCE_UID
: ID unik instance
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/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
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/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
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Mengkueri metadata DICOM yang diekspor di BigQuery
Anda juga dapat mengekspor metadata DICOM ke BigQuery dan membuat kueri set data BigQuery untuk melihat kelas penyimpanan instance DICOM.
Misalnya, Anda dapat menjalankan kueri berikut untuk melihat UID instance studi, UID instance seri, UID instance, ukuran penyimpanan blob, dan kelas penyimpanan blob dari semua instance dalam set data BigQuery:
SELECT StudyInstanceUID,SeriesInstanceUID,SOPInstanceUID,BlobStorageSize,StorageClass FROM PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE LIMIT 1000