プラグイン -さて本題-

HorliX では、Horos のプラグイン(plugin)が走る。

ただし、以前にテストしたのは、Horos の中の人がコンパイルしたものをそのまま組み込んだにすぎない。

リポジトリからローカルにソースを落としてコンパイル。

Xcode の設定が面倒でしたが、しっかりコンパイルはできました。

Horos に手を出した理由の一つは、これまで特殊用途で作ってきた医療画像関連のソフトにある程度汎用性を持たせたかったからで、これで目標に一歩近づいたように思う。

 

ついでにプラグインの配布元を手持ちのサーバ上に設置。
こうなると案内画面も自前で改変できる。

画面が微妙に変わっているの、わかりますかね?

 

以前に予告した通り github のフォルダ構成も大幅変更。

ブランチをもう一つ追加し、余計なファイルを取り払って、こちらで独自仕様を追求することにした。従来のブランチは、今まで通りフォーク元の horos とつかず離れずにしておく(予定)。

 

また、Xcode を 9.4 に変えた。9.2 → 9.3 の変化は大きかったが、今回のは、はっきりいって違いがわからない。

Xcode上から大量の修正箇所をごそっとコミット・プッシュするのは、けっこう気持ちいい。

 

【2018】HorliX/Horos/OsiriX【上半期】

OS X は、HighSierra の次の OS から32ビットサポートを中止することが決定している。

HorliX/Horos/OsiriX もそれなりに影響を受けると思う。

 

OsiriX…既に32ビット版の OsiriX Lite は提供されていない。もうお試し版を提供する必要はないってことでしょうか。いいなあ。

 

Horos…巷で言われているようにHorosは全てが64ビットで走っているわけではない。さすがに次代のOSがリリースされるまでには64ビット対応を推し進めると思うが、あんまりうまくいってない印象。contributor の一人としても心配

 

HorliX…64ビットには完全対応。ダイコムプリントなどの機能も実装したい。また、フォルダ構成も変更の予定。せっかく用意した独自ライブラリなんかもホロス由来の Unzip をやってしまうせいで何度か上書きされてしまった。ライブラリは完全に本体から独立させ、リポジトリには含めない。こうした構成の方が開発者にとっては都合が良い(はず)。

 

HorliX/Horos 動作テスト プチβテスト 

HorliX/Horos は、開発環境ではそれなりに動くようになってきたので、他の Mac で動くかどうか試してみた。とはいっても手持ちの Mac ですぐに使えそうなのは、一昔前の MBP ( Mac Book Pro) のみ。

これでがんばってみる。

 

一般の Mac での動作確認

コードに署名をしたものは、やはりというべきか開けなかったが、無印は問題なく動いた。

ややパワー不足かと思っていたが、「ノートにしては大画面」+「GPU 使用」のおかげでかなり鮮明な画像を描いてくれた。

 

アイコンなどカスタマイズ

また、某教育機関向けのカスタマイズ作業にもとりかかった。アイコンを変えただけだがけっこうかわいくなった。→G-HorliX と命名。

まだ、公開許諾が取れてないので、ぼかしいれなきゃならないのが残念。

公開許諾が取れましたので、それに関する記事を書きました。

解剖ちゃんホーリックス

ネットワーク対応 PACS編

これで、同一ネット内に2台の HorliX/Horos がつながったので、PACS 的に DICOM 画像を受け渡しできるか試してみた。(PACS 関係は詳しくないので間違いがあればご指摘ください)

MacBookPro に HorliX

MacBook に G-HorliX

が走っている。AEタイトルや IP アドレスなどを適当に設定。

G-HorliX でツールバー上の「Send」アイコンを押下するとこのようなダイアログが出現する。

以前に落としていたダイコム画像を MacBookPro の HorliX に Send する。

一生懸命送ってます。

HorliX 側でも受領中。361枚のシリーズものなので数分かかる。感心したのは受領する度に通知が表示されたこと。

開いてみる。

ちゃんと送れてましたね。

なお、その後、大容量PACSサーバー Orthanc にもほぼ同様のやり方でファイル転送できるようにもなりました。→ HorliX can link with Orthanc

 

ネットワーク対応 SSL通信

続いて、これを SSL 通信でおこなってみたい。というのもデバッグしているとき、本家 Horos のコードのままだとバグがでているのに気がついたから。わかる範囲で修正してエラーメッセージはでなくなったが、正しく動作しているか確認したいのだ。

