Если вы хотите узнать о формате DICOM, «Цифровые изображения и коммуникации в медицине (DICOM): Практическое руководство и руководство по выживанию» Олега Пианых вполне читабельны и дают хорошее представление о ключевых концепциях DICOM. Springer-Verlag является издателем этой книги. Полный стандарт DICOM, конечно, является окончательным эталоном, хотя и несколько пугающим. Это доступно от НЕМА (http://medical.nema.org).
Формат файла на самом деле менее эзотеричен, чем вы можете себе представить, и состоит из преамбулы, за которой следует последовательность элементов данных. Преамбула содержит текст ASCII «DICM» и несколько зарезервированных байтов, которые не используются. После преамбулы приведена последовательность элементов данных. Каждый элемент данных состоит из размера элемента, двухсимвольного кода ASCII, указывающего представление значения, тег DICOM и значение. Элементы данных в файле упорядочены по номерам тегов DICOM. Само изображение - это просто еще один элемент данных с размером, представлением значения и т. Д.
Представления значения точно определяют, как интерпретировать значение. Это число? Это строка символов? Если это строка символов, короткая ли она или длинная и какие символы разрешены? Код представления значения говорит вам об этом.
Тег DICOM - это 4-байтовый шестнадцатеричный код, состоящий из 2-байтового числа «группа» и 2-байтового числа «элемент». Номер группы - это идентификатор, который указывает, к какому информационному объекту применяется тег (например, группа 0010 относится к пациенту, а группа 0020 относится к исследованию). Номер элемента идентифицирует интерпретацию значения (такие элементы, как идентификационный номер пациента, описание серии и т. Д.). Чтобы выяснить, как следует интерпретировать значение, ваш код ищет тег DICOM в файле словаря.
Есть некоторые другие детали, но в этом суть. Вероятно, самая поучительная вещь, которую вы можете сделать, чтобы узнать о формате файла, - это взять пример файла DICOM, посмотреть на него с помощью шестнадцатеричного редактора и пройти через процесс анализа его мысленно. Я бы не советовал пытаться узнать о DICOM, взглянув на существующие реализации с открытым исходным кодом, по крайней мере, на начальном этапе. Это скорее смущает, чем просветляет. Получение общей картины важнее. Если у вас есть большая картина, вы можете погрузиться в тонкости.