XrayWebViewer — просмотр DICOM-изображений прямо в браузере

Ещё один компонент программно-аппаратного комплекса РИС, о котором стоит рассказать отдельно, — XrayWebViewer. Это встроенный веб-просмотрщик медицинских изображений в формате DICOM, который используется в XrayPortal как один из вариантов визуализации исследований, но может работать и как самостоятельный компонент.

Главная идея — открыть исследование без установки дополнительного ПО: приложение работает на базе ASP.NET Core и Cornerstone.js прямо в браузере, в том числе на планшетах и смартфонах. Поддерживаются основные виды исследований: рентген (CR, DX), маммография (MG), компьютерная томография (CT), магнитно-резонансная томография (MR), рентгеноскопия (RF) и ангиография (XA).

Режимы просмотра

  • Стандартный режим — одно или несколько изображений серии с полным набором инструментов: яркость/контраст, масштаб, перемещение, измерения, аннотации.
  • Режим сетки (Grid/Mosaic) — несколько изображений одновременно в сетке (1×1 … 3×3) или мозаикой всех кадров серии.
  • МПР — мультипланарная реконструкция — для КТ и МРТ: одновременный показ аксиальной, сагиттальной и фронтальной проекций с синхронизированными перекрёстными линиями.
  • МИП — проекции интенсивности — MaxIP, MinIP и AvgIP с настраиваемой толщиной слэба, доступны в режиме МПР.

Интерфейс XrayWebViewer со стандартным набором инструментов просмотра
XrayWebViewer — встроенный веб-просмотрщик DICOM-изображений

Инструменты и управление

Набор инструментов рассчитан на повседневную диагностическую работу: окно/уровень с готовыми пресетами, масштабирование и перемещение, прокрутка серии, измерение длины и угла (включая угол Кобба для сколиоза), стрелки с подписями, области интереса (ROI), калибровка расстояний, лупа, инверсия и повороты изображения, просмотр DICOM-тегов, сохранение снимка и печать. Каждый инструмент вызывается одной горячей клавишей.

Управление одинаково удобно и мышью, и касаниями: левая кнопка (или один палец) — активный инструмент, правая кнопка (или щипок двумя пальцами) — масштаб, средняя кнопка (или перемещение двумя пальцами) — панорамирование, колесо мыши (или три пальца) — прокрутка серии.

Интерфейс переведён на русский, украинский и английский языки, выбор сохраняется автоматически. Для работы в полном объёме, включая режим МПР, рекомендуется современный браузер с поддержкой WebGL (Chrome 90+, Firefox 88+, Edge 90+, Safari 15+) и дискретная видеокарта.

XrayWebViewer умеет работать с PACS напрямую (через C-GET, C-MOVE, WADO-RS) и показывать структурированные отчёты (SR), поэтому его можно встраивать не только в XrayPortal, но и в другие информационные системы — по ссылке на конкретное исследование или прямо в iframe.

Если вам интересно, как XrayWebViewer работает внутри полноценной радиологической информационной системы, — почитайте статью о XrayPortal, либо про XrayPortalAPI, если вас больше интересует интеграция по HTTP. По вопросам внедрения — пишите через раздел «Контакты».

XrayPortalAPI — HTTP-интерфейс для интеграции РИС с внешними системами

Третий компонент того же комплекса — XrayPortalAPI. В отличие от XrayPortal, у которого есть браузерный интерфейс для врачей и лаборантов, XrayPortalAPI — это чисто программный HTTP-интерфейс, предназначенный для взаимодействия радиологической информационной системы с медицинскими информационными системами (МИС), PACS-серверами и другими внешними приложениями.

Задача API — быть единой точкой входа для внешних клиентов, чтобы им не нужно было знать детали подключения к отдельным DICOM-серверам, WorkList или viewer-решениям. Клиентское приложение просто обращается к HTTP API, а он уже сам формирует необходимые DICOM-, RS- и файловые запросы к внутренним компонентам системы.

Что можно делать через API

  • получать JWT-токен для авторизованного доступа;
  • получать список PACS-серверов и модальностей, зарегистрированных в РИС;
  • создавать, искать и редактировать учётные данные пациентов на PACS;
  • создавать, искать и удалять направления на исследования (WorkList), в том числе одним запросом вместе с созданием пациента;
  • искать законченные исследования пациентов;
  • получать ZIP-архивы исследований и временные ссылки на скачивание;
  • получать ссылки на открытие исследований в Weasis или сразу открывать их в браузерном вьювере (XrayWebViewer/Oviyam);
  • загружать одиночные DICOM-файлы, ZIP-архивы и PDF-документы на PACS;
  • читать и создавать структурированные отчёты (DICOM Structured Report, SR).

