このところ Mac づいているので、練習がてら無料オープンソース電子カルテ OpenDolphin の Mac OSX Catalina へのインストールを試してみました。
M1 Mac (arm, apple silicon CPU 搭載 Mac) へインストールする場合は、『OpenDolphin-2.7m を M1 Mac にインストールする』をご覧ください。
ORCA との接続はできてますし、テスト的に使う分には以下のようなやり方で十分かなと思います。
また、Mac自体は(かなり強引に分類すれば) Unix マシンなので、Ubuntu などへのインストール時にも役に立つかと思います。
1. 環境構築
面倒ですね (^^;)
出てくる役者が多いので、よくわからない人は
『OpenDolphin/OpenOcean をカスタマイズするために知っておいた方がよいこと』
『OpenDolphin/OpenOcean をカスタマイズするために知っておいた方がよいこと 2』
あたりを読んでまずは全体像をつかんでみましょう。
1-1 JDK の導入
まずは、JDK (Java Development Toolkit)の導入。
ここを参考にして今回は OpenJDK 14 にしてみました。
1-2 maven の導入
ここを参考にして導入。
1-3 WildFly の導入
ここを参考にして導入・・・なんですが、いきなり WildFly 20 ですか?
むろん、これは Java EE 8 準拠。若干、不安。
1-4 NetBeans の導入
NetBeans ダウンロードページ に飛んで、落としてくる。
現在(2020年7月)だと最新版は NetBeans 12 。日本語版もあるのかな?そっちの方はよくわかりません。
あとは、落としてきた .dmg ファイルの指示に従ってインストール。
1-5 PostgreSQL の導入
PostgreSQL のサイトには Mac OSX 向けの Postgres.app を用意しているので、これを使った。ダウンロードページはこちら。
これから後の作業のことを考えて pgAdmin4 も導入しておきましょうか。ユーザーの追加やデータベースの作成が GUI を通しておこなえるようになります。
ユーザー dolphin と データベース dolphin もつくっておきましょう(もちろん後でもいい)。
まず、dolphin というユーザーをつくって、データベース dolphin をその所有者にする、という手順です。Mac だと pgAdmin4 が走っているとメニューバーに象さんのアイコンがありますが、
ここから pgAdmin4 というブラウザベースのGUI管理ツールが起動できます。
細かいところでバグがけっこうあるという話ですが、ユーザーやデータベースつくるくらいでは支障なし。 GUI はこういうとき便利。
ここくらいまでで準備は整ったでしょうか。
2. OpenDolphin ソースコードからのビルド・デプロイ
まずは、ソースコードが公開されているリポジトリからソースコードを取得しましょう。
普通に本家でもいいですし、カルテ記載内容で何かしたいという人なら猪股先生版で。
2-1 まずはそのままビルド・デプロイ
NetBeans を起動してローカルに落としてきたプロジェクトを読み込ませる。client, common, server の各プロジェクトを開いて、必要なライブラリをどんどん持ってきましょう。
上図でいうところの Download Declared Dependencies を選べばよいです。
ただし、ext_lib 内におさめられている iTextAsian.jar と AppleJavaExtensions.jar はリモートにはないので、ターミナルから上記フォルダ内に侵入して以下のように打ち込んで手動でインストールしておきましょう(これがどの程度効いているのかイマイチわからんのですが)。
mvn install:install-file -Dfile=iTextAsian.jar -DgroupId=opendolphin -DartifactId=itext-font -Dversion=1.0 -Dpackaging=jar
mvn install:install-file -Dfile=AppleJavaExtensions.jar -DgroupId=com.apple -DartifactId=AppleJavaExtensions -Dversion=1.6 -Dpackaging=jar
ソースも 1.8 ターゲットも 1.8 だし、ビルドもできないかと思ってましたが・・・
できてましたね。
ここまできたらデプロイもしたいところ。アプリケーションサーバの WildFly は Java EE 8 準拠なのでまともに動かんだろう・・・。
と思っていたのですが、けっこう動きました。
(※ custom.properties や standalone-full.xml の修正は『OpenDolphin-2.7.0b を Win10 にインストールしてみた』を参考にしてます)
まずは、サーバを WildFly 管理画面から投入。
あやややや、PostgreSQL とも連動できてますね。
ここまできたら、クライアントもサーバと通信させたい。
適当にユーザーを sql でデータベースに流し込んで、クライアント起動(なお、猪股先生版は Mac でもダブルクリックで起動できるんですね、知らんかったわ)。
登録したユーザー admin さんでログイン敢行!
ログインできてますね。
ただし、「スタンプを読み込んでいます…」から進行せず。
ただ、メニューの表示やバグの挙動などがけっこう特徴的だったので、ちょっとした修正すればもうちょっと先に進めそう。
2-2 ソースコードを JDK 14 向けに修正
とはいっても最近の Java の仕様はチェックすらしてないので、各プロジェクト pom.xml の 1.8 を 14 に強引に書き換えするなどして、あとは試行錯誤的に修正という荒っぽい方法を採用。
それでもなんとか、スタンプボックスに加え、患者待受の画面も出現。
デモ患者も sql で流しこもうと思ったのですが、これはうまくいかず。
手っ取り早く、ORCA と接続して使うことにしました。
3. お試し使用
3-1 ORCA の準備
OpenDolphin は ORCA と連動して動かすことを想定して設計されているので、ORCA を準備する。今回は、Parallels というソフトを使って、Ubuntu の仮想環境をつくりそこに ORCA (Ver 5.1) をインストールしてみました。
やり方などはこちらで。
3-2 ORCA との接続
今回は CLAIM で接続させてます。
ORCA 側の CLAIM 接続を有効にするのは基本ですが、template が必要になります。
ORCA Ver5.1 との接続では、猪股先生版の template をそのまま流用してましたが、問題なく接続できてました。
バージョンによっては、切り替えが必要の場合がある、というネット上の情報もありましたが、今回のケースではその必要はありませんでした。
3-3 試用
ORCA でデモ患者「秋場太郎」さんを登録して、OpenDolphin に送信。
なお、ORCA クライアントも Mac で運用したい場合は、monjiaj(Java で動く ORCA クライアント) を JDK 14 でビルドしましょう。
OpenDolphin 側の待ち受けにも反映されてました。
患者さんのカラムをダブルクリックするとカルテ画面が出現。
シンプルですが、なかなか使い勝手はいいと思います。
3-4 FileBackUpSystem
カルテ記載内容を確定させると OpenDolphin-2.7m では、ユーザーホームに記載内容をプレーンテキストで書き出してくれます。
クライアントホームの OpenDolphin フォルダ内に Backup フォルダがつくられ・・・
その下の患者さんフォルダがあります。
テキストファイルがカルテ分あります。
開くと・・・
書き出せてますね。
4. その他 Tips など
サーバを常時バックグランドで走らせるのでなければ、使う度毎にターミナルからコマンド打ち込んで WildFly を起動させるのは面倒なので、Automator を使ってアプリ化しておくと便利かもしれません。
シェルスクリプトもアプリ化できるのは初めて知りました。
デスクトップに置いておいてダブルクリックすれば、WildFly が起動できます。
Mac 便利。
5. 機能上の問題点と配布・一般公開に関する注意点
今回は、とりあえず動作確認の意味合いが強いので、各種機能に関しては必ずしも厳密な評価をしているわけではありません。
例えば、カルテ画面を PDF で出力する機能がありますが、例えば以下のような画面を PDF で出力すると
現状だと以下のように文字化けします。
(ただし、ファイルバックアップシステムは完全にプレーンテキストで書き出します)
また、ログイン時のパネルなどのレイアウトを生成する際、oracle が作成したサンプルコードをそのまま使っているようなのですが、そのコード上にはこのような記述がみられます。
(oracle 公開コード:https://docs.oracle.com/javase/tutorial/uiswing/examples/layout/SpringGridProject/src/layout/SpringUtilities.java)
(OpenDolphin 側コードは open.dolphin.helper パッケージの SpringUtilities.java )
要するにこのコードを使う際には、使った旨の著作権表記をしてくれという要請です。(また、これ以外にも Junzo SATO 氏のコードが含まれています。より詳しくは『OpenDolphin -wiki 風解説-』で)
ソースコードを「一般」公開しているならばこれ自体は問題はないと思いますが、このような事情があるので特定のソースコード提供者のみの貢献だけを取り上げるような紹介の仕方をすると、それはいささかバランスを欠いているように思えます。私はポリシーとしてそういうことはしたくないので、この点に関しては留意していきたいと思っております。
現時点では、軽微なバグもあり、不特定多数に対する配布は考えていませんが、配布する際にはこのような点も留意しなくてはいけないと考えています。
(適宜修正予定)
OpenDolphin-2.7m 開発者