HorliX v1.1.1 を Golden Gate で動かしたら、あっという間に落ちた。
Golden Gate 向けにビルドし直さないといけないらしい。

まあ、どうにかこうにか。
こちらのページで案内してます。
HorliX v1.1.1 を Golden Gate で動かしたら、あっという間に落ちた。
Golden Gate 向けにビルドし直さないといけないらしい。

まあ、どうにかこうにか。
こちらのページで案内してます。
PHORLIX Lite v1.1.4 を Mac App Store で公開しました。
前回、3D ビューアを外したのが不評だったので、今回復活させました。

セグメンテーションの作成はできませんが、閲覧はできます。
PHORLIX が、Mac App Store のメディカル有料部門で1位になりました。

OsiriX 系を抑えてのトップは嬉しいですね。
PHORLIX v1.1.0 が公開されてます。
今回はボリュームレンダリングの shading が強化されています。
描画難易度の高いいわゆる「ザイオアップル」も綺麗に描画できていると思います。

次期 macOS Golden Gate の開発者向けβ版が公開されたので、M1 MacBooPro に導入。
PHORLIX を走らせる。

まったく問題ないですね。
安心安心。
v1.0.3 からちょっと飛んで v1.0.7 のご案内。

図からわかるように主な変更点は
・2D Viewer 3 枚表示
・auto segmentation 機能
の二つ。
3 方向での表示がしたかったから、追加。
他のビューアでもあるのでどんなものかはわかるかと。
auto segmentation 機能は v1.0.5 から入っているのだが、あの時点では古典的画像操作によるものだった。v1.0.7 からは、AI を使ったものも追加した。
ただし、現時点では AI の結果を古典的セグメントに反映はできない。両者はパラレル。
使い方は、まず、通常通り DB からノーマルシリーズを選択。

2D Viewer を立ち上げる。

ここでは Auto Segment から CT Bone を選ぶ。
すると計算が始まる。
終了するとパネルが出現。

推定はするが、信頼度はそれほど高くないのでセグメントした領域の手動分類を行うことを勧める。終了したら Save 押下。これで確定する(DICOM SEG 形式のファイルも生成される。これはスタディから見るとモダリティが SEG であるシリーズの一つになります)。
この状態で 3D Viewer を立ち上げると、結果をサーフェスレンダリングで 3 次元表示してくれる。

この時点で PHORLIX は色分けされた個々の臓器を一つのオブジェクトをみなしている。Bone のチェックを外すと下図のようにマゼンダのオブジェクトの表示が消える。

CT Heart なども同様。
二つ以上 DICOM SEG ファイルができると Segmentation with SEGs というメニューが選べるようになる。実行すると個々の臓器のセグメントを統合してくれる。

古典的操作というのは、二値化などのことだ。今は AI 全盛の時代だが、ボクセル自体を操作しているので、結果の精度は元の画像と変わらず、まだ使い道があるのではないかと思う。だから実装したわけだが。
AI によるセグメントは MONAI whole segment の方を選んでください。
TotalSegmentator に搭載されているモデルをほぼそのままの形で使ってます。

処理時間はかかりますが、いろんな臓器をいっぺんに抜いてくれます。
ただしモデルの関係上、解像度は低くなります。
結果を見ると
・古典的方式は、処理が早く解像度も高いが、誤判定するときがある。
・AI は、処理に時間がかかり解像度も低いが、大きな間違いをしない。
のがわかるかと思います。
では、両者のいいとこ取りはできないのか?という話になりますが、これが難しい。ぜひ考えてみてください。
なお、PHORLIX でも古典的セグメントと AI セグメントの結果を統合する機能は現時点では実装されていません。
PHORLIX をダイレクト配信版、MacAppStore 版ともに v1.0.3 にアップデートした。
今回の更新のキモは、ROI の保存機能。
ROI も従来の直線の他に矩形と自由閉曲線を追加した。
これまでは直線距離を測って表示してそれでおしまい、だったのだが、記録した ROI は保存して再閲覧時に再描画できるようにした。なお、保存は DICOM SR 形式(SR: Structure Record)で、これ自体が dicom (のシリーズ)である。
HorliX/Horos にも似たような仕組みがあるのだが、SR の形式が独自で汎用性がなかった。
標準形式で保存できるメリットの一つは、他のビューアでも表示可能になること。
例えば、PHORLIX で ROI を作って書き出す。

