Как загрузить dicom файлы в dolphin imaging

Обновлено: 07.07.2024

Добрый день, хабрасообщество. Мне хотелось бы продолжить рассмотрение аспектов реализации DICOM Viewer'а, и сегодня речь пойдёт о функциональных возможностях.


Инструментарий в 2D

Мультипланарная реконструкция (MPR)

Мультипланарная реконструкция позволяет создавать изображения из оригинальной плоскости в аксиальную, фронтальную, сагиттальную или произвольную плоскости. Для того чтобы построить MPR, необходимо построить объёмную 3D-модель и «разрезать» её в нужных плоскостях. Как правило, наилучшее качество MPR получается при компьютерной томографии(КТ), потому что в случае КТ можно создать 3D модель с разрешением, одинаковым во всех плоскостях. Поэтому выходное MPR получается с таким же разрешением, какое было у исходных изображений, полученных из КТ. Хотя бывают и МРТ с хорошим разрешением. Вот пример мультипланарной реконструкции:


Зелёным — аксиальная плоскость (слева вверху);
Красным — фронтальная плоскость (справа вверху);
Синим — сагиттальная плоскость (слева внизу);
Жёлтым — произвольная плоскость (справа внизу).

Положение правого нижнего снимка определяется жёлтой линией на виде сбоку (левый верхний). Это и есть изображение, полученное «разрезанием» 3D-модели наклонной плоскостью. Для получения значения плотности в конкретной точки плоскости используется трилинейная интерполяция.

Мультипланарная реконструкция по произвольной кривой (curved MPR)


То же самое, что и MPR, только вместо произвольной плоскости можно взять кривую, как показано на рисунке. Используется, например, в стоматологии для панорамного снимка зубов.

Каждая точка на кривой задаёт исходную точку трассировки, а нормаль к кривой в этой точке соответствует направлению оси Y в двухмерном изображении для этой точки. Оси X изображения соответствует сама кривая. То есть в каждой точке двухмерного изображения направление оси X – это касательная к кривой в соответствующей точке на кривой.

Проекция минимальной/средней/максимальной интенсивности (MIP)

Значения минимальной интенсивности показывают мягкие ткани. Тогда как значения максимальной интенсивности соответствуют наиболее ярким участкам трёхмерного объекта — это либо наиболее плотные ткани, либо органы, насыщенные контрастным веществом. Минимальное/среднее/максимальное значение интенсивности берётся в диапазоне (как показано на рисунке пунктирными линиями). Минимальное значение по всей модели будет принимать воздух.

Алгоритм вычисления MIP очень простой: выбираем плоскость на 3D модели — пусть будет плоскость XY. Потом проходим по оси Z и выбираем максимальное значение интенсивности на заданном диапазоне и отображаем его на 2D плоскости:


Изображение, полученное путём проекции средней интенсивности, близко к обычному рентгеновскому снимку:


Некоторые виды радиологических исследований не дают должного эффекта без использования контрастного препарата, поскольку не отражают некоторые виды тканей и органов. Это связано с тем, что в организме человека есть ткани, плотность которых примерно одинакова. Чтобы отличать такие ткани друг от друга, используют контрастное вещество, которое придаёт крови большую интенсивность. Также контрастное вещество используется для визуализации сосудов при ангиографии.

Режим DSA для ангиографии

Ангиография — это приём, позволяющий визуализировать системы кровотоков (вены и сосуды) различных органов. Для этого используется контрастное вещество, которое вводят в исследуемый орган, и рентгеновский аппарат, создающий снимки во время ввода контрастного вещества. Таким образом на выходе аппарата получается набор снимков с разной степенью визуализации кровотоков:


Однако вместе с венами и сосудами на снимках видны ткани других органов, например, черепа. Режим DSA (Digital subtraction angiography) позволяет визуализировать только кровотоки без каких-либо других тканей. Как это работает? Берём изображение серии, в котором кровотоки ещё не визуализированы контрастным веществом. Как правило, это первое изображение серии, так называемая маска:


