Windows用へのDCM4CHEE Archive 5.xのインストールを簡単な操作で行えるように改良しました。 以下の動画では、リカバリ+Windowsアップデートのみ行ったWindows 11 PCにインストールを行っています。 PCにあまり詳しくない方でもインストールは可能だと思います。 小規模クリニック向けに無料公開する予定ですが、今の所ニーズが低そうなので最終的な準備には着手しておりません。
※下記動画の再生回数とチェンネル登録数を見てもらえれば、ニーズがほとんど無いのがわかると思います。

無料/低価格PACSを使用するにあたっての問題点などを徹底的に検証解説します。

PACS

実行している様子の動画を用意しましたので参考にしてください。

古いバージョンである「DCM4CHEE Ver2.x」は、セキュリティホールの塊です。間違ってインストールしないように気を付けてください。 セキュリティ問題につての詳細は、DCM4CHEEのセキュリティを参照してください。

新旧DCM4CHEEまとめ
〇DCM4CHEE Archive light 5 - 最新のバージョン、当社提供のインストーラーあり、頻繁に更新
×DCM4CHEE Ver2.x - 古いバージョン、セキュリティホール有、インストーラー不明、最終更新は2016年1月(2018年9月現在)

PACSとは

PACSとは」どのようなシステムのことか、解りやすく説明しているので参考にしてください。

「DCM4CHEE Archive light 5」インストーラー作成

「DCM4CHEE Archive light 5」のインストールは、「Install DCM4CHEE Archive light 5.x」の手順に従い作業するだけですが、その手順があまりに長く大変です。 そこで、クリニック統合サーバーの構築用に「DCM4CHEE Archive light 5」インストーラー」を作成しました。 Ubuntu 16.04(18.04へも可能です)へのインストールなら5分程で終わります(インストーラーを起動してY + Enterを押していくだけです)。

「DCM4CHEE Archive light 5」のWindows 10へのインストール

「DCM4CHEE Archive light 5」をWindows 10へインストールしてみました。 「Install DCM4CHEE Archive light 5.x」にWindowsへのインストール手順も記載されていると思っていたのですが勘違いでした。 半日格闘してようやくインストールすることができました。

DCM4CHEEのセキュリティ

「DCM4CHEE Archive light 5」インストーラー」で少し述べましたが、「DCM4CHEE Ver2.x」はセキュリティホールの塊です。 今後、新たにDCM4CHEEサーバーを構築するには、「DCM4CHEE Archive light 5」一択です。 DCM4CHEEのセキュリティを参照してください。

PACS/Viewer 2018

DCM4CHEE 2.xがDCM4CHEE Archive 5 lightとして新たに生まれ変わりました。
DCM4CHEE旧バージョン(Ver2.x)の画面 DCM4CHEE Archive 5 light
左側の画像は旧バージョンの画面、右側がArchive 5 lightの画面です。今後、DCM4CHEEをインストールすると言ったらArchive 5 lightです。 左側の画像が載っているWebページは、インストール等の参考に全く役に立たないので注意してください(ほぼ別物です)。
その他にも、スマホで使えるViewerのiOviyam 2.0も登場しました。

電子カルテからWEASISを呼び出すのは、プログラム的に少し手間がかかります。
外来電子カルテからのPACSビューワー呼び出しを参照してください。

勤務先の病院では、バックアップ用のPACSサーバとしてDCM4CHEE 2.xを使用しています(ビューワにはWEASISを使用しています)。 また、昨年の開院時にIT関連をすべて用意した脳神経外科クリニックでは、DCM4CHEE 2.xとDCM4CHEE Archive light 5の2台構成で運用しています。 クリニックで運用する場合は、医事システム(ORCA)、電子カルテサーバーと同じサーバーにインストールしてもストレスなく使用することができます。 詳細は、クリニック統合サーバーを参照してください。

dcmtkで匿名化転送ツールの作成

PACSに保存されている画像の一部を匿名化して転送する必要があったためdcmtk使って実現してみることにしました。
dcmtkで匿名化転送ツールの作成1
dcmtkで匿名化転送ツールの作成2

PACS(Picture Archiving and Communication System)構築

勤務前からT社製のPACSが導入されていました。 導入1年後あたりにIVUSの画像もPACSに格納したいという要望がありましたが、T社製のPACSではバージョンアップを行わないとIVUSに対応できないとのことでした。 また、バージョンアップの費用が数百万円だったため、試験的にPACSサーバを構築してみました。

