電子カルテ

当院では,2008年の開業以来,電子カルテとしてオープンソースの OpenDolphin 1.3.0(デジタルグローブ社)を使用させていただいています。素晴らしいソフトをオープンソースで公開されているデジタルグローブ社には,とても感謝しています。

 どんな素晴らしい電子カルテも,実際に運用するには個々の医院に合わせたカスタマイズが必要だと思います。その場合,オープンソースなら,自院のためだけに自由にカスタマイズすることができます。このブログでは,OpenDolphin を当院で運用するにあたって,色々カスタマイズした内容を公開しています。


  • カスタマイズしたソースは公開しています
  • デジタルグローブ社はライフサイエンスコンピューティング(株)と合併し,現在同社のオープンドルフィンラボとなっています
  • 本家オープンドルフィンラボの OpenDolphin は既に ver. 2.x になっています

2019年4月18日 (木)

ORCA 登録情報変更への対応

push api には患者さん登録を行った場合に push 通信してくれる api がある。これを利用して,受付患者さんのデータ変更があった場合,dolphin 側で自動的に反映させるようにした。

淀橋亀三さんの性別と生年月日を間違って登録して受け付けしてしまった。

Before

orca の患者登録画面で性別と生年月日を修正して登録する。

Orca

すると,dolphin の受付リストでも変更が反映される。

After

ちなみに,患者登録通知の subscription イベント名として "patient_information" を送ってテストしていたのであるが,orca から反応がなくて悩んでいた。試しに "*" を送って全てのイベント通知をする設定にしたところ,患者登録通知も返ってくることが分かったので,受け取ったレスポンスをイベント名 "patient_information" でフィルターして受け取ろうとしたのであるが,なんと受け取れなかった。この時点て初めてイベント名が "patient_information" ではなく,"patient_infomation" であることに気付いた。あわててウェブページや仕様書を確認してみたら,全て "patient_infomation" になっており,やられたーと思った。これはハマる人が多いのではなかろうか。

2019年4月 9日 (火)

EditorFrame のツールバーをカスタマイズ

EditorFrame のツールバーをワープロ風にしてみた。

 
Editorframe_1

2019年3月27日 (水)

ORCA DAO

今のところ orca api で実装できなくて dao で対応しているのは以下の項目である。
これらについては,日医標準レセプトソフトに関する改善要望として送ってみた。

・マスタ検索

・push api で送られてくる診療内容コードから「診察」などの文字列への変換

・診療セットの一覧取得

・medicalsetreq での単位名取得

2019年3月26日 (火)

Push API

orca からの受付情報を push api + orca api + orca dao を使って受け取るようにした。これにより claim 通信は完全に使わなくなった。
push api では新規受付情報だけでなく,受付キャンセルの情報も送ってくれる。dolphin クライアント側でこれを利用することにして,受付キャンセルは orca でのみ許可し,dolphin クライアントでのキャンセルはできないようにした。

このような受付状態から orca 側で淀橋亀子さんの受付をキャンセルすると

Dolphinpvtbefore

Orcapvtdelete

キャンセル状態が dolphin クライアントにも伝わって受付リストから自動的に消失する

Dolphinpvtafter

2019年3月25日 (月)

ORCA API

orca の中途終了データ送信と病名送信は xml だったのを json に書き換えた。
さらに今回,orca api を使って症状詳記送信機能を新たに付けてみた。

KarteEditor または KarteViewer でテキストを選択して右クリックすると症状詳記メニューがでて,これを選択すると orca に症状詳記が送られる

Dolphincom Orcacom

取り消したいときは option を押しながら右クリックすると削除メニューが出て取り消すことができる

Dolphincomdelete

訂正して再送しているところ。api で送った症状詳記はレセプトに反映される

Dolphincomsendagain Orcarecept

2019年3月24日 (日)

open.dolphin.orca パッケージの作成

以下の 3つの API をまとめた open.dolphin.orca パッケージを作ってサーバ側に置いた。これにより dolphin クライアントは orca に接続する必要がなくなり,クライントのソースから orca 接続関連のコードを一掃してすっきりさせることができた。

ORCA API

以前からカルテデータを orca に送信するのに orca api を使ってはいた。しかし,orca 4.8 までは xml にして送らなければならず,正直プログラミングが苦痛でいじる気がしなかった。しかし,orca 5.0 から json が使えるようになり, jackson を使ってがぜん楽しくプログラムできるようになった。そこで,2017年から json での orca api プログラミングをこつこつ積み上げて,昨年末までに入院関連を除く api をすべて実装した。そしてやっと今年,足かけ3年を経てとうとう実運用までこぎつけた。

Push API

さらに orca 5.0 から WebSocket を使ったプッシュ通信の API が使えるようになった。orca に jma-receipt-pusher パッケージをインストールすると,外からの WebSocket 接続を受け付け,クライアントに受付情報などを送ってくれるようになる。

ORCA DAO

