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

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

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

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

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

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

本当にいけるのかな?

 

カテゴリー: お知らせ | コメントをどうぞ

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

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

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

まずこのページに飛ぶ。

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

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

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

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

 

 

カテゴリー: med + IT | コメントをどうぞ

DICOM Viewer に segmentation 機能追加検討

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

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

例えば、前回の画像で

CT値    組織

-109 ~ -10     皮下組織

-9  ~   24    表皮組織

25 ~  229      筋組織

230 ~              骨組織

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

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

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

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

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

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

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

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

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

 

カテゴリー: AI | コメントをどうぞ

C# で簡易 DICOM Viewer

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

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

やや困る。

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

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

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

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

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

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

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

 

カテゴリー: C sharp, DICOM, med + IT | コメントをどうぞ

DCMTK を WIN10 にインストールしてみた(3)

試しにコマンドラインツール dcm2xml.exe を新規のプロジェクトとしてコンパイルしてみた。

最近の VC++ プロジェクトはテンプレートがいろいろあって違いがよくわからないのだが、CLR プロジェクトとした。

適当な DICOM ファイルをもってきて、走らせてみると‥‥

おお、ちゃんとヘッダー情報を XML 形式で書き出してくれている。

今回はジーメンスの DICOM ファイルで試しましたが、ライブラリの dicom.dic がなり充実しているので、これでピクセル値を読み込めれば割と簡単に汎用な DICOM Viewer ができそうですね。

 

カテゴリー: C++, DCMTK, DICOM, med + IT | コメントをどうぞ

DCMTK を WIN10 にインストールしてみた(2)

インストール自体はさほど難しくない。

(1)まず、DCTMKのサイトからソースを取ってくる。今回は Ver 3.6.0。(なお、最新版は 3.6.1 。かなりの頻度でマイナーフィックスが行われている)

(2)解凍した後、CMAKE で生成される .sln や .vcxproj を保存するディレクトリを予めつくっておく。

(3)CMAKE を起動し、CMakeLists.txt のあるディレクトリと(2)でつくったディレクトリを指定。


Confiure を押下すると CMAKE が設定を読み込んでくれる。

Generate を押すと .sln や .vcxproj ファイルを生成してくれる。

(4)Visual Studio を起動し(管理者権限で起動しておいた方がたぶん楽)、DCMTK.sln を読み込む。ALL_BUILD をビルド。INSTALL をビルド。

で、インストール自体は終了。

***.lib や ***.h ができているはずなので、あとは、必要に応じて組み込む。

 

カテゴリー: C++, DCMTK, DICOM, med + IT | コメントをどうぞ

DCMTK を WIN10 にインストールしてみた(1)

医療関係の方々と話をしていると「電子カルテや PACS からデータを取得して、自分なりに加工してみたい」という要望があるようだ。

自分が関わった電子的なデータの山から、疫学的な考察を引き出したり、定量的な画像解析的アプローチを試みたりしたいというのは、よくわかる話だ。「ビッグデータから機械学習の手法を用いて斬新すぎる結果を出してみました」みたいなニュースよりよほど信用があるように思える。

ところが、「そこにあるデータの山から必要とする情報をデジタル的に取ってきて、自分なりに加工する」というのが意外に難しかったりする。

電子カルテからテキストを抜いてくる話は以前にちらりと書いたので、今回は画像の話。

定量的な解析をしたい場合、画像上の任意のピクセルの本当の値(CT であれば CT 値など)を取得する必要があるが、この機能を提供する安価なソフトはほとんどない。

ちょっと前なら 「OsiriX 環境でプラグインを書いて‥‥」という選択になったのかもしれないが、現在では商用版の OsiriX は 10 万近くするし、何よりもプラグイン機能の仕様が明らかになっていないので手を出してみるのに躊躇する。

MATLAB でもできそうな気がするが、MATLAB の一般版は20万近くするという話だし何よりもまわりくどい。

まわりくどい、そうまわりくどい。例えば、OsiriX や Horos は、DICOM のメタ情報の処理に DCMTK というライブラリを用いているが、これは C++ で書かれたオープンソースプロジェクトでしかも CMAKE でインストール環境を提供しているので、プラットフォームによらず直接利用できる。

というわけで DCTMK を Windows10 + Visual Studio で利用できる環境を構築してみる。

 

カテゴリー: C++, DCMTK, DICOM | コメントをどうぞ

技術的中間搾取

以前に 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>

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

なかなか軽快。

カテゴリー: C++, Open GL, Visual Studio | 1件のコメント

Weasis をソースからコンパイルする

(あらかじめ maven は実行可能な状態にしておく)

ここからソースをダウンロードし、適当なディレクトリに解凍。

コマンドプロンプトで mvn clean install とタイプ。

↑な感じになれば成功。

とりあえず standalone で走らせたい。weasis-distributions に移動し、 mvn clean package -Dportable=true -DwindowsName= とタイプ。

weasis-distributions > target > portable-dist に weasis-portable.zip ができているので解凍して使用。

動作的には問題ないようだが、OsiriX や Horos でタグ編集や 3D 表示させた後だと機能的に物足りなさを感じる。

win 環境でかっこいい DICOM viewer はないものだろうか?

 

カテゴリー: DICOM, med + IT | コメントをどうぞ