作成日: 2015/01/13

OpenDolphin Ver.2.4.4(2014-2-1) のインストール

概要

OpenDolphinライフサイエンス コンピューティング株式会社 様が公開されている、オープンソースの電子カルテです。

OpenDolphin Ver.2.4.4(2014-2-1) を Windows にインストールしてみました。そのときの覚え書きを何かの参考になればと残しておきます。

テーブルの値やデータ設定についてきちんと調べ切れていないため、また、ORCA (日医標準レセプトソフト) との連携をしていない (インストールしていない) ことにより、以下の作業だけでは、メイン画面から先へは進めません。申し訳ありません。もし、それでも構わないという方がいらっしゃれば、ご覧下さいませ m(_*_)m

素晴らしいソフトを開発され、オープンソースとして公開されている、ライフサイエンス コンピューティング株式会社 オープンドルフィンラボ 様に深く感謝いたします。

環境等は以下のとおりです。

※なお、以下の説明ではミドルウェアなどはすべて C:\Bin\ 下にインストールしています。また作業用フォルダは C:\Usr\ 下に作成しました。

OS
  • Windows 7 Ultimate Service Pack 1 (32 ビット)
    ※最初にノート PC の Windows 7 Professional (64 ビット) にインストールしたのですが、このページを書くにあたり、手順の確認のために Oracle VirtualBox 上の Windows 7 に再度インストールしました。
使用させていただいたミドルウェアなど
  • Java SE Development Kit 7u71
  • NetBeans 8.0.2
  • Maven 3.2.5
  • WildFly 8.2.0.Final
  • PostgreSQL 9.3.5
Java SE Development Kit 7u71 のダウンロードとインストール

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) を選んで下さい。

Java SE Development Kit 7u71 のダウンロード

ダウンロードしたファイル(jdk-7u71-windows-x64.exe または jdk-7u71-windows-i586.exe)を実行し、インストールします。 インストール先は [C:\Bin\jdk1.7.0_71\] としました。

Java SE Development Kit 7u71 のインストール先の指定

追加の JRE (Java Runtime Environment) のインストールは不要です。[取消] を押してください。

JRE(Java Runtime Environment) インストールの取り消し
NetBeans 8.0.2 のダウンロードとインストール

NetBeans IDE ダウンロード からダウンロードします。

今回 C++ とか PHP はいらないのですが、念のため [すべて] をダウンロードしました。

※上記リンク先のバージョンは 8.0.2 より新しくなっているかもしれません。新しいバージョンでも大丈夫だと思うのですが、どうしても 8.0.2 で試したいという場合、[アーカイブ] リンク先から過去のバージョンのダウンロードが可能です。

NetBeans 8.0.2 のダウンロード

ダウンロードしたファイル(netbeans-8.0.2-windows.exe)を実行し、インストールします。

[カスタマイズ] でインストールするパックとランタイムを以下のものにします。

  • ベース IDE
  • Java SE
  • Java EE
  • HTML 5
  • オン・デマンド機能

※ランタイムはインストールしません。

パックとランタイムの選択

JUnit も OpenDolphin を動作させるだけなら不要なのですが、念のためインストールしました。

JUnit の選択

インストール先は [C:\Bin\NetBeans 8.0.2\] としました。また、[NetBeans IDE 用のJDK(tm)] に、先にインストールした Java SE Development Kit 7u71 のインストール先を指定してください。

NetBeans 8.0.2 のインストール先の選択
Maven 3.2.5 のダウンロードとインストール

Apache Maven Project からダウンロードします。

[download] リンク先にある apache-maven-3.2.5-bin.zip をダウンロードしてください。

Maven のダウンロードリンク Maven 3.2.5 のダウンロードリンク

ダウンロードしたファイル(apache-maven-3.2.5-bin.zip) を [C:\Bin\apache-maven-3.2.5\] 下に展開します。

Maven 3.2.5 を展開したフォルダ

システム環境変数に以下を追加します。

※システム環境変数は、[コントロールパネル] - [システムとセキュリティ] - [システム] から [システムの詳細設定] を開き、[システムのプロパティ] ダイアログの [詳細設定] タブで [環境変数] を開き、[システム環境変数] に設定します。

  • M2_HOME => [C:\Bin\apache-maven-3.2.5]
  • M2 => [%M2_HOME%\bin]
  • JAVA_HOME => [C:\Bin\jdk1.7.0_71]
  • PATH => [%M2%] および [%JAVA_HOME%\bin] を追加してください
Maven 3.2.5 用のシステム環境変数の設定

値を設定したら、ダイアログを [OK] を押して閉じ、新たにコマンドプロンプトを開き、

set

で値を確認後、

設定した Maven 3.2.5 用のシステム環境変数

さらに、

java -version

および

mvn --version

と入力し、バージョンが表示されることを確認してください。

Maven 3.2.5 の設定の確認
WildFly 8.2.0.Final のダウンロードとインストール

WildFly Homepage / Downloads からダウンロードします。

WildFly 8.2.0.Final のダウンロード

