スキップしてメイン コンテンツに移動

dcm4cheを使うための開発環境を整える

Eclipse + Maven

EclipseをEEでもSEでもいいのでダウンロードしておきます。
最近のEclipseはMavenは最初から入っているのでこのまま使います。

Mavenプロジェクトを作成

メニューのNew>Otherから、Mavenを展開して、Mavenプロジェクトを新規作成します。
Mavenプロジェクトはいろいろな便利機能が付いていますが、今回はCreate a simple projectにチェックを付けて、Nextで進みます。
GroupIDはJavaプロジェクトのパッケージ階層に当たります。例えば、「com.vis」などにしておきます。
ArtifactIDはソフトウェア名になります。「DCM4CHEStarted」などにしておきます。

あとの項目はサンプルでは不要です。そのままFinishします。

Mavenプロジェクトのpom.xml

Mavenプロジェクトができたら、プロジェクトの最後の方にある「pom.xml」をダブルクリックで開いて編集します。タブが出てくるので、一番右のタブ「pom.xml」に移動して、こんな感じにします。

<project xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

 <modelVersion>4.0.0</modelVersion>
 <groupId>com.vis</groupId>
 <artifactId>DCM4CHEStarted</artifactId>
 <version>0.0.1-SNAPSHOT</version>

 <repositories>
  <repository>
   <id>www.dcm4che.org</id>
   <name>dcm4che Repository</name>
   <url>https://www.dcm4che.org/maven2/</url>
  </repository>
 </repositories>

 <dependencies>
  <!-- https://mvnrepository.com/artifact/org.dcm4che/dcm4che-core -->
  <dependency>
   <groupId>org.dcm4che</groupId>
   <artifactId>dcm4che-core</artifactId>
   <version>5.18.0</version>
  </dependency>
 </dependencies>
</project>

必要な部分をコピーしたら、上書きして、参照ライブラリがインストールされるのを待ちます。(Eclipseの下段の進捗バーで確認します。)

テストコード

新しくクラスファイルを作成して、DICOMファイルを読み込んでみます。
正しく読み込めたか確認するために、タグの値を出力してみます。例えば、モダリティメーカーを出力してみます。

import java.io.File;
import java.io.IOException;
import org.dcm4che3.data.Attributes;
import org.dcm4che3.data.Tag;
import org.dcm4che3.io.DicomInputStream;

public class InputDCM {

    public static void main(String[] args) {
          String path = "C:\\Users\\RT-Mii\\Desktop\\dcmfile";
          File dcmFile = new File(path);
          try {
             DicomInputStream in = new DicomInputStream(dcmFile);
             Attributes attr = in.readDataset(-1, -1);//すべて読み込む
             System.out.println(attr.getString(Tag.Manufacturer));
             in.close();
          } catch (IOException e) {
             e.printStackTrace();
          }
     }
}
以上です。

Visionary Imaging Services, Inc.
2019/8/22

コメント