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 yang 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 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 menerapkan layanan web RESTful Store transaction saat menyimpan data DICOM. Untuk mengetahui informasi selengkapnya, lihat Transaksi penyimpanan dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Simpan data DICOM menggunakan salah satu metode berikut. Sertakan header application/dicom
Accept
dalam permintaan Anda.
- Menyimpan instance DICOM: Biasanya berupa file
.dcm
. Menyimpan beberapa item menggunakan pesan multi-bagian (multipart): Buat file multipart dengan beberapa bagian data yang dipisahkan oleh batas. Dalam permintaan Anda, tetapkan
Content-Type
kemultipart/related; type=application/dicom; boundary=BOUNDARY
, denganBOUNDARY
adalah nilai yang ditentukan pengguna yang menunjukkan berbagai bagian pesan. Lihat RFC 1341 untuk mengetahui detail tentang cara membuat pesan multipart.Gunakan pesan multipart untuk menyimpan jenis data DICOM berikut:
- Studi atau rangkaian DICOM yang berisi beberapa instance. Pisahkan setiap instance menggunakan batas. Untuk mengetahui petunjuknya, lihat Menyimpan studi atau seri DICOM menggunakan pesan multipart.
- Metadata JSON DICOM dengan file JPEG. Pisahkan setiap set data menggunakan batas. Untuk mengetahui petunjuknya, lihat Membuat instance DICOM dari metadata JSON dan gambar JPEG.
Nilai SOP_CLASS_UID
, SOP_INSTANCE_UID
, STUDY_INSTANCE_UID
, dan SERIES_INSTANCE_UID
diisi dari metadata yang diberikan. UID harus memenuhi persyaratan berikut:
- Hanya berisi nilai numerik yang dipisahkan dengan 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 Google Cloud project 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 sufiks.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
Menyimpan studi atau rangkaian DICOM menggunakan pesan multipart
Contoh berikut menunjukkan cara menyimpan studi atau rangkaian DICOM, yang terdiri dari beberapa instance, menggunakan pesan multipart.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID Google Cloud project AndaLOCATION
: lokasi set dataDATASET_ID
: set data induk DICOM storeDICOM_STORE_ID
: ID penyimpanan DICOMMULTIPART_FILE
: jalur ke file multipart di komputer lokal Anda. File berisi beberapa instance DICOM, dengan masing-masing dipisahkan oleh batas.BOUNDARY
: batas yang digunakan untuk memisahkan instance DICOM dalam file multipart
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: multipart/related; type=application/dicom; boundary=BOUNDARY" \
--data-binary @MULTIPART_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 MULTIPART_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
Menentukan kelas penyimpanan untuk instance DICOM
Secara default, metode projects.locations.datasets.dicomStores.storeInstances
menyimpan instance DICOM di penyimpanan DICOM dengan kelas 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 class penyimpanan saat Anda menyimpan objek DICOM dari mesin lokal.
curl
Gunakan metode
projects.locations.datasets.dicomStores.storeInstances
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID Google Cloud project 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 sufiks.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 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 Google Cloud project 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 sufiks.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 tidak ingin 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 sudah 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 pembuka 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 Sintaksis Transfer (
1.2.840.10008.1.2.4.50
) menetapkan Sintaksis Transfer sebagai JPEG Baseline. Sebagian besar gambar JPEG menggunakan format JPEG Baseline. Nilai Interpretasi Fotometrik (YBR_FULL_422
) menandakan bahwa gambar berwarna, bukan skala abu-abu. BulkDataUri
adalah deskriptor arbitrer untuk gambar, dan dalam template, parameter ini disetel 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 rangkaian, jadi pilih kumpulan ID logis untuk variabel ini.
Ganti SOP Class UID dengan nilai dari tabel Kelas SOP Standar yang menunjukkan 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
, dengan mengganti 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 awal (untuk metadata JSON), tengah (untuk gambar JPEG), dan akhir, 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
Bungkus 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
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 contoh lainnya 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 tanda -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 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 Google Cloud project 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 APIs 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 mempersempit 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 penerapan Transaksi penelusuran untuk menelusuri studi di penyimpanan DICOM. Namun, contoh ini menunjukkan cara menelusuri studi yang nama pasiennya adalah "Sally Zhang".
Contoh berikut menunjukkan sebagian metadata instance DICOM tempat nama pasien tercantum:
...
{
"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 mengetahui 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 Google Cloud project 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 APIs 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 mengimplementasikan transaksi Pengambilan untuk mengambil studi, rangkaian, 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/seri/instance DICOM dalam pernyataan kesesuaian DICOM Cloud Healthcare API.
Saat menentukan file output, gunakan ekstensi seperti .multipart
. Kemudian, parsing file multipart untuk
mendapatkan setiap deret 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
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 mesin 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 mesin 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 parsing batas multipart
dengan menggunakan header HTTP Accept: application/dicom
. Menambahkan
transfer-syntax=*
menghindari transkode dengan menampilkan file dalam format yang
awalnya digunakan untuk menyimpannya.
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
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 mesin 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 mesin Anda.
Go
Java
Node.js
Python
Mengambil format gambar konsumen
Contoh berikut menunjukkan cara mengambil format gambar konsumen seperti JPEG atau PNG menggunakan penerapan Rendered Resources 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 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 ditampilkan saat Anda menelusuri instance
dengan parameter kueri includefield=all
. Jika aplikasi Anda sensitif terhadap latensi dan Anda ingin mengambil metadata untuk sekumpulan 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 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 Google Cloud project 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 APIs 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, jalur 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 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, jalur 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 komputer Anda.
Menggunakan DICOMweb CLI
Contoh berikut menunjukkan cara menggunakan CLI DICOMweb Cloud Healthcare API untuk mengambil semua instance di penyimpanan DICOM dan menyimpannya ke mesin Anda di direktori kerja saat ini. Ada contoh lainnya 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 mesin 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 studi dan deret 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
Hapus studi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID Google Cloud project 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 APIs 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 Google Cloud project 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 APIs 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.