OpenDolphinとは

OpenDolphinとはオープンソースの電子カルテです。デジタルグローブ社にて開発され、現在ライフサイエンスコンピューティング(株)に引き継がれています。
本家はこちらです。
2014年のある日OpenDolphinを使ってみようと思い立ちました。それが苦労の始まりです。これはその時のメモです。
オープンソースなのでソースは公開されていますが詳しいインストール方法や使用方法の資料はありません。
数ヶ月ネットをさまよって試行錯誤をしてみましたがうまく動作させることが出来ずにいました。
ある日こちらのページを発見し実に簡単にインストールできました。
更に2015年1月に本家に構築済みのサーバーソフトと説明書が公開されました。
これでやっと実際動作させることができました。
OpenDolphinは現在Ver2.?になっていてVer1のころから使っている場合が多いようで、データベースは前のものを引きついで使用しているようですが、 自分は初めてなのでまっさらな状態からのインストールになります。


現在使えそうなものは2つで、本家バージョンと増田内科バージョンがあります。



参考
OpenDolphin 本家はこちらです。
増田内科 個人で積極的に開発を行っているようです。
日本ライフセンター
OpenDolphin 2015年1月24日 衝撃の本家(2)本家Version 2.5.12を簡単にインストールできるスクリプト
OpenDolphin 2014年9月21日 Ubuntu14.04Server LXC上で OpenDolphin構築(2)増田ファクトをインストールできるスクリプト
OpenDolphin 2015年1月20日 Ubuntu14.04 Server LXC上で OpenDolphin構築(3)これも必要
高東ソフトウェアサービス/OpenDolphin Ver.2.5.12(2015-1-15) のインストール 本家バージョンをWindowsにインストールする方法が書かれています。

増田内科バージョン OpenDolphin-2.3m_WF8 のインストール

まずUbuntu14.4を準備します。

上記のブログではUbuntu14のサーバーにインストールしていますが、デスクトップの方が便利なのでubuntu-14.04.1-desktop-amd64.isoを使用しました。
ダウンロード先はこちらなどUbuntu Desktop 日本語 Remixのダウンロード

以前ならこれをCDに焼いてPCにインストールするところですが、最近テストには仮想PCを使っています。
今回はvmware player Ver7を使用しました。
vmwareはこちらです。vmware playerは非営利目的なら無償で使用できます。非常に便利でありがたいです。
ダウンロード VMware Workstation Player

vmware playerやUbuntuのインストールについては他を見てもらうとして、注意点としてUbuntuインストール時のユーザー名は「ubuntu」で作成しておかないとスクリプトでエラーがでます。

UbuntuがインストールできたらUbuntu14.04Server LXC上で OpenDolphin構築(2)のページに従ってスクリプトを実行していきます。

以下はページのコピペです。(以前参考にしていたサイトが消えて困ったことがあるので)
$ sudo apt-get update
$ sudo apt-get install git

$ git clone https://gist.github.com/a337a19d9824fdb69f53.git

$ cd a337a19d9824fdb69f53/

$ chmod +x *.sh

1.M先生のソース持ってきてビルド
$ sudo ./buildopendolphin.sh

2.PostgreSQLインストール&dolphinデータベース作成
$ sudo ./setpg.sh

3.Wildflyインストール+JDBCデプロイ、コネクションチェック
$ sudo ./setwfly.sh

4.DolphinDSのセット
$ sudo ./setdolphinDS.sh

5.warなどのデプロイ
$ sudo ./setwar.sh

6.自動起動設定
$ sudo ./setrcd.sh

さしあったてここまでで完成です。以下は必要時に使用します。

7.起動
$ sudo service wildfly.sh start

8.リストア(新規導入時:M先生の導入書参照)
$ sudo ./restoredolphin.sh dolphinxxxx.dump

9.停止
$ sudo service wildfly.sh stop

10.再起動
$ sudo reboot

次にUbuntu14.04 Server LXC上で OpenDolphin構築(3)のページに従ってスクリプトを実行していきます。


$ sudo ./v6off.sh

wildflyのせいでエラーが出るので修正
4.の後、5.の前で jackson2.4.1から2.4.4への変更
$ sudo ./json.sh

