仕事で必要になりまして、OpenDolphinというオープンソース電子カルテをMacOS X上のParallels Desktopで作成したUbuntu 14.0.4 上にインストールしてみました。あまり情報が出ていないので、せっかくだから方法をブログに書いておきましょう。

Parallels に Ubuntu 14.0.4をインストールする

Parallels Desktopには、Ubuntuなどのダウンロードで入手できるOSについては、そのダウンロードからインストールまでを自動的にやってくれる機能があるので、それを使ってUbuntu 14.0.4の仮想マシンを作成します。

メモリの増量

ここで自動的に作成される仮想マシンのメモリは2GBなんですが、OpenDolphinだけではなく、ORCA も同じ仮想マシンにインストールしていたところ、OpenDolphinがメモリ不足で正常動作しなくなってしまいました。そこで、メモリを4GBに増量します。仮想マシンがシャットダウンしている状態で、Parallelsから設定します。

UbuntuにDockerをインストールする

OpenDolphinはソースコードでも配布されていますが、より簡単に試すためにDockerイメージも配布されています。今回はそれを利用するので、まずはUbuntuにDockerをインストールします。インストール方法はDocker公式サイトの説明 にある通りです。

curl -sSL https://get.docker.com/ | bash  

OpenDolphinのDockerイメージをインストールして起動する

配布サイトの説明 の通りです。

docker pull dolphindev/postgres  
docker pull dolphindev/wildfly  
docker run --name dolphin-db -d dolphindev/postgres  
docker run --name dolphin-server --link dolphin-db:ds -p 8080:8080 -d dolphindev/wildfly  

ここまでで、OpenDolphinのサーバの起動は完了です。

ORCAのインストール

OpenDolphinでは、患者の情報は日医標準レセプトソフトからCLAIMプロトコルで取得します。
そのため、日医標準レセプトソフトもインストールして使えるようにしておきます。

日医標準レセプトソフト Ubuntu 14.04 LTS(Trusty Tahr)のインストールドキュメントの手順に従ってインストールします。

rootになって作業をします。

wget -q https://ftp.orca.med.or.jp/pub/ubuntu/archive.key  
apt-key add archive.key  
wget -q -O /etc/apt/sources.list.d/jma-receipt-trusty48.list https://ftp.orca.med.or.jp/pub/ubuntu/jma-receipt-trusty48.list  
apt-get update  
apt-get dost-upgrade  
apt-get install -y jma-receipt  

CLAIM対応モジュールのアップデートは別途下記のように行う必要があるそうです。

wget https://ftp.orca.med.or.jp/pub/data/receipt/outline/update/claim_update.tar.gz  
tar xvzf claim_update.tar.gz  
sudo bash claim_update.sh  

データベースをセットアップして起動します。

sudo jma-setup  
sudo service jma-receipt start  

データベースのパスワードを設定します。

sudo -u orca /usr/lib/jma-receipt/bin/passwd_store.sh  

ここで設定したパスワードは、最初の起動時に聞かれます。

そしてpanda-client2をインストールし、ORCAの画面を出すglclient2を実行します。

sudo apt-get install -y panda-client2  
glclient2  

ユーザ名 ormasterのパスワードとして、先ほど設定したパスワードを入力し、「接続」ボタンを押すとORCAの画面が出ます。

必要に応じて、「マスタ更新」を行い、最低限「マスタ登録」→「システム管理マスタ」→「職員情報」で、受付ができる医師を一人設定します。このあたりのユーザーインターフェースは非常に独特なのですが、まぁ慣れればなんとか、、、最初の開発時にもこれでいいのかという議論はあったような覚えがありますが、こういうのに慣れている事務の人に使ってもらうには、こういうのがいいんだと強く主張した人がいたなぁ、と、おぼろげながら記憶しています。でも今考えても、やっぱりそういう後ろ向きの考え方はどうかと思いますけど。なんだかんだ言ってもみんなすぐにガラケーからスマホになったしね。

ORCAとOpenDolphinをCLAIMでつなぐ

さて、このままだとCLAIM対応のデーモンが起動していないので、ORCA ProjectにおけるCLAIM実装 にある通り、設定して起動するようにします。

sudo dpkg-reconfigure jma-receipt  

いくつか質問が出ますが、このうち「jma-receipt 用に claim server をスタートしますか?」のところで「Yes」と回答します。 ORCAを再起動します。

service jma-client restart  

CLAIMによる通信は、仮想マシン上にあるORCAと、Mac上で動かすOpenDolphinクライアントプログラムの間で行いますから、通信できるお互いのIPアドレスを知っておく必要があります。いろいろな方法がありますが、最も原始的なifconfigを使ってみます。

まず、仮想マシン側のIPアドレスを知ります。

ifconfig -a  

dockerをインストールしてあるので、dockerのネットワークインターフェースもありますが、ここで注目するのはeth1のIPアドレスです。10.211.55.7/24 であることがわかります。

次に、Mac側のIPアドレスを知ります。Macのターミナルから、ifconfigで、仮想マシンのIPアドレスと同じネットワークアドレスにあるIPアドレスを探します。

10.211.55.2 というのがありました。これが仮想マシンとMacとの間での通信に使えるアドレスです。

では、glclient2を起動して、ORCAで受付した患者情報がOpenDolphinに送られるようにします。まずは、ORCA側のマスタデータをOpenDolphinから直接参照できるようにするために、OpenDolphinサイトの「ORCAとの接続」のうち、5.マスタ検索のための設定 をします。 postgresql.confpg_hba.conf への変更内容のうち、Listen_addressについては、仮想マシンのアドレスを加えて、「localhost, 10.211.55.7」とします。コメントを外すのもお忘れなく。 pg_hba.conf に追加する行は、

host all all 10.211.55.0/24 trust  

となります。

jma-receipt と postgresql の再起動が終わったら、6.ORCA の設定 に進みます。

「6-2.接続情報の設定」で使われる「送信用アドレス」には、Macのアドレスである「10.211.55.2」を指定します。

一通りのORCA接続設定が終わったら、いよいよOpenDolphinを起動してみましょう。

OpenDolphinクライアントのダウンロードと起動、CLAIM接続設定

OpenDolphinは、Dockerイメージでダウンロードできるサーバと、Macなどで動作させるクライアントプログラムからできています。クライアントプログラムは、Dockerイメージのページ からダウンロードできます。Javaプログラムなので、ダウンロードして解凍した中にあるOpenDolphin.jar をダブルクリックすれば実行できます。

これがOpenDolphinのログイン画面ですが、まずはサーバへの接続設定をする必要があります。 「設定」ボタンを押して設定画面に行きます。

「医療機関ID」「ユーザーID」はそのままで、「ベースURI」のホスト名の部分を仮想マシンのIPアドレスである10.211.55.7 に変更しましょう。 さらに、ORCAと接続するために「レセコン」の画面に行きます。

「機種」は「日医標準レセコン(ORCA)」として、「レセコンとの接続」は「クライアント」、「IPアドレス」に仮想マシンのIPアドレス、「ポート番号」に「8210」として、「このマシンでORCAからの受付情報を受信する」にチェックを入れます。「バインドアドレス」には、先ほど調べたMac側のIPアドレスを入れます。これを入れないと仮想マシンから接続を受けられないので注意してください。

ここまで設定して「保存」を押し、ログイン画面からデフォルトのパスワードのadminを入れてログインします。 そして、仮想マシン側で患者受付処理をすれば、自動的にOpenDolphin側に受付された患者情報が転送され、カルテの作成を始めることができるようになるはずです。