Затем вычитаем это изображение из всех остальных изображений серии. Получаем следующее изображение:


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

Инструментарий в 3D

Инструмент куб видимости (Clipping Box)

Инструмент Clipping Box позволяет увидеть кости и анатомические ткани в разрезе, а также показать внутренние органы изнутри. Инструмент реализуется на уровне рендера, просто ограничивая область рейтрейсинга.


В реализации область рейтрейсинга ограничивается плоскостями с нормалями, направленными в сторону отсечения. То есть куб представляется шестью плоскостями.

Инструментарий редактирования объема — вырезание многоугольником

Инструмент похож на предыдущий и позволяет удалять фрагмент объёма под произвольным многоугольником:


Под вырезанием следует понимать зануление вокселей в 3D-моделе, попавших в область многоугольника.
Также есть инструмент «Ножницы», который позволяют удалять части 3D-модели по принципу связности. Реализация: при выделении объекта происходит циклический поиск близлежащих связных вокселей, пока все близлежащие воксели не будут просмотрены. Затем все просмотренные воксели удаляются.

Линейка в 3D

В 3D можно производить измерения органов под любым углом, что невозможно для некоторых случаех в 2D.


В режиме 3D можно также воспользоваться полигональной линейкой:


Инструментарий в 4D

Совмещение нескольких томографических серий в 3D (Fusion PET-CT)

ПЭТ-КТ (англ. PET-CT) относительно новая технология, являющаяся исследовательским методом ядерной медицины. Является методом мультимодальной томографии. Четвёртым измерением в данном случае является модальность (PET и CT). Предназначена в основном для обнаружения раковых опухолей.

CT помогает получить анатомическую структуру человеческого тела:


а PET показывает определённые области концентрации радиоактивного вещества, которая напрямую связана с интенсивностью кровоснабжения данной области.


PET получает картину биохимической активности, детектируя в теле человека радиоактивные изотопы. Радиоактивное вещество скапливается в органах, насыщенных кровью. Затем радиоактивное вещество претерпевает позитронный бета-распад. Образовавшиеся позитроны в дальнейшем аннигилирует с электронами из окружающей ткани, в результате чего происходит излучение пар гамма-лучей, которые и детектируются аппаратом, и затем на основе полученной информации строится 3D изображение.

Выбор радиоактивного изотопа определяет биологический процесс, который желают отследить в процессе исследования. Процессом может быть метаболизм, транспорт веществ и др. Поведение процесса в свою очередь является ключом к верной диагностике заболевания. На изображении выше у пациента в области печени видна опухоль.

Но основываясь на PET трудно понять, в какой части тела находится область с максимальной концентрацией радиоактивного вещества. При соединении геометрии тела (CT) и областей, насыщенных кровью с высокой концентрацией радиоактивного вещества (PET), получаем:


В качестве радиоактивного вещества для PET применяются радиоактивные изотопы с разными периодами полураспада. Для образования всякого рода злокачественных образований используется фтор-18 (фтордезоксиглюкоза), йод-124 используется для диагностирования рака щитовидной железы, галлий-68 — для обнаружения нейроэндокринных опухолей.

Функционал Fusion формирует новую серию, в которой изображения обоих модальностей (и PET и CT) объединены. В реализации изображения обоих модальностей перемешиваются, а затем сортируются по оси Z (считаем, что X и Y – оси изображения). Фактически получается, что изображения в серии чередуются (PET, CT, PET, CT …). Эта серия в дальнейшем используется для отрисовки 2D fusion и 3D fusion. В случае 2D fusion изображения отрисовываются попарно(PET-CT) в порядке возрастания Z:


В данном случае сначала был отрисовано изображение CT, затем PET.

3D fusion реализован для видеокарты на CUDA. На видеокарте отрисовываются одновременно обе 3D-модели — PET и CT и получается реальный мультимодальный fusion. На процессоре fusion тоже работает, но работает несколько иначе. Дело в том, что на процессоре обе модели представлены в памяти как отдельные окто-деревья. Следовательно, при отрисовке необходимо трассировать два дерева и синхронизировать пропуск прозрачных вокселей. А это бы значительно снизило скорость работы. Поэтому было решено просто накладывать результат рендера одной 3D-модели поверх другой.