ダウンロードしたファイル(wildfly-8.2.0.Final.zip) を [C:\Bin\wildfly-8.2.0.Final\] 下に展開します。

WildFly 8.2.0.Final を展開したフォルダ

[C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を実行し、起動します。

WildFly 8.2.0.Final の standalone.bat を実行

ブラウザで [http://localhost:8080/] にアクセスして Welcome 画面が表示されれば、正常に動作しています。

WildFly 8.2.0.Final の Welcome 画面

一旦、終了させるために、 [C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を実行した時に開いたプロンプトをアクティブにしてから、Ctrl + C を押します。 [バッチジョブを終了しますか] で [y] を入力し、[Enter] を押し、プロンプトを閉じます。

WildFly 8.2.0.Final の standalone.bat を終了

[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] を押してプロンプトを閉じます。

WildFly 8.2.0.Final に管理者ユーザーを追加

再度、[C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を実行し、起動します。

起動したら、ブラウザで [http://localhost:9990/console/App.html] にアクセスし、ユーザー名とパスワードを要求されたら、それぞれ [admin] を入力し [OK] を押します。

WildFly 8.2.0.Final の Web Administration Consoleにログイン

Administration Console 画面が表示されれば、OK です。

WildFly 8.2.0.Final の Web の Administration Console

最後に、もう一度、[C:\Bin\wildfly-8.2.0.Final\bin\standalone.bat] を実行した時に開いたプロンプトをアクティブにしてから、Ctrl + C を押し、WildFly を終了させてください。

NetBeans から WildFly を起動できるように設定

NetBeans を起動し、[サービス] ウィンドウの [サーバー] を右クリックして開いたポップアップメニューから [サーバーの追加] を選びます。

NetBeans でのサーバーの追加

[サーバー・インスタンスの追加] で [WildFlyアプリケーション・サーバー] を選択し、[次へ] を選びます。

※もし、サーバーの種類に [WildFlyアプリケーション・サーバー] が無い場合、 Plugin for WildFly Application Server をご利用ください。

WildFly アプリケーション・サーバーの追加

[サーバーの場所] に [C:\Bin\wildfly-8.2.0.Final] を設定し、[サーバー構成] に [C:\Bin\wildfly-8.2.0.Final\standalone\configuration\standalone-full.xml] を設定します。

※[サーバー構成] に設定するファイルは必ず "standalone-full.xml" の方を設定してください。

WildFly アプリケーション・サーバーの追加(サーバーの場所及び構成)

[終了] を押して、設定を完了させます。

WildFly アプリケーション・サーバーの追加(インスタンス・プロパティ)

[サービス] ウィンドウの [サーバー] をダブルクリックしてツリーを開き、追加された [WildFlyアプリケーション・サーバー] を右クリックし、 表示されるメニューから [起動] を選んで下さい。

WildFly アプリケーション・サーバーの起動(NetBeans)

NetBeans 経由で WildFly アプリケーションサーバーが起動します。

WildFly アプリケーション・サーバーの出力(NetBeans)
PostgreSQL 9.3.5 のダウンロードとインストール

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 にしました。

Postgres SQL ダウンロード

ダウンロードしたファイル(postgresql-9.3.5-3-windows-x64.exe または postgresql-9.3.5-3-windows.exe)を実行し、インストールします。 インストール先は [C:\Bin\PostgreSQL\9.3\] としました。

Postgres SQL のインストール先の指定

管理者のパスワードは postgres としました。

※この例では安易なパスワードを用いています。たびたびの注意で申し訳ありませんが、実際にご利用の際は、セキュリティのためにも、もっとふさわしい値を設定してください。

Postgres SQL の管理者パスワードの指定

Locale は C に設定しました。

Postgres SQL の Locale の指定

インストールが完了したら、[Launch Stack Builder at exit?] のチェックを外して [Finish] を選びます。

Postgres SQL のインストールの完了

スタートメニューから [すべてのプログラム] - [PostgreSQL 9.3] - [pgAdmin III] を起動します。

表示されている [PostgreSQL 9.3 (localhost:5432)] をダブルクリックします。

pgAdmin III の起動

管理者のパスワードを要求されるので、インストール時に設定したパスワードを入力し (この例では postgres)、[パスワード保存] にチェックを入れ、[OK] を選びます。

管理者パスワードの入力

サーバに接続し、サーバのリソースが表示されれば、OK です。

データベースを開いたところ
OpenDolphin のダウンロードとビルド

OpenDolphin の [ソースコード] のところから GitHub へのリンクをたどり、[Donwload ZIP] からダウンロードします。

OpenDolphin のダウンロード

エクスプローラーで [C:\Usr\Project\OpenDolphin\] というフォルダを作成し、その下にダウンロードした [OpenDolphin-master.zip] を展開します。

フォルダにソースを展開

NetBeans を起動し、メニューから [ファイル] - [プロジェクトを開く] で表示されるダイアログで [C:\Usr\Project\OpenDolphin\] を指定し、[必須プロジェクトを開く] にチェックを入れてから、[プロジェクトを開く] を選びます。

NetBeans で OpenDolphin プロジェクトを開く

[プロジェクト] ウィンドウで [opendolphin-server] を開き、[依存性] を右クリックし、開いたポップアップメニューから [宣言されている依存性をダウンロード] を選びます。

※依存ファイルは Maven のリモートリポジトリからダウンロードされ、Maven のローカルリポジトリ (C:\Users\[ユーザー]\.m2\repository\) に格納されます。

NetBeans で OpenDolphin - Server の依存ファイルをダウンロードする

[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\] を作成し、その下に展開しました。

NetBeans で OpenDolphin 2.3m を展開

コマンドプロンプトを開き、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
Maven で依存ファイルをローカルリポジトリに登録

登録が済んだら、NetBeans に戻ります。プロジェクトにくっついていた、赤いエクスクラメーション・マークが消えていれば OK です。

依存性が解決した状態

ビルドを行います。

[プロジェクト] ウィンドウで [opendolphin-server] を右クリックし、開いたポップアップメニューから [依存性でビルド] を選びます。

NetBeans で OpenDolphin - Server をビルドする

[出力 - ビルド(opendolphin-server)] ウィンドウに BUILD SUCCESS と表示されれば OK です。

NetBeans で OpenDolphin - Server のビルド完了

[opendolphin-server] のビルドが済んだら、[opendolphin-client] についても同じようにビルドを行ってください。

データベースの作成

pgAdmin III を起動し、サーバに接続します。

ログインロールを作成します。

[ログインロール] を右クリックし、開いたポップアップメニューから [新しいログインロール] を選びます。

ログインロールの作成

[ロール名] に [dolphin]、[パスワード] および [パスワード(確認)] に [dolphin]、[ロール特権] はすべてチェックし、[OK] を選択して下さい。

※設定はいいかげんです。ごめんなさい。また、たびたびたびの注意で申し訳ありませんが、実際にご利用の際は、セキュリティのためにも、もっとふさわしい値を設定してください。

ログインロールの作成(プロパティ) ログインロールの作成(定義) ログインロールの作成(ロール特権)

次に、データベースを作成します。

[データベース] を右クリックし、開いたポップアップメニューから [新しいデータベース] を選びます。

データベースの作成

[名前] に [dolphin]、[オーナー] に [dolphin]、[エンコーディング] は [UTF8] にし、[OK] を選択して下さい。

データベースの作成(プロパティ) データベースの作成(定義)
WildFly へのデータソースの設定

PostgreSQL JDBC Driver - Download から JDBC41 Postgresql Driver, Version 9.3-1102 をダウンロードします。

ダウンロードした [postgresql-9.3-1102.jdbc41.jar] を [C:\Usr\Work\] 下に移動します。

ダウンロードした JDBC ドライバ

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
データソースの作成
WildFly への JMS キューの設定

[C:\Bin\wildfly-8.2.0.Final\bin\jboss-cli.bat] を実行し、以下のコマンドで、JMS キューを作成します。

connect

jms-queue add --queue-address=dolphin --entries=queue/dolphin
JMS キューの作成
OpenDolphin の暫定修正と設定変更

私の環境のせいだと思われるのですが、デプロイ時に 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.* なモジュールを除く必要があります。

web.xml
    <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 から該当の箇所を除きました。

web.xml(変更後)

修正が済んだら、[opendolphin-server] をビルドし直して下さい。

デプロイ

デプロイ前に [C:\Bin\wildfly-8.2.0.Final\] 下に [custom.properties] という空のファイルを作成しておきます。

※本来なら、中身をきちんと設定しなければならないのだと思うのですが、きちんと調べておらず、空ファイルでごまかしています。

create-custom.properties を作成した

デプロイは Web の Administration Console から行いました。

※コマンドライン (jboss-cli.bat) を使ってもデプロイできるらしいのですが、きちんと調べていません。ごめんなさい。

ブラウザで [http://localhost:9990/console/App.html] からログインし、[Deployments] 画面で [Add] ボタンを選びます。

デプロイ(Add)

[Deployment Selection] の画面で [参照] を選んでファイルを指定します。

※ビルドした war ファイルは [C:\Usr\Project\OpenDolphin\server\target\opendolphin-server-2.5.0.war] に作成されています。

デプロイ(選択) デプロイ(ファイルを選択)

ファイルを指定したら [Next] を選びます。

デプロイ(Next)

[Enable] にチェックを入れ、[Save] を選びます。

デプロイ(Save)

無事デプロイが完了したら、Deployments の一覧に表示されます。

※画面上部に一時的に「Success:: Add Content: ...」なメッセージが表示されます。

デプロイ(Save)

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 までは手が回らず、ここまでで終了してしまいました。 これだけでは、ほとんど参考にならない気もしますが、もし、誰かの何かの参考になれば幸いです。

重ね重ねで申し訳ありませんが、素晴らしいソフトを開発され、オープンソースとして公開されている、ライフサイエンス コンピューティング株式会社 オープンドルフィンラボ 様に深く感謝いたします。

駆け足でしか調べられなかったのですが、実装方法やプロジェクトの構成などリソース全てが、未熟な私にとって本当に貴重な学習となりました。厚くお礼を申し上げます。