Формате dicom что это
Файл DICOM (что это такое и как его открыть)
DICOM — это аббревиатура от Digital Imaging and Communications in Medicine. Файлы в этом формате, скорее всего, сохраняются с расширением файла DCM или DCM30 (DICOM 3.0), но некоторые из них могут вообще не иметь расширения.
DICOM — это протокол связи и формат файла, что означает, что он может хранить медицинскую информацию, такую как ультразвуковые и МРТ-изображения, а также информацию о пациенте в одном файле. Формат гарантирует, что все данные остаются вместе, а также предоставляет возможность передавать указанную информацию между устройствами, поддерживающими формат DICOM.
Расширение DCM также используется программой MacOS DiskCatalogMaker в качестве формата каталога DiskCatalogMaker.
Не путайте формат DICOM или файл с расширением DCM с папкой DCIM, в которой ваша цифровая камера или приложение для смартфона хранят фотографии.
Открытие файлов DICOM с помощью бесплатной программы просмотра
© Питер Дазли / Выбор фотографа / Getty Images
Файлы DCM или DCM30, которые вы найдете на диске или флэш-накопителе, предоставленном вам после медицинской процедуры, можно просмотреть с помощью прилагаемого программного обеспечения для просмотра DICOM, которое вы также найдете на диске или накопителе. Найдите файл с именем setup.exe или аналогичный или просмотрите любую предоставленную вам документацию с данными.
Если вы не можете заставить работать программу просмотра DICOM или ее не было в комплекте с вашими медицинскими изображениями, можно воспользоваться бесплатной программой MicroDicom. С его помощью вы можете открыть рентгеновский снимок или другое медицинское изображение прямо с диска, через ZIP-файл или даже с помощью поиска в ваших папках, чтобы найти файлы DICOM. После открытия файла в MicroDicom вы можете просмотреть его метаданные, экспортировать его как JPG, TIF или другой распространенный тип файла изображения и многое другое.
MicroDicom доступен как для 32-разрядных, так и для 64-разрядных версий Windows как в устанавливаемой, так и в переносной форме (что означает, что вам не нужно устанавливать его, чтобы использовать).
Если вы предпочитаете использовать веб-инструмент для открытия файлов DICOM, одним из вариантов является бесплатное средство просмотра изображений Jack Imaging — просто перетащите файл в квадрат на экране, чтобы просмотреть его. Если вы получили от врача файл, на котором должны быть медицинские изображения, например, с рентгеновского снимка, этот инструмент позволит вам быстро просмотреть его в Интернете.
DICOM Library — еще одна бесплатная онлайн-программа просмотра DICOM, которую вы можете использовать, что особенно полезно, если файл DICOM действительно большой, а RadiAnt DICOM Viewer — еще одна загружаемая программа, которая открывает файлы DICOM, но это только ознакомительная версия полной версии.
View My Scans — это аналогичная онлайн-программа просмотра DICOM, которая поддерживает как отдельные файлы, так и ZIP-архивы.
Файлы DICOM также можно открывать с помощью IrfanView, Adobe Photoshop и GIMP.
Файлы каталога macOS DiskCatalogMaker, сохраненные с использованием расширения DCM, можно открыть с помощью DiskCatalogMaker.
Как преобразовать файл DICOM
Программа MicroDicom, упомянутая уже несколько раз, может экспортировать любой файл DICOM, который у вас есть, в BMP, GIF, JPG, PNG, TIF или WMF. Если есть серия изображений, он также поддерживает их сохранение в видеофайл в формате WMV или AVI.
Некоторые из вышеперечисленных программ, поддерживающих формат DICOM, также могут сохранять или экспортировать файл в другой формат, вариант, который, вероятно, в Отправьте > Сохранить как or экспорт меню.
По-прежнему не удается открыть файл?
Если вы не можете открыть файл с помощью программ или веб-служб, упомянутых выше, дважды проверьте расширение файла, чтобы убедиться, что он действительно читает «.DICOM», а не просто то, что написано аналогичным образом.
Например, у вас действительно может быть файл DCO, который не имеет ничего общего с форматом DICOM или изображениями в целом. Файлы DCO — это виртуальные зашифрованные диски, которые используются с Safetica Free.
То же самое можно сказать и о подобных расширениях файлов, таких как DIC, хотя это может быть сложно. Файлы DIC на самом деле могут быть файлами изображений DICOM, но расширение файла также используется для файлов словарей в некоторых программах текстового процессора.
Если ваш файл не открывается как изображение DICOM, пропустите его через бесплатный текстовый редактор. Он может включать термины, относящиеся к словарю, которые вместо этого указывают на то, что файл находится в формате файла словаря.
DICOM также иногда используется как аббревиатура для удаленного протокола распределенной объектной модели компонентов, но он не имеет ничего общего с форматами файлов, описанными выше.
DICOM
DICOM (англ. Digital Imaging and Communications in Medicine ) — отраслевой стандарт создания, хранения, передачи и визуализации медицинских изображений и документов обследованных пациентов.
Содержание
DICOM Standard
DICOM опирается на ISO-стандарт OSI, поддерживается основными производителями медицинского оборудования и медицинского программного обеспечения.
Стандарт DICOM, разрабатываемый Национальной ассоциацией производителей электронного оборудования (National Electrical Manufacturers Association), позволяет создавать, хранить, передавать и печатать отдельные кадры изображения, серии кадров, информацию о пациенте, исследовании, оборудовании, учреждениях, медицинском персонале, производящем обследование, и т. п.
Стандартом DICOM определено два информационных уровня:
DICOM File
DICOM File представляет собой объектно-ориентированный файл с теговой организацией. Информационная модель стандарта DICOM для DICOM файла четырёхступенчатая:
Файловый уровень стандарта DICOM 3.0 редакции 2008 года описывает:
DICOM Network Protocol
DICOM Network Protocol использует TCP/IP для передачи медицинской информации от медицинского оборудования в PACS-систему (Picture Archiving and Communication System) и для связи между PACS-системами. Протокол трёхуровневый — нижний, сразу над TCP — DUL (DICOM Upper Layer); над ним — сервисы: DIMSE (DICOM Message protocol) и ACSE (Association Control protocol — standard OSI protocol); и выше DICOM Application Interface. Над ними расположено приложение — Medical Imaging Application.
Стандарт DICOM позволяет производить интеграцию медицинского оборудования разных производителей, включая DICOM-сканеры, DICOM-серверы, автоматизированные рабочие места и DICOM принтеры в единую радиологическую (англ. Radiology information system ) или клиническую информационную систему (англ. Hospital information system ).
Стандарт DICOM включает в себя ряд сетевых (основных) сервисов:
Стандарт DICOM включает в себя основные сетевые команды, каждая из которых осуществляет как запрос (request) — в основном отправляет «клиент» (Service Class User, SCU), так и ответ (response) — в основном отвечает «сервер» (Service Class Provider, SCP):
Файлы формата DICOM
Важно!
3D-функции Photoshop будут удалены в будущих обновлениях. Пользователям, работающим с 3D-функциями, рекомендуется ознакомиться с новой коллекцией Adobe Substance 3D, которая представляет собой новое поколение 3D-инструментов от Adobe.
Дополнительную информацию о прекращении поддержки 3D-функций Photoshop можно найти здесь: Photoshop 3D | Распространенные вопросы об упраздненных 3D-функциях.
В Photoshop CS6 функциональные возможности 3D были доступны в Photoshop Extended. Все возможности Photoshop Extended доступны в Photoshop. Photoshop не имеет специальной версии Extended.
Сведения о файлах формата DICOM
Стандарт DICOM (сокращенное название Digital Imaging and Communications in Medicine (формирование, передача и хранение медицинских изображений)) является наиболее распространенным стандартом данных медицинских сканирований. Photoshop позволяет открывать файлы стандарта DICOM (с расширением DC3, DCM, DIC или без расширения) и работать с ними. Файлы DICOM могут содержать несколько «фрагментов» или кадров, которые соответствуют различным слоям изображения.
Photoshop считывает все кадры из файла стандарта DICOM и преобразует их в слои Photoshop. Photoshop также способен располагать все кадры в формате DICOM в сетке одного слоя или преобразовывать их в 3D-объем, который можно вращать в 3D-пространстве. Программа Photoshop может считывать 8‑, 10‑, 12‑ или 16‑битные файлы DICOM. Программа Photoshop преобразует 10‑ и 12‑битные файлы в 16‑битные файлы.
После открытия файла стандарта DICOM в программе Photoshop можно использовать любой инструмент Photoshop для настройки изображения, нанесения меток или добавления аннотации к файлу. Например, для добавления комментария к файлу используйте инструмент «Комментарий», для пометки определенной области изображения используйте инструмент «Карандаш», для удаления с изображения пыли и царапин используйте фильтр «Пыль и царапины». Для измерения содержимого изображения используйте «Линейку» или инструменты выделения.
Каждая шкала изменений, присутствующая в файле DICOM, автоматически импортируется вместе с файлом. Если шкала отсутствует, то добавляется пользовательская шкала с масштабом по умолчанию (1 пиксель = 1 мм). См. раздел Задание шкалы измерений.
8-битные файлы DICOM можно сохранять в файл с любым форматом, поддерживаемым Photoshop (16‑битные файлы должны сохраняться в файлах формата DICOM, Large Document Format, Photoshop, Photoshop PDF, Photoshop Raw, PNG или TIFF).
При сохранении файла в формате DICOM все стили слоев, настройки, режимы наложения и маски сохранены не будут.
Открытие файла DICOM
Перед открытием файла формата DICOM необходимо задать вариант открытия кадров DICOM (в качестве слоев, в сетке, как 3D-объем), а также установить параметры (в диалоговом окне «Импорт файла формата DICOM»), сделав анонимными метаданные пациента и отобразив перекрытия. Во время импорта можно выполнять панорамирование, увеличение, а также регулировать окна.
Диалоговое окно импорта файлов формата DICOM также содержит заголовки DICOM — текстовую информацию о файле (размеры, данные о разрешении и сведения о сжатии данных).
С помощью команды «Новый видеослой из файла» можно импортировать последовательность из нескольких однокадровых файлов формата DICOM в один файл Photoshop с несколькими слоями. См. раздел Импорт последовательностей изображений.
DICOM — Какая печать нужна медицине?
В настоящее время медицинские учреждения в России стремятся использовать самые современные технологии для успешной диагностики и лечения. Некоторые изменения происходят и в сфере диагностических аппаратов, появляются 3D снимки, полноцветные рентгены, мониторы для просмотра снимков и т.д. Но эти технологии только увеличивают стоимость процесса. Однако в медицине, как и в любом бизнесе требуются инновации для уменьшения расходов. Возможность применения обычных принтеров для визуализации данных со снимков рентгенографии или томографии позволяет добиться такой экономии на пленках, а также быстрее получать результаты исследований.
В прошедшем году компания OKI представила несколько новых моделей принтеров, поддерживающих DICOM, которые отличаются от базовых моделей приставкой «DM», а также ценой и исключительно поддержкой данной технологии. И здесь возникает вопрос, действительно ли DICOM так востребована и может принести пользу медицинским учреждениям или это скорее маркетинговый трюк?
Как например этот:
Что такое DICOM?
Обычно введение новых стандартов и технологий воспринимается ИТ-специалистами «в штыки», ведь никто не хочет отказываться от существующих и привычных форматов и уже известных принципов работы. («Работает — не трогай!»). Однако в случае с DICOM (Digital Imaging and Communication in Medicine), дела обстоят совершенно иначе. Дело в том, что стандарт DICOM используется для сбора и хранения информации о пациенте на современном медицинском оборудовании. Формат файлов DICOM четко регламентирует принципы хранения результатов исследований, а сетевой протокол — взаимодействие между различными устройствами (включая хранилища и терминалы), обеспечивая облегченный поиск в сети и на отдельном устройстве всех данных, связанных с конкретным пациентом.
Так выглядит стандартная программа для работы с протоколом
DICOM против обычных принтеров
Что касается возможностей печати, стандартные принтеры, уже много лет успешно применяющиеся в медицине в качестве вспомогательных элементов системы визуализации, обладают сразу двумя недостатками:
• во-первых, большинство принтеров требуют наличия промежуточного элемента для коммуникации с медицинскими системами — персонального компьютера;
• во-вторых, использование 8-битного интерфейса печати не позволяет отобразить все «тонкости» диагностической инфорамции.
Первая неприятность диктует медицинскому учреждению необходимость обслуживания дополнительно еще одного рабочего места, обновления компонентов компьютера, настройки экспорта изображений с томографов и систем моделирования и так далее. А это значит, что функция печати будет доступна не всегда, для ее обслуживания периодически нужен ИТ-специалист, а значит… мы опять возвращаемся к пленкам, по крайней мере, в большинстве случаев.
Второй нюанс значительно ограничивает возможности диагностики без применения пленочных носителей. Дело в том, что неполная передача информации, которую удалось извлечь из данных магнитного резонанса или, например, прохождения рентгеновских лучей через ткани организма, может привести к неверной диагностике и навредить пациенту… да и просто приводит в бешенство врачей, которые в итоге предпочитают получать пленочные результаты исследований.
Протокол DICOM призван решить обе проблемы. Двенадцатибитный интерфейс делает отпечатки более полезными, а возможность печати без использования компьютера упрощает процедуру визуализации, исключает необходимость наличия дополнительного компьютера с операционной системой и драйверами, а также освобождает ИТ-персонал от лишних задач. Задания на печать могут быть отправлены непосредственно из системы визуализации, управления МРТ или других медицинских устройств.
примеры отпечатков
Отказ от пленки?
Конечно, печать на принтере проще, дешевле и быстрее, чем вывод изображений на пленку, но рассчитывать на полный отказ от пленки было бы глупо. Это связано не только с традициями в медицине, но и с исключительным разрешением пленочных диагностических материалов.
Высокая ценность принтеров с интерфейсом DICOM может проявиться при печати трехмерных изображений, полученных в результате томографии или составленных по итогам других медицинских исследований. Таким образом, принтеры могут быть использованы скорее как дополнение к пленочным носителям, но при этом медицинским руководителям необходимо знать: чем больше персонал использует функцию печати вместо экспозиции на пленке, тем больше дополнительных материальных средств высвобождается в отделении. И хотя распечатки исследований далеко не всегда оказываются полезными в диагностике, их всегда можно отдать клиентам, подготовить для страховых компаний и использовать для предварительной оценки ракурса снимка.
Причин экономии существует сразу несколько:
• во-первых, стоимость самого отпечатка на принтере в 5-10 раз меньше, чем экспозиция изображения на пленку — в среднем примерно 10 рублей против 70 рублей;
• во-вторых, временные трудозатраты на проявление пленки составляют 10-15 минут, в то время как печать страницы А4 на светодиодных принтерах составляет менее минуты;
• в-третьих, высокая нагрузка на проявочные машины приводит к их износу и преждевременной замене, а стоимость такого оборудования исчисляется десятками тысяч долларов.
Место DiCOM принтера в инфраструктуре
Принтер c интерфейсом DICOM является не только элементом медицинской системы, но также полноценной системой печати, как правило, с возможностью передачи широкого спектра цветов. Такой принтер может быть подключен непосредственно к системе диагностики, а также к компьютерной сети Ethernet, используя данные с медицинских PACS-серверов. Но при этом не исключается возможность использования того же принтера для решения офисных задач печати — создания больничных листов, распечатки эпикризов и многого другого. При этом наличие минимального запаса расходных материалов гарантирует доступность сервисов печати как для лечащих врачей, так и для специалистов в области диагностики. Однако не стоит забывать, что не всегда можно использовать полученные таким способом отпечатки для лечебной диагностики, прежде всего, такие технологии позволяют сократить расходы на необходимые бюрократические процедуры.
К чему приводят уязвимости протокола DICOM
Вы наверняка видели в медицинском сериале, как интерны бьются над рентгеновским снимком пациента, а потом приходит их наставник и ставит диагноз по едва заметному пятнышку. В реальности такими остроглазыми диагностами становятся модели машинного обучения, применяемые в технологии medical imaging. Благодаря таким штукам можно гораздо быстрее выявить болезнь, например, определить, являются ли клетки на снимках опухолевыми или неопухолевыми.
Но есть одна проблема — в медицинских технологиях используются DICOM-протоколы, безопасность которых оставляет желать лучшего. О них и пойдет речь в этой статье.
Протокол DICOM и его слабые места
Коротко о самом протоколе
DICOM (Digital Imaging and Communication in Medicine) — протокол представления медицинских обследований и передачи их между различными компонентами. Этими компонентами могут быть:
Протокол DICOM имеет две части:
Теперь к делу
Каждый DICOM-файл содержит информацию о пациентах и состоянии их здоровья — данные, которые требуют особой защиты. Именно поэтому я решила проверить реализации DICOM-протокола на уязвимости вместе с группой исследователей-энтузиастов AISec, которая занимается безопасностью в сфере машинного обучения.
Мы также изучили безопасность PACS (Picture Archiving and Communication System). Это такие системы, в которых результаты обследований хранятся в электронном виде. Они позволяют передавать снимки между врачами по сети. Да-да, благодаря PACS больше не нужно таскать с собой рентгеновские снимки в конверте, как мы привыкли.
DICOM-файл
DICOM-файл — изображение медицинского характера, сохраненное в формате DICOM. Этот формат — отраслевой стандарт для хранения и распространения медицинских снимков.
Помимо графических данных, DICOM-файлы могут содержать персональную информацию в виде атрибутов, позволяющих сопоставить изображение с конкретным человеком и идентифицировать пациента. К ним относятся пол, имя пациента, дата рождения и пр. Список возможных атрибутов и их описание можно найти в документации.
На рисунке показана структура DICOM-файла:
DICOM Network
Стандарт протокола довольно сложно и нудно описывает сетевое взаимодействие — мне до сих пор не удалось изучить его целиком. Но если говорить в общем, вот какие команды сетевого взаимодействия есть у DICOM-протокола:
Действие | Описание |
---|---|
C-ECHO | Тест соединения между двумя устройствами |
C-FIND | Поиск исследований на удаленном сервере |
C-GET, C-MOVE | Скачивание исследований с удаленного сервера |
C-STORE | Сохранение исследования на удаленном сервере |
Вот как выглядит процесс передачи результатов медицинских обследований по DICOM-протоколу
Немного статистики по DICOM-серверам в интернете.
Такие картинки-отчеты о сканировании генерирует Grinder Framework
Интересный факт: когда мои коллеги из AISec проводили сканирование в 2019 году, то доступных серверов было меньше тысячи. В 2020 году же их оказалось около 2700.
Большинство хостов в сети настроены таким образом, что любой может установить с ними соединение. Давайте разберем пример, как просто получить исследование с удаленного сервера из сети. Для этого воспользуемся утилитами findscu и getscu из DCMTK — набора библиотек и приложений, реализующих большую часть стандарта DICOM.
Первой командой получаем список всех доступных исследований на сервере.
Пример вывода команды findscu
Следующей командой скачиваем нужное нам исследование или все исследования сразу.
Значения ключей в команде аналогичны предыдущей.
Пример исследования, скачанного с удаленного сервера DICOM
Вот так с помощью двух команд можно скачать данные с удаленного DICOM-сервера при наличии одного из условий:
Далее рассмотрим популярные инструменты и реализации протокола и найденные в них недостатки.
Реализации протокола DICOM
SimpleITK
SimpleITK — реализация протокола, которая используется в одном из крупных проектов в области medical imaging NVIDIA CLARA.
В ответ на репорт о переполнении кучи разработчик просто поправил файл, демонстрирующий уязвимость, чтобы он корректно обрабатывался библиотекой 🙂
Чем кончилось: в конце концов мы друг друга поняли, и вендор быстро исправил обе уязвимости.
DCMTK
DCMTK (DICOM Toolkit) — самая старая реализация DICOM-протокола. Она включает набор инструментов для работы с протоколом: парсеры DICOM-файлов в разных форматах и из разных форматов, а также утилиты для взаимодействия с DICOM-сервером по сети.
XXE в xml2dcm
Чем кончилось: данную уязвимость вендор устранил.
Небезопасные функции xml2dcm
По аналогии с external entities в XML, cама по себе утилита xml2dcm позволяет создавать DICOM-файлы c содержимым других файлов внутри. Это удобно, потому что не нужно писать данные в XML-файл — достаточно указать в теге PixelData путь к файлу, из которого нужно подгрузить данные при конвертировании.
Если в теге PixelDatа указать путь к любому файлу в системе, то после обработки утилитой xml2dcm мы получим DICOM-файл с его содержимым.
Чем кончилось: эту функцию невозможно отключить никаким флагом, а на доработку парсера xml2dcm вендор не согласился 🙁
DoS в парсерах DICOM-файлов
Мы тестировали парсеры из DCMTK при помощи фаззинга AFL и libFuzzer. Результат — DoS-утилиты xml2dcm и dcm2xml.
Чем кончилось: вендор исправил найденные ошибки.
DoS в dcmqrscp-сервере
DCMTK также предоставляет реализацию DICOM-сервера dcmqrscp. Тестирование безопасности DICOM-сервера dcmqrscp было проведено с помощью фаззинга, в результате которого был обнаружен DoS.
Фаззинг проводился при помощи AFLNet. Поддержку протокола DICOM я добавила в официальный репозиторий AFLNet, если кому-то захочется пофаззить другие DICOM-серверы.
Чем кончилось: вендор исправил ошибку реализации.
Приложения medical imaging
ORTHANC
В ходе исследования мы затронули приложение ORTHANC. Этот продукт очень прост в настройке и использовании: он предоставляет веб-обертку для просмотра DICOM-файлов, и для работы с DICOM-протоколом требуется только браузер.
ORTHANC используют в здравоохранении, в различных университетах и госпиталях, с его помощью проводятся исследования в области машинного обучения medical imaging (раз и два).
Открытые серверы ORTHANC в сети
Небезопасное API
Он принимает на вход скрипты на lua и без какой-либо валидации выполняет их на сервере. Чтобы убедиться в этом самостоятельно, посмотрите исходный код ORTHANC.
Уязвимость аутентификации к CSRF-атаке
Метод execute-script является небезопасным. Разработчик ORTHANC решил эту проблему при помощи аутентификации, чтобы выполнять такие запросы могли только зарегистрированные пользователи. Но по умолчанию аутентификация отключена при работе с ORTHANC-сервером с официального сайта.
В докере от разработчика уже включена аутентификация по умолчанию. Это здорово, если бы не следующая проблема: данная система аутентификации уязвима к CSRF-атаке. Достаточно создать страничку со следующим содержанием и отправить ее пользователю:
Когда пользователь открывает страницу, на сервер отправляется команда, запускающая выполнение произвольного кода.
Ответ вендора на запрос исправления данной уязвимости меня удивил: оказывается, ORTHANC — это микросервис, поэтому и о безопасности среды, где вы его разворачиваете, извольте позаботиться сами. То есть и механизм аутентификации мы сами должны написать? И догадаться о том, что поставляемый вендором механизм аутентификации лишь создает иллюзию безопасности и надежности, но на самом деле бесполезен?
Ответ вендора
BTW: кеш гугла показал, что приписку в документации о CSRF вендор сделал после моего репорта об уязвимости. И, конечно же, вряд ли он известил тех клиентов, которые уже пользуются их «микросервисом» и верят в его надежность.
Страница документации после ответа вендора на репорт об уязвимости
Страница документации из кеша гугл за пару дней до репорта не содержит каких-либо упоминаний CSRF
Чем кончилось: вендор так ничего и не предпринял для устранения данной уязвимости, только дополнил документацию.
Заключение
То, как просто найти уязвимости в medical imaging и как забавно вендоры реагируют на баг-репорты, показывает слабый уровень защищенности таких технологий. Чтобы они стали безопасными, над ними еще работать и работать.
Напоследок оставлю табличку со всеми описанными в статье багами.
Vendor | Product | Weakness |
---|---|---|
SimpleITK | ImageSeriesReader | Heap-buffer-overflow |
SimpleITK | ImageSeriesReader | Buffer-overflow |
Orthanc | Orthanc | CSRF with remote code execution |
DCMTK | xml2dcm | XXE |
DCMTK | xml2dcm | DoS |
DCMTK | xml2dcm | File read functionality |
DCMTK | dcm2xml | DoS |
DCMTK | dcmqrscp | DoS |
Также подробная информация лежит на github.