4D CardiacCT

Технология Cardiac CT используется для диагностики различных нарушений работы сердца, включая коронарную болезнь сердца, тромбоэмболия легочной артерии и другие заболевания.

4D Cardiac CT представляет собой 3D во времени. Т.е. получается небольшое видео, которое будем называть кинопетлёй, в которой каждый кадр будет представлять собой 3D-объект. Исходные данные представляют собой набор dicom-изображений сразу для всех кадров кинопетли. Для того чтобы преобразовать набор изображений в кинопетлю, необходимо сначала сгруппировать исходные изображения по кадрам, а затем для каждого кадра создать 3D. Построение 3D-объекта на уровне кадра происходит так же как и для любой серии dicom-изображений. Мы используем эвристическую сортировку изображений для группировки по кадрам, используя положение изображения на оси Z (считая что X и Y это оси изображения). Полагаем, что после группировки по кадрам, в каждом кадре получается одинаковое количество изображений. Переключение кадра фактически сводится к переключение 3D-модели.

5D Fusion Pet – CardiacCT

5D Fusion Pet – CardiacCT — это 4D Cardiac CT с добавлением fusion с PET в качестве пятой размерности. В реализации сначала создаём две кинопетли: с CardiacCT и с PET. Затем делаем fuision соответствующих кадров кинопетель, что даёт нам отдельную серию. Затем строим 3D полученной серии. Выглядит это так:

Виртуальная эндоскопия

В качестве примера виртуальной эндоскопии будем рассматривать виртуальную колоноскопию, поскольку она является наиболее распространённым видом виртуальной эндоскопии. Виртуальная колоноскопия позволяет на основе данных КТ построить объёмную реконструкцию области брюшной полости и по этой трёхмерной реконструкции произвести диагностику. Во вьюере есть инструмент полёт камеры (fly-through) с навигацией по MPR:


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

Полёт камеры представляет серию последовательных перемещений по внутрикишечной области. Для каждого шага вычисляется вектор перемещения камеры в следующую часть анатомической структуры. Вычисление производится на основе прозрачных вокселей в следующей части анатомической структуры. Фактически вычисляется некий средний воксель среди прозрачных. Начальный вектор перемещения задаётся вектором камеры. В инструменте Полёт камеры используется исключительно перспективная проекция.

Также есть функционал для автоматической сегментации кишечника, т.е. функционал для отделения кишечной области от остальной анатомии:


Возможна также навигация по сегментированной 3D-модели (кнопка Show camera orientation), которая по клику мыши на 3D-моделе перемещает камеру на соответствующую позицию в исходной анатомии.
Сегментация реализуется с помощью волнового алгоритма. Полагается, что анатомия замкнутая в том смысле, что она не контактирует с другими органами и внешним пространством.

Система просмотра ЭКГ (Waveform)

Отдельным модулем во viewer'е реализовано чтение данных из Waveform и их отрисовка. DICOM ECG Waveform это специальный формат хранение данных отведений электрокардиограмм, определяемый стандартом DICOM. Данные электрокардиограммы представляют собой двенадцать отведений — 3 стандартных, 3 усиленных и 6 грудных. Данные каждого отведения представляют собой последовательность измерений электрического напряжения на поверхности тела. Для того чтобы отрисовать напряжения, нужно знать масштаб по вертикали в мм/мВ и масштаб по горизонтали в мм/сек:


В качестве вспомогательных атрибутов также отрисовывается сетка для простоты измерения расстояний и масштаб в левом верхнем углу. Варианты масштаба подобраны с учётом врачебной практики: по вертикали — 10 и 20 мм/мВ, по горизонтали — 25 и 50 мм/сек. Также реализованы инструменты для измерения расстояния по горизонтали и вертикали.

DICOM-Viewer как DICOM-клиент

