Halaman ini menjelaskan cara mengelola data DICOM di Cloud Healthcare API menggunakan berbagai class penyimpanan. Memilih class penyimpanan yang tepat dapat membantu Anda mengurangi biaya dan memenuhi persyaratan peraturan untuk retensi data.
Halaman ini ditujukan untuk pengguna teknis yang sudah memahami DICOM dan Cloud Healthcare API.
Ringkasan
Kelas penyimpanan DICOM berfungsi mirip dengan kelas penyimpanan Cloud Storage, yang menawarkan karakteristik biaya dan performa yang berbeda berdasarkan seberapa sering Anda mengakses data dan berapa lama Anda perlu menyimpannya. Untuk informasi selengkapnya tentang setiap kelas penyimpanan, lihat Deskripsi class.
Anda mungkin ingin mengubah class penyimpanan objek DICOM bergantung pada seberapa sering Anda mengakses objek atau berapa lama objek harus disimpan. Contoh:
- Anda dapat memindahkan gambar DICOM yang jarang diakses dari penyimpanan Standar ke penyimpanan Nearline atau Coldline untuk menghemat biaya penagihan.
- Anda dapat memindahkan data pasien yang perlu disimpan karena alasan hukum ke Archive storage, yang merupakan class penyimpanan termurah dan paling tahan lama.
Kelas penyimpanan DICOM yang tersedia
Anda dapat menggunakan class penyimpanan berikut untuk objek DICOM:
- Standar (Default)
- Nearline
- Coldline
- Arsip
Harga kelas penyimpanan
Setiap kelas penyimpanan memiliki struktur harganya sendiri. Mengubah class penyimpanan objek DICOM dapat memengaruhi biaya penagihan Anda. Untuk informasi selengkapnya, lihat referensi berikut:
Mengubah class penyimpanan untuk setiap objek DICOM
Anda dapat mengubah class penyimpanan objek DICOM di tingkat studi, rangkaian, atau instance.
Contoh berikut menunjukkan cara mengubah class penyimpanan instance DICOM.
Izin yang diperlukan untuk langkah ini
Untuk melakukan tugas ini, Anda harus sudah diberi izin berikut atau peran Identity and Access Management (IAM) berikut:
Izin
healthcare.dicomStores.dicomWebWrite
Peran
Anda dapat meminta administrator untuk memberikan peran Identity and Access Management ini kepada Anda. Untuk mengetahui petunjuk tentang cara memberikan peran, lihat Mengelola akses atau Mengontrol akses ke resource Cloud Healthcare API. Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Ubah class penyimpanan instance DICOM menggunakan metode
projects.locations.datasets.dicomStores.studies.series.instances.setBlobStorageSettings
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
: ID Google Cloud project AndaPROJECT_ID
: lokasi set dataLOCATION
: set data induk penyimpanan DICOMDATASET_ID
: ID penyimpanan DICOMDICOM_STORE_ID
: ID unik instance studiSTUDY_INSTANCE_UID
: ID unik instance deretSERIES_INSTANCE_UID
: ID unik instanceINSTANCE_UID
: class penyimpanan untuk instance DICOM. Salah satu dariSTORAGE_CLASS STANDARD
,NEARLINE
,COLDLINE
, atauARCHIVE
.
Meminta isi JSON:
{ "blobStorageSettings": { "blobStorageClass": "
STORAGE_CLASS " } }Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
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": { "blobStorageClass": "
STORAGE_CLASS " } } EOFKemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
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"Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "blobStorageSettings": { "blobStorageClass": "
STORAGE_CLASS " } } '@ | Out-File -FilePath request.json -Encoding utf8Kemudian 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; 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 ContentSalin isi permintaan dan buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.
OPERATION_ID
. Anda memerlukan nilai ini di langkah berikutnya.Respons
{ "name": "projects/
PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID " }Dapatkan status operasi yang berjalan lama menggunakan metode
projects.locations.datasets.operations.get
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
: ID Google Cloud project AndaPROJECT_ID
: lokasi set dataLOCATION
: set data induk penyimpanan DICOMDATASET_ID
: ID yang ditampilkan dari operasi yang berjalan lamaOPERATION_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
Jalankan perintah berikut:
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 "Jalankan perintah berikut:
$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
, LRO telah selesai.Respons
{ "name": "projects/
PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.storageinfo.StorageInfoService.SetBlobStorageSettings", "createTime": "CREATE_TIME ", "endTime": "END_TIME ", "logsUrl": https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL , "counter": { "success": "SUCCESS_COUNT " } }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Mengubah class penyimpanan untuk beberapa objek menggunakan file filter
Bagian berikut menunjukkan cara membuat dan menggunakan file filter untuk mengubah class penyimpanan objek DICOM berdasarkan kriteria filter.
Persyaratan file filter
- Setiap baris dalam file filter menentukan studi, seri, atau instance dan menggunakan format
/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID
. - Anda dapat memotong baris untuk menentukan tingkat kerja filter.
Misalnya, Anda dapat memilih seluruh studi dengan menentukan
/studies/STUDY_INSTANCE_UID
, atau Anda dapat memilih seluruh seri 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
Contoh file filter ini berlaku untuk 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
dalam studi1.888.999.222
dan seri123.456
Membuat file filter menggunakan BigQuery
Untuk membuat file filter menggunakan BigQuery, Anda harus terlebih dahulu mengekspor metadata penyimpanan DICOM ke BigQuery. Metadata yang diekspor menunjukkan UID studi, rangkaian, dan instance data DICOM di penyimpanan DICOM Anda.
Setelah mengekspor metadata, selesaikan langkah-langkah berikut:
Jalankan kueri untuk menampilkan UID studi, serial, dan instance yang ingin Anda tambahkan ke file filter.
Misalnya, kueri berikut menunjukkan cara menyambungkan UID studi, seri, dan instance agar cocok 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 sesuai kebutuhan, dan sertakan permintaan Anda untuk mengubah class penyimpanan beberapa objek DICOM.
Membuat file filter secara manual
Untuk membuat file filter secara manual, lakukan hal berikut:
- Buat file filter yang berisi objek DICOM yang Anda filter.
- Upload file filter ke Cloud Storage. Untuk mengetahui petunjuknya, lihat Mengupload objek dari sistem file.
Menggunakan file filter
Contoh berikut menunjukkan cara menerapkan file filter saat mengubah class penyimpanan objek DICOM.
Izin yang diperlukan untuk langkah ini
Untuk melakukan tugas ini, Anda harus sudah diberi izin berikut atau peran Identity and Access Management (IAM) berikut:
Izin
healthcare.dicomStores.dicomWebWrite
Peran
Berikan peran
Storage Object Viewer (storage.objectViewer
)
ke akun layanan Cloud Healthcare Service Agent.
Anda dapat meminta administrator untuk memberikan peran Identity and Access Management ini kepada Anda. Untuk mengetahui petunjuk tentang cara memberikan peran, lihat Mengelola akses atau Mengontrol akses ke resource Cloud Healthcare API. Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Ubah class penyimpanan instance DICOM dalam file filter menggunakan metode
projects.locations.datasets.dicomStores.studies.series.instances.setBlobStorageSettings
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
: ID Google Cloud project AndaPROJECT_ID
: lokasi set dataLOCATION
: set data induk penyimpanan DICOMDATASET_ID
: ID penyimpanan DICOMDICOM_STORE_ID
: class penyimpanan untuk objek DICOM. Salah satu dariSTORAGE_CLASS STANDARD
,NEARLINE
,COLDLINE
, atauARCHIVE
.
: nama bucket Cloud Storage yang berisi file filterCLOUD_STORAGE_BUCKET
: URI yang sepenuhnya memenuhi syarat ke file filter di bucket Cloud StorageFILTER_FILE_PATH
Meminta isi JSON:
{ "blobStorageSettings": { "blobStorageClass": "
STORAGE_CLASS " }, "filterConfig": { "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET /FILTER_FILE_PATH " } }Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
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": { "blobStorageClass": "
STORAGE_CLASS " }, "filterConfig": { "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET /FILTER_FILE_PATH " } } EOFKemudian, 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/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /dicomStores/DICOM_STORE_ID :setBlobStorageSettings"Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "blobStorageSettings": { "blobStorageClass": "
STORAGE_CLASS " }, "filterConfig": { "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET /FILTER_FILE_PATH " } } '@ | Out-File -FilePath request.json -Encoding utf8Kemudian 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/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /dicomStores/DICOM_STORE_ID :setBlobStorageSettings" | Select-Object -Expand ContentOPERATION_ID
. Anda memerlukan nilai ini di langkah berikutnya.Respons
{ "name": "projects/
PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID " }Dapatkan status operasi yang berjalan lama menggunakan metode
projects.locations.datasets.operations.get
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
: ID Google Cloud project AndaPROJECT_ID
: lokasi set dataLOCATION
: set data induk penyimpanan DICOMDATASET_ID
: ID yang ditampilkan dari operasi yang berjalan lamaOPERATION_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
Jalankan perintah berikut:
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 "Jalankan perintah berikut:
$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
, LRO telah selesai.Respons
{ "name": "projects/
PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.storageinfo.StorageInfoService.SetBlobStorageSettings", "createTime": "CREATE_TIME ", "endTime": "END_TIME ", "logsUrl": https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL , "counter": { "success": "SUCCESS_COUNT " } }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Melihat kelas penyimpanan objek DICOM
Anda dapat melihat class penyimpanan objek DICOM di tingkat studi, rangkaian, atau instance.
Bagian berikut menjelaskan cara melihat class penyimpanan instance DICOM.
Mendapatkan informasi class penyimpanan untuk objek DICOM
Contoh berikut menunjukkan cara menggunakan
metode instances.getStorageInfo
untuk melihat class penyimpanan objek DICOM.
Izin yang diperlukan untuk langkah ini
Untuk melakukan tugas ini, Anda harus sudah diberi izin berikut atau peran Identity and Access Management (IAM) berikut:
Izin
healthcare.dicomStores.dicomWebRead
Peran
Anda dapat meminta administrator untuk memberikan peran Identity and Access Management ini kepada Anda. Untuk mengetahui petunjuk tentang cara memberikan peran, lihat Mengelola akses atau Mengontrol akses ke resource Cloud Healthcare API. Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
: ID Google Cloud project AndaPROJECT_ID
: lokasi set dataLOCATION
: set data induk penyimpanan DICOMDATASET_ID
: ID penyimpanan DICOMDICOM_STORE_ID
: ID unik instance studiSTUDY_INSTANCE_UID
: ID unik instance deretSERIES_INSTANCE_UID
: ID unik instanceINSTANCE_UID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
Jalankan perintah berikut:
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"
Jalankan perintah berikut:
$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
Buka halaman referensi metode. Panel API Explorer terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
Anda akan melihat respons JSON seperti berikut:
Respons
{ "name": "projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /dicomStores/DICOM_STORE_ID " }
Membuat kueri metadata DICOM yang diekspor di BigQuery
Anda dapat mengekspor metadata DICOM ke BigQuery, lalu menjalankan kueri untuk melihat class penyimpanan objek DICOM yang diekspor.
Kueri berikut menunjukkan cara mengambil UID instance studi, UID instance seri, UID instance, ukuran penyimpanan, dan class penyimpanan hingga 1.000 instance DICOM dari set data BigQuery:
SELECT StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, BlobStorageSize, StorageClass FROMPROJECT_ID :BIGQUERY_DATASET .BIGQUERY_TABLE LIMIT 1000
Ganti kode berikut:
PROJECT_ID
: ID Google Cloud project AndaBIGQUERY_DATASET
: set data BigQuery induk dari tabel yang berisi metadata DICOM yang dieksporBIGQUERY_TABLE
: tabel BigQuery yang berisi metadata DICOM yang diekspor