Complemento DICOM
Ver imágenes médicas con DicomPlugin
El complemento DICOM agrega la visualización de imágenes médicas a Doconut: los archivos DICOM de varios fotogramas se renderizan como una vista previa animada, fotogramas individuales o ambos. DICOM es un formato solo de complemento — sin este complemento (y su capacidad de licencia), los archivos .dcm no pueden abrirse en absoluto.
En .NET Framework 4.7.2, los archivos DICOM se renderizan completamente — páginas, fotogramas y animación — pero los metadatos técnicos (las etiquetas DICOM) no están disponibles.
Viewer.GetDicomMetadataAsyncsiempre devuelvenull, y la solicitud de metadatos del widget responde501 Not Implemented. UseDoconut.NET8si su aplicación necesita las etiquetas.
Instalar el paquete
Install-Package Doconut.NETFramework.DicomMantenga el paquete DICOM en la misma versión que Doconut.NETFramework.
Registrar el complemento
Doconut.DoconutHost.Initialize(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});El complemento (Name: "Doconut DICOM Viewer") registra visores para las extensiones .dcm y .ima, controlados por la capacidad Dicom. Si la licencia no lo permite, DoconutHost.Initialize lanza una excepción desde Application_Start y el sitio responde a cada solicitud con un 500 vacío (la razón está en el registro de eventos de Windows). Debido a que ningún visor incorporado maneja estos formatos, abrir uno falla directamente si la capacidad posteriormente no está disponible:
LicenseException: This document type requires the 'Dicom' plugin license.Abrir un archivo DICOM
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):
| Modo | Páginas generadas | Uso |
|---|---|---|
AnimationOnly | Página 1 = GIF animado que reproduce todos los fotogramas en bucle | Revisión cinematográfica rápida |
FramesOnly | Páginas 1..N = un PNG estático por fotograma | Navegación diagnóstica fotograma a fotograma |
AnimationAndFrames (default) | Página 1 = GIF animado, páginas 2..N = fotogramas estáticos | Visión general y detalle en un solo documento |
El tiempo de animación se controla con AnimationFrameDelayMs (por defecto 100 ms = 10 FPS; el temporizador del GIF usa unidades de 10 ms) y LoopCount (0 = bucle infinito).
El visor descubre que la página 1 está animada enviando una solicitud HEAD para ella. Por lo tanto, el manejador DocImage.axd debe aceptar HEAD en Web.config (verb="GET,HEAD,POST", ver Instalación); sin ello, IIS responde 404 antes de que Doconut se ejecute y la detección de animación nunca funciona.
Resolución
DicomConfig renderiza a 100 DPI por eje por defecto. Si no establece HorizontalResolution/VerticalResolution explícitamente, siguen a BaseConfig.ImageResolution cuando está configurado, y solo entonces vuelven a 100.
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };Metadatos DICOM
var metadata = await viewer.GetDicomMetadataAsync(token);
// On .NET Framework this is always null: the DICOM metadata reader is not available for this
// target. Pages, frames and animation render normally.El método existe en este paquete para que el código compartido con el paquete .NET 8 compile, pero la lectura de etiquetas DICOM requiere un componente que no tiene una compilación para .NET Framework. Planifique su interfaz de usuario sin ellas — por ejemplo, oculte un panel de metadatos cuando el resultado sea null.
Referencia completa de configuración
La tabla completa de propiedades de DicomConfig está en Configuraciones de Formato. En una selección por extensión, el caso DICOM se ve así:
case ".DCM": case ".IMA":
return 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, por lo que la señal permanece visible durante la reproducción. Un DocOptions.Watermark personalizado se usa solo cuando la licencia permite marcas de agua personalizadas; no puede reemplazar una marca de agua de evaluación.
Los estudios de varios fotogramas pueden producir tanto una animación como una página estática por fotograma. AnimationAndFrames ofrece la navegación más completa pero también el mayor costo de renderizado y memoria — y en un solo servidor esa memoria pertenece al proceso de trabajo de IIS. Para estudios grandes:
- use
FramesOnlycuando la inspección de fotogramas sea más importante que la reproducción; - evite aumentar ambos ejes de resolución sin medir la memoria;
- cierre la sesión explícitamente cuando el estudio ya no esté abierto;
- mantenga
CachePagesactivado solo cuando el acceso repetido justifique las imágenes retenidas.
Solución de problemas
| Síntoma | Verificación |
|---|---|
.dcm se informa como no compatible | Registro de DicomPlugin y despliegue del paquete |
Cada solicitud responde con un 500 vacío después de agregar el complemento | La licencia concede Dicom — registro de eventos de Windows, origen ASP.NET |
| Solo aparece una página | La fuente puede ser de un solo fotograma, o DisplayMode es AnimationOnly |
| La página 1 no se anima | El manejador en Web.config acepta HEAD |
| La animación es demasiado rápida o lenta | AnimationFrameDelayMs; el temporizador del GIF usa unidades de 10 ms |
| La memoria crece con archivos de varios fotogramas grandes | Modo de visualización, resolución, caché de páginas y cierre explícito de sesión |
Los metadatos siempre son null | Esperado en este paquete — vea la nota al principio |
¿Fue útil esta página?