ORCA API だけでは取れない orca 情報もあるので,dao もパッケージに含めた。ちなみに,api と同じ処理を dao を使って処理すると,dao の方が 10倍くらい速かった。ただ,数十ミリ秒 vs 数百ミリ秒の違いなので,体感的にはほとんど分からない。


"Some languages can be read by human, but not by machines, while others can be read by machines but not by humans. XML solves this problem by being readable to neither."

2019年3月16日 (土)

複合機の蝶番修理

受付から,コピー機として使っている複合機のあたりからすごい音がして,蓋が開きにくくなったとの連絡あり。確認したところ,プラスチックの蝶番が折れていた。こういう力のかかるところにプラスチックの部品は無理なんじゃないんだろうか。というわけで,板金加工で修理した。

22 2

2019年3月 7日 (木)

mac で印刷の文字化け

OpenDolphin のカルテの印刷は,開業時の個別指導以来,11年間1度も使うことなく現在に至っている。先日,ふと思い立って印刷機能を試してみようとプレビューを出してみたところ,見事に文字化けしていた。

Mac

一方,Windows では文字化けしない。

Windows

Component に物理フォントを指定すると文字化けしなかったので,mac では PrinterJob の Graphics は Component の論理フォントの扱いがおかしくなっているようだ。印刷機能のためだけにいちいち物理フォントを指定するというのも非現実的である。そこで,PrinterJob の Graphics に渡す前に,BufferedImage の Graphics で一旦イメージに落として,そのイメージを PrinterJob の Graphics に渡すようにして文字化けしないようにした。

Macnew

PrintKarteDocumentView.java

2019年2月 8日 (金)

11年目の運用まとめ

11年目は,地震でひどい目にあった以外はほとんど何もしておらず,システム的には非常に安定した1年であった。

  • データベースの PatientModel の件数
    dolphin=# select count(*) from d_patient;
     count
    -------
    31203
    (1 row)
    
  • データベースの ModuleModel の件数
    dolphin=# select count(*) from d_module;
      count
    ---------
     1204225
    (1 row)
    
  • Dolphin サーバの df。used が 17G→16G に減少。なんでだろう。
    Filesystem      Size  Used Avail Use% Mounted on
    udev            977M     0  977M   0% /dev
    tmpfs           200M  3.0M  197M   2% /run
    /dev/xvda1       46G   16G   29G  36% /
    tmpfs           996M  4.0K  996M   1% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           996M     0  996M   0% /sys/fs/cgroup
    cgmfs           100K     0  100K   0% /run/cgmanager/fs
    tmpfs           200M     0  200M   0% /run/user/1001
    
  • orca サーバの df。used が 9.9G → 9.2G に減少。
    Filesystem      Size  Used Avail Use% Mounted on
    udev            3.0G     0  3.0G   0% /dev
    tmpfs           601M  8.2M  593M   2% /run
    /dev/xvda1       46G  9.2G   35G  22% /
    tmpfs           3.0G  4.0K  3.0G   1% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           3.0G     0  3.0G   0% /sys/fs/cgroup
    cgmfs           100K     0  100K   0% /run/cgmanager/fs
    tmpfs           601M     0  601M   0% /run/user/1001
  • データベースの dump ファイルのサイズ
    dolphin_db.dump.gpg 2,344,895,298 
    orca_db.dump.gpg 267,320,968
    
  • スタンプ数
    $ grep -c stampInfo stamp.xml 
    2089
    

2018年9月23日 (日)

地震で iMac のディスプレー割れる

9月6日午前3時7分,北海道胆振東部地震が発生し,当院のある札幌市東区は震度6弱に見舞われた。 停電のため地下鉄が動かず,信号機も消えてしまって道路も混乱,夜が明けてから歩いて医院に状況確認に行ったところ,iMac が全部画面を下に倒れてしまっており,1台 (iMac Late 2015) でディスプレーのガラスが割れてしまっていた。

Inchoroom Img_7893 Img_7891

停電のため診療どころか掃除機すら使えない状態であったが,7日午後までには電気が回復,バックアップマシン (iMac Mid 2010) を立ち上げ,卸さんに電話して冷蔵の薬品を注文,8日から診療を再開した。停電の影響で物流は大混乱,食料の入手にも一苦労の状態だったが,薬品はちゃんと8日朝に届いた。ありがたいことである。

当初,壊れた iMac はガラスが割れただけに見えたので,ガラスだけ買って交換すればいいと考えていた。しかし,調べてみると,最近の iMac は薄くするために表面のガラスと LCD が一体化しているらしく,ガラスだけ交換というわけにはいかないようだった。おとなしくアップルに修理に出すことにした。

Chat1 Chat2

アップルの修理サポートはチャットでアクセスできるようになっていて便利だった。チャットで見積と配送の手配をしてくれて,14日にヤマトさんが回収,20日には修理完了して戻ってきた。痛い出費ではあったが,3年使った LCD が新品になったと考えて納得することにする。

今回のことに懲りて,耐震ジェルを iMac に装着したので,次は大丈夫と思われる。

«10年目の運用まとめ