と思ったのですが、いきなり自己証明書で PACS 的な使い方をするとわけがわからなくなりそうなので、まずはウェブサーバー機能で試す。

SSLテストは、OpenSSL のコマンドを叩かないといけないのでいつも避けてたのだが、OS X はキーチェーンアクセスというものを使ってサーバー証明書がグラフィカルに作れるらしい。まずはそこから。

キーチェーンを起動して、証明書アシスタント >> 証明書を作成

 

指示に従って項目を選択。

大事なのは、最終的に「SSLサーバ証明書」をつくること。なお、名称は G-HorliX SSL とした。

これは、いわゆるオレオレ証明書というものです。実稼働させるときは、VeriSign 社などから署名してもらうとよいでしょう。

 

この作業が終わったら、HorliX に戻り 環境設定(preference)>> Web サーバ で設定画面を出し、https 通信を選ぶ。

再起動後、ウィンドウズ機ブラウザからまず

http://(HorliX IP アドレス):3333

を呼び出す。当然、つながらない。次に

https://(HorliX IP アドレス):3333

を呼び出す。今度はつながる。

このときの通信のやり取りをキャプチャソフトで解析すると

となってました。無事、SSL で暗号化されてましたね。

なお、通常の http 通信で同様の解析をすると

こんな感じで傍受できちゃいます。(当たり前ですが)平文ですので、一目見ただけでもやり取りしている DICOM 情報は、TOSHIBA の CT で撮像されたものだとわかりますね。

なお、本家ホロスはクライアントブラウザから URL を呼び出すとサーバは、キーチェーンを利用できない(作製した SSL 証明書を呼び出せない)らしく

というような画面で止まります。予想した通りの挙動。

本家では使えない SSL を使えるようになったり、なんか本家を超え始めた予感。

 

CDからのエクスポート

github issue に↓というヘルプがあった。

 

Can’t seem to load images from CD/DVD.
When DVD is popped in, the pop up window asking what to do with the files comes up, but when “copy” is clicked, the disk ejects without copying the files.

If I try to load them from the “Import” button top left, or from the File >> Import…>>Import Files menu, the copying happens at 1 image / 5 minutes (yes 5 minutes).

Can anyone help?

Mac OS Sierra 10.12.5

え? そんな落とし穴が、と思って HorliX でも CD から画像を読み込ませたが、300枚ほどを1分かからずに読み込みました。

 

HorliX/Horos 動作テスト タグ編集

Horos/OsiriX には色々便利な機能があるけど、もっとも有り難いのはタグ編集機能でしょう。

他のフリーソフトでもタグ編集はできないことはないですが、ほとんどのソフトで動作が不安定です。

なぜ、こんなことがおこるのか不思議に思った人は、ダイコムタグ編集周りのライブラリを調べると良いかもしれないです。

なお、HorliX では、ライブラリの最新版を載っけてます。私がよく使うんで。

今回は、タグ編集機能を使って A T さんを再度 Akihabara Taro さんに直します。

タグ編集機能はデフォルトではオフになっているので、そうなっている場合は、メニューバー >> HorliX >> 環境設定 で設定画面を表示させ 一般 ( general ) を選択。

メタタグ編集をオンにします。

タグ編集自体は簡単。

DBインスペクタより、編集したいスタディを選び、

Meta-Tag アイコンを押下。

タグ編集パネルが現れるので、編集したいタグの行を選択。

この状態で Edit アイコンを押下。するとセルが編集可能になるので適宜書き換え。

編集が終了したら、Apply アイコンを押下。

編集された行は赤く表示されます。これで問題なければこのウィンドウは閉じて構いません。

DBインスペクタに戻ると

無事、A T さんは Akihabara Taro さんに書き換わってますね。

お疲れ様でした。

 

HorliX/Horos 動作テスト 匿名化

DICOMファイルの匿名化は、研究目的などで比較的よく使われる機能だ。

その動作確認。

まず、匿名化したいスタディを選択。今回は Akihabara Taro 君。素敵な名前なのに…。

選択された状態で画面左上、ツールバーにある Anonymize アイコンを押下。

するとこんなウィンドウが出現するので、適宜情報を修正。

今回は Akihabara Taro を A T に変更。