ORCAからのCLAIM受診を可能にするための設定
/etc/hosts に
127.0.1.1 hostname (hostnameはコンピュータ名「hostname」ではない)
となっている行ができるので、ここを実アドレスに書き換える。

ここまでで一応サーバーは完成です。一度リセットした方が良いでしょう。


次にクライアントを準備します

クライアントでは OpenDolphi-2.3m_WF8.jar を起動できるようにします。
OpenDolphi-2.3m_WF8.jar は /a337a19d9824fdb69f53/OpenDolphin-2.3m_WF8/dist 内にできているはずです。
クライアントマシンは Ubuntu でも Windows でも Mac でもOKなはずです。起動するマシンに OpenDolphi-2.3m_WF8.jar とlibフォルダーをコピーします。
当然JAVAが実行できるように設定する必要があります。

現在作成中のUbuntuで起動するには、ターミナルで
$ sudo Nautilus
でファイルマネージャーを起動し
OpenDolphi-2.3m_WF8.jarを選んで右クリック プロパティー→アクセス権→プログラムとして実行可能をチェック
これでダブルクリックで起動可能になります。

設定→ベースURL は http://localhost:8080
サーバーのUbuntu以外のマシンからアクセスする場合はベースURL は http://192.168.??.??:8080(192.168.??.??はOpenDolpinサーバーのアドレス)
ユーザー:admin パスワード:admin でアクセスできます。

ですがここでアクセスしてもログインできません。理由は管理者情報がデータベースに登録されていないからです。
OpenDolphin ver1.? ではデータベース初期化ができたのですが、 ver2.? になってから削除されたようです。
なお、データベースのテーブルは初回アクセス時に自動生成されるようです。


管理ユーザーを作成します

仕方ないので、直接データベースにデータを登録して管理ユーザーを作成します。
psqlを使って下記のSQL文を発行します。
下記initdata.sqlファイルを作成して次のコマンドを実行します。
$ sudo -u dolphin psql -U dolphin -d dolphin -W < initdata.sql
パスワードを2回聞かれます。
ubuntuのパスワードはインストール時に自分で設定したものを入れてください。
dolphinのパスワードは「dolphin」です

initdata.sql
/*sudo -u dolphin psql -U dolphin -d dolphin -W < initdata.sql*/

INSERT INTO d_facility (id, facilityid, facilityname, zipcode, address, telephone, url, registereddate, membertype) VALUES (1,'1.3.6.1.4.1.9414.10.1','シルククリニック','231-0023','横浜市中区山下町1番地','045-681-5251','http://www.hospital.jp','2014-12-30','FACILITY_USER');

INSERT INTO d_users (id, userid, password, sirname, givenname, commonname, license, licensedesc, licensecodesys, department, departmentdesc, departmentcodesys, membertype, memo, registereddate, email, facility_id) VALUES (2,'1.3.6.1.4.1.9414.10.1:admin','21232f297a57a5a743894a0e4a801fc3','オープン','ドルフィン','オープン ドルフィン','doctor','医師','MML0026','01','内科','MML0028','FACILITY_USER','\N','2014-12-30','admin@hospital.jp',1);

INSERT INTO d_roles (id, user_id, c_role, c_user) VALUES (3,'1.3.6.1.4.1.9414.10.1:admin','admin',2);
INSERT INTO d_roles (id, user_id, c_role, c_user) VALUES (4,'1.3.6.1.4.1.9414.10.1:admin','user',2);


これでadminユーザーが作成され管理者としてログインできるようになります。
このデータはOpenDolphin Ver1.? で初期化時に作成されるものです。
1.3.6.1.4.1.9414.10.1はIDのようなもので、OpenDolphinにハードコーディングされているので変更不可です。
クリニック名とURLはダミーです。
住所と電話番号はOpenDolphinの開発元の住所と電話番号のようです。




ORCAとの連携を設定します

カルテを開くには患者を登録する必要がありますが、OpenDolphinには患者登録機能がありません。
患者登録はORCAから行う仕様です。なのでORCAとの連携設定が必要です。
ORCAが無いけれども使ってみたい場合はこちらを参照してください

