我正在使用dcm4chee2来解析带有其DicomInputStreamDicomObject的标签。然后,我将元数据转换为String类型的ArrayList。但是,当我使用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;
    }

最佳答案

您可以使用

toStringBuffer(StringBuffer sb, DicomObjectToStringParam param)


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

如果您确实想遍历所有属性,则最好使用

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


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

07-24 15:27