Как добавить метаданные в файл dicom?

Это продолжение другого вопроса. Я пытаюсь получить файл dicom из изображения jpg и некоторые метаданные, которые я пишу сам в программе java. У меня есть этот код для добавления метаданных, но он кажется неполным, поэтому я не знаю, что еще мне нужно включить.

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

Attributes attribs = new Attributes();

attribs.setString(Tag.StudyDate, VR.DA, "20110404"); attribs.setString(Tag.StudyTime, VR.TM, "15");

После этого я попробовал это, но мне все еще не хватает некоторых атрибутов:

meta.setInt(Tag.FileMetaInformationGroupLength, VR.UL, data.length);
meta.setString(Tag.TransferSyntaxUID, VR.UI, "1.2.840.10008.1.2.1");

Спасибо


person celia    schedule 19.07.2019    source источник
comment
Как вы можете сказать, что отсутствуют атрибуты? Какие атрибуты отсутствуют? Какой тип объекта DICOM (класс SOP) вы пытаетесь создать? Мета.setXXX() устанавливает значения атрибутов, как ожидалось, или это не удается? Вы внедрили DICOM с нуля или используете набор инструментов DICOM?   -  person kritzel_sw    schedule 19.07.2019
comment
Я получаю эту ошибку: (0008,0030) не принадлежит к группе (0002, eeee) каждый раз, когда я добавляю атрибут. Вот почему я хочу знать, какие атрибуты являются обязательными. Я использую набор инструментов DICOM. Спасибо   -  person celia    schedule 19.07.2019


Ответы (1)


С информацией, которую вы предоставляете (см. комментарий), я подозреваю, что применима следующая ситуация:

Файлы DICOM состоят из двух основных компонентов:

  • Мета-заголовок, описывающий кодировку (и другие мета-аспекты) объекта DICOM.
  • Сам объект DICOM (набор данных), состоящий из «данных заголовка» и «данных пикселя» (фактически данные пикселя — это просто определенный атрибут, поэтому «данные заголовка» и «данные пикселя» — это своего рода разговорный язык.

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

Я не могу сказать больше, потому что в опубликованном вами коде не указано, к чему относится объект «Атрибуты». Но судя по всему, вы где-то пытаетесь добавить "Атрибуты" в "мета".

Насчет «Какие атрибуты являются обязательными»: довольно много, и это зависит от типа объекта, который вы создаете, т.е. компьютерная рентгенография, эндоскопическое видео, ...

Часть 3 стандарта DICOM предназначена для получения обязательного дополнительного атрибута для объекта определенного типа, который в стандарте DICOM называется «класс SOP».

person kritzel_sw    schedule 19.07.2019
comment
Итак, у меня возникло два вопроса: 1. Нужно ли добавлять метаданные в объект dicom? 2. Должен ли я добавлять все атрибуты мета-заголовка, прежде чем добавлять те, которые мне нужны? Спасибо - person celia; 19.07.2019
comment
1. Да 2. Зависит от инструментария, но скорее всего нет. - person kritzel_sw; 19.07.2019
comment
Не могли бы вы показать мне пример создания объекта dicom? Я предполагаю, что все библиотеки могут правильно создавать объекты dicom? У меня 3.2.1 и я не могу импортировать data.dicomObject - person celia; 19.07.2019
comment
stackoverflow.com/questions/21087778/ - person kritzel_sw; 19.07.2019
comment
Это старая версия библиотеки, сейчас легко добавить некоторые атрибуты - person celia; 19.07.2019
comment
Извините, чувак, твой DICO многого не стоит - я пробовал, и он дал все виды мусора. - person gpasch; 19.07.2019