Plugin DICOM
Lihat gambar medis dengan DicomPlugin
Plugin DICOM menambahkan tampilan gambar medis ke Doconut: file DICOM multi-frame dirender sebagai ikhtisar animasi, frame individual, atau keduanya. DICOM adalah format hanya plugin — tanpa plugin ini (dan kemampuan lisensinya), file .dcm tidak dapat dibuka sama sekali.
Pada .NET Framework 4.7.2, file DICOM dirender sepenuhnya — halaman, frame, dan animasi — tetapi metadata teknis (tag DICOM) tidak tersedia.
Viewer.GetDicomMetadataAsyncselalu mengembalikannull, dan permintaan metadata widget menjawab501 Not Implemented. GunakanDoconut.NET8jika aplikasi Anda membutuhkan tag tersebut.
Pasang paket
Install-Package Doconut.NETFramework.DicomPertahankan paket DICOM pada versi yang sama dengan Doconut.NETFramework.
Daftarkan plugin
Doconut.DoconutHost.Initialize(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Plugin (Name: "Doconut DICOM Viewer") mendaftarkan penampil untuk ekstensi .dcm dan .ima, dibatasi oleh kemampuan Dicom. Jika lisensi tidak memberikannya, DoconutHost.Initialize melempar dari Application_Start dan situs menjawab setiap permintaan dengan 500 kosong (alasan ada di log peristiwa Windows). Karena tidak ada penampil bawaan yang menangani format ini, membuka satu akan gagal total jika kemampuan tersebut kemudian tidak tersedia:
LicenseException: This document type requires the 'Dicom' plugin license.Membuka file DICOM
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});Mode tampilan
File DICOM multi-frame dapat disajikan dalam tiga cara (DicomDisplayMode):
| Mode | Halaman yang dihasilkan | Untuk |
|---|---|---|
AnimationOnly | Halaman 1 = GIF animasi yang mengulang semua frame | Tinjauan sinematik cepat |
FramesOnly | Halaman 1..N = satu PNG statis per frame | Navigasi diagnostik frame-per-frame |
AnimationAndFrames (default) | Halaman 1 = GIF animasi, halaman 2..N = frame statis | Ikhtisar dan detail dalam satu dokumen |
Waktu animasi dikontrol oleh AnimationFrameDelayMs (default 100 ms = 10 FPS; waktu GIF menggunakan satuan 10 ms) dan LoopCount (0 = loop selamanya).
Penampil mengetahui bahwa halaman 1 beranimasi dengan mengirim permintaan HEAD untuknya. Penangkap DocImage.axd harus menerima HEAD dalam Web.config (verb="GET,HEAD,POST", lihat Instalasi); tanpa itu, IIS menjawab 404 sebelum Doconut berjalan dan deteksi animasi tidak pernah berhasil.
Resolusi
DicomConfig merender pada 100 DPI per sumbu secara default. Jika Anda tidak mengatur HorizontalResolution/VerticalResolution secara eksplisit, mereka mengikuti BaseConfig.ImageResolution ketika itu diatur, dan hanya kemudian kembali ke 100.
// Penambahan seragam melalui properti dasar…
new DicomConfig { ImageResolution = 150 };
// …atau kontrol per‑sumbu
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };Metadata DICOM
var metadata = await viewer.GetDicomMetadataAsync(token);
// Pada .NET Framework ini selalu null: pembaca metadata DICOM tidak tersedia untuk ini
// target. Halaman, bingkai, dan animasi dirender secara normal.Metode ini ada pada paket ini agar kode yang dibagikan dengan paket .NET 8 dapat dikompilasi, tetapi membaca tag DICOM memerlukan komponen yang tidak memiliki build .NET Framework. Rencanakan antarmuka pengguna Anda tanpa mereka — misalnya, sembunyikan panel metadata ketika hasilnya null.
Referensi konfigurasi lengkap
Tabel properti DicomConfig lengkap ada di Konfigurasi Format. Dalam pemilihan per‑ekstensi, kasus DICOM terlihat seperti ini:
case ".DCM": case ".IMA":
return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };Watermark dan perilaku memori
Keputusan watermark halaman normal juga berlaku untuk output DICOM. Untuk output animasi, setiap frame GIF diberi cap, sehingga tanda tetap terlihat selama pemutaran. DocOptions.Watermark khusus hanya digunakan ketika lisensi mengizinkan watermark khusus; tidak dapat menggantikan watermark evaluasi.
Studi multi-frame dapat menghasilkan baik animasi maupun satu halaman statis per frame. AnimationAndFrames memberikan navigasi paling kaya tetapi juga biaya rendering dan memori tertinggi — dan pada satu server memori tersebut milik proses pekerja IIS. Untuk studi besar:
- gunakan
FramesOnlyketika inspeksi frame lebih penting daripada pemutaran; - hindari meningkatkan kedua sumbu resolusi tanpa mengukur memori;
- tutup sesi secara eksplisit ketika studi tidak lagi terbuka;
- pertahankan
CachePagesaktif hanya ketika akses berulang layak mempertahankan gambar.
Pemecahan Masalah
| Gejala | Periksa |
|---|---|
.dcm dilaporkan tidak didukung | pendaftaran DicomPlugin dan penyebaran paket |
Setiap permintaan menjawab 500 kosong setelah menambahkan plugin | Lisensi memberikan Dicom — log peristiwa Windows, sumber ASP.NET |
| Hanya satu halaman muncul | Sumber mungkin single‑frame, atau DisplayMode adalah AnimationOnly |
| Halaman 1 tidak beranimasi | Penangkap di Web.config menerima HEAD |
| Animasi terlalu cepat atau lambat | AnimationFrameDelayMs; waktu GIF menggunakan satuan 10 ms |
| Memori meningkat pada file multi‑frame besar | Mode tampilan, resolusi, cache halaman, dan penutupan sesi eksplisit |
Metadata selalu null | Diharapkan pada paket ini — lihat catatan di atas |
Apakah halaman ini membantu?