OpenDolphin HTML/PDF Viewer プロジェクト

 

はじめに

以前に Save the DolphinS というプロジェクトをやっていた。

OpenDolphin という電子カルテは、データ構造に癖があり、カルテ記載内容の抽出ですら、それなりに難しい。
そのため Save the DolphinS では、データベースに直接アクセスしてデータの抽出を行うソフトの作成を行なっていた。ソフトは -味も素っ気もない言い方だが-「データ移行ツール」と呼んでいた。

「データ移行ツール」は dolphin データベースに直接アクセスして、一応

・カルテ記載内容全履歴→プレーンテキスト(画像などの特殊タグ付き)+画像など

・カルテ記載内容全履歴→ rtf 形式ファイル(画像などの特殊タグ付き)+画像など

に抽出するところまではできていた。(どういうものだったかは『電子カルテからの患者データの吸い出し』あたりを参照してください)

OpenDolphin 本体はおろかアプリケーションサーバである WildFly がなくてもデータベースさえ活きていれば、このソフト単体で動作してデータ抽出が行えるのでそれなりに重宝していた。

ただ、これだと、データを他のシステムに移行する場合には便利でも、たとえば保管はしておきたいが閲覧だけでいいという場合、視認性の面で今ひとつの感は拭えない。

何かうまい解決方法はないかなと思っていたのだが、ひょんなことから移行ツールの出力を html 形式で書きだせばいいことに気がついて、ソースコードを改変して試してみたところ、まずまずうまく動いた。

細かいところでさらに修正したいところはあるのだが、例えば、以下のカルテ画面(↓)

を、html 形式で書き出すとこんな感じになる。

 

2号用紙風のレイアウトやフォントの属性、画像の添付位置までほぼ完全に再現されていると思う。

データ抽出というコンセプトは同じでも、(移行を考慮して)データをテキストと画像などに分離させて出力するのと(閲覧性を重視して)それらをを html にまとめるのは、使用目的の点で微妙に異なる。

また、この機能を移行ツール内に同居させておくのは、ソースコード管理の面でも何かと不便だ。

そこで、この機能を分離させ、単独のソフトとして独立させることにした。

今後はこちらを

OpenDolphin Viewer
OpenDolphin HTML Viewer
OpenDolphin HTML/PDF Viewer (PDF 出力にも対応したため改名)

と呼ぶことにする。

 

開発グループを代表して
猪股弘明

背景色を変更

実務的にはまるで意味がないのだが、白背景は味気ない気がするので背景色を OpenDolphin 特有の薄い緑( dolphin’s green というのだそうだ)に変更。

ドルフィン感が強くなった。

 

レスポンシブ対応

最近のウェブデザインは凝っていて、ブラウザの横幅を変更するとレイアウトを自動で調整してくれる。レスポンシブデザインなどというようだ。
この仕組みのおかげでPCのブラウザでもスマフォのブラウザでも、それなりに「見れる」レイアウトになっている。
これを狙って CSS を若干修正。

通常時がこうだとすると

ブラウザの横幅を縮小させるとある値(ブレークポイント)を境に右のいわゆる P 欄が左(SOA欄)の下に回り込む。

スマフォで閲覧することなどないかもしれないが。

 

P 欄(カルテ右半分)の検討

これまで、カルテの右半分(P 欄)は文字情報だけ抜いてきたが、実は処置・薬剤のレセ電コードも抜ける。

まだ、うまくまとめきれてないのだが、かなり雑にデータを書き出すとこんな具合になる。

赤枠で囲んだ部分が処置や薬剤の識別子(コード)で、その多くはレセ電コードと同一なはずだ。

実運用としては、ドルフィンから処置内容を ORCA に送った際に、この情報を受け取った ORCA はこれらコード番号に基づいて保険点数や窓口負担額を計算し、最終的にはレセプトに反映させている。

病院のシステムを入れ替えた際に、このコードが引き継げなくて処方内容を一から打ち込むことがよくある。とても負担だ。

本プロジェクトはデータの「閲覧」を強く意識しているが、上記の点に留意し P 欄に関しては若干レイアウトを崩してもこれらコードが表示できるようにしたいと考えている。

