将 DICOM 标签解析为 ArrayList<String>
Parsing DICOM tags to an ArrayList<String>
我正在使用 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();
并在遍历迭代器时适当地处理序列元素。
我正在使用 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();
并在遍历迭代器时适当地处理序列元素。