Halaman ini menjelaskan cara menggunakan implementasi DICOMweb oleh Cloud Healthcare API untuk menyimpan dan mengelola data image DICOM.
Untuk mengetahui informasi selengkapnya tentang cara Cloud Healthcare API menerapkan berbagai layanan REST DICOMweb, lihat Pernyataan kesesuaian DICOM.
Implementasi DICOMweb di Cloud Healthcare API hanya mendukung REST, bukan RPC.
Menginstal DICOMweb CLI Cloud Healthcare API
Beberapa contoh di halaman ini menggunakan CLI DICOMweb Cloud Healthcare API, sebuah alat open source yang menyederhanakan cara berinteraksi dengan server DICOMweb. Alat ini menyediakan fungsi untuk menyimpan, mengambil, menghapus, dan menelusuri file DICOM. Halaman GitHub untuk alat ini berisi informasi lebih lanjut seperti persyaratan penginstalan mendetail dan cara menyesuaikan alat tersebut.
Alat ini berjalan menggunakan Python. Untuk mengetahui informasi tentang cara menyiapkan Python di Google Cloud, lihat Menyiapkan lingkungan pengembangan Python.
Setelah menyiapkan Python, Anda dapat menginstal alat tersebut menggunakan Pip:
pip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.zip
Untuk menggunakan alat ini, Anda harus melakukan autentikasi ke server Google Cloud. Anda dapat melakukannya menggunakan salah satu metode berikut:
- Menetapkan variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
- Mengautentikasi melalui Google Cloud CLI menggunakan
gcloud auth application-default login
Setelah mengonfigurasi salah satu opsi ini, alat ini akan otomatis mendeteksi kredensial Anda.
Menyimpan data DICOM
Sebelum dapat menyimpan data DICOM, Anda harus membuat penyimpanan DICOM.
Cloud Healthcare API menerapkan layanan web RESTful transaksi Store saat menyimpan data DICOM. Untuk mengetahui informasi selengkapnya, lihat Transaksi toko dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Anda dapat menyimpan data DICOM menggunakan metode berikut. Dalam kedua kasus tersebut, Anda harus meneruskan header application/dicom
Accept dalam permintaan Anda.
- Menyimpan instance DICOM (biasanya file
.dcm
). Menyimpan metadata JSON DICOM dengan file JPEG.
Semua permintaan untuk menyimpan metadata JSON DICOM dengan file JPEG adalah pesan multibagian, yang ditetapkan oleh bagian
multipart/related
dariContent-Type
-nya. Bagianmultipart/related
dariContent-Type
menunjukkan bahwa permintaan terdiri dari beberapa bagian data yang digabungkan setelah permintaan selesai. Setiap set data ini harus dipisahkan menggunakan batas, seperti yang ditentukan oleh bagianboundary
dariContent-Type
.
Contoh berikut menunjukkan cara menyimpan instance di penyimpanan DICOM. Untuk
mengetahui informasi selengkapnya, lihat
projects.locations.datasets.dicomStores.storeInstances
.
Menyimpan instance DICOM
Contoh berikut menunjukkan cara menyimpan instance DICOM. Untuk informasi selengkapnya, lihat
projects.locations.datasets.dicomStores.storeInstances
.
REST
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 DICOMDICOM_INSTANCE_FILE
: jalur ke file instance DICOM di mesin lokal Anda yang diakhiri dengan akhiran.dcm
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/dicom" \
--data-binary @DICOM_INSTANCE_FILE \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-InFile DICOM_INSTANCE_FILE `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content
Go
Java
Node.js
Python
Menentukan kelas penyimpanan untuk menyimpan instance DICOM (Pratinjau)
Secara default, metode projects.locations.datasets.dicomStores.storeInstances
menyimpan instance DICOM di penyimpanan DICOM dengan class penyimpanan standar. Anda
dapat menetapkan kelas penyimpanan saat menyimpan objek DICOM dari mesin
lokal Anda.
Untuk mengetahui informasi selengkapnya, lihat
Mengubah kelas penyimpanan DICOM.
Contoh berikut menunjukkan cara menentukan kelas penyimpanan saat Anda menyimpan objek DICOM dari mesin lokal.
curl
Gunakan
metode projects.locations.datasets.dicomStores.storeInstances
.
Sebelum menggunakan data permintaan apa pun, buat pergantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMDICOM_INSTANCE_FILE
: jalur ke file instance DICOM di mesin lokal Anda yang diakhiri dengan akhiran.dcm
STORAGE_CLASS
: kelas penyimpanan untuk instance DICOM di penyimpanan DICOM dariSTANDARD
,NEARLINE
,COLDLINE
, danARCHIVE
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/dicom" \ -H "Storage-Class: STORAGE_CLASS" --data-binary @DICOM_INSTANCE_FILE \ "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies"
Jika permintaan berhasil, server menampilkan respons:
<NativeDicomModel> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID</Value> </DicomAttribute> <DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence"> <Item number="1"> <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID"> <Value number="1">SOP_CLASS_UID</Value> </DicomAttribute> <DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID"> <Value number="1">SOP_INSTANCE_UID</Value> </DicomAttribute> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">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</Value> </DicomAttribute> </Item> </DicomAttribute> </NativeDicomModel>
PowerShell
Gunakan
metode
projects.locations.datasets.dicomStores.storeInstances
.
Sebelum menggunakan data permintaan apa pun, buat pergantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMDICOM_STORE_ID
: ID penyimpanan DICOMDICOM_INSTANCE_FILE
: jalur ke file instance DICOM di mesin lokal Anda yang diakhiri dengan akhiran.dcm
STORAGE_CLASS
: kelas penyimpanan untuk instance DICOM di penyimpanan DICOM dariSTANDARD
,NEARLINE
,COLDLINE
, danARCHIVE
$cred = gcloud auth application-default print-access-token $headers = @{ "Authorization" = "Bearer $cred"; "Storage-Class" = "STORAGE_CLASS" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/dicom" ` -InFile DCM_FILE.dcm ` -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
<NativeDicomModel> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID</Value> </DicomAttribute> <DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence"> <Item number="1"> <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID"> <Value number="1">SOP_CLASS_UID</Value> </DicomAttribute> <DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID"> <Value number="1">SOP_INSTANCE_UID</Value> </DicomAttribute> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">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</Value> </DicomAttribute> </Item> </DicomAttribute> </NativeDicomModel>
Membuat instance DICOM dari metadata JSON dan gambar JPEG
Cloud Healthcare API dapat membuat instance DICOM menggunakan file metadata JSON dan file JPEG. Buat instance DICOM dari metadata JSON dan file JPEG jika Anda memilih untuk tidak melakukan penguraian dan serialisasi DICOM sendiri, karena Cloud Healthcare API dapat melakukan tugas ini untuk Anda.
Permintaan HTTP yang menyimpan data ini harus menyertakan hal berikut
dalam Content-Type
permintaan:
- Jenis media
multipart/related
- Jenis MIME
application/dicom+json
- Pemisah
boundary
Contoh berikut menunjukkan cara menyimpan file metadata JSON dengan file JPEG.
curl
Contoh berikut mengasumsikan bahwa Anda sudah memiliki gambar JPEG.
Menyimpan file metadata JSON dengan gambar JPEG terdiri dari tiga langkah:
- Buat file yang berisi representasi JSON dari instance DICOM yang berisi gambar JPEG. File template disediakan di bawah ini.
Buat tiga file pembatas:
opening.file
: Berisi batas pembuka untuk file metadata JSONmiddle.file
: Berisi batas tengah untuk gambar JPEGclosing.file
: Berisi batas penutupan untuk semua bagian pesan
Buat file bernama
multipart-request.file
dengan menyertakan file metadata JSON dan gambar JPEG dalam file batas.
Perhatikan nilai berikut yang disediakan secara default dalam file template metadata JSON:
- UID Sintaksis Transfer (
1.2.840.10008.1.2.4.50
) menetapkan Sintaksis Transfer sebagai JPEG Baseline. Sebagian besar gambar JPEG dalam format JPEG Baseline. Nilai Penafsiran Fotometrik (YBR_FULL_422
) menandakan bahwa gambar berwarna, bukan hitam putih. BulkDataUri
adalah deskripsi arbitrer untuk gambar, dan dalam template ditetapkan kejpeg-image
. Nilai ini digunakan saat membuat batas gambar.
Nilai untuk SOP_CLASS_UID, SOP_INSTANCE_UID, STUDY_INSTANCE_UID, dan SERIES_INSTANCE_UID dapat berupa nilai numerik apa pun yang dipisahkan oleh titik. DICOM menggunakan hierarki ID untuk instance, pasien, studi, dan rangkaian, jadi pilih kumpulan ID yang logis untuk variabel ini.
Ganti SOP Class UID dengan nilai dari tabel Class SOP Standar yang menentukan jenis gambar yang disimpan.
Ganti Rows dengan tinggi vertikal gambar JPEG dalam piksel. Ganti Columns dengan lebar horizontal gambar JPEG dalam piksel.
Selesaikan langkah berikut:
Simpan teks berikut ke file bernama
instance.json
, dan ganti variabel jika ditentukan.[{ "00020010":{"vr":"UI","Value":["1.2.840.10008.1.2.4.50"]}, "00080005":{"vr":"CS","Value":["ISO_IR 192"]}, "00080016":{"vr":"UI","Value":["SOP_CLASS_UID"]}, "00080018":{"vr":"UI","Value":["SOP_INSTANCE_UID"]}, "0020000D":{"vr":"UI","Value":["STUDY_INSTANCE_UID"]}, "0020000E":{"vr":"UI","Value":["SERIES_INSTANCE_UID"]}, "00280002":{"vr":"US","Value":[3]}, "00280004":{"vr":"CS","Value":["YBR_FULL_422"]}, "00280006":{"vr":"US","Value":[0]}, "00280008":{"vr":"IS","Value":[1]}, "00280010":{"vr":"US","Value":[Rows]}, "00280011":{"vr":"US","Value":[Columns]}, "00280100":{"vr":"US","Value":[8]}, "00280101":{"vr":"US","Value":[8]}, "00280102":{"vr":"US","Value":[7]}, "00280103":{"vr":"US","Value":[0]}, "7FE00010":{"vr":"OB","BulkDataURI":"jpeg-image"} }]
Untuk membuat batas pembukaan (untuk metadata JSON), batas tengah (untuk gambar JPEG), dan batas penutup, jalankan perintah berikut:
echo -ne "--DICOMwebBoundary\r\nContent-Type: application/dicom+json\r\n\r\n" > opening.file echo -ne "\r\n--DICOMwebBoundary\r\nContent-Location: jpeg-image\r\nContent-Type: image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50\r\n\r\n" > middle.file echo -ne "\r\n--DICOMwebBoundary--" > closing.file
Gabungkan gambar JPEG dalam batas tengah dan penutup. File output, yang Anda kirim ke Cloud Healthcare API, disebut
multipart-request.file
:cat opening.file instance.json middle.file image.jpg closing.file > multipart-request.file
Buat permintaan
POST
dan tentukan informasi berikut:- Nama set data induk
- Nama penyimpanan DICOM
- File
multipart-request.file
- Token akses
Contoh berikut menunjukkan permintaan POST
yang menggunakan curl
.
curl -X POST \ -H "Content-Type: multipart/related; type=\"application/dicom+json\"; boundary=DICOMwebBoundary" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies \ --data-binary @multipart-request.file
Jika permintaan berhasil, server akan menampilkan respons dalam format XML:
<NativeDicomModel> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID</Value> </DicomAttribute> <DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence"> <Item number="1"> <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID"> <Value number="1">SOP_CLASS_UID</Value> </DicomAttribute> <DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID"> <Value number="1">SOP_INSTANCE_UID</Value> </DicomAttribute> <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL"> <Value number="1">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</Value> </DicomAttribute> </Item> </DicomAttribute> </NativeDicomModel>
Menggunakan DICOMweb CLI
Contoh berikut menunjukkan cara menggunakan DICOMweb CLI Cloud Healthcare API untuk menyimpan satu atau beberapa instance DICOM. Ada lebih banyak contoh yang tersedia di repositori GitHub CLI DICOMweb.
Menyimpan satu instance DICOM:
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ store DCM_FILE
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut:
TIMESTAMP -- DCM_FILE.dcm uploaded as 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 TIMESTAMP -- INSTANCE_UID TIMESTAMP -- Transferred SIZE in COUNT files
Menyimpan beberapa file secara paralel menggunakan karakter pengganti:
Contoh berikut menunjukkan cara menyimpan beberapa file DICOM secara
rekursif secara paralel dari direktori kerja saat ini. Untuk menyimpan
file secara paralel, tambahkan flag -m
.
dcmweb -m \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ store "./**.dcm"
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut:
TIMESTAMP -- DCM_FILE_1.dcm uploaded as 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 TIMESTAMP -- INSTANCE_UID TIMESTAMP -- DCM_FILE_2.dcm uploaded as 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 TIMESTAMP -- INSTANCE_UID TIMESTAMP -- DCM_FILE_3.dcm uploaded as 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 TIMESTAMP -- INSTANCE_UID ... TIMESTAMP -- Transferred SIZE in COUNT files
Menelusuri data DICOM
Anda dapat menelusuri studi, serial, instance, dan frame. Contoh berikut menunjukkan penerapan transaksi Penelusuran untuk menelusuri instance di penyimpanan DICOM. Untuk mengetahui informasi selengkapnya, lihat Transaksi penelusuran di pernyataan kesesuaian DICOM Cloud Healthcare API.
Contoh berikut menunjukkan cara menelusuri instance di penyimpanan DICOM. Untuk informasi selengkapnya, lihat
projects.locations.datasets.dicomStores.searchForInstances
.
REST
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 DICOM
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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/instances"
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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand Content
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer akan 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:
Go
Java
Node.js
Python
Telusuri menggunakan tag DICOM
Anda dapat menyaring penelusuran dengan menambahkan tag DICOM ke permintaan dalam bentuk parameter kueri. Misalnya, Anda mungkin ingin mencari studi yang berisi nama pasien.
Seperti contoh sebelumnya, contoh berikut menunjukkan implementasi transaksi Penelusuran untuk menelusuri studi di toko DICOM. Namun, sampel ini menunjukkan cara menelusuri studi dengan nama pasien "Sally Zhang".
Contoh berikut menunjukkan sebagian metadata instance DICOM tempat nama pasien dicantumkan:
...
{
"vr": "PN",
"Value": [
{
"Alphabetic": "Sally Zhang"
}
]
}
...
Untuk menelusuri studi di penyimpanan DICOM yang berkaitan dengan pasien, tambahkan
parameter kueri ke permintaan tempat Anda menelusuri berdasarkan tag DICOM PatientName
.
Untuk mengetahui daftar parameter penelusuran yang didukung dalam Cloud Healthcare API, lihat dokumentasi Transaksi penelusuran.
REST
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 DICOM
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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies?PatientName=Sally%20Zhang"
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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies?PatientName=Sally%20Zhang" | Select-Object -Expand Content
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer akan 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:
Go
Java
Node.js
Python
Menggunakan DICOMweb CLI
Contoh berikut menunjukkan cara menggunakan DICOMweb CLI Cloud Healthcare API untuk menelusuri instance di penyimpanan DICOM. Ada lebih banyak contoh, termasuk cara memfilter penelusuran, yang tersedia di repositori GitHub CLI DICOMweb.
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ search instances
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
[ { "00080005":{ "vr":"CS", "Value":[ "CODE_STRING" ] }, "00080016":{ "vr":"UI", "Value":[ "UNIQUE_IDENTIFIER" ] }, "00080018":{ "vr":"UI", "Value":[ "UNIQUE_IDENTIFIER" ] }, "00080020":{ "vr":"DA", "Value":[ "DATE_TIME" ] }, "00080030":{ "vr":"TM", "Value":[ "TIME" ] }, "00080060":{ "vr":"CS", "Value":[ "CODE_STRING" ] }, "0008103E":{ "vr":"LO", "Value":[ "LONG_STRING" ] }, "00100010":{ "vr":"PN", "Value":[ { "Alphabetic":"Anonymized" } ] }, }, ... ]
Mengambil data DICOM
Cloud Healthcare API menerapkan Mengambil transaksi untuk mengambil studi, rangkaian, instance, dan frame di penyimpanan DICOM.
Untuk informasi selengkapnya, lihat Mengambil transaksi di pernyataan kesesuaian DICOM Cloud Healthcare API.
Mengambil studi
Contoh berikut menunjukkan cara mengambil studi. Untuk mengetahui informasi selengkapnya, lihat studi/seri/instance DICOM dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Saat menentukan file output, gunakan ekstensi seperti .multipart
. Kemudian, uraikan file multibagian untuk
mendapatkan rangkaian dan instance individu dalam studi.
Untuk informasi selengkapnya, lihat
projects.locations.datasets.dicomStores.studies.retrieveStudy
.
curl
Untuk mengambil studi, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- File output
- Token akses
Contoh berikut menunjukkan permintaan GET
yang menggunakan curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: multipart/related; type=application/dicom; transfer-syntax=*" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID" \ --output FILENAME.multipart
Jika permintaan berhasil, file DICOM akan ditulis ke komputer Anda.
PowerShell
Untuk mengambil studi, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- File output
- Token akses
Contoh berikut menunjukkan permintaan GET
menggunakan Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; Accept = "multipart/related; type=application/dicom; transfer-syntax=*" } 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" | Select-Object -Expand Content -OutFile FILENAME.multipart `
Jika permintaan berhasil, file DICOM akan ditulis ke komputer Anda.
Go
Java
Node.js
Python
Mengambil instance
Contoh berikut menunjukkan cara mengambil instance. Untuk mengetahui informasi selengkapnya, lihat instance DICOM dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Jika mengambil instance, Anda dapat menghindari keharusan mengurai batas
multibagian dengan menggunakan header HTTP Accept: application/dicom
. Menambahkan
transfer-syntax=*
akan menghindari transcoding dengan menampilkan file dalam format
awalnya yang menyimpan file tersebut.
Untuk informasi selengkapnya, lihat projects.locations.datasets.dicomStores.studies.series.instances.retrieveInstance
.
curl
Untuk mengambil instance, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- UID rangkaian, UID instance
- Nama file output
- Token akses
Contoh berikut menunjukkan permintaan GET
yang menggunakan curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: application/dicom; transfer-syntax=*" \ "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" \ --output FILENAME.dcm
Jika permintaan berhasil, file DICOM akan ditulis ke komputer Anda.
PowerShell
Untuk mengambil instance, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- UID seri
- UID instance
- Nama file output
- Token akses
Contoh berikut menunjukkan permintaan GET
menggunakan Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; Accept = "application/dicom; transfer-syntax=*" } Invoke-RestMethod ` -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" -OutFile FILENAME.dcm `
Jika permintaan berhasil, file DICOM akan ditulis ke komputer Anda.
Go
Java
Node.js
Python
Mengambil format gambar konsumen
Contoh berikut menunjukkan cara mengambil format pencitraan konsumen seperti JPEG atau PNG menggunakan implementasi Resource yang Dirender Cloud Healthcare API. Untuk mengetahui informasi selengkapnya, lihat Resource yang dirender dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Untuk informasi selengkapnya, lihat
projects.locations.datasets.dicomStores.studies.series.instances.retrieveRendered
.
curl
Untuk mengambil gambar, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- UID seri
- UID instance
- Nama file output
- Token akses
Contoh berikut menunjukkan cara mengambil gambar PNG
dengan permintaan GET
menggunakan curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: image/png" \ "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/rendered" \ --output FILENAME.png
Jika permintaan berhasil, file PNG akan ditulis ke komputer Anda.
PowerShell
Untuk mengambil gambar, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- UID seri
- UID instance
- Nama file output
- Token akses
Contoh berikut menunjukkan cara mengambil gambar PNG dengan
permintaan GET
menggunakan Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; Accept = "image/png" } Invoke-RestMethod ` -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/rendered" -OutFile FILENAME.png `
Jika permintaan berhasil, file PNG akan ditulis ke komputer Anda.
Go
Java
Node.js
Python
Mengambil metadata
Anda dapat mengambil metadata untuk semua instance dalam sebuah studi atau seri. Contoh berikut menunjukkan cara mengambil metadata untuk sebuah instance. Untuk mengetahui informasi selengkapnya, lihat Resource metadata dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Untuk informasi selengkapnya, lihat projects.locations.datasets.dicomStores.studies.series.instances.retrieveMetadata
.
Saat Anda memanggil retrieveMetadata
, metode ini akan menampilkan kumpulan kolom yang sama, yang juga ditampilkan saat Anda menelusuri instance dengan parameter kueri includefield=all
. Jika aplikasi Anda sensitif terhadap latensi dan Anda ingin mengambil metadata untuk kumpulan kolom tertentu (bukan semua kolom), jangan panggil retrieveMetadata
. Sebagai gantinya, panggil
salah satu metode searchForInstances
dan tentukan kolomnya. Responsnya akan berupa kumpulan kolom yang lebih kecil, dan kumpulan kolom yang lebih kecil akan berguna untuk aplikasi yang sensitif terhadap latensi.
Secara default, retrieveMetadata
menampilkan respons JSON. Untuk menampilkan respons XML,
teruskan header HTTP Accept: multipart/related; type="application/dicom+xml"
dalam permintaan Anda.
REST
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/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/metadata"
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/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/metadata" | Select-Object -Expand Content
APIs Explorer
Buka halaman referensi metode. Panel APIs Explorer akan 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:
Mengambil data massal
Anda bisa mengambil byte mentah untuk tag data massal tertentu dalam instance tersimpan. Saat mengambil metadata dari instance menggunakan metode Pratinjau, BulkDataURIs akan dibuat untuk tag data massal yang didukung (lihat Definisi Bulkdata).
Untuk informasi selengkapnya, lihat projects.locations.datasets.dicomStores.studies.series.instances.bulkdata.retrieveBulkdata
.
Contoh berikut akan membuat URL permintaan secara langsung berdasarkan jalur tag data massal yang diketahui (tanpa menggunakan retrieveMetadata
untuk mendapatkan BulkDataURI).
curl
Untuk mengambil data massal, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- UID seri
- UID instance
- Jalur tag data massal target
- Untuk tag (XXXX,XXXX) dalam urutan (YYYY,YYYY) pada indeks i, jalurnya adalah "YYYYYYYY/i/XXXXXXXX"
- Nama file output
- Token akses
Contoh berikut menunjukkan cara mengambil file DAT
dengan permintaan GET
menggunakan curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Accept: application/octet-stream; transfer-syntax=*" \ "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/bulkdata/BULKDATA_PATH" \ --output FILENAME.dat
Jika permintaan berhasil, file DAT yang berisi byte mentah dari instance akan ditulis ke mesin Anda.
PowerShell
Untuk mengambil data massal, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- UID seri
- UID instance
- Jalur tag data massal target
- Untuk tag (XXXX,XXXX) dalam urutan (YYYY,YYYY) pada indeks i, jalurnya adalah "YYYYYYYY/i/XXXXXXXX"
- Nama file output
- Token akses
Contoh berikut menunjukkan cara mengambil file DAT dengan
permintaan GET
menggunakan Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred"; Accept = "application/octet-stream; transfer-syntax=*" } Invoke-RestMethod ` -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/bulkdata/BULKDATA_PATH" -OutFile FILENAME.DAT `
Jika permintaan berhasil, file DAT yang berisi byte mentah dari instance akan ditulis ke mesin Anda.
Menggunakan DICOMweb CLI
Contoh berikut menunjukkan cara menggunakan DICOMweb CLI Cloud Healthcare API untuk mengambil semua instance di penyimpanan DICOM dan menyimpannya ke komputer Anda di direktori kerja saat ini. Ada lebih banyak contoh yang tersedia di repositori GitHub CLI DICOMweb.
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ retrieve
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan berikut ini dan file DICOM akan ditulis ke komputer Anda:
TIMESTAMP -- Saving files into ./ TIMESTAMP -- Transferred SIZE in COUNT files
Menghapus studi, rangkaian, atau instance
Cloud Healthcare API menerapkan layanan web eksklusif untuk menghapus studi, rangkaian, dan instance DICOM. Layanan ini bukan bagian dari layanan standar DICOMweb. Untuk mengetahui informasi selengkapnya, lihat bagian Hapus dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Permintaan penghapusan untuk studi dan seri menampilkan operasi yang berjalan lama. Setelah operasi selesai, semua instance dalam studi atau rangkaian akan dihapus.
Permintaan penghapusan untuk instance tidak menampilkan operasi yang berjalan lama, tetapi menampilkan isi respons kosong seperti berikut:
{}
Contoh berikut menunjukkan cara menghapus studi DICOM. Untuk informasi selengkapnya,
lihat
projects.locations.datasets.dicomStores.studies.delete
.
REST
Menghapus 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 studi
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X DELETE \
-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"PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-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" | Select-Object -Expand ContentAPIs Explorer
Buka halaman referensi metode. Panel APIs Explorer akan 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:
Mendapatkan status operasi yang berjalan lama.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk penyimpanan DICOMOPERATION_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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Buka halaman referensi metode. Panel APIs Explorer akan 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:
Go
Java
Node.js
Python
Menggunakan DICOMweb CLI
Contoh berikut menunjukkan cara menggunakan DICOMweb CLI Cloud Healthcare API untuk menghapus studi:
dcmweb \ https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb \ delete studies/STUDY_INSTANCE_UID
Jika permintaan berhasil, server akan menampilkan operasi yang ditelusuri fitur CLI hingga operasi penghapusan selesai.