P 欄(カルテ右半分)の検討(続き)

通常 P 欄に記載される内容は、診断料や処方のほか各種検査のオーダーなどもある。
だから、まずドルフィン元カルテをこんな風にした。

カルテ左の SOA 領域よりも難しいのは、項目毎に処理を変えなくてはいけない点。

ここら辺、工夫してコードを修正。
現状だとこのようになっている。

プロトタイプとしては、十分な出来だろう。
なお、レセ電コードは、某所で聞いて見たところ「あったほうがいい」ということだったので、多少元カルテの表示と異なってくるが、表示させることにした。

また、この改変を機に元の OpenDolphin のコードは全て削ぎ落とした。
単純に表示させるだけなら、

dolphin データベース >> 読み込み >> オブジェクトの生成 >>
適当に修正して html 用に変換 >> 書き出し

とやった方が楽なのだが、P 欄に関してはレセ電コードを打ち出せるようには構成されていないので、結局、ここら辺のコードは全て廃棄した。
(SOA 欄は特殊タグを表示させる関係上、移行ツールの頃から使っていない)

html → PDF 変換

ところで、OpenDolphin の標準のカルテ画面の PDF 文書作成機能は、文字などもベクトルデータに変換していわば「画像」として PDF を生成しているようだ。
Mac の場合、フォントの関係(物理フォントと論理フォントというものがある)でデフォルトでは文字化けしてしまう。

そちらの修正はひとまずおいて、html → PDF 作成ができないか検討。

あれこれやっていたら、以下のように
フォント埋め込み形式の PDF が生成できた。

データ移行に関する厚労省の見解

実は、公式な文書はない。

ガイドラインの要請からして

・カルテ記載の文字情報や診断の根拠となったような画像の類

・処置内容の文字情報

・修正履歴や途中経過版

は最低でも移行しなければならないでしょう。

口頭でもそれっぽいことは言っていた。

現在、問い合わせ中です。→結局、明確な回答は得られず。

「最近、安全管理に関するガイドラインを公開したので、そちらを見ていただいて・・・」というような感じでお茶を濁そうとする。

「これだから、日本の医療 IT は」と思わないでもないが、文句を言っても始まらないので、ガイドラインに目を通す。

医療情報システムの安全管理に関するガイドライン 5.2 版』というのがそれのようだ。

んー、しかし、これ、(例の半田病院の件を受けてだろうが)従来の電子カルテの3要件などの基本的要件に加えて、さらにシステムには医療記録のバックアップの仕組みを付け加えなさいよ、と言っているだけのような?

本当に知りたいのはバックアップ時に書き出す情報の種類や質といったことなのだが。

ただ、以前に比べれば、要求は具体的にはなってきた。

ポイントとなりそうなところを抜き出しておく。

1.バックアップサーバ
システムが停止した場合でも、バックアップサーバと汎用的なブラウザ等を用いて、日常診療に必要な最低限の診療録等を見読できるようにすること。

2.見読性確保のための外部出力
システムが停止した場合でも、見読目的に該当する患者の一連の診療録等を汎用のブラウザ等で見読ができるように、見読性を確保した形式で外部ファイルへ出力できるようにすること。

3.遠隔地のデータバックアップを使用した見読機能
大規模火災等の災害対策として、遠隔地に電子保存記録をバックアップするとともに、そのバックアップデータ等と汎用的なブラウザ等を用いて、日常診療に必要な最低限の診療録等を見読できるようにすること。 

(p. 61)

今回の HTML/PDF Viewer に絡めて言えば、このソフトを使って定期的にデータベースからバックアップを取っておけば、上記の条件を満たしているのは自明だろう。
「汎用のブラウザを使って」とあるが、html を表示できないブラウザはあり得ないので、お釣りがくるくらい(なにしろ画像や処方薬の薬剤コードまで表示してくれる)条件をクリアしている。

一応、バックアップは取っておいた方がいいとは思うが、データベースさえ生きていれば、サーバが停止してもこの条件は満たしている。

ところで、なんで厚労省の役人がお茶を濁そうとしたのかわかるような気もする。
商用の電子カルテでも上記の条件を満たしているシステムは(現時点では)そうは多くないからだ。