Типовой сценарий

Обычно всё начинается с направления, сформированного в МИС: пользователь выбирает вид исследования и оборудование, вводит данные пациента — и это направление через API попадает на сервер рабочих списков (WorkList), откуда его считывает модальность. После выполнения исследования изображения уходят на PACS, а клиент через тот же API находит готовое исследование, открывает его в вьювере или скачивает архивом, а по завершении описания может сохранить и прочитать структурированный отчёт (SR) — так заключение врача остаётся доступным даже сторонним DICOM-просмотрщикам, не подключённым к МИС напрямую.

Схема компонентов
Схема компонентов

Схема жизненного цикла исследования
Схема жизненного цикла исследования

Ошибки в API возвращаются в стандартизированном формате RFC 9457 Problem Details, что упрощает их обработку на стороне клиента любой МИС, независимо от используемого стека технологий.

XrayPortalAPI — это тот самый «клей», который позволяет собрать медицинские информационные системы, PACS-архивы и рабочее место рентгенолога в единый рабочий процесс, не привязывая внешние системы к деталям DICOM-протокола. Если вам интересна архитектура всего комплекса — читайте статью о XrayPortal, а про встроенный просмотрщик изображений — в статье о XrayWebViewer. Вопросы по интеграции — через раздел «Контакты».

XrayPortal — веб-система для радиологического отделения: от приёма исследования до готового заключения

XrayPortal — это веб-система радиологической информационной системы (РИС), которая объединяет в одном браузерном интерфейсе работу с PACS-архивами, создание диагностических отчётов и ведение направлений на исследования (WorkList).

Это ядро более крупного программно-аппаратного комплекса: изображения в браузере показывает собственный DICOM-вьювер XrayWebViewer, а интеграцию с внешними медицинскими информационными системами обеспечивает XrayPortalAPI. Об обоих компонентах — отдельные статьи, ссылки в конце этой записи.

Программа рассчитана на диагностические центры и радиологические отделения, где нужно быстро находить исследования сразу на нескольких PACS-серверах, описывать их прямо в браузере и выдавать результаты пациентам без лишней бюрократии. XrayPortal написана на ASP.NET Core, использует Fellow Oak DICOM для сетевого взаимодействия и работает как платформонезависимое серверное приложение — устанавливается на Windows, Linux или macOS.

Что умеет система

  • Поиск и просмотр исследований сразу на нескольких PACS-серверах — поиск выполняется в фоне, с индикатором прогресса и возможностью отмены долгого запроса.
  • Три просмотрщика на выбор: встроенный XrayWebViewer, браузерный Oviyam и платформонезависимый Weasis — каждый пользователь настраивает удобный вариант для себя.
  • Создание структурированных отчётов (DSR) с личными шаблонами фраз и панелями классификаторов ACR RADS — BI-RADS, Lung-RADS, Bone-RADS и другими, в зависимости от типа исследования.
  • Голосовой ввод описаний — надиктованный текст автоматически распознаётся и вставляется в поля отчёта.
  • Совместная работа над отчётом и функция «второго мнения»: исследование можно отправить на другой сервер для независимого заключения второго врача, а система автоматически сравнит категории риска по RADS.
  • Направления на исследования (WorkList) — для оборудования, поддерживающего модальность MWL/MPPS, с отслеживанием статуса выполнения направления.
  • Управление пациентами: слияние дублирующихся карточек, редактирование идентификаторов, объединение исследований одного пациента, зарегистрированных под разными ID.
  • Выдача результатов пациентам — ссылка на загрузку исследования с QR-кодом и паролем, готовая к печати на бланке.
  • Пакетная печать отчётов в нескольких готовых форматах (карточки, список, A5, полная форма) и статистика по исследованиям с выгрузкой в Excel.
  • Ролевая модель доступа (администратор, врач-рентгенолог, лаборант-регистратор) и система уведомлений с оповещением в реальном времени через SignalR.