【ORCA側】
01医事業務→91マスタ登録→101システム管理マスタ→900CLAIM接続情報
CLAIM接続 1 する
送信用コード 3 UTF8
送信用アドレス 192.168.??.??(Dolphinサーバーの IP アドレス)
ポート受付 5002

端末から sudo dpkg-reconfigure jma-receipt を実行
日レセ側のCLAIM受信サーバを起動する。

【ORCA側Postgresql設定】
OpenDolphinはORCAサーバーのPostgresqlデータベースにアクセスするので、そのための設定が必要です。

/etc/postgresql/9.1/main
postgresql.confの設定変更
listen_addresses = '*' # 行頭のシャープを取り外してlocalhostを*に変更

pg_hba.confの設定変更
host all all 192.168.??.0/24 trust
(??は使用してるサブネットにあわせてください)
* trust ではなく md5 で使いたい場合はこちらを参照してください

【OpenDolpin側】
設定→レセコン
医療機関ID JPN ORCA に設定した JPN で始まる医療機関コードの数字部分(12桁)
ORCAになにも設定していない場合は、ORCAの初期値「000000000000」
IPアドレス 192.168.??.??(ORCAサーバーのIPアドレス)
ポート番号 8210


こちらのページが参考になります
ORCA PROJECT 2台運用の設定・・・(ORCA側Postgresql設定)
circletek OpenDolphin
ORCA ProjectにおけるCLAIM実装

設定が終わったら患者登録してみます。
ORCA側には患者登録済みとして、
01医事業務→11受付
患者番号を入れてEnter→受付完了を押す
少し待つとOpenDolphin側の受付リストに表示されます。
リストをダブルクリックすればカルテが開きます。


検査データの流し込み

OpenDolphinには採血データを表示する機能があるので、これを使ってみます。

OpenDolphinクラウド(資料請求・体験版)のページの下のほうに
■ 検体検査結果ファイルのレイアウト仕様
■ 検体検査サンプルデータ
があります。このサンプルデータを流し込んで見ます。
labtest-sample-D_00001.DAT2をダウンロードします。中を見ると患者ID「D_00001」のデータが入っています。
これを登録済みの患者IDに変更します。
Opendolphinのメインウィンドウの「ラボレシーバー」タブを押して「検査結果ファイル選択」を押します。
さきほど作成したファイルを選択します。
登録可能なデータリストが表示されるので「登録」ボタンを押します。
成功と表示されればOKです。
カルテを表示してデータが表示されるか確認します。

ところで、.DAT2ファイルというのは何かの標準形式なのでしょうか、よく分かりませんがこの形式でないと読み込みできないので変換ソフトを作ってみました。
入力ファイルは
カルテ番号,患者名,採取日時,GOT,GPT,LDH,ALP,....
0001,ヤマダタロウ,2012/03/04,30,40,200,300,....
0002,ヤマダハナコ,2012/03/04,20,30,250,250,....
....
というような形式のファイルです。(うちの検査機械が出力する形式です。)データの並び順は入力ファイルに合わせて変更できます。
Windows用です。VisualBasic2010にて作成しました。
動作保証はしませんが試してみたい方はこちらからどうぞDAT2Format.zip
詳しい使用方法はプログラム中の説明を見てください。








ORCAにパスワードつきでログインするための設定

OpenDolphinのソース内にId=orca Password=なし でコーディングされているので、ソースを書き換える必要があります。
* 下記 「password」 はORCAに設定したパスワード文字列を入れてください。

OpenDolphin-2.3m_WF8\server\src\main\java\open\dolphin\server\orca\OrcaService.java
private static final String passwd = "";

private static final String passwd = "password";
に変更

OpenDolphin-2.3m_WF8\client\src\main\java\open\dolphin\dao\SqlDaoBean.java
private static final String passwd = "";

private static final String passwd = "password";

ORCAサーバーのPostgresql設定変更
pg_hba.confの設定
host all all 192.168.??.0/24 md5
(??は使用してるサブネットにあわせてください)

ダミー患者の登録方法

患者はORCAから登録するべきですが、とりあえずカルテを開いてみたいという場合はデータベースに患者を直接登録すれば操作できます。
psqlを使って下記のSQL文を発行します。なお患者情報は適当です。患者ID「00001」「00002」の2人を登録します。既に患者が登録されているとエラーになります。
下記insert_patient.sqlファイルを作成して次のコマンドを実行します。
$ sudo -u dolphin psql -U dolphin -d dolphin -W < insert_patient.sql

