電子カルテからの患者データ吸い出し 2

以前に電子カルテのデータ抽出の仕事をしたことがあるので、その話。

具体的な案件はこんな感じ。

数年間、A市で開業していたが、開業していた父親の突然の不幸があり、そちらを承継することになった。こちらとそちらの電子カルテにデータの互換性はない。何らかの形でそれまでの診療データを保管しておかなくてはならない。さて、どうする? といった案件。

ラッキーだったのは、使っていた電子カルテが OpenDolphin というオープンソースのものだったこと。データベースの構造をチェックし、ソースを読むと「ああ、これはいけるかな」と。

結論から言うと、データベース(PostgreSQL)からデータを吸い出し、文字情報はテキストファイルに、画像情報は画像ファイルに書き出すプログラムを書いて、これがうまく動いた。

元の dolphin のカルテ画面はこんな感じ。

で、変換プログラムの表示画面はこんな感じ。

元の dolphin の画面がかなり凝ったこと(java swing の JTextPane をカスタマイズして使用)をしていたため、そのあたりの処理をどうしようか迷ったが、画像が貼られていた位置にタグを打ち込む形で表示・保存させることにした。

上の図でいえば、元カルテのスズキジムニーの画像が表示されている箇所に
<image schemaholder 0>
というタグを表示させてます。

ならべくなら、カルテの書式情報も損失なく変換させたかったので。

というわけで、今回は電子カルテの実運用後の保管形態に関するお話でした。

ところで、噂に聞くに、電子カルテのデータ構造を秘匿化していわゆる「データを人質に取る」といった商売をしている業者もあるようです。 ビジネスだから、と思う反面、それっていわゆる電子カルテの3要件に違反するんじゃないの?といった感想も持った。なんかすっきりしてない。

こういった時に、適当なガイドラインがあると便利なんですけどね。
ここら辺の話はまた次回にでも。

(注)上ではテキスト情報と書いてますが、データベースから直接データを拾ってきているので、書式情報の取得も可能です。

フォントの種類、大きさ、色あたりまでは完全に再現できてますね。
Mac では、画像を埋め込んだ .rtf ファイルを表示できるアプリが普及していないため(テキストエディットで開こうとしてもできなかった)、画像の埋め込みまではやってませんが、理屈の上では可能です。
→ その後、画像表示などが容易な html ファイルに書き出せるように修正。
例えば、
という画面(のデータ)をデータベースレベルから抜いてきて html ファイルに再構成すると
ほぼ完璧に再現できていると思います。

 

(追記)なお、このソフトは、Save the DolphinS プロジェクトに発展しました。
我々が直接聞いた話ではないが、増田茂(増田ファクトという独自バージョンを作成していた医師)という人が「カルテ記載内容を取り出すのにこんなものは不要。getText で取ってこれる」という主張をしていたようです。
この主張は完全に間違ってます。
getText で取ってこれるのは JTextPane の(プレーンな)テキスト情報のみです。書式情報や、ましてや独自タグの位置や画像までは取ってこれません。

また、「WildFly を経由せずに PostgreSQL 内にある dolphin データベースの情報は取ってこれない」のような主張もしていたようです。
これも完全に間違っています。
WildFly と連動していても PostgreSQL 自体は、特に変わりなく通常のサーバープロセスとして動作しているので、適切な接続情報があれば情報は取得できます。(プロセスの意味などを知っていれば間違えないような事柄です。医学部しか出ていない医師ですから、詳しくないのはしょうがないにしても、知らないことをさもその道の専門家のようにいうのは社会人としてどうなんでしょう?)
確かに OpenDolphin が稼働している状態で別のプログラムから情報を保存しようとすれば、スキーマが崩れてしまうことは考えられますが、ここで想定しているのはそんな状況ではありません。
OpenDolphin はもちろん、WildFly すら止まった状態で PostgreSQL から直接 dolphin データベース内に保存してある情報を取得できるかどうか?を(かなり真剣に)検討してわけです。
ユーザーさんの置かれた状況を考えたら、かなり不謹慎で常識のない人の言動のように思えますし、極めて遺憾です。
(上記プロジェクト一同)

(追記2)その後(事業がメドレーに譲渡されて以降)、増田茂はメドレー的には 「OpenDolphin への関与はほとんどない」ということになったようです。
なぜ、オープンソースのプロジェクトで contribution があったり、なくなったりするのかよくわからない部分もあるのですが、「LSC との契約上、著作権表記が与えられていたが、(事業譲渡に伴い契約が切れたため)メドレー的には貢献者としては取り扱わない」ということのようです。
そうだとすると、本来の意味での(コードを書いたという意味での)著作権を彼は有しておらず、契約上持っていたに過ぎない著作権表記権(かなり大雑把にいえば、こちらは金銭的に取得することはできます)に基づいて我々を批難していたということになります。
ちょっとひどい話ですね。

 


 

電子カルテからの患者データ吸い出し -open Dolphinを例に-

再開後、一本目の投稿となります。緊張するなあ。

今回は電子カルテの話。

電子カルテは大変便利なのですが、その実体が、「紙」という物理的な物質に人間が理解できる形で記録されているわけではなく、SSD やら HDD やらといった電子媒体に人間がそのままでは認識できない「情報」という形で保管されているがゆえに、時に問題が生じるときがあります。
ああ、言い回しが難しいか。

例えば、電子カルテシステムの運用が終わった後でも、カルテはその性質からいって一定期間保存(必要に応じて情報の取り出し)しておかねばならず、その期間のシステム形態をどうするかって話です。まさか、現役稼働時のシステムをそのまま維持するわけにもいかんでしょう?

ここらへんの話は、あまり話題にも登らないんですが、現実的には重要だったりします。

(続)