DICOM Eklentisi

DICOM eklentisi ile tıbbi görüntüleri görüntüleyin

DICOM eklentisi, Doconut'a tıbbi görüntü görüntülemeyi ekler: çok çerçeveli DICOM dosyaları animasyonlu bir genel bakış, tek tek çerçeveler veya her ikisi olarak işlenir. DICOM yalnızca eklenti formatıdır — bu eklenti (ve lisans yeteneği) olmadan .dcm dosyaları hiç açılamaz.

.NET Framework 4.7.2 üzerinde, DICOM dosyaları tam olarak işlenir — sayfalar, çerçeveler ve animasyon — ancak teknik meta veriler (DICOM etiketleri) mevcut değildir. Viewer.GetDicomMetadataAsync her zaman null döndürür ve widget'ın meta veri isteği 501 Not Implemented yanıtını verir. Etiketlere ihtiyacınız varsa Doconut.NET8 kullanın.

Paketi Yükleyin

powershell
Install-Package Doconut.NETFramework.Dicom

DICOM paketini Doconut.NETFramework ile aynı sürümde tutun.

Eklentiyi Kaydedin

csharp
Doconut.DoconutHost.Initialize(options =>
{
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

Eklenti (Name: "Doconut DICOM Viewer") .dcm ve .ima uzantıları için görüntüleyicileri, Dicom yeteneğiyle sınırlı olarak kaydeder. Lisans bu yetkiyi sağlamıyorsa, DoconutHost.Initialize Application_Start içinde bir istisna fırlatır ve site her isteğe boş bir 500 yanıtı verir (neden Windows olay günlüğündedir). Yerleşik bir görüntüleyici bu formatları işleyemediği için, yetenek daha sonra kullanılamaz hâle gelirse açma işlemi doğrudan başarısız olur:

text
LicenseException: This document type requires the 'Dicom' plugin license.

Bir DICOM dosyası açma

csharp
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
    DisplayMode = DicomDisplayMode.AnimationAndFrames
});

Görüntüleme Modları

Çok çerçeveli DICOM dosyaları üç şekilde sunulabilir (DicomDisplayMode):

ModOluşturulan SayfalarKullanım Amacı
AnimationOnlySayfa 1 = tüm çerçeveleri döngüleyen animasyonlu GIFHızlı sinematik inceleme
FramesOnlySayfalar 1..N = her çerçeve için tek statik PNGÇerçeve‑çerçeve tanı teşhis navigasyonu
AnimationAndFrames (default)Sayfa 1 = animasyonlu GIF, sayfalar 2..N = statik çerçevelerTek bir belgede genel bakış ve detay

Animasyon zamanlaması AnimationFrameDelayMs (varsayılan 100 ms = 10 FPS; GIF zamanlaması 10 ms birimlerini kullanır) ve LoopCount (0 = sonsuz döngü) ile kontrol edilir.

Görüntüleyici, sayfa 1'in animasyonlu olduğunu HEAD isteği göndererek belirler. DocImage.axd işleyicisinin Web.config içinde HEAD'i kabul etmesi gerekir (verb="GET,HEAD,POST", bkz. Kurulum); aksi takdirde IIS, Doconut çalışmadan önce 404 yanıtı verir ve animasyon algılaması hiç çalışmaz.

Çözünürlük

DicomConfig varsayılan olarak eksen başına 100 DPI ile işler. HorizontalResolution/VerticalResolution değerlerini açıkça ayarlamazsanız, ayarlı olduğunda BaseConfig.ImageResolution değerini izler ve yalnızca o zaman 100'e geri döner.

csharp
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };

// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };

DICOM meta verileri

csharp
var metadata = await viewer.GetDicomMetadataAsync(token);
// On .NET Framework this is always null: the DICOM metadata reader is not available for this
// target. Pages, frames and animation render normally.

Bu yöntem, .NET 8 paketiyle paylaşılan kodun derlenebilmesi için bu pakette bulunur, ancak DICOM etiketlerini okumak .NET Framework için bir derlemesi olmayan bir bileşen gerektirir. Kullanıcı arayüzünüzü bunlar olmadan planlayın — örneğin, sonuç null olduğunda bir meta veri panelini gizleyin.

Tam yapılandırma referansı

Tam DicomConfig özellik tablosu Format Configs içinde bulunur. Uzantı bazlı bir seçimde, DICOM durumu şu şekildedir:

csharp
case ".DCM": case ".IMA":
    return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };

Filigran ve bellek davranışı

Normal sayfa filigran kararı DICOM çıktısına da uygulanır. Animasyonlu çıktı için, her GIF çerçevesi damgalanır, böylece işaret oynatma süresince görünür kalır. Özel bir DocOptions.Watermark yalnızca lisans özel filigranlara izin verdiğinde kullanılır; değerlendirme filigranını değiştiremez.

Çok çerçeveli çalışmalar hem bir animasyon hem de çerçeve başına bir statik sayfa üretebilir. AnimationAndFrames en zengin navigasyonu sağlar ancak en yüksek işleme ve bellek maliyetini de getirir — ve tek bir sunucuda bu bellek IIS işçi sürecine aittir. Büyük çalışmalar için:

  • FramesOnly kullanın; çerçeve incelemesi oynatmadan daha önemli olduğunda;
  • Belleği ölçmeden her iki çözünürlük eksenini de artırmaktan kaçının;
  • Çalışma artık açık olmadığında oturumu açıkça kapatın;
  • Yinelemeli erişimin saklanan görüntüler için değerli olduğu durumlarda CachePages özelliğini açık tutun.

Sorun Giderme

BelirtiKontrol
.dcm desteklenmiyor olarak raporlanıyorDicomPlugin kaydı ve paket dağıtımı
Eklentiyi ekledikten sonra her istek boş bir 500 yanıtı veriyorLisans Dicom yetkisini veriyor — Windows olay günlüğü, kaynak ASP.NET
Yalnızca bir sayfa görünüyorKaynak tek çerçeveli olabilir veya DisplayMode AnimationOnly olabilir
Sayfa 1 animasyon göstermiyorWeb.config içindeki işleyici HEAD'i kabul ediyor
Animasyon çok hızlı ya da çok yavaşAnimationFrameDelayMs; GIF zamanlaması 10 ms birimlerini kullanır
Büyük çok‑çerçeveli dosyalarda bellek artıyorGörüntüleme modu, çözünürlük, sayfa önbelleği ve açık oturum kapatma
Meta veriler her zaman nullBu paket için beklenen — üstteki notu inceleyin

Bu sayfa yardımcı oldu mu?