Horos 再び

旧バージョンとしてすっかり放置されていた当ブログであるが、アクセス解析みたらそれなりに来訪者がいるようだ。

なかでも、「ん?」と思ったのが、「horos 日本語化」あたりで訪れてくれる人が多いこと。

ホロス(horos)コミュニティになんかあったのか?とHPのぞきにいったら、けっこう変わってましたね。

なかでも驚いたのは、Horos Academy なるトレーニングコースが設置されたこと。

ホロス、学帽かぶってるよ…。

あと、ユーザー同士の Q&A のコーナーがごっそりなくなっていた。私もけっこう初歩的な質問には答えていたんだけどなあ。慣れない英語で。

全体的に教育・サポートで収益化をはかりたいという方針が前面に出てきたようだ。

how to install みたいな記事も上記アカデミー内にうつされたようで、これだと、初心者にはソースからコンパイルして Mac にインストールすることも難しいだろう。

 

なんだろう。この軽く裏切られた感…。

 

ちょっとインストールトライしてみるか。連休だし。

 

(追記1)…おおっぴらに書いていいかどうかわかりませんが、ダウンロードページは、こちらのようですね。

(追記2)…依然のように Xcode で一発!というわけにはいかないようですね。CMake が導入されてました。CMake 使ってるということは、Windows への移植も視野にいれてんのかなと思いました。

(追記3)…参考までに OsiriX に関して調べましたが、愕然。商用版の OsiriX MD とデモ版の OsiriX lite があって、MD の方は $699 。これはちょっと高くなりすぎのような…。

 

レンタルサーバから遠く離れて

このブログを含め各種コンテンツは某社のレンタルサーバ上で動いているのだが、

・PHP7 系列は当分使えそうもないこと

・Java は今後とも動かないこと

が、確定的になり乗り換えを検討することになった。安価で容量もたっぷりあって今まで重宝していたのだが、機能の進化が止まった以上、そうせざるを得ない。まー、またどこかのレンタルサーバで、と思っていたのだが、AWS (Amzon Web Service) も使えるのでは、という話も出てきた。

ネットではこんな情報もあるし。

本当にいけるのかな?

 

SQL Anywhere ベースの医療情報システム解析 準備編

SQL Anywhere ベースの医療情報システムはけっこう使われているようだ。

とりあえず各種ツールをセットアップしないことには始まらないので、まずそのインストール。

まずこのページに飛ぶ。

実際のダウンロードは英語ページから。

インストールするとデスクトップにアイコンができているので、起動するとこんなウィンドウが立ち上がる。

あとは、既存データベースにつながればいいが、さてどうなることやら。

薬局で使われているようです。

 

 

DICOM Viewer に segmentation 機能追加検討

CT 値(ハウンスフィールド値)が求まると面白いことができるようになる。

その一つは、画像上である程度まで組織を分離(segmentation という)できるようになることだ。

例えば、前回の画像で

CT 値 組織
-109 ~ -10 皮下組織
-9 ~ 24 表皮組織
25 ~ 229 筋組織
230 ~ 骨組織

と閾値処理すると↓のような感じになる。

大雑把にはいい線はいっているのだが、細かいところではダメダメである。

骨組織は文句なし、筋組織はまずまずといったところだが、致命的にダメなのは神経組織がまったく分離できないこと。

これは神経組織のCT値が 30~40 であり、筋組織と値が被ってしまうことによる。

かなり以前に行きがかり上この課題に取り組んだことがあるが、そのときはアルゴリズムを工夫することで、半自動的にセグメントできるようになった。

最近の研究結果はどんなもんだろうかと先ほどざっと調べたが、あまり決定的な仕事はなされていないようだ。

やはりあったかと思ったのは、deep learning の手法を用いて云々というもの。流行りなので手を出したい気持ちはわかるのだが、今ひとつピンとこない。この課題の延長線上には、当然、「計算機による画像診断」というかなり重要なテーマが控えているのだが、その際には、どうしても「診断根拠」というものが必要になってくる。現時点での deep learning 的手法は、判断の根拠といった部分の機構が上手く説明できていないような気がする。

もちろん、探索的に用いるのなら有効だろうが。(確か Alpha Go も新手の生成のときにしか deep learning を使っていないはずだ)

ともあれ、目的も成果もわかりやすいこの分野、みなさんもトライしてみてはいかがでしょう?

 

C# で簡易 DICOM Viewer

いさんで DCMTK をコンパイルしたものの、 C# からは、当然、直接は使えない。

何か適当なツールがあるだろうくらいに考えていたのだが、ありそうでいて意外にない。GDCM というライブラリを使う手もあるらしいが、これはこれで一手間かかる。

やや困る。

面倒なのでライブラリなしで直接ダイコムファイルを読み込んで解析。(結局、こうなる‥‥)

それっぽくは書き出せたが、確かジーメンスは CT値に何か下駄をはかせていたはずで、コントラストがおかしい。

(追加)‥「下駄をはかす」というのは Rescale Intercept というらしい。生データが必ずしも CT 値とは限らないため、