Страница «Исследования» в XrayPortal — таблица результатов поиска по нескольким PACS-серверам
Страница «Исследования»: поиск, просмотр и работа с найденными исследованиями

Отдельное внимание в системе уделено рабочему месту врача-рентгенолога. Форма создания отчёта содержит все сведения об пациенте и исследовании, полученные с сервера, таблицу личных шаблонных фраз для быстрой вставки в описание и, при необходимости, панель классификатора RADS — чтобы оценка риска сразу фиксировалась в структурированном виде и могла автоматически сравниваться со «вторым мнением».

Форма создания отчёта по исследованию с шаблонами фраз
Форма создания отчёта: шаблоны фраз, поля «Описание» и «Заключение»

Панель классификатора BI-RADS в форме отчёта
Панель классификатора BI-RADS — один из поддерживаемых RADS-классификаторов

Готовый результат исследования пациент может получить не только на бумаге, но и самостоятельно — по ссылке с QR-кодом и паролем, которую можно распечатать в один клик прямо из карточки исследования.

Бланк со ссылкой и QR-кодом для самостоятельной загрузки исследования пациентом
Ссылка на исследование с QR-кодом — для выдачи пациенту

Интерфейс поддерживает украинский и русский языки, шесть тем оформления (от светлых до тёмных, включая тему «Радиология», оптимизированную для просмотра снимков) — каждый пользователь настраивает это индивидуально в своём профиле.

Подробнее о встроенном просмотрщике изображений — в статье «XrayWebViewer — просмотр DICOM-изображений прямо в браузере», а о программном интерфейсе для интеграции с МИС и другими системами — в статье «XrayPortalAPI — HTTP-интерфейс для интеграции РИС с внешними системами».

Если тема интересна и хочется узнать больше о внедрении XrayPortal в своём учреждении — пишите через раздел «Контакты». Другие мои проекты для медицинской информатизации собраны в разделе «Разработка».

 

Экспорт dicom на PACS-сервер

Бесплатная программа ExportToPacsFree, единственным назначением которой является отправка выбранных dicom-файлов на заданный сервер PACS.

Никаких предварительных обработок файлов не предусмотрено. Если Вам необходимо перед отправкой изменить какие-либо элементы или исправить кодировку кириллицы, то обратите внимание на программу ExportToPacs или Dicom Autoexport, которые имеют такие функции.

Разобраться с порядком работы с программой не сложно, поэтому отдельной справки я не делал. Однако же можно воспользоваться Инструкцией к программе ExportToPacs в части касающейся.

Самое сложное - правильно ввести реквизиты сервера. Значение AET должны соответствовать типу VR "AE" - см. "Типы данных в DICOM", Host Name - IP-адрес или доменное имя хоста dicom-устройства, Dicom Port - положительное целое число. Доступность сервера можно проверить, нажав на кнопку "Echo".

Нажатием на кнопку "File" или "Folder" открываем диалог выбора файлов, которые необходимо отправить. Нажатием на кнопку "SEND" отправляем. Успешно переданные файлы отмечаются в таблице зеленым цветом, неудачно - красным. Слева находится поле текстового лога, в котором можно увидеть подробности отправки.

Настройки сервера сохраняются при выходе из программы, поэтому их не нужно будет вводить каждый раз заново.

Enjoy!

Программа для проверки DICOM-эха

Небольшая программа для "прозвонки" dicom-устройств с целью проверки их доступности - реализация dicom-службы C-ECHO. Подробнее об этой службе читайте в материале "Основы DICOM с использованием .NET и C#: понимание проверки DICOM (C-ECHO)".

Здесь я публикую программу аналогичную приведенной в упомянутом материале, но собранную для выполнения в среде .NET Core 6 в виде одного файла.

Не прилагаю никакой справки в виде отдельного документа, т.к. использование программы достаточно тривиально. Запускаем, вводим атрибуты "прозваниваемого" dicom-устройства, нажимаем кнопочку, ожидаем результат "Success" или  "Failed", т.е. связь с устройством или есть, или её нет.

Единственное, на что обращаю внимание: правильность ввода атрибутов в поля. Значение AET должны соответствовать типу VR "AE" - см. "Типы данных в DICOM", Host Name - IP-адрес или доменное имя хоста dicom-устройства, Dicom Port - положительное целое число.

Условия распространения: Freeware.

 

 

Прокрутить вверх