PACSサーバー(Orthanc)からJPEGで返される画像を表示する

tips
  • 2016.11.29
  • 技術情報

PACSサーバーに保存されているDICOMに含まれる画像や情報を取得するには、DICOM規格で定められている通信プロトコルに則って実装するのが常でしたが、近年DICOM規格に含まれるDICOMwebというHTTPプロトコルでの通信で画像や情報を取得できる仕様が策定されています。つまりわざわざハードルの高いDICOM通信プロトコルで実装する必要がありません。PACSサーバー側がDICOMwebに対応していれば、クライアント側では多くの開発者が比較的馴染みのあるHTTPプロトコルを使用してPACSサーバーから画像や情報を取得できます。

今回はこのPACSサーバーにオープンソースのOrthancを使用します。こちらのページから「Orthanc for Windows」を選択してインストーラをダウンロードします。

download

インストールが完了後、Orthancのヘルプの「Opening Orthanc Explorer」に記載されているようにhttp://localhost:8042/app/explorer.htmlをブラウザで開くと以下の画面が表示されます。

explorer

次に、以下のページからDICOMweb pluginをダウンロードします。

download_plugin

こちらはヘルプの「Usage」に記載されているパス(C:\Temp)に配置しておきます。

path

さらに、C:\OrthancにあるConfiguration.jsonを開いて先程のヘルプの「Usage」とその下にある「Server-related options」に記載されている部分を追加します。

config

ヘルプに従って構成ファイルを変更して保存した後、タスクマネージャーからOrthancを再起動します。

taskmgr

Orthanc Explorer(http://localhost:8042/app/explorer.html)で左上の「Plugins」ボタンをクリックします。以下のようにDICOMweb pluginが組み込まれているのが確認できます。

plugins

次に参照するDICOMファイルをOrthancにアップロードします。ヘルプの「Quickstart」ではOsirixのサイトからVIXのデータセットを利用していますのでこれをダウンロードしてアップロードします。

vix

Orthanc Explorer(http://localhost:8042/app/explorer.html)で右上の「Upload」ボタンをクリックします。あとはドラッグ&ドロップでDICOMファイルを選択して「Start the upload」をクリックします。

upload

アップロードが完了後、ヘルプの「Quickstart」にあるWADO-URIのURL(http://localhost:8042/wado?objectUID=1.3.12.2.1107.5.1.4.54693.30000006100507010800000005466&requestType=WADO)を参照すると以下の画像が表示できます。

wado-uri

LEADTOOLSのWindows Formsビューワー(RasterImageViewer)で表示する場合は、以下のように先程のURLをそのままLoadメソッドに設定して表示できます。

Uri siteUri = new Uri(TextBox1.Text);

RasterImageViewer1.Image = codecs.Load(siteUri);

rasterimageviewer

 

JavaScriptビューワー(ImageViewer)の場合も以下のようにURLを設定するだけです。

imageViewer.imageUrl = "http://localhost:8042/wado?objectUID=1.3.12.2.1107.5.1.4.54693.30000006100507010800000005466&requestType=WADO";

imageviewer

Windows Formの場合はImaging Pro、JavaScriptの場合はPro Suiteをご利用いただくことで上記のように表示できます。本格的な画像診断などのPACSクライアントを作成する場合にはMedical Imagingファミリー製品に含まれるハイエンドなビューワー(MedicalViewer)が必要かもしれませんが、シンプルな画像の表示で充分であればこのようにMedical Imagingファミリー製品以外で実装できる場合もあるかと思います。

トピックス一覧に戻る