Replace ボタンを押下。すると

DB インスペクタ上の表示ではしっかりと変更が反映されてますね。

 

なかなか調子いいですね。

 

air-h-128k-il

 

HorliX/Horos 動作テスト プラグイン周り

Horos/OsiriX では各種プラグインをインストールすることで、機能を拡張することができる。

HorliX でもこの仕組みがうまく働くかどうかチェック。

メニューバーから、プラグイン >> プラグインマネージャー と進む。デフォルトでは何もインストールされていない。

ここでは、JPEG 画像をDICOMデータとして取り込む JpegToDicom を選ぶ。

「Download & install」ボタンを押下。

有効にするには HorliX を再起動する必要がある。

再起動後、プラグインメニュ >> Database をチェックするとを JPEG to DICOM が選べるようになっている。

案内に従って適当な Jpeg 画像を読み込ませる。今回は HorliX のアイコン画像。

 

患者名も HorliX で登録。

すると…。

しっかりDICOM情報として取り込まれてますね。

 

これで Jpeg ファイルを HorliX/Horos に取り込むことができるようになりました。

air-h-128k-il

 

HorliX Ver 0.0.1

ホロス( Horos ) のコードを少々手直しすれば、Xcode 9.3 でもビルドは可能です。

まだ gihthub にあげる段階ではないのですが、少々解説します。

Horos on Xcode 9.3

なぜ、ホロスのコードが Xcode 9.3 でビルドできないのかといえば、同包されているライブラリのうちいくつかが 32bit でしかコンパイルされていないためです。

たいていのライブラリはソースを 64bit でコンパイルし直せば、問題ありません(この作業はほぼ終了)。

問題は、ソースがもはや存在しないライブラリです。

ここは私もちょっとひっかかったのですが、そういったライブラリのうち内容が推測できるものに関しては機能を新たに実装し直してビルドを通すことにしました。

こうするとビルドは通るのですが、その代わり元のライブラリはもう使えません。

結局、DICOM Viewer を部分的に作り直しているようなものですね。

このせいでファイル構成などはかなりすっきりしてきたと思うのですが、その代償として機能の一部が犠牲になりました。

代表的なところだとダイコムプリントでしょうか。

関連ソースを読むとネットワーク上のダイコム対応プリンタというものに独自のデータ形式で印刷データを渡しているのですが、前述のように機能が実装してあるソースがありません。がんばれば、実装も可能なんでしょうが、データ形式もよくわからないし、そもそもダイコム対応プリンタなるものが普及しているようには思えない。なので、この機能はオミットしました。

いや、どうしてもダイコムプリンターを使いたいという人がいれば、実装をがんばってみてください。みんな幸せになれますから。

HorliX

また、64bit 化を推し進めるうちにプロジェクト自体が本家 Horos から、微妙に離れてきたようなので(もう、コードも機能も違ってきている)、以前使っていた HorosJ というネーミングは今後止めます。

いちおう、HorliX (ホーリックス)と名付けましたので、今後はこの名称でお願いいたします。

Horos + OsiriX 

なので、Horlix ですね。

 

 こちらの名馬の名にもちらっとひっかけてたりもしますが。

⭐️ 最近(2021 春)ウマ娘というスマホゲームが流行っている状況も考慮して、ちょっと説明しておくと、ホーリックス号はジャパンカップ(JC などと表記される)でオグリキャップの最終直線での猛追を抑えて勝ち馬となったニュージーランドの牝馬。
勝ち時計の 2’22″2 は当時の 2400m の世界レコード(オグリも同タイム)。

アニメのウマ娘ではオグリは大食いでネタにされている感じもあるが、

コミックの『シンデレラグレイ』では堂々の主役。

オグリキャップといえば、4歳時(今でいう3歳時)のダービー裏街道の快進撃、タマモクロス・イナリワン・スーパークリークとの対決、有馬でのラストランあたりのエピソードが有名だが、純粋に強さとタフさを印象づけているのは、マイルチャンピョンシップ→ JC(上の動画) の連闘。
ここでホーリックスの出番がワンチャンある?

 

DICOM ファイル入手先

HorliX/Horos のサンプル画像として紹介していた akihabara taro 君のページがリンク切れになったようなので、海外サイトなどを物色。

DICOM Library

が目についた。