insert_patient.sql
/*sudo -u dolphin psql -U dolphin -d dolphin -W < insert_patient.sql*/

INSERT INTO d_patient (id,facilityid, fullname, kananame, gender, patientid,birthday) VALUES (1,'1.3.6.1.4.1.9414.10.1','テスト カンジャイチ','テスト カンジャイチ','male','00001','1935-10-10');

INSERT INTO d_patient (id,facilityid, fullname, kananame, gender, patientid,birthday) VALUES (2,'1.3.6.1.4.1.9414.10.1','テスト カンジャニ','テスト カンジャニ','male','00002','1935-10-10');


INSERT INTO d_karte (id, created, patient_id) VALUES (1,'2014-12-22',1);

INSERT INTO d_karte (id, created, patient_id) VALUES (2,'2014-12-22',2);


d_patientのidが内部使用のpatient_idになる。d_karteのpatient_idはこれと対応する
d_karteのidは通し番号のようなもの…と思う。たぶん

クライアントでログインしたら、メインウィンドウの患者検索タブでテキストボックスに00001をいれて Enter を押すと下に患者が表示されます。
患者をダブルクリックするとカルテが開きます。




本家バージョン 2.5.12 のインストール

OpenDolphin 本家はこちらです。
本家Version 2.5.12の構築済みのWildFlyとクライアント、インストール説明書があります。
中ほどの 「運用システムの構築ガイド(ラボ版 Version 2.5.12)」を開くとダウンロードURLが書かれています
また最新版・旧版のソースへのリンクもあるのでソースも見られます。

OpenDolphin 2015年1月24日 衝撃の本家(2)
こちらには本家Version 2.5.12を簡単にインストールできるスクリプトがあります。
単に動作させてみたいだけならこちらを使った方が簡単にできます。
たぶんUbuntu14.04を使うのだと思います。
以下コピペ(消えた時用)
$ sudo apt-get update
$ sudo apt-get install -y git
$ git clone https://gist.github.com/febb746e4e2b12876b8a.git
$ cd febb746e4e2b12876b8a/
$ chmod +x set*.sh
PostgreSQLインストール&dolphinデータベース作成
$ sudo ./setpg.sh
設定ファイル編集:設定の詳細はシステム構築ガイド参照
$ vi ./custum.properties
JDKおよびデプロイ済JBOSS展開、設定ファイル書換
$ sudo ./setopendolphin.sh

サーバー起動
$ sudo /usr/jboss/home/bin/standalone.sh -c standalone-full.xml -b 0.0.0.0 &
サーバー停止
$ sudo /usr/jboss/home/bin/jboss-cli.sh -c --command=":shutdown"

本家バージョンでは管理者情報はデータベース初期化時に自動作成されるのでSQLで流し込む必要はありません。
ORCAとの連携の設定では、CLAIMをサーバーで受け取るかクライアントで受け取るかを設定できます。詳細は構築ガイドを参照してください。

これを書いている時点で試した結果、シェーマ保存でエラーが出て保存できませんでしたが原因は特定できませんでした。




感想

試してみた結果ですが、無床診療所での使用でOpenDolphinとORCAが綿密に連携が取れる状況なら使えそうです。
本家版のOpenDolphinは入院には対応していません。増田バージョンは入院患者検索機能が追加されています。
もともとの設計がそうなのですが、OpenDolphinもORCAも無床診療所用に開発されたものなので、入院への対応はまだ不十分なようです。
処方薬剤の検索にはORCAのデータベースを使用するので本格的に試すにはORCAとの連携が必要です。
スタンプを使えば楽に処方が出来るようになりそうですが、スタンプの作成方法がよく分かりませんでした。
実務で使うつもりなら業者にメンテを依頼したほうがよさそうです。

本家バージョンと増田バージョンではデータベースのテーブルが異なる部分があるみたいです。なのでデータベースの互換性は多分ありません。
本家バージョンで初期化される管理者情報は上で書いたSQL文のものと少し異なるので流用はできません。


TOPに戻る
2015/3/2