Плагін DICOM
Переглядайте медичні зображення за допомогою DicomPlugin
Плагін DICOM додає перегляд медичних зображень до Doconut: багатокадрові файли DICOM відображаються як анімований огляд, окремі кадри або і те, і інше. DICOM — це формат лише для плагінів — без цього плагіна (і його ліцензійної можливості) файли .dcm взагалі не можна відкрити.
Встановлення пакету
dotnet add package Doconut.NET6.DicomКоманда без зазначення версії встановлює останній стабільний випуск. Щоб зафіксувати плагін на поточному випуску 26.7.0, передайте версію окремо:
dotnet add package Doconut.NET6.Dicom --version 26.7.0Тримайте пакет DICOM на тій же версії, що й Doconut.NET6. Ідентифікатор пакету — Doconut.NET6.Dicom; .26.7.0 з’являється лише у назві завантаженого файлу .nupkg.
Реєстрація плагіна
builder.Services.AddDoconut(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Плагін (Name: "Doconut DICOM Viewer") реєструє переглядачі для розширень .dcm та .ima, захищені можливістю Dicom. Відсутність або недостатність непостійного дозволу зазвичай призводить до помилки під час AddDoconut(). Оскільки жоден вбудований переглядач не обробляє ці формати, ворота виконання також жорстко відмовляються, якщо можливість пізніше стане недоступною:
LicenseException: This document type requires the 'Dicom' plugin license.Відкриття файлу DICOM
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});Режими відображення
Багатокадрові файли DICOM можна представити трьома способами (DicomDisplayMode):
| Режим | Створені сторінки | Призначення |
|---|---|---|
AnimationOnly | Сторінка 1 = анімований GIF, що циклічно відтворює всі кадри | Швидкий кінематографічний перегляд |
FramesOnly | Сторінки 1..N = один статичний PNG на кадр | Навігація діагностикою кадр за кадром |
AnimationAndFrames (default) | Сторінка 1 = анімований GIF, сторінки 2..N = статичні кадри | Огляд + деталі в одному документі |
Тривалість анімації контролюється параметром AnimationFrameDelayMs (за замовчуванням 100 мс = 10 кадр/с; гранулярність GIF — одиниці по 10 мс) та LoopCount (0 = безкінечний цикл).
Роздільна здатність
DicomConfig за замовчуванням виводить 100 DPI по кожній осі. Властивості роздільної здатності мають ланцюжок резервних значень, який варто знати: якщо ви не задаєте HorizontalResolution/VerticalResolution явно, вони успадковують BaseConfig.ImageResolution, якщо він налаштований, і лише потім повертаються до 100.
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };Доступність метаданих DICOM у .NET 6
Відображення сторінок DICOM, окремих кадрів, анімація, трансформації та водяні знаки підтримуються. Технічні метадані тегів недоступні у пакеті .NET 6, оскільки читач метаданих не має збірки для .NET 6.
Viewer.GetDicomMetadataAsync(token) тому повертає null для сесії DICOM і записує одноразове попередження. Відповідний запит проміжного програмного забезпечення ?token=…&meta повертає HTTP 501 Not Implemented зі стабільним кодом помилки dicom_metadata_unsupported. Використовуйте пакет .NET 8, коли технічні метадані DICOM є вимогою.
Повна довідка щодо конфігурації
Повна таблиця властивостей DicomConfig розташована в API Reference → Format Configs. Приклад у продакшн‑додатку з перемикачем за розширенням:
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },Водяний знак та поведінка пам'яті
Звичайне рішення щодо водяного знака на сторінці також застосовується до виводу DICOM. Для анімованого виводу кожен кадр GIF позначається, щоб знак залишався видимим протягом відтворення. Користувацький DocOptions.Watermark використовується лише коли ліцензійний шлях дозволяє власні водяні знаки; його не можна замінити на оцінний водяний знак.
Багатокадрові дослідження можуть генерувати як анімацію, так і одну статичну сторінку на кадр. AnimationAndFrames забезпечує найрізноманітнішу навігацію, але має найвищу вартість рендерингу та кешу. Для великих досліджень:
- використовуйте
FramesOnly, коли важливіший аналіз кадрів, ніж кінематографічне відтворення; - уникайте збільшення обох осей роздільної здатності без вимірювання використання пам'яті;
- закривайте сесію явно, коли дослідження більше не відкрите;
- залишайте
CachePagesувімкненим лише коли переваги повторного доступу переважають над збереженими зображеннями.
Устранення неполадок
| Симптом | Перевірка |
|---|---|
.dcm повідомляється як непідтримуваний | реєстрація DicomPlugin та розгортання пакету |
| Запуск не вдається після додавання плагіна | Завантажена ліцензія надає Dicom |
| З'являється лише одна сторінка | Джерело може бути одно-кадровим, або DisplayMode встановлено в AnimationOnly |
| Анімація занадто швидка або повільна | AnimationFrameDelayMs; ефективне таймінг GIF використовує одиниці по 10 мс |
| Пам'ять зростає при великих багатокадрових файлах | Режим відображення, роздільна здатність, кеш сторінок та явне закриття сесії |
Метадані null, або &meta повертає 501 | Очікуване обмеження .NET 6; рендеринг не постраждає |
Чи була ця сторінка корисною?