DICOM‑plugin
Visa medicinska bilder med DicomPlugin
DICOM‑pluginet lägger till visning av medicinska bilder i Doconut: flerbilds‑DICOM‑filer renderas som en animerad översikt, enskilda ramar eller båda. DICOM är ett plugin‑endast format — utan detta plugin (och dess licensfunktion) kan .dcm‑filer inte öppnas alls.
På .NET Framework 4.7.2 renderas DICOM‑filer fullständigt — sidor, ramar och animation — men teknisk metadata (DICOM‑taggarna) är inte tillgänglig.
Viewer.GetDicomMetadataAsyncreturnerar alltidnull, och widgetens metadataförfrågan svarar med501 Not Implemented. AnvändDoconut.NET8om din applikation behöver taggarna.
Installera paketet
Install-Package Doconut.NETFramework.DicomBehåll DICOM‑paketet på samma version som Doconut.NETFramework.
Registrera pluginet
Doconut.DoconutHost.Initialize(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Pluginet (Name: "Doconut DICOM Viewer") registrerar visare för .dcm‑ och .ima‑tillägg, styrda av Dicom‑kapaciteten. Om licensen inte beviljar den, kastar DoconutHost.Initialize från Application_Start och webbplatsen svarar på varje förfrågan med en tom 500 (orsaken finns i Windows‑händelseloggen). Eftersom ingen inbyggd visare hanterar dessa format, misslyckas öppning av ett sådant omedelbart om kapaciteten senare blir otillgänglig:
LicenseException: This document type requires the 'Dicom' plugin license.Öppna en DICOM‑fil
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});Visningslägen
Flerbilds‑DICOM‑filer kan presenteras på tre sätt (DicomDisplayMode):
| Läge | Genererade sidor | Användning |
|---|---|---|
AnimationOnly | Sida 1 = animerad GIF som loopar alla ramar | Snabb filmisk granskning |
FramesOnly | Sidor 1..N = en statisk PNG per ram | Ram‑för‑ram diagnostisk navigering |
AnimationAndFrames (standard) | Sida 1 = animerad GIF, sidor 2..N = statiska ramar | Översikt och detalj i ett dokument |
Animationstiden styrs av AnimationFrameDelayMs (standard 100 ms = 10 FPS; GIF‑tid använder 10 ms‑enheter) och LoopCount (0 = loopa för alltid).
Visaren upptäcker att sida 1 är animerad genom att skicka en HEAD‑förfrågan för den. DocImage.axd‑hanteraren måste därför acceptera HEAD i Web.config (verb="GET,HEAD,POST", se Installation); utan den svarar IIS med 404 innan Doconut körs och animationsdetektering fungerar aldrig.
Upplösning
DicomConfig renderas med 100 DPI per axel som standard. Om du inte sätter HorizontalResolution/VerticalResolution explicit, följer de BaseConfig.ImageResolution när den är satt, och faller först tillbaka till 100.
// Enhetlig ökning via basegenskapen…
new DicomConfig { ImageResolution = 150 };
// …eller per-axelkontroll
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };DICOM‑metadata
var metadata = await viewer.GetDicomMetadataAsync(token);
// På .NET Framework är detta alltid null: DICOM-metadata-läsaren är inte tillgänglig för detta
// target. Sidor, ramar och animation renderas normalt.Metoden finns i detta paket så att kod som delas med .NET 8‑paketet kan kompileras, men att läsa DICOM‑taggar kräver en komponent som saknar .NET Framework‑byggnad. Planera ditt användargränssnitt utan dem — till exempel, dölj en metadata‑panel när resultatet är null.
Fullständig konfigurationsreferens
Den kompletta DicomConfig‑egenskapstabellen finns i Format Configs. I ett per‑tilläggsval ser DICOM‑fallet ut så här:
case ".DCM": case ".IMA":
return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };Vattenstämpel och minnesbeteende
Det normala beslutet om sidvattensstämpel gäller även för DICOM‑utdata. För animerad utdata stämplas varje GIF‑ram, så märket förblir synligt under hela uppspelningen. En anpassad DocOptions.Watermark används endast när licensen tillåter anpassade vattenstämplar; den kan inte ersätta en utvärderingsvattensstämpel.
Flerbildsstudier kan producera både en animation och en statisk sida per ram. AnimationAndFrames ger den rikaste navigeringen men också den högsta renderings‑ och minneskostnaden — och på en enskild server tillhör det minnet IIS‑arbetsprocessen. För stora studier:
- använd
FramesOnlynär ram‑inspektion är viktigare än uppspelning; - undvik att öka båda upplösningsaxlarna utan att mäta minnet;
- stäng sessionen explicit när studien inte längre är öppen;
- behåll
CachePagespå endast när återkommande åtkomst är värd de behållna bilderna.
Felsökning
| Symptom | Kontroll |
|---|---|
.dcm rapporteras som ej stödjs | DicomPlugin‑registrering och paketdistribution |
Varje förfrågan svarar med en tom 500 efter att pluginet lagts till | Licensen beviljar Dicom — Windows‑händelseloggen, källa ASP.NET |
| Endast en sida visas | Källan kan vara enstaka ram, eller DisplayMode är AnimationOnly |
| Sida 1 animeras inte | Hanteraren i Web.config accepterar HEAD |
| Animationen är för snabb eller för långsam | AnimationFrameDelayMs; GIF‑tid använder 10 ms‑enheter |
| Minnet växer på stora flerbilds‑filer | Visningsläge, upplösning, sidcache och explicit sessionsstängning |
Metadata är alltid null | Förväntat i detta paket — se noteringen högst upp |
Var den här sidan hjälpsam?