DICOM Плагін
Переглядайте медичні зображення за допомогою DicomPlugin
Плагін DICOM додає перегляд медичних зображень до Doconut: багатокадрові DICOM файли відображаються як анімований огляд, окремі кадри або обидва. DICOM — це формат лише для плагінів — без цього плагіна (і його ліцензійної можливості) файли .dcm неможливо відкрити взагалі.
У .NET Framework 4.7.2 DICOM файли відображаються повністю — сторінки, кадри та анімація — але технічні метадані (теги DICOM) недоступні.
Viewer.GetDicomMetadataAsyncзавжди повертаєnull, а запит метаданих віджета відповідає501 Not Implemented. ВикористовуйтеDoconut.NET8, якщо вашому застосунку потрібні теги.
Встановити пакет
Install-Package Doconut.NETFramework.DicomТримайте пакет DICOM тієї ж версії, що й Doconut.NETFramework.
Зареєструвати плагін
Doconut.DoconutHost.Initialize(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Плагін (Name: "Doconut DICOM Viewer") реєструє переглядачі для розширень .dcm та .ima, обмежені можливістю Dicom. Якщо ліцензія її не надає, DoconutHost.Initialize викидає виключення під час Application_Start, і сайт відповідає на кожен запит порожнім 500 (причина в журналі подій Windows). Оскільки жоден вбудований переглядач не обробляє ці формати, спроба відкриття завершується помилкою, якщо можливість згодом стає недоступною:
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 = безкінечний цикл).
Переглядач визначає, що сторінка 1 анімована, надсилаючи запит HEAD. Тому обробник DocImage.axd повинен приймати HEAD у Web.config (verb="GET,HEAD,POST", див. Встановлення); без цього IIS відповідає 404 до запуску Doconut, і виявлення анімації ніколи не працює.
Роздільна здатність
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
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.Метод існує в цьому пакеті, щоб код, спільний з пакетом .NET 8, компілювався, але читання тегів DICOM потребує компонента, який не має збірки для .NET Framework. Плануйте інтерфейс користувача без них — наприклад, приховуйте панель метаданих, коли результат null.
Повна довідка з конфігурації
Повна таблиця властивостей DicomConfig знаходиться в Конфігурації форматів. При виборі за розширенням випадок DICOM виглядає так:
case ".DCM": case ".IMA":
return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };Водяний знак та поведінка пам'яті
Звичайне рішення щодо водяного знака на сторінці також застосовується до виводу DICOM. Для анімованого виводу кожен кадр GIF підписується, тому знак залишається видимим протягом відтворення. Користувацький DocOptions.Watermark використовується лише коли ліцензія дозволяє кастомні водяні знаки; його не можна замінити на оцінний водяний знак.
Багатокадрові дослідження можуть створювати як анімацію, так і одну статичну сторінку на кадр. AnimationAndFrames забезпечує найповнішу навігацію, але й найвищі витрати на рендеринг та пам'ять — і на одному сервері ця пам'ять належить процесу робітника IIS. Для великих досліджень:
- використовуйте
FramesOnly, коли важливіший аналіз кадрів, ніж відтворення; - уникайте збільшення обох осей роздільної здатності без вимірювання пам'яті;
- закривайте сесію явно, коли дослідження більше не відкрите;
- вмикайте
CachePagesлише коли повторний доступ виправдовує збережені зображення.
Усунення неполадок
| Симптом | Перевірка |
|---|---|
.dcm повідомляється як непідтримуваний | DicomPlugin реєстрація та розгортання пакету |
Кожен запит відповідає порожнім 500 після додавання плагіна | Ліцензія надає Dicom — журнал подій Windows, джерело ASP.NET |
| З'являється лише одна сторінка | Джерело може бути одно-кадровим, або DisplayMode встановлено в AnimationOnly |
| Сторінка 1 не анімується | Обробник у Web.config приймає HEAD |
| Анімація занадто швидка або повільна | AnimationFrameDelayMs; таймінг GIF використовує одиниці 10 мс |
| Пам'ять зростає при великих багатокадрових файлах | Режим відображення, роздільна здатність, кеш сторінок та явне закриття сесії |
Метадані завжди null | Очікується в цьому пакеті — див. примітку вгорі |
Чи була ця сторінка корисною?