2
我々は、既存のDICOMDIRファイルを解析し、ツリー構造でコンテンツを表示することにより、画像管理機能を追加することを考えています。既存のアプリケーションは、JavaとDcm4Cheを使用しています。解析DICOMDIR
私qestionはのJavaツリーでその内容を表示するのに十分な情報を取得するためにDICOMDIRファイルを解析する方法ですか?
我々は、既存のDICOMDIRファイルを解析し、ツリー構造でコンテンツを表示することにより、画像管理機能を追加することを考えています。既存のアプリケーションは、JavaとDcm4Cheを使用しています。解析DICOMDIR
私qestionはのJavaツリーでその内容を表示するのに十分な情報を取得するためにDICOMDIRファイルを解析する方法ですか?
詳細はこちらをご覧:: DICOMDIR READ IMAGES
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);
}
を私の経験から、私はそれがすべてのフォルダをスキャンし、独自のツリーを構築する方がよいことを伝えることができます。 dicomdirでは、ディレクトリー情報(dirと呼ばれる)だけが見つかり、遅かれ早かれ、(おそらくツリー内のイメージの解像度を表示するために)フォルダー構造を解析することになります。それが助けてくれれば、私はあなたにdicomdirを解析するためのC++コードを与えることができます。 – alinoz
私はalinozと同意します。ディレクトリツリーを再帰し、各DICOMファイルを読み込んでこのツリー構造をまとめるのは簡単です。 –