OpenDolphin は ライフサイエンス コンピューティング株式会社 様が公開されている、オープンソースの電子カルテです。
OpenDolphin Ver.2.4.4(2014-2-1) を Windows にインストールしてみました。そのときの覚え書きを何かの参考になればと残しておきます。
テーブルの値やデータ設定についてきちんと調べ切れていないため、また、ORCA (日医標準レセプトソフト) との連携をしていない (インストールしていない) ことにより、以下の作業だけでは、メイン画面から先へは進めません。申し訳ありません。もし、それでも構わないという方がいらっしゃれば、ご覧下さいませ m(_*_)m
素晴らしいソフトを開発され、オープンソースとして公開されている、ライフサイエンス コンピューティング株式会社 オープンドルフィンラボ 様に深く感謝いたします。
環境等は以下のとおりです。
※なお、以下の説明ではミドルウェアなどはすべて C:\Bin\ 下にインストールしています。また作業用フォルダは C:\Usr\ 下に作成しました。
Java SE Development Kit 7 Downloads からダウンロードします。
ダウンロードページの [Java SE Development Kit 7u71] の箇所で、[Accept License Agreement] をチェックしてから、 64 ビット版の Windows であれば Windows x64 (jdk-7u71-windows-x64.exe) を、32 ビット版の Windows であれば Windows x86 (jdk-7u71-windows-i586.exe) を選んで下さい。
ダウンロードしたファイル(jdk-7u71-windows-x64.exe または jdk-7u71-windows-i586.exe)を実行し、インストールします。 インストール先は [C:\Bin\jdk1.7.0_71\] としました。
追加の JRE (Java Runtime Environment) のインストールは不要です。[取消] を押してください。
NetBeans IDE ダウンロード からダウンロードします。
今回 C++ とか PHP はいらないのですが、念のため [すべて] をダウンロードしました。
※上記リンク先のバージョンは 8.0.2 より新しくなっているかもしれません。新しいバージョンでも大丈夫だと思うのですが、どうしても 8.0.2 で試したいという場合、[アーカイブ] リンク先から過去のバージョンのダウンロードが可能です。
ダウンロードしたファイル(netbeans-8.0.2-windows.exe)を実行し、インストールします。
[カスタマイズ] でインストールするパックとランタイムを以下のものにします。
※ランタイムはインストールしません。
JUnit も OpenDolphin を動作させるだけなら不要なのですが、念のためインストールしました。
インストール先は [C:\Bin\NetBeans 8.0.2\] としました。また、[NetBeans IDE 用のJDK(tm)] に、先にインストールした Java SE Development Kit 7u71 のインストール先を指定してください。
Apache Maven Project からダウンロードします。
[download] リンク先にある apache-maven-3.2.5-bin.zip をダウンロードしてください。
ダウンロードしたファイル(apache-maven-3.2.5-bin.zip) を [C:\Bin\apache-maven-3.2.5\] 下に展開します。
システム環境変数に以下を追加します。
※システム環境変数は、[コントロールパネル] - [システムとセキュリティ] - [システム] から [システムの詳細設定] を開き、[システムのプロパティ] ダイアログの [詳細設定] タブで [環境変数] を開き、[システム環境変数] に設定します。
値を設定したら、ダイアログを [OK] を押して閉じ、新たにコマンドプロンプトを開き、
set
で値を確認後、
さらに、
java -version
および
mvn --version
と入力し、バージョンが表示されることを確認してください。
WildFly Homepage / Downloads からダウンロードします。
ダウンロードしたファイル(wildfly-8.2.0.Final.zip) を [C:\Bin\wildfly-8.2.0.Final\] 下に展開します。
[C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を実行し、起動します。
ブラウザで [http://localhost:8080/] にアクセスして Welcome 画面が表示されれば、正常に動作しています。
一旦、終了させるために、 [C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を実行した時に開いたプロンプトをアクティブにしてから、Ctrl + C を押します。 [バッチジョブを終了しますか] で [y] を入力し、[Enter] を押し、プロンプトを閉じます。
[C:\Bin\wildfly-8.2.0.Final\bin\add-user.bat] を実行し、管理者ユーザーを追加します。
※この例では管理者ユーザーを、ユーザー名 admin、パスワード admin で追加していますが、実際にご利用の際は、セキュリティのためにも、もっとふさわしい値を設定してください。
[What type of user do you wish to add?] で [a] を入力し [Enter] を押します。
[Username :] で [admin] を入力し [Enter] を押します。
[Are you sure you want to add user 'admin' yes/no] で [yes] を入力し [Enter] を押します。
[Password :] で [admin] を入力し [Enter] を押します。
※入力した内容は表示されません。
[Are you sure you want to use the password enterd yes/no] で [yes] を入力し [Enter] を押します。
[Re-enter Password :] で [admin] を入力し [Enter] を押します。
[What groups do you want this user to belong to? (Please ..省略.. for none)[ ]:] でそのまま [Enter] を押します。
[About to add user 'admin' for realm 'ManagementRealm' Is this correct yes/no?] で [yes] を入力し [Enter] を押します。
[Is this new user going to be used for one AS process to connect to another AS process? .e.g. for ..省略.. server EJB calls.] で [yes] を入力し [Enter] を押します。
登録が完了し、[続行するには何かキーを押して下さい] と表示されるので [Enter] を押してプロンプトを閉じます。
再度、[C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を実行し、起動します。
起動したら、ブラウザで [http://localhost:9990/console/App.html] にアクセスし、ユーザー名とパスワードを要求されたら、それぞれ [admin] を入力し [OK] を押します。
Administration Console 画面が表示されれば、OK です。
最後に、もう一度、[C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を実行した時に開いたプロンプトをアクティブにしてから、Ctrl + C を押し、WildFly を終了させてください。
NetBeans を起動し、[サービス] ウィンドウの [サーバー] を右クリックして開いたポップアップメニューから [サーバーの追加] を選びます。
[サーバー・インスタンスの追加] で [WildFlyアプリケーション・サーバー] を選択し、[次へ] を選びます。
※もし、サーバーの種類に [WildFlyアプリケーション・サーバー] が無い場合、 Plugin for WildFly Application Server をご利用ください。
[サーバーの場所] に [C:\Bin\wildfly-8.2.0.Final] を設定し、[サーバー構成] に [C:\Bin\wildfly-8.2.0.Final\standalone\configuration\standalone-full.xml] を設定します。
※[サーバー構成] に設定するファイルは必ず "standalone-full.xml" の方を設定してください。
[終了] を押して、設定を完了させます。
[サービス] ウィンドウの [サーバー] をダブルクリックしてツリーを開き、追加された [WildFlyアプリケーション・サーバー] を右クリックし、 表示されるメニューから [起動] を選んで下さい。
NetBeans 経由で WildFly アプリケーションサーバーが起動します。
Download PostgreSQL からダウンロードします。
ダウンロードページの [Installer version Version 9.3.5] の箇所で、 64 ビット版の Windows であれば Win x86-64 (postgresql-9.3.5-3-windows-x64.exe) を、32 ビット版の Windows であれば Win x86-32 (postgresql-9.3.5-3-windows.exe) を選んで下さい。
※最新の Version 9.4.0 にしようかと思ったのですが、現時点で http://jdbc.postgresql.org/download.html から落とせる JDBC ドライバの最新版が 9.4.0 対応かどうか不明だったので、9.3.5 にしました。
ダウンロードしたファイル(postgresql-9.3.5-3-windows-x64.exe または postgresql-9.3.5-3-windows.exe)を実行し、インストールします。 インストール先は [C:\Bin\PostgreSQL\9.3\] としました。
管理者のパスワードは postgres としました。
※この例では安易なパスワードを用いています。たびたびの注意で申し訳ありませんが、実際にご利用の際は、セキュリティのためにも、もっとふさわしい値を設定してください。
Locale は C に設定しました。
インストールが完了したら、[Launch Stack Builder at exit?] のチェックを外して [Finish] を選びます。
スタートメニューから [すべてのプログラム] - [PostgreSQL 9.3] - [pgAdmin III] を起動します。
表示されている [PostgreSQL 9.3 (localhost:5432)] をダブルクリックします。
管理者のパスワードを要求されるので、インストール時に設定したパスワードを入力し (この例では postgres)、[パスワード保存] にチェックを入れ、[OK] を選びます。
サーバに接続し、サーバのリソースが表示されれば、OK です。
OpenDolphin の [ソースコード] のところから GitHub へのリンクをたどり、[Donwload ZIP] からダウンロードします。
エクスプローラーで [C:\Usr\Project\OpenDolphin\] というフォルダを作成し、その下にダウンロードした [OpenDolphin-master.zip] を展開します。
NetBeans を起動し、メニューから [ファイル] - [プロジェクトを開く] で表示されるダイアログで [C:\Usr\Project\OpenDolphin\] を指定し、[必須プロジェクトを開く] にチェックを入れてから、[プロジェクトを開く] を選びます。
[プロジェクト] ウィンドウで [opendolphin-server] を開き、[依存性] を右クリックし、開いたポップアップメニューから [宣言されている依存性をダウンロード] を選びます。
※依存ファイルは Maven のリモートリポジトリからダウンロードされ、Maven のローカルリポジトリ (C:\Users\[ユーザー]\.m2\repository\) に格納されます。
[opendolphin-server] での依存性ダウンロードが済んだら、[opendolphin-common] および [opendolphin-client] についても同じように [宣言されている依存性をダウンロード] を行ってください。
次に、Maven のリモートリポジトリには登録されていない依存ファイルを、手動で Maven のローカルリポジトリに登録します。
※当該依存ファイルは上記でダウンロードした [OpenDolphin-master.zip] ではなく、同じく ライフサイエンス コンピューティング株式会社 オープンドルフィンラボ 様が GitHub で公開されている OpenDolphin-2.3m に含まれています。
OpenDolphin-2.3m を [Download ZIP] からダウンロードします。
ダウンロードした [OpenDolphin-2.3m-master.zip] を適当なフォルダに展開します。この例では、[C:\User\Work\] を作成し、その下に展開しました。
コマンドプロンプトを開き、OpenDolphin 2.3m を展開したフォルダの下にある ext_lib フォルダに移動し、以下のコマンドで依存ファイルをローカルリポジトリに登録します。
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
登録が済んだら、NetBeans に戻ります。プロジェクトにくっついていた、赤いエクスクラメーション・マークが消えていれば OK です。
ビルドを行います。
[プロジェクト] ウィンドウで [opendolphin-server] を右クリックし、開いたポップアップメニューから [依存性でビルド] を選びます。
[出力 - ビルド(opendolphin-server)] ウィンドウに BUILD SUCCESS と表示されれば OK です。
[opendolphin-server] のビルドが済んだら、[opendolphin-client] についても同じようにビルドを行ってください。
pgAdmin III を起動し、サーバに接続します。
ログインロールを作成します。
[ログインロール] を右クリックし、開いたポップアップメニューから [新しいログインロール] を選びます。
[ロール名] に [dolphin]、[パスワード] および [パスワード(確認)] に [dolphin]、[ロール特権] はすべてチェックし、[OK] を選択して下さい。
※設定はいいかげんです。ごめんなさい。また、たびたびたびの注意で申し訳ありませんが、実際にご利用の際は、セキュリティのためにも、もっとふさわしい値を設定してください。
次に、データベースを作成します。
[データベース] を右クリックし、開いたポップアップメニューから [新しいデータベース] を選びます。
[名前] に [dolphin]、[オーナー] に [dolphin]、[エンコーディング] は [UTF8] にし、[OK] を選択して下さい。
PostgreSQL JDBC Driver - Download から JDBC41 Postgresql Driver, Version 9.3-1102 をダウンロードします。
ダウンロードした [postgresql-9.3-1102.jdbc41.jar] を [C:\Usr\Work\] 下に移動します。
NetBeans を起動し、[サービス] ウィンドウの [サーバー] から [WildFlyアプリケーション・サーバー] を起動して下さい。
※必ず NetBeans から起動してください。これは "standalone-full.xml" の設定で起動するためです。
もし、[C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を使って起動する場合、コマンドプロンプトなどから [C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat -c standalone-full.xml] のように引数に指定することで "standalone-full.xml" の方の設定で起動できるそうです (ごめんなさい。試してません)。
[C:\Bin\wildfly-8.2.0.Final\bin\jboss-cli.bat] を実行し、以下のコマンドで、ドライバファイルをモジュールに配置し、JDBC ドライバとして登録し、データソースを作成します。
connect module add --name=org.postgresql --resources=C:\Usr\Work\postgresql-9.3-1102.jdbc41.jar --dependencies=javax.api,javax.transaction.api /subsystem=datasources/jdbc-driver=postgresql:add(driver-name="postgresql",driver-module-name="org.postgresql",driver-class-name="org.postgresql.Driver",driver-xa-datasource-class-name="org.postgresql.xa.PGXADataSource") data-source add --jndi-name=java:jboss/datasources/PostgresDS --name=PostgresDS --connection-url=jdbc:postgresql://localhost:5432/dolphin --driver-name=postgresql --user-name=dolphin --password=dolphin
[C:\Bin\wildfly-8.2.0.Final\bin\jboss-cli.bat] を実行し、以下のコマンドで、JMS キューを作成します。
connect jms-queue add --queue-address=dolphin --entries=queue/dolphin
私の環境のせいだと思われるのですが、デプロイ時に open.dolphin.mbean.PvtService#register(64) の箇所で java.lang.NullPointerException で落ちました。
そのため、ここを以下のように暫定的に修正しました。
//DEBUG = Logger.getLogger("open.dolphin").getLevel().equals(java.util.logging.Level.FINE); DEBUG = false; { Logger logger = Logger.getLogger("open.dolphin"); if (logger != null) { java.util.logging.Level level = logger.getLevel(); if (java.util.logging.Level.FINE.equals(level)) { DEBUG = true; } } }
また、同じくデプロイ時に java.lang.ClassNotFoundException で open.dolphin.touch.JsonTouchResource が無い、として落ちました。 名前からすると、iPad 等のタブレット対応のモジュールなのかなぁ、と思います。
タブレット対応に関係するモジュールはライセンスされていますので、ソースはありません。
web.xml の以下の箇所から open.dolphin.touch.* なモジュールを除く必要があります。
<context-param> <param-name>resteasy.resources</param-name> ... open.dolphin.touch.JsonTouchResource, open.dolphin.touch.DolphinResource, open.dolphin.touch.DemoResource, open.dolphin.touch.EHTResource </param-value> </context-param>
web.xml から該当の箇所を除きました。
修正が済んだら、[opendolphin-server] をビルドし直して下さい。
デプロイ前に [C:\Bin\wildfly-8.2.0.Final\] 下に [custom.properties] という空のファイルを作成しておきます。
※本来なら、中身をきちんと設定しなければならないのだと思うのですが、きちんと調べておらず、空ファイルでごまかしています。
デプロイは Web の Administration Console から行いました。
※コマンドライン (jboss-cli.bat) を使ってもデプロイできるらしいのですが、きちんと調べていません。ごめんなさい。
ブラウザで [http://localhost:9990/console/App.html] からログインし、[Deployments] 画面で [Add] ボタンを選びます。
[Deployment Selection] の画面で [参照] を選んでファイルを指定します。
※ビルドした war ファイルは [C:\Usr\Project\OpenDolphin\server\target\opendolphin-server-2.5.0.war] に作成されています。
ファイルを指定したら [Next] を選びます。
[Enable] にチェックを入れ、[Save] を選びます。
無事デプロイが完了したら、Deployments の一覧に表示されます。
※画面上部に一時的に「Success:: Add Content: ...」なメッセージが表示されます。
OpenDolphin に必要なテーブルは、デプロイ時にチェック・作成されます。デプロイ後に確認すると、テーブルが Create されていました。
テーブルへの正しいデータの持ち方を調べられていないのですが、とりあえず、クライアントでメイン画面を表示できるまでのダミーデータを作成します。
以下の SQL を pgAdmin III を使って実行し、データをテーブルに挿入して下さい。
※住所やら、医療機関名やら、医療機関ID やら、値はすべてダミーです。 それらしくしてある箇所も、本来そういう値であるかはわかりません。 また、id 値は勝手に(手作業等で)振ってはいけない気がします。 システム側で採番する必要があるように思うので、実際に運用する場合の初期データはどうやって作るんだろう…。 そこまで調べられていないのです。本当にごめんなさいです。
INSERT INTO d_facility ( id, address, facilityid, facilityname, membertype, registereddate, telephone, url, zipcode ) VALUES ( 1, '高知県高知市1-1-1', '1.3.6.1.4.1.9414.70.1', 'ドルフィンクリニック', 'FACILITY_USER', '2015-01-12', '00-0000-0000', ' ', '000-0000' ); INSERT INTO d_users ( id, commonname, department, departmentcodesys, departmentdesc, email, givenname, license, licensecodesys, licensedesc, membertype, orcaid, password, registereddate, sirname, userid, facility_id ) VALUES ( 1, '蘇我 入鹿', '01', 'MML0028', '内科', 'iruka-sogano@dolphin-clinic.co.jp', '入鹿', 'doctor', 'MML0026', '医師', 'FACILITY_USER', 'orcaid', '21232f297a57a5a743894a0e4a801fc3', '2015-01-12', '蘇我', '1.3.6.1.4.1.9414.70.1:admin', 1 ); INSERT INTO d_roles ( id, c_role, user_id, c_user ) VALUES ( 1, 'admin', '1.3.6.1.4.1.9414.70.1:admin', 1 ); INSERT INTO d_roles ( id, c_role, user_id, c_user ) VALUES ( 2, 'user', '1.3.6.1.4.1.9414.70.1:admin', 1 );
pgAdmin III でデータベース dolphin を開いた状態で、メニューから [ツール] - [クエリーツール] を選び、クエリウィンドウを表示し、 [SQL エディタ] に上記の SQL を貼り付け、クエリウィンドウのメニューから [クエリー] - [実行] を行います。
NetBeans の [プロジェクト] ウィンドウで [opendolphin-client] をクリックしてから、メニューの [デバッグ] をクリックし、[プロジェクト(opendolphin-client)をデバッグ] を選びます。
無事にログイン画面が表示されたら、[設定] を選びます。
[医療機関ID] に [1.3.6.1.4.1.9414.70.1]、[ユーザーID] に [admin]、[ベースURI] に [http://localhost:8080/] を設定し、[保存] を選びます。
※再々ですみませんが、この医療機関ID はダミー値です。もし、本当にこの値があるとしたら、勝手に引用してしまい、大変申し訳ありません。
[ユーザーID]、[パスワード] にそれぞれ [admin] と入力し、[ログイン] を選びます。
メイン画面が表示されたら、OK です。
なお、冒頭にも書きましたが、ここまでしか調べられていません。受付データが来ないため、カルテも作れません。 ORCA と連携すればできるらしいのですが、ORCA までは手が回らず、ここまでで終了してしまいました。 これだけでは、ほとんど参考にならない気もしますが、もし、誰かの何かの参考になれば幸いです。
重ね重ねで申し訳ありませんが、素晴らしいソフトを開発され、オープンソースとして公開されている、ライフサイエンス コンピューティング株式会社 オープンドルフィンラボ 様に深く感謝いたします。
駆け足でしか調べられなかったのですが、実装方法やプロジェクトの構成などリソース全てが、未熟な私にとって本当に貴重な学習となりました。厚くお礼を申し上げます。