病院の電カル・HIS の場合、半田病院や大阪急性期総合医療センターの件で明るみに出されたが、ガイドラインで推奨されている基準でバックアップシステムを稼働している施設はほとんどない。

開業医さん向けの電カルは、この点はかなり改善されてきて、

・CLIUS

・owel

などは、この機能が公式に提供されている。
いわゆる商用の電子カルテとは一線をかくすが、

・ダイナミクス

・OpenDolphin-2.7m (系列。今回、説明したバージョン。他の派生物に関しては完全に把握しているわけではないが、おそらくない)

も、こういった機能が充実している。

 

@masudanaika による個人情報流出ツィート

2018 年に X(当時は twitter)@masudanaika というアカウントが、精神疾患を持つ患者さんの個人情報を tweet したという事件があった。
masudanaika という名称からわかるように、建前的には和歌山増田内科(当時。現在は高槻病院勤務)の増田茂医師の個人アカウントとされていた。ただし、(後で触れるかもしれないが)個人的には、中の人は違う人だったように思う。

関係者の対応が迅速だったので、幸いなことにこの情報は大して拡散せず、大事にはならなかった。

なのだが、「そんなことはない」と言い張る人がいたので(前記事参照)、誤解がないように事実関係をまとめておこう。


私は精神科医なので、各種 SNS でも精神障害を持った人が私の投稿にコメントしてくれることがよくある。

2018 年の冬頃(さすがにここはぼかします)に facebook で OpenDolphin や HorliX に関する投稿をしたのだが、これに反応してくれた人がいた。

仮にAさんとしておきましょうか。

Aさんは、こういった話題に興味があるらしく、この手の話題には決まってコメントをしてくれていた。
こういう反応は嬉しい。ただ、まずかったのは、騒動がおこる2,3日前に「実は、私は◯◯という疾患を持っていて、リハビリも兼ねてプログラミングをしている」と古来より差別の対象になりやすい精神疾患の名を口にし、その疾患に罹患していることを実名でカミングアウトしたことだった。

どうしてこういうことをするのか私には理解に苦しむのだが、@masudanaika が、Aさんのコメント入りの私の限定公開記事のスクリーンショットを twitter 上にポストしてしまっていた。

しばらくしてそのことを私に教えてくれた人がいて、私も @masudanaika の twitter のタイムラインを調べ、当該ツィートの存在を確認した。

A さんが精神疾患を持っていることは、facebook 上の私の投稿の前後を調べれば全くの第三者でもすぐにわかってしまう。悪いことに実名登録だったので、これではすぐに特定されてしまう。
第三者が仮に悪意を持っていた場合、どのように悪用されるかわからない。

これはまずいと思い、すぐに和歌山の精神福祉関係の部署に電話連絡。

担当者は「もし事実なら、増田内科の増田茂医師に連絡してすぐに削除させます」と言い、以下のメールが私に送ってきた。

tweet 一年分。。。
普段であれば、うんざりするようなチェック作業だが、事態が事態だけにそんなことは言っていられない。果たして、なんとか該当のツィートをいくつか見つけた。

そのうちの一つがこれ(↓)。

画像下部にあるコメント欄にその方のコメントがある。
上の図では潰してあるが、もちろん顔写真と実名で書き込んでいる。
正直、血の気が引いた。

なるべくこの騒動は早期に収束させたいと即座に和歌山県の担当部署に連絡。

まもなく、このツィートは削除された。

この他にも厚労省本省にも連絡を入れ指示を仰いだりということはしたのだが、本筋と関係ないのでここでは触れない。


おおよそ、上のような顛末だった。

最初の方で「中の人は違う人」と書いたが、@masudanaika アカウントと実在の増田茂医師がまったく関係ないということではない。
事実、和歌山県の担当者が実在する増田医師に連絡を入れた直後に問題となったツィートは削除されたのだから、増田医師はこのアカウントと無関係ではない。ある程度は管理・運用にはタッチしていたのだろう。

しかし、(医師ならばわかると思うが)臨床系の医師がこんなリスクの多い情報発信をするとは到底考えられない。

