DICOM plugin
Prohlížejte lékařské snímky pomocí DicomPlugin
DICOM plugin přidává prohlížení lékařských snímků do Doconut: více‑rámcové DICOM soubory se vykreslují jako animovaný přehled, jednotlivé snímky nebo obojí. DICOM je formát pouze pro plugin — bez tohoto pluginu (a jeho licenční schopnosti) nelze soubory .dcm vůbec otevřít.
Na .NET Framework 4.7.2 se DICOM soubory vykreslují kompletně — stránky, snímky i animace — ale technická metadata (DICOM tagy) nejsou k dispozici.
Viewer.GetDicomMetadataAsyncvždy vracínulla požadavek widgetu na metadata odpovídá501 Not Implemented. PoužijteDoconut.NET8, pokud vaše aplikace potřebuje tagy.
Instalace balíčku
Install-Package Doconut.NETFramework.DicomUdržujte DICOM balíček ve stejné verzi jako Doconut.NETFramework.
Registrace pluginu
Doconut.DoconutHost.Initialize(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Plugin (Name: "Doconut DICOM Viewer") registruje prohlížeče pro .dcm a .ima rozšíření, řízené schopností Dicom. Pokud licence tuto schopnost nepovolí, DoconutHost.Initialize vyhodí výjimku během Application_Start a stránka odpoví na každý požadavek prázdným 500 (důvod je v protokolu událostí Windows). Protože žádný vestavěný prohlížeč tyto formáty neobsluhuje, otevření souboru selže, pokud se schopnost později stane nedostupnou:
LicenseException: This document type requires the 'Dicom' plugin license.Otevření DICOM souboru
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});Režimy zobrazení
Více‑rámcové DICOM soubory mohou být prezentovány třemi způsoby (DicomDisplayMode):
| Režim | Vytvořené stránky | Použití |
|---|---|---|
AnimationOnly | Stránka 1 = animovaný GIF opakující všechny snímky | Rychlý filmový přehled |
FramesOnly | Stránky 1..N = jeden statický PNG na snímek | Diagnostická navigace snímek po snímku |
AnimationAndFrames (default) | Stránka 1 = animovaný GIF, stránky 2..N = statické snímky | Přehled a detail v jednom dokumentu |
Časování animace řídí AnimationFrameDelayMs (výchozí 100 ms = 10 FPS; časování GIF používá jednotky 10 ms) a LoopCount (0 = nekonečné opakování).
Prohlížeč zjistí, že stránka 1 je animovaná odesláním požadavku HEAD. Handler DocImage.axd proto musí v Web.config akceptovat HEAD (verb="GET,HEAD,POST", viz Instalace); bez toho IIS vrátí 404 ještě před spuštěním Doconut a detekce animace nikdy neproběhne.
Rozlišení
DicomConfig vykresluje ve výchozím nastavení 100 DPI na osu. Pokud explicitně nenastavíte HorizontalResolution/VerticalResolution, použijí hodnotu z BaseConfig.ImageResolution, pokud je nastavena, a až poté se vrátí k 100.
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };DICOM metadata
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.Metoda existuje v tomto balíčku, aby kód sdílený s balíčkem .NET 8 byl kompilovatelný, ale čtení DICOM tagů vyžaduje komponentu, která nemá sestavení pro .NET Framework. Navrhněte uživatelské rozhraní bez nich — například skryjte panel s metadaty, když je výsledek null.
Kompletní referenční konfigurace
Úplná tabulka vlastností DicomConfig je v Konfiguracích formátu. Při výběru podle přípony vypadá případ DICOM takto:
case ".DCM": case ".IMA":
return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };Vodoznak a chování paměti
Rozhodnutí o vodoznaku běžné stránky se vztahuje i na výstup DICOM. U animovaného výstupu je každý GIF snímek opatřen vodoznakem, takže značka zůstává viditelná po celou dobu přehrávání. Vlastní DocOptions.Watermark se používá pouze tehdy, když licence umožňuje vlastní vodoznaky; nemůže nahradit zkušební vodoznak.
Více‑rámcové studie mohou vytvořit jak animaci, tak statickou stránku pro každý snímek. AnimationAndFrames poskytuje nejbohatší navigaci, ale také nejvyšší nároky na vykreslování a paměť — a na jediném serveru tato paměť patří pracovnímu procesu IIS. Pro velké studie:
- použijte
FramesOnly, když je kontrola snímků důležitější než přehrávání; - vyhněte se zvýšení obou os rozlišení bez měření paměti;
- ukončete relaci explicitně, když už studie není otevřená;
- nechte
CachePageszapnuté pouze tehdy, když opakovaný přístup stojí za uchování obrázků.
Řešení problémů
| Příznak | Kontrola |
|---|---|
.dcm je hlášeno jako nepodporované | Registrace DicomPlugin a nasazení balíčku |
Každý požadavek vrací prázdný 500 po přidání pluginu | Licence uděluje Dicom — Windows event log, zdroj ASP.NET |
| Zobrazuje se pouze jedna stránka | Zdroj může být jednosnímkový, nebo DisplayMode je AnimationOnly |
| Stránka 1 se neanimuje | Handler v Web.config akceptuje HEAD |
| Animace je příliš rychlá nebo pomalá | AnimationFrameDelayMs; časování GIF používá jednotky 10 ms |
| Paměť roste u velkých více‑rámcových souborů | Režim zobrazení, rozlišení, cache stránek a explicitní uzavření relace |
Metadata jsou vždy null | Očekáváno v tomto balíčku — viz poznámka nahoře |
Byla tato stránka užitečná?