Plugin DICOM

Ver imágenes médicas con DicomPlugin

El plugin DICOM agrega visualización de imágenes médicas a Doconut: los archivos DICOM de varios fotogramas se renderizan como una vista animada, fotogramas individuales o ambos. DICOM es un formato solo de plugin — sin este plugin (y su capacidad de licencia), los archivos .dcm no pueden abrirse en absoluto.

Instalar el paquete

bash
dotnet add package Doconut.NET6.Dicom

La orden sin versión instala la última versión estable. Para fijar el plugin a la versión actual 26.7.0, pasa la versión por separado:

bash
dotnet add package Doconut.NET6.Dicom --version 26.7.0

Mantén el paquete DICOM en la misma versión que Doconut.NET6. El ID del paquete es Doconut.NET6.Dicom; .26.7.0 aparece solo en el nombre del archivo .nupkg descargado.

Registrar el plugin

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

El plugin (Name: "Doconut DICOM Viewer") registra visores para las extensiones .dcm y .ima, controlados por la capacidad Dicom. Una autorización faltante o insuficiente no temporal normalmente falla durante AddDoconut(). Debido a que ningún visor incorporado maneja estos formatos, la puerta de tiempo de ejecución también falla de forma crítica si la capacidad se vuelve indisponible más tarde:

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

Abrir un archivo DICOM

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

Modos de visualización

Los archivos DICOM de varios fotogramas pueden presentarse de tres maneras (DicomDisplayMode):

ModoPáginas producidasUso
AnimationOnlyPágina 1 = GIF animado que reproduce todos los fotogramas en bucleRevisión cinematográfica rápida
FramesOnlyPáginas 1..N = un PNG estático por fotogramaNavegación diagnóstica fotograma a fotograma
AnimationAndFrames (predeterminado)Página 1 = GIF animado, páginas 2..N = fotogramas estáticosVisión general + detalle en un solo documento

El tiempo de animación se controla con AnimationFrameDelayMs (por defecto 100 ms = 10 FPS; la granularidad del GIF es de 10 ms) y LoopCount (0 = bucle infinito).

Resolución

DicomConfig renderiza a 100 DPI por eje por defecto. Las propiedades de resolución tienen una cadena de respaldo que vale la pena conocer: si no estableces HorizontalResolution/VerticalResolution explícitamente, siguen a BaseConfig.ImageResolution cuando está configurado, y solo entonces vuelven a 100.

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

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

Disponibilidad de metadatos DICOM en .NET 6

La renderización de páginas DICOM, fotogramas individuales, animación, transformaciones y marcas de agua son compatibles. Los metadatos de etiquetas técnicas no están disponibles en el paquete .NET 6 porque el lector de metadatos no tiene una compilación para .NET 6.

Por lo tanto, Viewer.GetDicomMetadataAsync(token) devuelve null para una sesión DICOM y registra una advertencia única. La solicitud de middleware correspondiente ?token=…&meta devuelve HTTP 501 Not Implemented con el código de error estable dicom_metadata_unsupported. Usa el paquete .NET 8 cuando los metadatos técnicos DICOM son un requisito.

Referencia completa de configuración

La tabla completa de propiedades de DicomConfig se encuentra en Referencia API → Configuraciones de Formato. Un ejemplo de producción del conmutador por extensión de la aplicación de referencia:

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

Marca de agua y comportamiento de memoria

La decisión normal de marca de agua de página también se aplica a la salida DICOM. Para la salida animada, cada fotograma GIF lleva la marca para que ésta permanezca visible durante la reproducción. Un DocOptions.Watermark personalizado se usa solo cuando la ruta de licencia permite marcas de agua personalizadas; no puede reemplazar una marca de agua de evaluación.

Los estudios multiframe pueden generar tanto una animación como una página estática por fotograma. AnimationAndFrames ofrece la navegación más completa pero también tiene el mayor costo de renderizado y caché. Para estudios grandes:

  • usa FramesOnly cuando la inspección de fotogramas es más importante que la reproducción cinematográfica;
  • evita aumentar ambos ejes de resolución sin medir la memoria;
  • cierra la sesión explícitamente cuando el estudio ya no está abierto;
  • mantén CachePages habilitado solo cuando los beneficios de acceso repetido superen a las imágenes retenidas.

Solución de problemas

SíntomaVerificación
.dcm se informa como no compatibleRegistro de DicomPlugin y despliegue del paquete
El inicio falla después de añadir el pluginLa licencia cargada otorga Dicom
Solo aparece una páginaLa fuente puede ser de un solo fotograma, o DisplayMode es AnimationOnly
La animación es demasiado rápida o lentaAnimationFrameDelayMs; el tiempo efectivo del GIF usa unidades de 10 ms
La memoria crece en archivos multiframe grandesModo de visualización, resolución, caché de páginas y cierre explícito de la sesión
Los metadatos son null, o &meta devuelve 501Limitación esperada de .NET 6; la renderización no se ve afectada

¿Fue útil esta página?