2012-04-30 16 views
2

我々は、既存のDICOMDIRファイルを解析し、ツリー構造でコンテンツを表示することにより、画像管理機能を追加することを考えています。既存のアプリケーションは、JavaDcm4Cheを使用しています。解析DICOMDIR

私qestionはのJavaツリーでその内容を表示するのに十分な情報を取得するためにDICOMDIRファイルを解析する方法ですか?

+1

を私の経験から、私はそれがすべてのフォルダをスキャンし、独自のツリーを構築する方がよいことを伝えることができます。 dicomdirでは、ディレクトリー情報(dirと呼ばれる)だけが見つかり、遅かれ早かれ、(おそらくツリー内のイメージの解像度を表示するために)フォルダー構造を解析することになります。それが助けてくれれば、私はあなたにdicomdirを解析するためのC++コードを与えることができます。 – alinoz

+0

私はalinozと同意します。ディレクトリツリーを再帰し、各DICOMファイルを読み込んでこのツリー構造をまとめるのは簡単です。 –

答えて

0

詳細はこちらをご覧:: 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)); 
    } 
0

Click Here for Same Code

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); 
    }