我正在使用dcm4chee2来解析带有其DicomInputStream
和DicomObject
的标签。然后,我将元数据转换为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();
并在遍历迭代器时适当地处理序列元素。