Plugin DICOM
Visualizza immagini mediche con DicomPlugin
Il plugin DICOM aggiunge la visualizzazione di immagini mediche a Doconut: i file DICOM multiframe vengono renderizzati come una panoramica animata, fotogrammi individuali o entrambi. DICOM è un formato solo plugin — senza questo plugin (e la sua capacità di licenza), i file .dcm non possono essere aperti affatto.
Installa il pacchetto
dotnet add package Doconut.NET6.DicomIl comando senza versione installa l'ultima release stabile. Per fissare il plugin alla release corrente 26.7.0, passa la versione separatamente:
dotnet add package Doconut.NET6.Dicom --version 26.7.0Mantieni il pacchetto DICOM alla stessa versione di Doconut.NET6. L'ID del pacchetto è
Doconut.NET6.Dicom; .26.7.0 appare solo nel nome del file .nupkg scaricato.
Registra il plugin
builder.Services.AddDoconut(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Il plugin (Name: "Doconut DICOM Viewer") registra visualizzatori per le estensioni .dcm e .ima, controllate dalla capacità Dicom. Un'entitlement mancante o insufficiente non temporanea normalmente fallisce durante AddDoconut(). Poiché nessun visualizzatore integrato gestisce questi formati, il gate di runtime fallisce anche in modo definitivo se la capacità diventa indisponibile in seguito:
LicenseException: This document type requires the 'Dicom' plugin license.Apertura di un file DICOM
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});Modalità di visualizzazione
I file DICOM multiframe possono essere presentati in tre modi (DicomDisplayMode):
| Modalità | Pagine prodotte | Uso consigliato |
|---|---|---|
AnimationOnly | Pagina 1 = GIF animata che cicla tutti i fotogrammi | Revisione cinematica rapida |
FramesOnly | Pagine 1..N = un PNG statico per fotogramma | Navigazione diagnostica fotogramma per fotogramma |
AnimationAndFrames (predefinita) | Pagina 1 = GIF animata, pagine 2..N = fotogrammi statici | Panoramica + dettaglio in un unico documento |
Il tempo dell'animazione è controllato da AnimationFrameDelayMs (predefinito 100 ms = 10 FPS; la granularità dei GIF è di 10 ms) e da LoopCount (0 = loop infinito).
Risoluzione
DicomConfig renderizza a 100 DPI per asse per impostazione predefinita. Le proprietà di risoluzione hanno una catena di fallback utile da conoscere: se non imposti esplicitamente HorizontalResolution/VerticalResolution, esse seguono BaseConfig.ImageResolution quando questo è configurato, e solo allora tornano a 100.
// Incremento uniforme tramite la proprietà base…
new DicomConfig { ImageResolution = 150 };
// …oppure controllo per asse
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };Disponibilità dei metadati DICOM su .NET 6
Il rendering delle pagine DICOM, dei fotogrammi individuali, dell'animazione, delle trasformazioni e del watermark è supportato. I metadati dei tag tecnici non sono disponibili nel pacchetto .NET 6 perché il lettore di metadati non ha una build .NET 6.
Viewer.GetDicomMetadataAsync(token) restituisce quindi null per una sessione DICOM e
registra un avviso una tantum. La corrispondente richiesta middleware ?token=…&meta restituisce
HTTP 501 Not Implemented con il codice di errore stabile
dicom_metadata_unsupported. Usa il pacchetto .NET 8 quando i metadati tecnici DICOM sono un
requisito.
Riferimento completo della configurazione
La tabella completa delle proprietà di DicomConfig si trova in Riferimento API → Configurazioni Formato. Un esempio di produzione dall'app di riferimento per lo switch per estensione:
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },Watermark e comportamento della memoria
La decisione di watermark della pagina normale si applica anche all'output DICOM. Per l'output animato, ogni fotogramma GIF è contrassegnato in modo che il marchio rimanga visibile durante la riproduzione. Un DocOptions.Watermark personalizzato è usato solo quando il percorso di licenza consente watermark personalizzati; non può sostituire un watermark di valutazione.
Gli studi multiframe possono generare sia un'animazione sia una pagina statica per fotogramma. AnimationAndFrames offre la navigazione più ricca ma ha anche il costo più alto in termini di rendering e cache. Per studi di grandi dimensioni:
- usa
FramesOnlyquando l'ispezione dei fotogrammi è più importante della riproduzione cinematica; - evita di aumentare entrambi gli assi di risoluzione senza misurare la memoria;
- chiudi esplicitamente la sessione quando lo studio non è più aperto;
- mantieni
CachePagesattivo solo quando i benefici di accessi ripetuti superano le immagini conservate.
Risoluzione dei problemi
| Sintomo | Controllo |
|---|---|
.dcm segnalato come non supportato | Registrazione di DicomPlugin e distribuzione del pacchetto |
| Avvio fallito dopo aver aggiunto il plugin | La licenza caricata concede Dicom |
| Viene visualizzata una sola pagina | La sorgente potrebbe essere a fotogramma singolo, o DisplayMode è AnimationOnly |
| L'animazione è troppo veloce o lenta | AnimationFrameDelayMs; il timing effettivo del GIF usa unità di 10 ms |
| La memoria cresce con file multiframe di grandi dimensioni | Modalità di visualizzazione, risoluzione, cache delle pagine e chiusura esplicita della sessione |
I metadati sono null, o &meta restituisce 501 | Limitazione prevista di .NET 6; il rendering non è influenzato |
Questa pagina è stata utile?