PACSサーバとしては、dcm4cheeConquest DICOMを試してみました。 また、ビューワとしてはWeasisOviyam K-PACSGinkgo CADxなどを試してみました(それぞれの問題点などは今後メモを残しておこうと思っています)。

結局、PACSサーバとしてはDCM4CHEE、ビューワとしてはWeasisを使用しIVUS用のPACSを構築しました。

画像のバックアップは無し?

巨大な画像のバックアップをどのように行っているのか気になっていましたが、なんとバックアップは行っていないとのことです。 RAID6なので2台のHDD故障まで耐えられるというのがバックアップを行わない根拠のようですが、データが全て消し飛ぶ状況などいくらでも考えられます。

5700件のデータ消失事故はなぜ起きたのか、ファーストサーバの事故の経緯と背景を追う

また、PACSサーバが日中帯まるまるダウンするという障害が発生し外来を中心に大混乱となりました。

このためDCM4CHEEサーバをIVUS専用ではなく、全画像を格納するバックアップ用サーバとして拡張させることにしました。

DCM4CHEEとは

フリーのPACSサーバ用ソフトです。javaで記述されており、Linux/Windows/MacOSなどで使用することができます。 また、DBもPostgreSQL、MySQL、ORACLEなどから選ぶことができます。

以下の記事は古い情報です。 DCM4CHEE 2.xがDCM4CHEE Archive light 5という新しいバージョンがリリースされました。

DCM4CHEEのインストール

基本的なインストール方法は、dcm4che.org Installationに記述されていますが、JAI Image IOの設定でトラブルに遭遇しました。
DCM4CHEEインストール メモ1(旧版)
DCM4CHEEインストール メモ2(旧版) JAI Image I/Oのトラブル
DCM4CHEEインストール メモ3(旧版)
以下、準備中

DCM4CHEEのトラブル1

IVUSのみの画像を格納していた時は、格納する画像も少なく特に問題は見あたりませんでした。 その後、バックアップ用サーバとして試験運用を開始してみると、WEASIS経由でのアクセスで患者によって画像が何も表示されないという問題が見つかりました。 Web上で検索すると、患者名に半角カナが使用されていると同様の問題が発生するという記載がありました。 ただし問題は発生していないとのWeb上の記載もあり、結局根本的な解決方法は見つかりませんでした。

WEASIS以外のビューワ使うことも検討しましたが、根本的な原因を究明することにしました。 まずは、WEASISのソースをダウンロードしデバッグコードを入れ原因究明を試みました。 結局、問題はjavaのコーディングで2バイト文字コードについて考慮されていない部分があることがわかりました。 WEASISのソースを修正し半角カナも使用できるようになりました。

DCM4CHEEのトラブル2

ログを確認すると、一部のモダリティで画像格納時にエラーが発生していました(SpecificCharacterSet.java内でStringIndexOutOfBoundsExceptionが発生)。 Web上で検索してみましたが特に情報は見つかりませんでした。

この問題もDCM4CHEEのソースをダウンロードしデバッグコードを入れ原因究明を試みました。 原因はWEASISと同様に日本語に関係するものでした。 詳細は忘れてしまったのですが、モダリティから送られるJISコードの書式に誤りがありエラーとなっていました。 モダリティが修正される可能性も低いので、この問題もソースを修正することにしました。

DCM4CHEEの現状

各モダリティからの転送ではなく、検像からT社製のPACSと同時に送信し運用しています。 上記のトラブル以外は特に大きな問題も起きておりません。

過去の画像もT社製のPACSから、エラーなどを確認しながら転送を行っております(ほとんど転送が完了しています)。 データ格納用ディスク15TBのうち約20%が消費されている状態です。

T社製のPACS(メイン)は、その後もHDD増設を繰り返しています(1回の増設で数百万円、ばかばかしいです)。 予備PACSのHDD増設なら6万円/6TBなのに。

意外に使いづらいPACS単体導入

大分前に勤務していた病院でもT社製のPACSを単体で使用していました。 当院での導入初期にも感じたことですが、PACS単体で使っていると意外と使いづらい印象を受けます(もちろんフィルムよりは便利になっているのですが)。

通常、画像を参照する端末では患者ID、患者名、検査日などから検索を行います(DCM4CHEEやK-Pacsなども同じです)。 紙カルテが手元にあれば患者IDで検索すればよいのですが、後で医局から閲覧しようとしたりカンファレンスのときなどは患者名や検査日などを頼りに検索することになります。 患者名をフルネームで覚えていればよいのですが、ちょっと前に退院した患者さんを閲覧したかったりと簡単に画像へたどり着けないことも多々あると思います。