DICOM-Viewer, помимо прочего, представляет собой полноценный DICOM-клиент. Есть возможность производить поиск на PACS-сервере, получать из него данные и др. Функции DICOM-клиента реализованы с помощью открытой библиотеки DCMTK. Рассмотрим типичный use-case работы DICOM-клиента на примере viewer'а. Производим поиск стадий на удалённом PACS-сервере:


При выборе стадии внизу отображаются серии для выбранной стадии и количество изображений в них. Сверху справа указывается PACS-сервер, на котором будет произведён поиск. Поиск можно параметризовать, уточняя критерии поиска: PID, дата исследования, имя пациента и др. Поиск на клиенте реализуется командой C-FIND SCU с помощью библиотеки DCMTK, которая работает на одном из уровней: STUDY, SERIES и IMAGE.

Далее изображения выбранной серии можно загрузить, используя команды С-GET-SCU и C-MOVE-SCU. Протокол DICOM обязывает стороны соединения, т.е. клиента и сервера, заранее договориться, какие типы данных они собираются передавать через это соединение. Под типом данных понимается комбинация значений параметров SOPClassUID и TransferSyntax. SOPClassUID определяет тип операции, которую планируется выполнять через данное соединение. Наиболее часто используемые SOPClassUID'ы: Verification SOP Class (пинг сервера), Storage Service Class (сохранение изображений), Printer Sop Class (выполнение печати на DICOM-принтере), CT Image Storage (сохранение изображений КТ), MR Image Storage (сохранение изображение МРТ) и другие. TransferSyntax определяет формат бинарного файла. Популярные TransferSyntax'ы: Little Endian Explicit, Big Endian Implicit, JPEG Lossless Nonhierarchical (Processes 14). То есть, чтобы передать МРТ изображения в формате Little Endian Implicit, то в соединение необходимо добавить пару MR Image Storage — Little Endian Explicit.


Загруженные изображения сохраняются в локальное хранилище и, при повторном просмотре, загружаются из него, что позволяет увеличить производительность viewer'а. Сохранённые серии помечаются жёлтым значком в верхнем левом углу первого изображения серии.

Также DicomViewer как DICOM-клиент умеет записывать диски с исследованиями в формате DICOMDIR. Формат DICOMDIR реализуется в виде бинарного файла, который содержит относительные пути ко всем DICOM-файлам, которые записываются на диск. Реализуется с помощью библиотеки DCMTK. При чтении диска считываются пути ко всем файлам из DICOMDIR и после этого загружаются. Для добавления в DICOMDIR стадий и серий был разработан такой интерфейс:


Вот и всё, что я хотел рассказать про функционал DicomViewer'а. Как всегда очень приветствуется обратная связь от квалифицированных специалистов.

Примеры данных:
MANIX — для общих примеров (MPR, 2D, 3D и т.д.)
COLONIX — для виртуальной колоноскопии
FIVIX — 4D CARDIAC-CT
CEREBRIX — Fusion PET-CT

Существуют сотни, если не тысячи программ для просмотра, редактирования и других манипуляций с DICOM и прочими форматами медицинских снимков. Этот список — далеко не исчерпывающий. Программы перечислены в произвольном порядке.

PostDICOM

postdicom

Сервис PostDICOM совместим с Windows, MacOS и Linux. Им можно управлять со смартфона на Android и iOS. PostDICOM поставляется с облачной PACS, которая позволяет получать доступ к данным с любого устройства, в любом месте и в любое время.

Сначала может показаться, что для обычного пользователя, который хочет просто посмотреть свой снимок — сервис не подойдет, но достаточно зарегистрироваться и подтвердить email, чтобы получить возможность загрузить файл .dcm (или целую папку) и посмотреть его. Все очень просто.

Система позволяет выполнять 3D-реконструкцию, 3D-рендеринг и MIP, а также слияние. Она также предлагает интерфейс для создания отчетов, обмена файлами и немедленной загрузки всех данных пациента в облачную систему PACS.

RadiAnt

radiant

