0

我正在使用 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;
    }
4

1 回答 1

4

您可以使用

toStringBuffer(StringBuffer sb, DicomObjectToStringParam param)

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

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

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

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

于 2015-03-12T18:23:25.347 回答