入院患者に関しては完全な電子カルテとは言わないまでも、現在の受け持ち患者一覧、病棟にいる患者さんの一覧、検査やオペ予定、入退院予定などから画像を表示できるようになると使いやすいと思います。 また、主病名や現病歴程度でも入力しておくと便利だと思います。

DCM4CHEEのその後

その後、DCM4CHEEサーバは画像の予備サーバとして動かしっぱなしの状態が続いています。 一度メインPACSサーバでバージョンアップのために丸1日(休日)使えない日がありちょっとだけ活躍したが、それ以外は全く出番のない状態です。

約1年半の稼働でHDDは15TBのうち65%を消費しています。そろそろディスク容量アップをどうするか、検討しなければいけません。

新しくさらに大容量のDCM4CHEEサーバを作るとして、「インストール方法は、このページにメモしてあるからばっちり」と思って見てみたら中途半端なところまでしか記載してなくて...。
自作の電子カルテの改造やら機能強化ですっかり忘れ去っていました。

その他の設定した項目覚書(忘れないうちに)
(1)DCM4CHEEのポート番号変更(104)、AEタイトル変更。
(2)WEASISインストールの
(3)weasis-pacs-connectorのインストール
これを入れないと電子カルテなどから患者を指定して画像を開けません。
「http://server:8080/weasis-pacs-connector/viewer.jnlp?patientID=9702672」といった感じで指定した患者の画像を開くことができます。
(4)weasis-pacs-connector経由だと認証が行われないとのことです。
つまりブラウザで「http://server:8080/weasis-pacs-connector/viewer.jnlp?patientID=xxxxx」のxxxxxの部分を変化させながらURLを入力すると何の認証もなく画像が表示されてしまします。
代替手段としてpatientIDとaccessionNumberか何かのペアで使うようにと記載されていたと思います。
patientID以外は電子カルテ側で持っていないので、きやすめ程度ですが基本認証(apache経由)でアクセス制限を行う設定をしました。
(5)電子カルテから単純にweasis-pacs-connectorのURLを呼び出すと画像が無い場合の動きが変です。 「画像がありません」のようなダイアログボックスが表示されません。 特に空のブラウザが開いている状態だと変化が良くわからず、呼び出しているのか判別できません。
電子カルテ側で呼び出し状態の遷移を監視して検知するようにして対応しました(画像が無い場合のダイアログボックスを表示するようにしました)。 将来的には、格納されている検査の一覧を表示するようなステップが必要かと思っています(予備用なので、やる気が出ず手つかずの状態です)。
(6)DCM4CHEEでモダリティからの送信でエラーになっていた個所を修正
(7)WEASISで半角カナの名前を使うと画像が表示されない不具合を修正
ソースコード自体を修正する方法しか見つかりませんでした。

DCM4CHEEの次期サーバ

現在、HDDは15TBの85%を消費するまでに至っています。 具体的に次期、マシンの計画を始めました。 外付けで増やしていく方法もあるかもしれませんが、HDDも劣化しているでしょうし新しいサーバを構築しようと考えています。

HDDは、ちょうど6TBの安価なモデルが発売されたらしいのでこれを使用したいと考えています。 最近HDDは値下がり傾向なので1台2.5万円程度にならないかと期待しています(それなら8台で20万円)。 6TB HDD 8台でRAID6、実用量約36TB。これでも2~3年で枯渇してしまうと思います。

そうこうしているうちに、HDDの使用量が95%を超えてしまいました(消費量が増えている印象です)。 新しいマシンを作り安定させ旧データを全部移行させるには、それなりの時間がかかると思います。 他の業務もあり、そんなことばかりに時間をかけていられるわけでもありません。

そこで、一番古い年のDICOMデータを新しく追加した外付けHDDに移動するという安直な方法をとることにしました。 DICOMサーバを稼働させながら1晩かけてコピーを行いました。 最後にDICOMサーバを停止させ、「rsync」コマンドで再同期後、マウントポイントを変えればHDD追加完了です。 停止時間は20~30分ですみました。その間に行われた画像検査のデータは、検像端末が蓄えていてくれます。

DCM4CHEEのHDD増設

予備サーバーであることも手伝って、DCM4CHEE次期サーバ計画は未だに実現されていません。 そのかわり、外付けHDDが3台、合計16TBにもなってしまています。

DCM4CHEEのHDD増設手順をまとめました。参考にしてください。