3DimViewer

3dimviewer

Благодаря удобному интерфейсу в 3DimViewer легко разобраться. Программа может отображать трехмерные профили визуализации, в том числе многоплоскостные и ортогональные реконструкции, но лучше всего ей удается пороговая сегментация тканей как на объемных изображениях, так и при построении поверхностей. Для работы с объемными изображениями необходим производительный графический процессор, так что не пытайтесь открывать их на старых компьютерах или даже на новых моделях с интегрированной графикой.

Поддержка установки на Macintosh, Windows и Linux делают программу одной из наиболее универсальных в своей отрасли. Благодаря открытому исходному коду C++ программисты (если они у вас есть) могут интегрировать 3DimViewer с другими программами или еще как-нибудь подстроить под вашу систему. 3DimViewer предназначен только для просмотра – никаких инструментов редактирования в нем нет. Только настройка яркости, контрастности и т. д.

DICOM Web Viewer

dicom-web-viewer

DWV – это онлайн-программа для просмотра медицинских изображений, написанная на Javascript и HTML5, то есть работать она будет почти со всеми современными браузерами, практически на любом устройстве, включая ноутбуки, планшеты, телефоны и даже некоторые смарт-телевизоры. Немного доработав код, программу можно встроить в любой PACS-сервер, поддерживающий протокол WADO, либо обеспечить доступ к изображениям через URL-адрес.

По этой ссылке откроется вики-проекта, а демоверсии можно посмотреть здесь. Чтобы успешно внедрить версию с GitHub, нужно уметь программировать, но DWV также можно установить в качестве обычного расширения для Chrome, приложения для Google Drive или плагина для WordPress. Вся дополнительная информация есть на GitHub.

Mango

mango-dicom

Mango доступна в трех версиях: десктопная для Windows, MacOS или Linux, браузерная (для работы требуется последняя версия Java) и версия для iPad. Чтобы браузерная версия работала исправно, нужна будет помощь программистов, не понаслышке знакомых с HTML и JavaScript.

Разработали Mango кандидат наук Джек Ланкастер и Майкл Мартинес из Научного центра здоровья Техасского университета. Программа поддерживает форматы DICOM, NEMA-DES, MINC и NIFTI, а также форматы отрисовки поверхностей VTK, GIFTI и BrainVisa. Можно даже создавать пользовательские форматы и фильтры.

В Mango есть множество инструментов анализа, обработки и редактирования, а также возможность конвертировать, обезличивать и регистрировать изображения. Благодаря тому, что проект финансируется Национальным институтом психического здоровья США, функционал здесь шире, чем во многих коммерческих системах.

Escape EMV

escape-emv

EMV способен открыть большинство изображений DICOM с CD/DVD, флеш-накопителей и т. д. Существует в двух версиях: недавно обновленной версии для MacOS и версии для Windows, которая больше не поддерживается. Для работы требуется QuickTime, поэтому разработчик прекратил поддержку версии для Windows.

С помощью EMV можно получать результаты исследований с других устройств, если дать программе доступ к системам WADO PACS. Есть возможность обрабатывать пользовательские объекты, например, измерения и аннотации.

Программа может обезличивать и передавать изображения, кроме того, есть множество вариантов отображения, оверлеи, фильтры, отметки и изменение цветов. Демоверсию можно скачать бесплатно, однако для коммерческого использования нужна лицензия, которая стоит 245 евро и выдается для трех компьютеров.

Есть протокол tar, есть протокол krar для kio. Как заставить Dolphin открывать архивы автоматически не через Ark, а самому использовать эти протоколы?



Не работает с rar, zip, deb, iso: работает только с tar

Нужен kio_krarc.so, он устанавливается вместе с Krusader.


меня больше интересует почему никто не может добавить rar в kio_archive


и что такое krar?


Кстати krarc, в отличие от Ark, не просматривает содержимое архива, а распаковывает его во временную директорию и отображает уже её содержимое, что не очень здорово. Видимо, поэтому его отовсюду подчистили в пользу ark_part.


