我正在使用dcm4chee2来解析标记DicomInputStream
和DicomObject
。然后我将元数据转换为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;
}
答案 0 :(得分:4)
您可以使用
toStringBuffer(StringBuffer sb, DicomObjectToStringParam param)
并定义一个不同的DicomObjectToStringParam对象(我怀疑它没有提供所有属性,因为默认值对于你的数据集来说太小了。)
如果您真的想要遍历所有属性,那么最好使用
Iterator<DicomElement> data = dcmObj.datasetIterator();
并在遍历迭代器时适当地处理序列元素。