Web DICOM Viewer はなかなか使えそう。アップロードしたときの匿名化は自動でやってくれた方がいいかな。

試しに腹部 CT のデータを落として、HorliX に読み込ませた。

スライス厚が 0.6mm 程度なので動画書き出しすると面白いかなと思ってやってみました。

どんなもんでしょ?

これ読んでるだけでは伝わらないでしょうが、 HorliX はライブラリを適宜 64bit に置き換えているので、書き出し速度は本家 Horos に比べかなり速くなっています。

 

 

Horos 3.0 をソースからコンパイルする - High Sierra 編 –

HighSierra + Xcode 9.3 の組み合わせだと  HorliX/Horos のビルドはうまくいかないのだけど、HighSierra + Xcode 9.2 の場合は、ビルドはできるようです。

 

今まで試してなかったウェブサーバー機能も試す。

クライアントからブラウザ経由で無事アクセスできました。

画像は日本画像医療システム工業会さんからお借りしてきました。

なんかリンク切れになったようなので、海外サイト紹介の予定。

 

HighSierra 対応、(部分的)日本語化とけっこうイイ線までいってんのかと思います。

なお、Horos のソースを直接改変すれば、High Sierra + Xcode 9.3 でもビルドは可能です。→ Horix Ver 0.0.1

 

 

Horos 3.0 をソースからコンパイルする - Sierra 以前のOS編 –

そういうわけでHoros をソースからコンパイルしてみることにした。OsiriX があっちの世界にいってしまったので、仕方ない。(なお、Horos というのは医療画像ビューアです。詳しくはこちらをご参照ください)

といっても当方の Mac 環境は MacBook (12インチ)なのでがんがん使うわけにもいかないだろう。コンパイルしてちょっと使ってみる程度を目標にする。

なお、OS は 10.12 、Xcode は 9.2 。

準備(ここが大事)

CMake と pkg-config が必要になってくるので、あらかじめインストールしておく。homebrew がはいっているならば、

brew install pkg-config
brew install cmake

で問題ないと思う。

こっから先は単純作業。

 

ソースコードの取得

ホロスプロジェクトの github リポジトリからソースコードを取得する。

git clone "https://github.com/horosproject/horos.git" ~/horos3

数分で取得は終了すると思う。




コンパイル

先ほどつくった horos3 内にある horos.xcodeproj をダブルクリック。

自動的に Xcode が立ち上がるはずだ。

メニューバー >> Product >> Schema

で、まずコンパイル対象に Unzip Binaries を選ぶ。これでまず Build 。

これはあっという間に終わる。

次に、お待ちかね、Horos のコンパイル。

先ほどと同様の手順で今度は Horos を選ぶ。

で、 Build 。

この後、Xcode は、黙々とコンパイルしてくれる。ITK (というライブラリ)をコンパイルするのにかなり時間喰っている様子。途中、NSForm は deprecated ですよとかアラートが出るが(たぶん)気にしなくてよい。

MacBook だと 30 分程度でコンパイルは完了する。とりあえず Run させてみましょう。

無事立ち上がる。

試しに適当なダイコムファイルを喰わせてみる。

大丈夫、読み込めました。

以前に作成した3Dモデルは

いけてます。

お疲れさまでした。

なお、現在(2018/05)、github に上がってるバージョンは 3.0.1 です。

 

日本語化

Ver 3.0.1 から部分的にですが、Horos が日本語化されました。

上記のコンパイルがうまくいけば、特別な操作なしに日本語化された状態で立ち上がると思います。

てか、私が日本語化したところを本家が取り込んだんですけどね。

Horos 本家

Horos 日本語版 HorliX

時間がなかったのでサブメニューが日英混在という…。

ここはこう訳してほしいというのがあれば、コメント欄にでも書き込んでおいてください。手がすいたときに反映させます。

 

 

まとめ & 反省点

Horos はソースコードからコンパイルできる。

日本語化もできる。→ もともと日本語化されています。

Xcode のクセがいまいちつかめていない。

 

High Sierra でコンパイルするときの問題点

おそらくそのままではエラーが出てビルドできない。

同包されているライブラリのいくつかが32ビットコンパイルだからだ。

まずはXMLパーサーの Apache Xerces (アパッチ・ザーシーズ)から手をつける。

 

→長くなりそうなので稿を改めます