また、この時期、増田医師は OpenDolphin というオープンソースの電子カルテの独自バージョン(増田ファクトなどと言われていた)を開発していて、ツィートもそれに関連するものが多い。
しかし、臨床に専従している医師が、本格的な電子カルテの開発やその広報をしている余裕などあるだろうか。なお、現在では、増田ファクトも増田氏自身が開発していたのではなく、違う人の手によるものではないかということを言う人が多いようだ。
なお、増田ファクトはシステムクラフト(広島三原市 代表: 杉原利彦)という業者が取り扱っていた。

おおかた、出入りの業者に運用させていて、普段はノーチェック。行政から連絡が入り、事実を知った増田医師が慌ててツィートを削除させたというのが、本当のところではないだろうか。

実際、この記事にこんな表現がある。

増田医師が一般人の個人情報を流出させた事実もありません

もし、@masudanaika の中の人が増田氏だけだとしたら、上記の経緯で顛末を知っている当事者は、私と増田氏と関係した行政担当者だけになるはずで、第三者が真偽の判断などできるはずもない。
だから、上の記事を書いた人あるいはその関係者(システムクラフトが wiki を荒らした事実はありませんとわざわざ書いていることから、同社関係者だろうか?)が @masudanaika の中の人であり、医師だったらまずしない個人情報の流出を行なっていた可能性が高い。
で、闇雲に否定していると。

いやあ、当の増田氏自身が(行政経由だが)一連の経緯を認めているんだが。

冒頭でこのアカウントの「中の人は違う人だったと思う」と書いたのはそういった理由による。

その後、実在の増田医師は、このアカウントから離れたのではないかと思う。

というのは、現在(2022/12)では、このアカウントのハンドルは Masudana Ika に変わり、アイコンも増田氏の似顔絵から烏賊のイラストに変わっているから。
日本の法律では非医師が医師を名乗ることは許されていないので、それに対する対応なのではないかと思う。

 

猪股弘明
精神保健指定医


参照記事をよく読むと「システムクラフトのホスティングサービス」云々とやたら詳しい記述があるので、このサイトの運営者は(少なくとも該当記事書いたのは)システムクラフト社の社員でしょう。

あとは、OpenOcean をあたかも商用ソフトのように言っているのだが、有償ソフトとして販売したことは全くない。

(追記)逆にいわゆる増田ファクト(opendolphin-m)は有償になったようだ。

 

医師と業者の不適切な関係(仮)

OpenDolphin がらみの記事が続いたようなのでついでで。

ANN2b 先生の『HorliX -wikipedia 風解説- にまつわるあれこれ』という記事にダル絡みした人がいたらしい。

この記事

増田内科のHP内に特定の個人を誹謗中傷する内容が作成された事実はありません。
又、増田医師が一般人の個人情報を流出させた事実もありません。

前者(HP内に特定の個人を誹謗中傷する内容云々)は残骸残っているかな。
私も残っているものをこの記事内にまとめている。
内容が見当はずれで、ご自分で消しちゃったみたいですが。

後者の方はかなり問題。
昔、増田茂(医師。当時、和歌山 増田内科所属)を連想させる @masudanaika という twitter (X) アカウントがありました。
その投稿のうちの一つで精神障害を持つ一般人の SNS 上の限定公開の書き込みが(たまたまだが)流出して、私とリアルの増田先生が(間接的に)協力して行政担当者に相談の上すぐに消させたという事実があります。
って、これだけだと何言っているかわからんね(そのうち詳しく書くかも→まとめました)。
ことがことだけに(患者さんのプライバシーに関わる)私と増田さんと行政担当者でうちうちに処理していたので、このことの細かな経緯は外部に漏れるはずないと思うんですが???

なんで知っているの?

増田茂氏以外の @masudanaika の中の人がこの記事を書いたってことでしょうか?

だとしたら、「なりすまし」みたいな問題が生じて、それはそれで問題になるんだが。

何言っているかわからないと思うので、そのうちまとめます。

Dolphin プロジェクトと皆川和史

以前にこの記事OpenDolphin に関して「向う(注:LSC の一部などのこと)も困っているのか人を介して元プロダクトマネージャーの方から、オープンソース版のとりまとめ役になってくれないかという依頼もあった」ということを述べたが、一部の人から「そんなことはない!」みたいな反応があったようである。