書き出したファイルを他のアプリ、例えば weasis で読み込むとこのように表示される。

weasisi やるやん!ってなりました(※)。
確認のために Horos で作成した ROI 付きスタディを weasis に持って行きましたが、ファイル自体は読めるものの描画はされず。

開発メンバーの一人が以前に Horos はやりすぎるところがあると言っていたのは、こういうことだったわけです。
※ weasis も SCOORD3D まではサポートしていない。

たまに Horos の issues はチェックしているのだが、2D Viewer のアノテーションのフォントがどうしたこうしたと言っている人がいて、当初、何を言っているのかわからなかった。
まず、2D Viewer でアノテーションのフォントを変更するには
menu -> 表示 -> Font -> Show Fonts

で、フォントのダイアログを出して、そこで変更する。

確かに、ROI の方のフォントサイズは変わりませんね。
そりゃ、描画のメカニズムが違うから、変わらなくても当然・・・なのだが、説明するのが難しい。
Text rendered through the ROI class is converted into textures for easier OpenGL handling. Consequently, any font size change requests from the OS will generally be disregarded.
(ROIクラスを介して表示されるテキストは、OpenGLでの処理を容易にするためにテクスチャに変換されます。そのため、OSからのフォントサイズ変更リクエストは一般的に無視されます)Come to think of it, OpenGL dependencies were lurking here as well, not just in VTK.
(考えてみれば、VTKだけでなく、ここにもOpenGLへの依存関係が潜んでいましたね)
出典はここ。
要するに ROI で使われるテキストは、OpenGL のテクスチャとして、言ってみれば「画像」として取り扱われるので、OS からの要求に反応できないことがある、というような理屈です。
なお、ROI のフォントサイズは変えられないと思い込んでいたが、変えられる。

menu -> ROI -> Increase Font Size
のアイテムを押下する。
それにしても海外勢の注文はいつものことながらストレート。
PHORLIX に PaxServer のWebサーバ機能と C-STORE 機能を本格的に組み込みました。
トライアル版をこちらから落とせます。
AppStore 版はこちらからどうぞ。
Webサーバ機能の使い方はいたってシンプル。
menu -> PACS -> Show PACS Controll Panel
で、PaxViewer のコントロールパネルを呼び出す。

あとは、いつものように Start でWebサーバが立ち上がります。

C-STORE は簡単に言えば「LAN 上の他の dicom node からダイコムを受領する機能」です。
例えば、HorliX から 192.168.2.100:55556 で待ち構えている PHORLIX にダイコム通信したい場合、HorliX DB ウィンドウ上でスタディ(シリーズ)を選択→右クリックで以下のダイアログを出します。

send で、送信。
このとき、特定ポートで待ち構えていて受信する機能が C-STORE です。
使ってみると意外に簡単。
port や AT title の設定は、menu -> PACS で

で PaxViewer Controll Panel を出して、そこで行ってください。

デフォルトは AE title: PHORLIX, port: 55556 になります。
他には簡易ですが tag 編集機能を実装してます。
Lite の v1.1.2 のアップデートを PHORLIX にも適用。
現時点では、PHORLIX と Lite のビューア部はほぼ一緒だが、今度は変わってくると思う。
現時点でもストレージから画像情報を復元するのとファイルを直読みする程度の違いはある。
世の中には素直じゃない DICOM を吐き出すベンダーもあって、v1.1.2 はその対応。あまり本質的ではない。
具体的には、このページにあるダイコムファイルを読めるように修正。
例えば、林檎のやつは、v1.1.1 では以下のような表示になった。

これが v1.1.2 ではこのようになる。

本質的な修正ではないが、ダイコムといえばダイコムだしねえ。
仕方ない。
なお、今回の AppleReview はかなり早く直接配信版から遅れること数時間後に AppleStore から配信されましたとさ。