CT 値 = (生データの値) * Rescale Slope + Rescale Intercept

で、変換する。Tag は (0x28,0x1052)。この式に基づいて変換すると

と撮像・記録したときのコントラストで画像が再現できる。

よくわからなかったのは、Window Center & Width に値が二つ設定されていた点。40/700 と 200/3200 とであった。まあ、(40, 200) の設定でよいのだろうが、これがジーメンス固有のものであるかはちょっとわからない。

 

技術的中間搾取

以前に windows 環境下でかっこいい DICOM Viewer がないみたいなことを書いた。

では、Mac 環境下の OsiriX や Horos が、満足すべきものかというとそうでもない。機能の豊富さは認めるが、ちょっと凝ったことをしようとすると、ソースの改変が必要になってくる。が、これらのプロジェクトは、ソースの改変をするには、ドキュメンテーションが決定的に不足しているように思える。

ところが、これらのパッケージを支えている ITK や VTK といったライブラリは、とんでもないくらいにドキュメンテーションが充実している。使われている英語も平易だ。

なぜだろう?(笑)

これは、以前に電子カルテを取り扱ったときにも同様の感想を抱いた。Java 自体が C++ に比べれば習得しやすい言語だし、hibernate や jersy といったライブラリも開発元サイトにいくとドキュメントが充実していることがわかる。

上流にある技術のキモは真に新規性がありかつわかりやすいのだが、そこから派生していくにしたがってどんどんわかりにくくなっていく。

いつものことといってしまえばそれまでなのだろうが、高度経済成長期ならいざしらず 21 世紀のオープンソースプロジェクトでこんなことしててもしょうがないんじゃないの?とは思う。

Win10 で OpenGL

windows 10 & Visual Studio 2015 環境下で OpenGL を扱おうと思ったが、けっこうハマりポイントがあるようなので、忘れないうちにメモ。

ここから、ソースを持ってくる。最新版は 3.0.0 だが、CMake を使う必要があるらしい。面倒なので 2.8.1 にした。

Lhaplus などで解凍。

解凍すると /VisualStudio/2012/freeglut.sln があるはず。これを Visual Studio 2015 から強引に選ぶ。勝手に変換してくれる。

Releaseモードにして,freeglutのビルド。

lib ディレクトリに freeglut.dll と freeglut.lib ができているはずなので、それぞれ C:\Windows\SysWOW64 と C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib にコピー。

include\GL ディレクトリには、freeglut.h, freeglut_ext.h, freeglut_std.h, glut.h ができているので、とりあえず C:\Program Files (x86)\ Microsoft Visual Studio 14.0\VC\include にコピー。(C:\Program Files (x86)\Windows Kits\10 の方にコピーしてもいいように思うが、試していない)

これで準備終了。

コーディング時には

#include <glut.h>

などとして利用。試しにこちらのサンプルプログラムを走らせてみた。

なかなか軽快。

Xcode8 でビルドされたファイルの出力先を変更する

デフォルトだと

/Users/(ユーザー名)/Library/Developer/Xcode/DerivedData/プロジェクト名+謎の文字列

だが、ピンとこないので以下のように変更。

Xcode8 自体の環境設定→ Locations → Derived Data を Ralative または Custom に

これでビルドされたファイルがプロジェクトフォルダまたは指定したフォルダにつくられる。

 

Horos plugin は使えるか?

horos シリーズ。

OsiriX の利点の一つとして「plugin を組み込むことで機能の拡張がはかれる」というのがある。例えば、 jpeg 画像ファイルを読みこみ DICOM ファイルとして保存させておくということができたりする。

なので Horos でもできないか確認。

plugin を Horos 用にコンパイル。ここは問題ないようだ。拡張子を .horosplugin とするのが作法か。

次に、適当な jpeg ファイルをつくり plugin 機能を使って Horos に読み込ませる。

で、タグを編集して、CT っぽくして3次元化。

あとは、普通に 3D レンダリング。ついでに動画書き出し。


 

割と機械的な作業の連続ですが、一応できたということで。

至高の win機登場か?

出先でも PC に触れなくてはいけない仕事柄、みなさん、モバイルPCの選択は慎重。
CPUパワーがある程度あって、画面もフルHD以上(ブラウザ広げながらプログラミングするにはフルHDでも厳しい)、かつ携帯性にも優れていて…と選択基準も現実的。
Win 機だと Dell の XPS13 の人気が高いようです。
メイン機はみなさん趣味が分かれます。

そこに HP から Spectre x360 発売のお知らせ。
私なんかはデザイン性に惹かれる方なんですが、みなさんは「SSD 1T あるのはいいねー、もう容量気にしなくて済む。パッケージした人はよくわかってる」、「金属ユニボディは正義! XPS13 のカーボンファイバー部は指紋が気になる。ただ、ヒンジ部の耐久性が…云々」とどこまでも現実的(笑)。

空いた時間に YouTube の『 HP spectre x360 vs MacBook 12』みたいな比較動画でチェックしているようです。(でも、あちらの方はこういうの本当に好きですねえ)

私は、「雰囲気が Mac っぽいので好き!」それだけです…。