Разбор тегов DICOM в ArrayList‹String›

Я использую dcm4chee2 для анализа тегов с их DicomInputStream и DicomObject. Затем я конвертирую метаданные в ArrayList типа String. Однако, когда я использую метод toString() для преобразования тегов из DicomObject в строку, я замечаю, что не получаю полный список тегов DICOM, кодов VR и описания. Может ли кто-нибудь сказать мне, есть ли другой метод DicomObject, который я должен использовать для получения полного списка, а не toString()?

Вот код, который у меня сейчас есть:

    ArrayList<String> dicomTags = new ArrayList<String>();
    DicomInputStream din = null;
    FileOutputStream fos = new FileOutputStream("dicomTagResults.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    din = new DicomInputStream(new File(pathName));
    try {
        DicomObject dcmObj = din.readDicomObject();
        dicomTags.add(dcmObj.toString());
        for (String findMatch : dicomTags){
            System.out.println(findMatch.toString());
            oos.writeObject(dicomTags);
            oos.close();
        }

    }
    catch (IOException e)
    {
        e.printStackTrace();
        return;
    }

person ryekayo    schedule 12.03.2015    source источник


Ответы (1)


Ты можешь использовать

toStringBuffer(StringBuffer sb, DicomObjectToStringParam param)

и определите другой объект DicomObjectToStringParam (я подозреваю, что он не предоставляет все атрибуты, потому что значения по умолчанию слишком малы для вашего набора данных).

Если вы действительно хотите перебрать все атрибуты, вам, вероятно, лучше использовать

Iterator<DicomElement> data = dcmObj.datasetIterator();

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

person cneller    schedule 12.03.2015
comment
Ок круто попробую. Что мне нужно сделать, чтобы создать переменную для DicomObjectToStringParam? Я пытался использовать этот метод ранее, но застрял в том, как применить его к моему коду. - person ryekayo; 12.03.2015
comment
Просто используйте конструктор в соответствии с вашим объектом public DicomObjectToStringParam (логическое имя, int valueLength, int numItems, int lineLength, int numLines, String indent, String lineSeparator) - person cneller; 12.03.2015
comment
Знаете ли вы какие-либо примеры того, как правильно использовать этот метод? У меня нет ни одной из тех переменных, которые вы упомянули в моем коде, поэтому я подозреваю, что мне придется добавить - person ryekayo; 12.03.2015
comment
У меня нет ничего, что отличалось бы от значения по умолчанию, созданного в этом классе. Взгляните на этот класс, чтобы узнать, что такое значения по умолчанию, и увеличьте/измените их по мере необходимости. - person cneller; 12.03.2015