DICOM Plugin

Prohlížení lékařských snímků pomocí DicomPlugin

Plugin DICOM přidává prohlížení lékařských snímků do Doconut: soubory DICOM s více snímky 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.

Instalace balíčku

bash
dotnet add package Doconut.NETStandard.Dicom

Příkaz bez verze nainstaluje nejnovější stabilní vydání. Pro připnutí pluginu k aktuálnímu vydání 26.8.0 předávejte verzi samostatně:

bash
dotnet add package Doconut.NETStandard.Dicom --version 26.8.0

Udržujte balíček DICOM ve stejné verzi jako Doconut.NETStandard. ID balíčku je Doconut.NETStandard.Dicom; .26.8.0 se objevuje jen v názvu staženého souboru .nupkg.

Registrace pluginu

csharp
builder.Services.AddDoconut(options =>
{
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

Plugin (Name: "Doconut DICOM Viewer") registruje prohlížeče pro rozšíření .dcm a .ima, řízené schopností Dicom. Chybějící nebo nedostatečné nečasové oprávnění obvykle selže během AddDoconut(). Protože žádný vestavěný prohlížeč tyto formáty nezpracovává, runtime gate také tvrdě selže, pokud se schopnost později stane nedostupnou:

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

Otevírání souboru DICOM

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

Zobrazovací režimy

Soubory DICOM s více snímky lze prezentovat třemi způsoby (DicomDisplayMode):

RežimVytvořené stránkyPoužití
AnimationOnlyStránka 1 = animovaný GIF opakující všechny snímkyRychlý filmový přehled
FramesOnlyStránky 1..N = jeden statický PNG na snímekDiagnostická navigace snímek po snímku
AnimationAndFrames (výchozí)Stránka 1 = animovaný GIF, stránky 2..N = statické snímkyPřehled + detail v jednom dokumentu

Časování animace řídí AnimationFrameDelayMs (výchozí 100 ms = 10 FPS; granularita GIF je v jednotkách 10 ms) a LoopCount (0 = nekonečné opakování).

Rozlišení

DicomConfig vykresluje ve výchozím nastavení 100 DPI na osu. Vlastnosti rozlišení mají řetězec náhrad, který stojí za to znát: pokud explicitně nenastavíte HorizontalResolution/VerticalResolution, následují BaseConfig.ImageResolution, pokud je nastaven, a až poté se vrátí na 100.

csharp
// Jednotné vyboulení pomocí základní vlastnosti…
new DicomConfig { ImageResolution = 150 };

// …nebo řízení po jednotlivých osách
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };

Dostupnost metadat DICOM v .NET Standard

Vykreslování stránek DICOM, jednotlivé snímky, animace, transformace a vodoznakování jsou podporovány. Technická metadata tagů nejsou dostupná v balíčku .NET Standard, protože čtečka metadat je distribuována pouze ve verzi .NET 8.

Viewer.GetDicomMetadataAsync(token) tedy vrací null pro DICOM relaci a zaznamená jednorázové varování. Odpovídající požadavek middleware ?token=…&meta vrací HTTP 501 Not Implemented s trvalým chybovým kódem dicom_metadata_unsupported. Použijte balíček .NET 8, když jsou technická metadata DICOM požadavkem.

Kompletní reference konfigurace

Úplná tabulka vlastností DicomConfig se nachází v API Reference → Format Configs. Produkční příklad z přepínače aplikace podle rozšíření:

csharp
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },

Vodoznak a chování paměti

Obvyklé rozhodnutí o vodoznaku stránky se vztahuje i na výstup DICOM. Pro animovaný výstup je každý GIF snímek opatřen vodoznakem, aby značka zůstala viditelná po celou dobu přehrávání. Vlastní DocOptions.Watermark se používá pouze tehdy, když licenční cesta umožňuje vlastní vodoznaky; nemůže nahradit zkušební vodoznak.

Studie s více snímky mohou generovat jak animaci, tak jednu statickou stránku na snímek. AnimationAndFrames poskytuje nejbohatší navigaci, ale také nejvyšší náklady na vykreslování a cache. Pro velké studie:

  • použijte FramesOnly, když je kontrola snímků důležitější než filmové přehrávání;
  • vyhněte se zvyšování obou os rozlišení bez měření paměti;
  • ukončete relaci explicitně, když studie již není otevřená;
  • ponechte CachePages povolené pouze tehdy, když výhody opakovaného přístupu převáží nad uloženými obrázky.

Řešení problémů

PříznakKontrola
.dcm je hlášeno jako nepodporovanéregistrace DicomPlugin a nasazení balíčku
Spuštění selže po přidání pluginuNačtená licence poskytuje Dicom
Zobrazí se jen jedna stránkaZdroj může být jednosnímkový, nebo DisplayMode je AnimationOnly
Animace je příliš rychlá nebo pomaláAnimationFrameDelayMs; efektivní časování GIF používá jednotky 10 ms
Paměť roste u velkých souborů s více snímkyRežim zobrazení, rozlišení, cache stránek a explicitní uzavření relace
Metadata jsou null, nebo &meta vrací 501Očekávané omezení tohoto balíčku; vykreslování není ovlivněno

Byla tato stránka užitečná?