どうもこの手の人たちは「人を介して」の部分を読み飛ばして「とりまとめ役になってくれないか」だけに(なぜか)憤りを覚えていたようだ。

「LSC から(直接)とりまとめ役を頼まれた」と書いているのではないのだが?

その「人」が少々話を盛っているかもしれないので、私だって真に受けてはいない。だが、そういう話をふられたことは事実だ。

具体的には、twitter(X) の DM でこんなやり取りが行われていた。
その一部を抜粋する。

air_h_128k_ill 版というのは OpenOcean のことで、処方箋打ち出し機能などを備えていたが、本質的には OpenDolphin-2.7m と同じだ。
LSC が提供していたDcoker 版のドルフィンサーバーと通信し、目立ったバグはなく、ファイルバックアップ機能を有していたことから、当時、かなり人気があったのだ。

ここだけだと「とりまとめ役」というニュアンスは薄いが、会話相手が言うには皆川(和史)氏の希望としては「OpenOcean をベースに増田バージョン(増田ファクト)をマージし、オープンソースとしてメンテしていってほしい」というようなことだったらしい。

会話相手が盛大に話を盛ったかもしれないので、私もこれを額面通りには受け取っていないが、少なくとも「向うも困っているのか人を介して元プロダクトマネージャーの方から、オープンソース版のとりまとめ役になってくれないかという依頼もあった」という表現はそれほど間違っていないと思う。わざわざ「人を介して」と入れているのだから、その程度の文意は汲み取ってほしい。

ところで、今、読み返してみると、当時の混乱ぶりが窺い知れる。

例えば「OpenOcean は元々は増田ファクト」というトンデモな解釈。これは「一部」の人たちの間では、さも真実であるかのように扱われた。

これは完全な間違いで、Fork 順は

LSC Dolphin → OpenDolphin-2.7m → OpenOcean

というのが正しい。増田ファクトは入っていない。
そうでなければ、LSC のドルフィンサーバーと何の齟齬もなく通信できるわけがない。
(ソースコードから検証した内容を『ソースコード嫁』として記事にしました。オープンソース界隈の方からかなり好評のようです)

なぜ、そういったことを言ったのかは、現在なら、ある程度推測はつくが、その詳細を述べるのは、長くなりそうなので、ここでは触れない。が、相当焦っていたのは事実だろう。ドルフィンの担当役員を外され、LSC 自体の経営陣が刷新され、公的にはドルフィンと関われなくなりつつあったのだから。


この話はこれでおしまいなのだが、一応、付け加えておくと、この後、経営陣が刷新され新たに LSC に加わった担当者が直接当方まで会いにきてくれて、「本家リポジトリのメンテナになってくれないか」という依頼があったのは事実です。
OpenDolphin-2.7m は、LSC Dolphin の直系なので、悪い話ではなかったが、HorliX の開発でいっぱいいっぱいでお断りせざるを得なかった。

また、2020 のメドレー譲渡の際にメドレー担当者(マッチョな人、と言えばわかるでしょうか)から、やはりメンテナ就任の打診は(電話でですが)ありました。


これは、私の全くの想像だが、経営陣が刷新された時点で「基本的にはドルフィンはオープンソースをやめる」というのが決まっていたんではないかと思う(実際、2.7 以降、本家のリポジトリ更新はない)。
オープンソースであるが故にとにかく売れていなかった。
私は、かなり詳細なインストール記事を書いていたし、SOSO さんは本家ドルフィンにさらに機能追加した GlassDolphin をリリースしていた(その後、MIA も参入)。
この状況下では、あえて LSC Dolphin を選ぶ理由がない。


しかし、おかしなこと言わなきゃいいのに。。。

HorliX にコメントしてくれるのは嬉しいが、見当はずれとわかったら訂正して欲しいものだ。
実際、上二つのツィートは作成者が勘違いに気がついたかなにかして削除してあるのだから。
誰でもうっかりミスはある。それだけで咎めることは現実世界でもそう多くないと思うし、私も咎めない。
だが、ミスを認められず放置となると話は別だ。
不健全な自己顕示欲は、拗らせると碌なことにはならない。