将DICOM标记解析为ArrayList <string> </string>

时间:2015-03-12 16:01:54

标签: java dicom dcm4che

我正在使用dcm4chee2来解析标记DicomInputStreamDicomObject。然后我将元数据转换为String类型的ArrayList。但是,当我使用toString()方法将标签从DicomObject转换为String时,我注意到我没有得到完整的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;
    }

1 个答案:

答案 0 :(得分:4)

您可以使用

toStringBuffer(StringBuffer sb, DicomObjectToStringParam param)

并定义一个不同的DicomObjectToStringParam对象(我怀疑它没有提供所有属性,因为默认值对于你的数据集来说太小了。)

如果您真的想要遍历所有属性,那么最好使用

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

并在遍历迭代器时适当地处理序列元素。