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.

Installera paketet

bash
dotnet add package Doconut.NETStandard.Dicom

Det oversionsstyrda kommandot installerar den senaste stabila versionen. För att låsa pluginet till den aktuella 26.8.0‑utgåvan, ange versionen separat:

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

Behåll DICOM‑paketet på samma version som Doconut.NETStandard. Paket‑ID:t är Doconut.NETStandard.Dicom; .26.8.0 visas endast i den nedladdade .nupkg‑filnamnet.

Registrera pluginet

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

Pluginet (Name: "Doconut DICOM Viewer") registrerar visare för .dcm‑ och .ima‑filändelserna, styrda av Dicom‑kapaciteten. En saknad eller otillräcklig icke‑tillfällig rättighet misslyckas normalt under AddDoconut(). Eftersom ingen inbyggd visare hanterar dessa format, misslyckas även körningsgrinden hårt om kapaciteten senare blir otillgänglig:

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

Öppna en DICOM‑fil

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

Visningslägen

Flerbilds‑DICOM‑filer kan presenteras på tre sätt (DicomDisplayMode):

LägeGenererade sidorAnvändning
AnimationOnlySida 1 = animerad GIF som loopar alla ramarSnabb filmisk granskning
FramesOnlySidor 1..N = en statisk PNG per ramRam‑för‑ram diagnostisk navigering
AnimationAndFrames (default)Sida 1 = animerad GIF, sidor 2..N = statiska ramarÖversikt + detalj i ett dokument

Animationstiden styrs av AnimationFrameDelayMs (standard 100 ms = 10 FPS; GIF‑granularitet är 10 ms‑enheter) och LoopCount (0 = loopa för alltid).

Upplösning

DicomConfig renderar med 100 DPI per axel som standard. Upplösningsegenskaperna har en återfallskedja som är bra att känna till: om du inte anger HorizontalResolution/VerticalResolution explicit, följer de BaseConfig.ImageResolution när den är konfigurerad, och faller först därefter tillbaka till 100.

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

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

Tillgänglighet för DICOM‑metadata i .NET Standard

DICOM‑sidrendering, enskilda ramar, animation, transformationer och vattenstämpling stöds. Teknisk tagg‑metadata är inte tillgänglig i .NET Standard‑paketet eftersom metadata‑läsaren endast levereras som en .NET 8‑byggnad.

Viewer.GetDicomMetadataAsync(token) returnerar därför null för en DICOM‑session och loggar en engångsvarning. Den motsvarande ?token=…&meta‑middleware‑begäran returnerar HTTP 501 Not Implemented med den stabila felkoden dicom_metadata_unsupported. Använd .NET 8‑paketet när teknisk DICOM‑metadata är ett krav.

Fullständig konfigurationsreferens

Den kompletta DicomConfig‑egenskapstabellen finns i API‑referens → Format‑konfigurationer. Ett produktionsexempel från referensappens per‑filändrings‑switch:

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

Vattenstämpel och minnesbeteende

Det normala beslutet om sidvattensämpel gäller även för DICOM‑utdata. För animerad utdata stämplas varje GIF‑ram så att märket förblir synligt under hela uppspelningen. En anpassad DocOptions.Watermark används endast när licensvägen tillåter anpassade vattenstämplar; den kan inte ersätta en utvärderingsvattenstämpel.

Multiramstudier kan generera både en animation och en statisk sida per ram. AnimationAndFrames ger den rikaste navigeringen men har också den högsta renderings‑ och cachekostnaden. För stora studier:

  • använd FramesOnly när ram‑inspektion är viktigare än filmisk 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 CachePages aktiverat endast när fördelarna med återkommande åtkomst överväger de behållna bilderna.

Felsökning

SymtomKontroll
.dcm rapporteras som ej stödjdaRegistrering av DicomPlugin och paketdistribution
Uppstart misslyckas efter att pluginet lagts tillDen laddade licensen beviljar Dicom
Endast en sida visasKällan kan vara enkelram, eller DisplayMode är AnimationOnly
Animationen är för snabb eller för långsamAnimationFrameDelayMs; effektiv GIF-timing använder 10 ms‑enheter
Minnet växer på stora flerbildsfilerVisningsläge, upplösning, sidcache och explicit sessionstängning
Metadata är null, eller &meta returnerar 501Förväntad begränsning i detta paket; rendering påverkas inte

Var den här sidan hjälpsam?