Как его использовать?


rar не нужен в моем линаксе.

Ну так не пользуйся, тебя кто-то заставляет?


Так ведь это только в твоем!


unrar тоже? ну да, ну да.

Ну если ему rar совсем не нужен?


Весь мир уже давно привык ему слать только .tar)

Причём на магнитной ленте.

Как вообще так получилось, что костыльный наколенный Far и Total Commander, написанный дельфистом-недоучкой, от рождения работают с архивами без проблем, а Свободные Кеды с Компонетной Архитектурой KIO за 20 лет так и не научились?


Может потому, что Dolphin!=Total Commander? Про Krusader ты не слышал?


меня больше интересует почему никто не может добавить rar в kio_archive

лицензия раньше мешала. Ну и ещё то, что кроме сраной рашки, этот ваш винрар никому не нужен.


Как вообще так получилось, что костыльный наколенный Far и Total Commander, написанный дельфистом-недоучкой, от рождения работают с архивами без проблем, а Свободные Кеды с Компонетной Архитектурой KIO за 20 лет так и не научились?

потому-что архивы не нужны там, где есть нормальная ФС.

Как соотносится свобода ПО и поддержка им чего-либо? Просто разработчики могут не считать такую функцию нужной/важной (это я не в контексте местных ненужнистов, если что).

Кстати, я вот никогда не понимал работу с архивом через ФМ, в чём профит?

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Статья относится к принтерам:

Приветствую всех читателей портала 3DToday!

Спешу поделиться своими небольшими, но достаточными знаниями для получения модели в формате STL из формата DICOM (*.DCM, Digital Imaging and Communications in Medicine) — это отраслевой стандарт создания, хранения, передачи и визуализации медицинских изображений и документов обследованных пациентов. Формат получаемый, например, как результат работы аппарата МРТ.

Попросил заказчик перевести DCM в STL. А я ни слухом, ни духом что это такое.

Все перепробовав, я остановился на программе 3DSilcer4.8

Прежде чем работать нам нужен сам файл в формате (*.dcm) или несколько.

Запускаем программу 3DSilcer4.8

Загружаем файл нажав на кнопку “Load Data”

Конвертация снимков МРТ (формата DICOM) в STL формат

Можно выбрать конкретный файл, можно директорию. Я выбрал файл.

Конвертация снимков МРТ (формата DICOM) в STL формат

Подтверждаем. Программа загружает файл.В моем случае это снимок ротовой полости.

Конвертация снимков МРТ (формата DICOM) в STL формат

Теперь необходимо сформировать 3D модель. Это делается в несколько этапов:

  • Перейти к вкладке Volume Rendering.
  • Нажать на глазик слева от надписи VOLUME.
  • Выровнять получившуюся модель нажав на крестик.
  • Чтобы убрать лишние артефакты необходимо двигать ползунок SHIFT на вкладке DISPLAY влево-вправо пока не получите приемлемый для Вас результат.

Конвертация снимков МРТ (формата DICOM) в STL формат

  • Необходимо перейти к вкладке EDITOR
  • Нажать кнопку ThresholdEffect
  • Выставить по вкусу значение THRESHOLD RANGE (у меня получилось 1000 )
  • Нажать кнопку Apply.

Конвертация снимков МРТ (формата DICOM) в STL формат

  • Нажать кнопку MakeModelEffect
  • Нажать кнопку Apply (Применить)

Конвертация снимков МРТ (формата DICOM) в STL формат

Можно сохранять! В наш заветный STL формат. Нажав на кнопку SAVE. И выбрав формат STL вместо VTK.

Конвертация снимков МРТ (формата DICOM) в STL формат

Далее выполняем необходимые манипуляции в любом редакторе STL. В meshmixer, например.

Конвертация снимков МРТ (формата DICOM) в STL формат

Конвертация снимков МРТ (формата DICOM) в STL формат

Конвертация снимков МРТ (формата DICOM) в STL формат

Большое спасибо, что дочитали мою статью до конца.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Читайте также: