Halaman ini menjelaskan cara menggunakan implementasi DICOMweb Cloud Healthcare API untuk menyimpan dan mengelola data gambar 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 Cloud Healthcare API DICOMweb CLI
Beberapa contoh di halaman ini menggunakan Cloud Healthcare API DICOMweb CLI, 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.
Alat ini berjalan menggunakan Python. Untuk mengetahui informasi cara menyiapkan Python di Google Cloud, lihat Menyiapkan lingkungan pengembangan Python.
Setelah menyiapkan Python, Anda dapat menginstal alat ini 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
- Melakukan autentikasi melalui Google Cloud CLI menggunakan
gcloud auth application-default login
Setelah mengonfigurasi salah satu opsi ini, alat akan otomatis mendeteksi kredensial Anda.
Menyimpan data DICOM
Sebelum dapat menyimpan data DICOM, Anda perlu membuat penyimpanan DICOM.
Cloud Healthcare API mengimplementasikan layanan web RESTful Transaksi penyimpanan saat menyimpan data DICOM. Untuk mengetahui informasi selengkapnya, lihat Transaksi penyimpanan dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Anda dapat menyimpan data DICOM menggunakan metode berikut. Dalam kedua kasus tersebut, Anda harus meneruskan header Accept
application/dicom
dalam permintaan.
- 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
. Bagianmultipart/related
dariContent-Type
menunjukkan bahwa permintaan terdiri dari beberapa bagian data yang digabungkan setelah permintaan selesai. Setiap kumpulan data ini harus dipisahkan menggunakan batas, seperti yang ditetapkan oleh bagianboundary
dariContent-Type
.
Nilai SOP_CLASS_UID
, SOP_INSTANCE_UID
, STUDY_INSTANCE_UID
, dan SERIES_INSTANCE_UID
diisi dari metadata yang disediakan. UID harus memenuhi persyaratan berikut:
- Hanya berisi nilai numerik yang dipisahkan titik.
- Tidak berisi informasi kesehatan terlindungi (PHI).
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 DICOM StoreDICOM_STORE_ID
: ID penyimpanan DICOMDICOM_INSTANCE_FILE
: jalur ke file instance DICOM di komputer 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 class 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 class penyimpanan saat menyimpan objek DICOM dari mesin lokal.
Untuk informasi selengkapnya, lihat
Mengubah class penyimpanan DICOM.
Contoh berikut menunjukkan cara menentukan class penyimpanan saat Anda menyimpan objek DICOM dari komputer lokal.
curl
Gunakan
metode projects.locations.datasets.dicomStores.storeInstances
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk DICOM StoreDICOM_STORE_ID
: ID penyimpanan DICOMDICOM_INSTANCE_FILE
: jalur ke file instance DICOM di komputer lokal Anda yang diakhiri dengan akhiran.dcm
STORAGE_CLASS
: class 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 akan 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 salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk DICOM StoreDICOM_STORE_ID
: ID penyimpanan DICOMDICOM_INSTANCE_FILE
: jalur ke file instance DICOM di komputer lokal Anda yang diakhiri dengan akhiran.dcm
STORAGE_CLASS
: class 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 memiliki gambar JPEG yang ada.
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.
Buat tiga file batas:
opening.file
: Berisi batas pembukaan untuk file metadata JSONmiddle.file
: Berisi batas tengah untuk gambar JPEGclosing.file
: Berisi batas penutup 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 Transfer Sintaksis (
1.2.840.10008.1.2.4.50
) menetapkan Transfer Sintaksis sebagai Dasar Pengukuran JPEG. Sebagian besar gambar JPEG memiliki format JPEG Baseline. Nilai Interpretasi Fotometrik (YBR_FULL_422
) menunjukkan bahwa gambar berwarna, bukan hitam putih. BulkDataUri
adalah deskripsi arbitrer untuk gambar, dan dalam template, nilainya 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 dengan titik. DICOM menggunakan hierarki ID untuk instance, pasien, studi, dan seri, jadi pilih kumpulan ID logis untuk variabel ini.
Ganti SOP Class UID dengan nilai dari tabel Kelas 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-langkah berikut:
Simpan teks berikut ke file bernama
instance.json
, yang akan menggantikan variabel di tempat yang 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 awal (untuk metadata JSON), tengah (untuk gambar JPEG), dan 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 Cloud Healthcare API DICOMweb CLI untuk menyimpan satu atau beberapa instance DICOM. Ada lebih banyak contoh yang tersedia di repositori GitHub DICOMweb CLI.
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 implementasi Transaksi penelusuran untuk menelusuri instance di penyimpanan DICOM. Untuk mengetahui informasi selengkapnya, lihat Transaksi penelusuran dalam 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 DICOM StoreDICOM_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 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:
Go
Java
Node.js
Python
Menelusuri menggunakan tag DICOM
Anda dapat menyaring penelusuran dengan menambahkan tag DICOM ke permintaan dalam bentuk parameter kueri. Misalnya, Anda mungkin ingin menelusuri studi yang berisi nama pasien.
Seperti contoh sebelumnya, contoh berikut menunjukkan implementasi Transaksi penelusuran untuk menelusuri studi di penyimpanan DICOM. Namun, contoh ini menunjukkan cara menelusuri studi dengan nama pasien "Sally Zhang".
Contoh berikut menunjukkan bagian 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 Anda tempat Anda menelusuri berdasarkan tag DICOM PatientName
.
Untuk daftar parameter penelusuran yang didukung di 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 DICOM StoreDICOM_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 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:
Go
Java
Node.js
Python
Menggunakan DICOMweb CLI
Contoh berikut menunjukkan cara menggunakan Cloud Healthcare API DICOMweb CLI untuk menelusuri instance di penyimpanan DICOM. Ada lebih banyak contoh, termasuk cara memfilter penelusuran, yang tersedia di repositori GitHub DICOMweb CLI.
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 Transaksi pengambilan untuk mengambil studi, seri, instance, dan frame di penyimpanan DICOM.
Untuk mengetahui informasi selengkapnya, lihat Mengambil transaksi dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Mengambil studi
Contoh berikut menunjukkan cara mengambil studi. Untuk mengetahui informasi selengkapnya, lihat Studi/rangkaian/instance DICOM dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Saat menentukan file output, gunakan ekstensi seperti .multipart
. Kemudian, mengurai file multibagian untuk
mendapatkan setiap seri dan instance 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 penguraian batas
multipart menggunakan header HTTP Accept: application/dicom
. Menambahkan
transfer-syntax=*
akan menghindari transcoding dengan menampilkan file dalam format
tempat file tersebut awalnya disimpan.
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 seri, 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 serial
- 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 gambar 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 serial
- 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 serial
- 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 studi atau seri. Contoh berikut menunjukkan cara mengambil metadata untuk 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 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 kolom. Respons
akan berupa kumpulan kolom yang lebih kecil, dan kumpulan kolom yang lebih kecil akan membantu
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 DICOM StoreDICOM_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 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:
Mengambil bulkdata
Anda dapat mengambil byte mentah untuk tag bulkdata tertentu dalam instance yang disimpan. Saat mengambil metadata dari instance menggunakan metode Pratinjau, BulkDataURIs akan dibuat untuk tag bulkdata 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 bulkdata yang diketahui (tanpa menggunakan retrieveMetadata
untuk mendapatkan BulkDataURI).
curl
Untuk mengambil bulkdata, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- UID serial
- UID instance
- Jalur tag bulkdata target
- Untuk tag (XXXX,XXXX) dalam urutan (YYYY,YYYY) pada indeks i, jalurnya akan menjadi "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 komputer Anda.
PowerShell
Untuk mengambil bulkdata, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan DICOM
- ID unik (UID) studi
- UID serial
- UID instance
- Jalur tag bulkdata target
- Untuk tag (XXXX,XXXX) dalam urutan (YYYY,YYYY) pada indeks i, jalurnya akan menjadi "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 komputer Anda.
Menggunakan DICOMweb CLI
Contoh berikut menunjukkan cara menggunakan Cloud Healthcare API DICOMweb CLI 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 DICOMweb CLI.
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 dan file DICOM akan ditulis ke komputer Anda:
TIMESTAMP -- Saving files into ./ TIMESTAMP -- Transferred SIZE in COUNT files
Menghapus studi, serial, 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 akan menampilkan operasi yang berjalan lama. Setelah operasi selesai, semua instance dalam studi atau seri 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 DICOM StoreDICOM_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 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:
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 DICOM StoreOPERATION_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 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:
Go
Java
Node.js
Python
Menggunakan DICOMweb CLI
Contoh berikut menunjukkan cara menggunakan Cloud Healthcare API DICOMweb CLI 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 di-polling oleh alat CLI hingga operasi penghapusan selesai.