我们正在考虑通过解析现有的dicomdir文件并以树状结构显示内容来添加图像管理功能。现有应用程序使用Java和Dcm4Che。
我的问题是如何解析 dicomdir 文件以获取足够的信息以在Java 树中显示其内容?
更多参考这里 :: DICOMDIR 阅读图像
public void getFilePath(DicomObject firstRecord) throws IOException {
int i = 1;
for (DicomObject rec = firstRecord; rec != null; rec = dicomDir
.findNextSiblingRecord(rec), ++i) {
if (rec.get(Tag.ReferencedFileID) != null) {
File f = dicomDir.toReferencedFile(rec);
System.out.println(f.getAbsolutePath());
}
getFilePath(dicomDir.findFirstChildRecord(rec));
}
private DicomDirReader dirReader;
public ReadDicomDir(File file) throws IOException {
dirReader = new DicomDirReader(file);
}
public List<File> getFiles() throws IOException {
List<File> listDirFiles = new ArrayList<File>();
getFilePath(dirReader.findFirstRootRecord(), listDirFiles);
return listDirFiles;
}
/**
* Get Filepath of Dicom File
*
* @param firstRecord
* @param listDirFiles
* @throws IOException
*/
public void getFilePath(DicomObject firstRecord, List<File> listDirFiles)
throws IOException {
int i = 1;
for (DicomObject rec = firstRecord; rec != null; rec = dirReader
.findNextSiblingRecord(rec), ++i) {
if (rec.contains(Tag.ReferencedFileID)) {
File f = dirReader.toReferencedFile(rec);
// System.out.println(f.getAbsolutePath());
listDirFiles.add(f);
}
getFilePath(dirReader.findFirstChildRecord(rec), listDirFiles);
}