Mengekspor File DICOM
Layanan DICOM menyediakan kemampuan untuk dengan mudah mengekspor data DICOM dalam format file, menyederhanakan proses penggunaan pencitraan medis dalam alur kerja eksternal, seperti AI dan pembelajaran mesin. Studi, seri, dan instans DICOM dapat diekspor secara massal ke akun Azure Blob Storage menggunakan API ekspor. Data DICOM yang diekspor ke akun penyimpanan akan diekspor sebagai .dcm
file dalam struktur folder yang mengatur instans dengan StudyInstanceID
dan SeriesInstanceID
.
Ada tiga langkah untuk mengekspor data dari layanan DICOM:
- Aktifkan identitas terkelola yang ditetapkan sistem untuk layanan DICOM.
- Konfigurasikan akun penyimpanan baru atau yang sudah ada dan berikan izin ke identitas terkelola sistem.
- Gunakan API ekspor untuk membuat pekerjaan ekspor baru untuk mengekspor data.
Mengaktifkan identitas terkelola untuk layanan DICOM
Langkah pertama untuk mengekspor data dari layanan DICOM adalah mengaktifkan identitas terkelola sistem. Identitas terkelola ini digunakan untuk mengautentikasi layanan DICOM dan memberikan izin ke akun penyimpanan yang digunakan sebagai tujuan ekspor. Untuk informasi selengkapnya tentang identitas terkelola di Azure, lihat Tentang identitas terkelola untuk sumber daya Azure.
- Di portal Azure, telusuri ke layanan DICOM yang ingin Anda ekspor dan pilih Identitas.
- Atur opsi Status ke Aktif, lalu pilih Simpan.
- Pilih Ya dalam dialog konfirmasi yang muncul.
Dibutuhkan beberapa menit untuk membuat identitas terkelola sistem. Ketika identitas sistem telah diaktifkan, ID Objek (utama) akan ditampilkan.
Memberikan izin akun penyimpanan ke identitas terkelola sistem
Identitas terkelola sistem akan memerlukan izin Kontributor Data Blob Penyimpanan untuk menulis data ke akun penyimpanan tujuan.
- Di bawah Izin pilih Penetapan peran Azure.
- Pilih Tambahkan penetapan peran. Pada panel Tambahkan penetapan peran , buat pilihan berikut:
- Di bawah Cakupan, pilih Penyimpanan.
- Di bawah Sumber Daya, pilih akun penyimpanan tujuan untuk operasi ekspor.
- Di bawah Peran, pilih Kontributor Data Blob Penyimpanan.
- Pilih Simpan untuk menambahkan izin ke identitas terkelola sistem.
Menggunakan API ekspor
API ekspor mengekspos satu POST
titik akhir untuk mengekspor data.
POST <dicom-service-url>/<version>/export
Mengingat sumber, kumpulan data yang akan diekspor, dan tujuan, lokasi tempat data akan diekspor, titik akhir mengembalikan referensi ke operasi ekspor baru yang berjalan lama. Durasi operasi ini tergantung pada volume data yang akan diekspor. Lihat Status Operasi di bawah ini untuk detail selengkapnya tentang memantau kemajuan operasi ekspor.
Setiap kesalahan yang ditemui saat mencoba mengekspor akan dicatat dalam log kesalahan. Lihat Kesalahan di bawah ini untuk detailnya.
Minta
Isi permintaan terdiri dari sumber ekspor dan tujuan.
{
"source": {
"type": "identifiers",
"settings": {
"values": [
"..."
]
}
},
"destination": {
"type": "azureblob",
"settings": {
"setting": "<value>"
}
}
}
Pengaturan sumber
Satu-satunya pengaturan adalah daftar pengidentifikasi yang akan diekspor.
Properti | Diperlukan | Default | Deskripsi |
---|---|---|---|
Values |
Ya | Daftar satu atau beberapa pengidentifikasi studi, seri, dan/atau instans SOP DICOM dalam format "<StudyInstanceUID>[/<SeriesInstanceUID>[/<SOPInstanceUID>]]" . |
Pengaturan tujuan
Koneksi ke akun penyimpanan Azure Blob ditentukan dengan BlobContainerUri
.
Properti | Diperlukan | Default | Deskripsi |
---|---|---|---|
BlobContainerUri |
Tidak | "" |
URI lengkap untuk kontainer blob. |
UseManagedIdentity |
Ya | false |
Bendera yang diperlukan yang menunjukkan apakah identitas terkelola harus digunakan untuk mengautentikasi ke kontainer blob. |
Contoh
Contoh di bawah ini meminta ekspor sumber daya DICOM berikut ke kontainer blob bernama export
di akun penyimpanan bernama dicomexport
:
- Semua instans dalam studi yang
StudyInstanceUID
adalah1.2.3
. - Semua instans dalam seri yang
StudyInstanceUID
adalah12.3
danSeriesInstanceUID
adalah4.5.678
. - Instans yang
StudyInstanceUID
, adalahSeriesInstanceUID
123.456
7.8
, danSOPInstanceUID
adalah .9.1011.12
POST /export HTTP/1.1
Accept: */*
Content-Type: application/json
{
"sources": {
"type": "identifiers",
"settings": {
"values": [
"1.2.3",
"12.3/4.5.678",
"123.456/7.8/9.1011.12"
]
}
},
"destination": {
"type": "azureblob",
"settings": {
"blobContainerUri": "https://dicomexport.blob.core.windows.net/export",
"UseManagedIdentity": true
}
}
}
Respons
API ekspor mengembalikan 202
kode status saat operasi ekspor berhasil dimulai. Isi respons berisi referensi ke operasi, sementara nilai Location
header adalah URL untuk status operasi ekspor (sama seperti href
dalam isi).
Di dalam kontainer tujuan, file DCM dapat ditemukan dengan format jalur berikut: <operation id>/results/<study>/<series>/<sop instance>.dcm
HTTP/1.1 202 Accepted
Content-Type: application/json
{
"id": "df1ff476b83a4a3eaf11b1eac2e5ac56",
"href": "https://example-dicom.dicom.azurehealthcareapis.com/v1/operations/df1ff476b83a4a3eaf11b1eac2e5ac56"
}
Status operasi
URL di atas href
dapat dijajaki untuk status operasi ekspor saat ini hingga selesai. Setelah pekerjaan mencapai status terminal, API akan mengembalikan kode status 200 alih-alih 202, dan nilai properti statusnya akan diperbarui sesuai dengan itu.
HTTP/1.1 200 OK
Content-Type: application/json
{
"operationId": "df1ff476b83a4a3eaf11b1eac2e5ac56",
"type": "export",
"createdTime": "2022-09-08T16:40:36.2627618Z",
"lastUpdatedTime": "2022-09-08T16:41:01.2776644Z",
"status": "completed",
"results": {
"errorHref": "https://dicomexport.blob.core.windows.net/export/4853cda8c05c44e497d2bc071f8e92c4/errors.log",
"exported": 1000,
"skipped": 3
}
}
Kesalahan
Jika ada kesalahan pengguna saat mengekspor file DICOM, maka file dilewati dan kesalahan yang sesuai dicatat. Log kesalahan ini juga diekspor bersama file DICOM dan dapat ditinjau oleh pemanggil. Log kesalahan dapat ditemukan di <export blob container uri>/<operation ID>/errors.log
.
Format
Setiap baris log kesalahan adalah objek JSON dengan properti berikut. Pengidentifikasi kesalahan tertentu mungkin muncul beberapa kali dalam log karena setiap pembaruan ke log diproses setidaknya sekali.
Properti | Deskripsi |
---|---|
Timestamp |
Tanggal dan waktu ketika kesalahan terjadi. |
Identifier |
Pengidentifikasi untuk studi DICOM, seri, atau instans SOP dalam format "<study instance UID>[/<series instance UID>[/<SOP instance UID>]]" . |
Error |
Pesan kesalahan terperinci. |