Плагин DICOM

Просмотр медицинских изображений с DicomPlugin

Плагин DICOM добавляет просмотр медицинских изображений в Doconut: многокадровые файлы DICOM отображаются как анимированный обзор, отдельные кадры или и то, и другое. DICOM — это только плагинный формат — без этого плагина (и его лицензии) файлы .dcm невозможно открыть.

Установить пакет

bash
dotnet add package Doconut.NET8.Dicom

Команда без указания версии устанавливает последнюю стабильную версию. Чтобы зафиксировать плагин на текущем выпуске 26.7.0, укажите версию отдельно:

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

Держите пакет DICOM той же версии, что и Doconut.NET8. Идентификатор пакета — Doconut.NET8.Dicom; .26.7.0 появляется только в имени загруженного файла .nupkg.

Зарегистрировать плагин

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

Плагин (Name: "Doconut DICOM Viewer") регистрирует просмотрщики для расширений .dcm и .ima, защищённые возможностью Dicom. Отсутствующая или недостаточная временная лицензия обычно приводит к ошибке во время AddDoconut(). Поскольку ни один встроенный просмотрщик не обрабатывает эти форматы, ограничение выполнения также жёстко блокирует работу, если возможность позже станет недоступной:

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

Открытие файла DICOM

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

Режимы отображения

Многокадровые файлы DICOM могут быть представлены тремя способами (DicomDisplayMode):

РежимСозданные страницыДля чего
AnimationOnlyСтраница 1 = анимированный GIF, зацикливающий все кадрыБыстрый кинематографический просмотр
FramesOnlyСтраницы 1..N = один статический PNG на каждый кадрПо‑кадровая диагностическая навигация
AnimationAndFrames (по умолчанию)Страница 1 = анимированный GIF, страницы 2..N = статические кадрыОбзор + детали в одном документе

Время анимации управляется параметрами AnimationFrameDelayMs (по умолчанию 100 мс = 10 FPS; гранулярность GIF — 10 мс) и LoopCount (0 = бесконечный цикл).

Разрешение

DicomConfig по умолчанию рендерит с разрешением 100 DPI по каждой оси. Свойства разрешения имеют цепочку резервных значений, о которой стоит знать: если вы явно не задаёте HorizontalResolution/VerticalResolution, они наследуют BaseConfig.ImageResolution, если он настроен, и только затем возвращаются к 100.

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

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

Чтение метаданных DICOM

Для сеансов, открытых через этот плагин, Viewer предоставляет метаданные тегов:

csharp
var metadata = await viewer.GetDicomMetadataAsync(token);
// null when the session isn't a DICOM document

Полный справочник конфигурации

Полная таблица свойств DicomConfig находится в API Reference → Format Configs. Пример из производственного приложения, использующего переключатель по расширению:

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

Водяной знак и поведение памяти

Обычное решение о водяном знаке страницы также применяется к выводу DICOM. Для анимированного вывода каждый кадр GIF помечается, чтобы знак оставался видимым на протяжении воспроизведения. Пользовательский DocOptions.Watermark используется только тогда, когда путь лицензии позволяет кастомные водяные знаки; он не может заменить оценочный водяной знак.

Многокадровые исследования могут генерировать как анимацию, так и одну статическую страницу на каждый кадр. AnimationAndFrames обеспечивает наиболее богатую навигацию, но также имеет наибольшие затраты на рендеринг и кэш. Для больших исследований:

  • используйте FramesOnly, когда важнее проверка отдельных кадров, чем кинематографическое воспроизведение;
  • избегайте увеличения обеих осей разрешения без измерения потребления памяти;
  • закрывайте сессию явно, когда исследование больше не открыто;
  • оставляйте CachePages включённым только тогда, когда выгода от повторного доступа превышает затраты на хранение изображений.

Устранение неполадок

СимптомПроверка
.dcm помечен как неподдерживаемыйРегистрация DicomPlugin и развертывание пакета
При запуске происходит сбой после добавления плагинаЗагруженная лицензия предоставляет возможность Dicom
Появляется только одна страницаИсточник может быть одно‑кадровым, либо DisplayMode установлен в AnimationOnly
Анимация слишком быстрая или медленнаяAnimationFrameDelayMs; фактическое время GIF задаётся в единицах по 10 мс
Память растёт при работе с большими многокадровыми файламиРежим отображения, разрешение, кэш страниц и явное закрытие сеанса
Метаданные равны nullТокен не был открыт через плагин DICOM или срок его действия истёк

Была ли эта страница полезной?