2018年9月3日月曜日

OpenDolphinクライアントのインストールと起動

OpenDolphinクライアントは OpenDolphin Docker の GitHubのサイトからダウンロードできる。
図1 OpenDolphinのGitHub
 「クライアントから接続」の下にある「ここから クライアントプログラムをダウンロードします。」の「ここから」をクリックするとOpenDolphin.zipがダウンロードできる。ダウンロード後、解凍するとOpenDolphin.jarとlibフォルダができる。OpenDolphin.jarをダブルクリックすると図2の画面が表示される。
図2 OpenDolphinログイン画面
[設定]をクリックして、設定画面が出たら、
  • ユーザID:admin
  • ベースURL:http://172.16.111.217:8080
を入力して[保存]をクリックする。
図3 OpenDolphin設定画面
 ログイン画面に戻ったら、パスワードに admin と入力して[ログイン]ボタンをクリックする。
すると図4に示す画面が表示される。
図4 OpenDolphinの初期画面


OpenDolphinの起動と停止

OpenDolphinの起動

sudo docker start dolphin-db
sudo docker start dolphin-server

OpenDolphinの停止

sudo docker stop dolphin-server
sudo docker stop dolphin-db

自動起動の設定

Ubuntu再起動時にOpenDolphinサーバを自動起動するには、/etc/rc.localの中に起動コマンドを書いておけばよい。
図1 /etc/rc.localにOpenDolphinの起動コマンドを追加

ORCAのPostgreSQLの設定変更

ORCAが使うPostgreSQLの設定変更を行う。変更は次の2点である。
  • postgresql.confを編集してPostgreSQLが待ち受けるIPアドレスを任意にする
  • pg_hba.confを編集して全てのホストから、全てのデータベースへの接続を許可する
設定ファイルは
/etc/postgresql/9.5/main/
にある。

設定ファイルの編集に先立ってORCAを停止する。

sudo service jma-receipt stop

geditでpostgresql.confを編集する。

sudo gedit /etc/postgresql/9.5/main/postgresql.conf
図1 /etc/postgresql/9.5/main/postgresql.confの編集
すべてのIPアドレスで待ち受けるように
listen_address = '*'
と修正する。

geditでpg_hba.confを編集する。

sudo gedit /etc/postgresql/9.5/main/pg_hba.conf
図2 /etc/postgresql/9.5/main/pg_hba.conf
全てのホストから、全てのデータベースへの接続を許可するように
 host    all        all        0.0.0.0/0        trust
を末尾に付け加えた。
先頭のhostはTCP/IPの接続を表す。2番目のallは全てのデータベースに対するアクセスを表す。3番目のallは全てのユーザに対するアクセスを表す。4番目の0.0.0.0/0は接続を許可するクライアントのIPアドレスをCIDR表記したもので、0.0.0.0/0は全てのIPアドレスを示す。最後のtrustは認証無しで無条件に接続を許可することを表す(他ホストから接続するための設定)。

PostgreSQLの再起動

変更した設定を反映させるためにPostgreSQLを再起動(停止してから開始)する。
sudo service postgresql stop
sudo service postgresql start

OpenDolphinとORCAをCLAIMでつなぐ 

CLAIMとは、電子カルテと医事システムを結ぶXML規格である。ここでは、OpenDolphinサーバ(電子カルテ)とORCA(医事会計システム)を仲介するCLAIMサーバの設定方法について記す。
まず、dpkg-reconfigureコマンドを使ってインストール済みのORCAの再設定を行う。
sudo dpkg-reconfigure jma-receipt
図3 dbredirectorの設定
「jma-receipt 用に dbredirector をスタートしますか?」に対して「いいえ」を選択(デフォルト)してEnterキーを押す。
図4 SSLの設定
「glserver の SSL を有効にしますか?」に対して「いいえ」を選択して(デフォルト)Enterキーを押す。
図5 CLAIMサーバの設定
「jma-receipt 用に claim server をスタートしますか?」に対して「はい」を選択してEnterキーを押す。
図6 CLAIMサーバ待ち受けポート番号の設定
「claim server が接続待ちするポートを入力してください」に対して「8210」を入力して(デフォルト)「了解」へタブで移動してEnterキーを押す。
図7 ORCAの起動とファイアウォールの無効化
ORCAの再設定が終了したら、ORCAを起動してファイアウォールを無効化する。
sudo service jma-receipt start
sudo ufw disable
ufwはファイアウォール netfilter を管理するためのコマンドで、iptablesのラッパーになっている(iptablesは複雑なので操作を簡単にするためにufwが作られた)。ファイアウォールを無効化するのは好ましいことではないが、ORCA、OpenDolphin、そしてCLAIMが利用しているポートをいちいち洗い出してファイアウォールに穴をあける手間を省いているのだろう。

OpenDolphinのインストール

書籍「無料電子カルテ OpenDolphinパーフェクトガイド」のP46「Section 3 LinuxパソコンにOpenDolphinサーバをインストールする」にしたがってOpenDolphinをインストールした。また、OpenDolphinのインストールだけでなく様々な周辺知識についても整理しているサイト「無料電子カルテ OpenDolphin サーバーの作成」があり、これが大変参考になる。

Docker

OpenDolphinサーバは、Dockerという仮想化環境を提供するソフトを使って作られるコンテナ内で稼働させる。
作成するコンテナは
  • データベースコンテナ(dolphin-db)
  • OpenDolphinサーバコンテナ(dolphin-server)
の2つである。

Dockerのインストールと起動

Dockerをインストールする前にパッケージデータベースを更新する。
sudo apt update
図1 パッケージデータベースの更新
Dockerをダウンロードするためにcurlコマンドが使えるようにする。
sudo apt install curl
上記コマンドを入力したが、すでに最新のパッケージがインストールされていた(図2)。
図2 curlのインストール
次に、curlを使ってDockerをダウンロードしてインストールする。
sudo curl -sSL https://get.docker.com/ | sh
図3 Dockerのダウンロードとインストール
Dockerを起動する。
sudo service docker start
Dockerの情報は次のコマンドを入力することにより見ることができる。
sudo docker info
図4 Dockerの情報

OpenDolphinのインストール

OpenDolphinは先にも書いたようにデータベースコンテナとOpenDolphinサーバコンテナの2つから構成されている。各コンテナ内で稼働するDockerイメージはDocker Hubからダウンロードする。
データベースイメージのダウンロード
sudo docker pull dolphindev/postgres
図5 データベースイメージ(dolphin/db)のダウンロード
OpenDolphinサーバイメージのダウンロード
sudo docker pull dolphindev/wildfly
図6 OpenDolphinサーバイメージ(dolphindev/wildfly)のダウンロード
ダウンロードしたイメージは次のコマンドで確認できる。
sudo docker images
図7 ダウンロードしたDockerイメージ
ちなみに、postgresはOpenDolphinが使うデータベースマネージメントシステムPostgreSQLで、wildflyはOpenDolphinサーバが稼働するJava EEアプリケーションサーバで、以前は「JBoss Application Server」と呼ばれていたものである。

コンテナイメージがダウンロードできたので、まず以下のコマンドを打ち込んでPostgreSQLを起動する。
sudo docker run --name dolphin-db -P -d dolphindev/postgres
続いて、以下のコマンドを打ち込んで、WildFly(OpenDolphinサーバ)を起動する。
sudo docker run --name dolphin-server --link dolphin-db:ds -p 8080:8080 -d dolphindev/wildfly
コンテナの状態は次のコマンドを入力することにより確認できる。
sudo docker ps -a
図8 OpenDolphinの起動
docker run のオプション --name はコンテナ名を表す。-Pオプションはポートを外部に公開するオプションで、-p 8080:8080は内部ポート8080番を外部に8080番ポートとして公開することを表す。そして-dオプションは、親プロセス(ユーザのログインプロセス)が終了してもコンテナを起動させたままにするオプションである。これによって、OpenDolphinを起動したユーザがログアウトしてもOpenDolphinは動き続けることができる。

コンテナ詳細表示

コンテナの詳細を確認するには docker inspect を使う。
sudo docker inspect dolphin-db
図9 コンテナ詳細表示

2018年9月2日日曜日

日医標準レセプトソフト(ORCA)のインストール

日医標準レセプトソフト(ORCA)をORCAのサイトに従ってインストールする。

事前準備(ORCAパッケージダウンロードサイトの設定)

図1 ORCAセンターサーバーのapt-lineパッケージ導入準備
まず、sudo -i コマンドで管理者になり、wgetコマンドでORCAパッケージを認証するための公開鍵を取得してapt-keyへ追加する。
$ sudo -i
# wget -q https://ftp.orca.med.or.jp/pub/ubuntu/archive.key
# apt-key add archive.key
その後、ORCAパッケージのダウンロード元サイトを指定した設定ファイルを/etc/apt/sources.list.dに格納する。
# wget -q -O /etc/apt/sources.list.d/jma-receipt-xenial50.list https://ftp.orca.med.or.jp/pub/ubuntu/jma-receipt-xenial50.list
ORCAパッケージの設定ファイル名は jma-receipt-xenial50.list で、その内容は次のようになっている。
# cat jma-receipt-xenial50.list 
deb     http://ftp.orca.med.or.jp/pub/ubuntu xenial5.0 jma
deb-src http://ftp.orca.med.or.jp/pub/ubuntu xenial5.0 jma
deb     http://ftp.orca.med.or.jp/pub/ubuntu xenial-common jma
deb-src http://ftp.orca.med.or.jp/pub/ubuntu xenial-common jma
続いてアップデート可能なパッケージがあるかチェックして、パッケージリスト( /etc/apt/sources.list)を更新し、その後パッケージを更新する。
# apt-get update
# apt-get dist-upgrade
ここで、dist-upgradeは、
現在のシステムにインストールされているパッケージ更新に加え、追加パッケージのインストールが必要になったらインストールし、逆に要らなくなったパッケージに関しては削除もしてくれて、さらに、カーネルも最新状態にしてくれる(Ubuntu 最新バージョンへのアップグレード)。
というものである。upgradeが、単に現在のシステムにインストールされているパッケージのみ更新するのに対して、dist-upgradeはカーネルも含めて最新状態にしてくれる。
図2 apt-get dist-upgradeでUbuntuを最新状態に更新
OSバージョンを確認すると次のようになっていた。
図3 アップグレード後のOSのバージョン

ORCAサーバーのインストール

ORCAサーバー(jma-receiptパッケージ)をインストールする。

$ sudo apt-get install -y jma-receipt
一度目は「認証されていないパッケージがある」といったエラーメッセージが出て停止した。
図4 インストールエラー
 しかし、2度目に同じコマンドを入力するとインストールが完了した。
図5 インストール完了
ここで、1回目と2回目の間に sudo apt -y update と sudo apt -y upgrade を行った。updateではパッケージは最新状態ということで、upgradeでも何も更新も追加もされなかったが、これが効いたのかもしれない。
あるいは、1度目で警告を出してインストールが停止した場合、2度目のインストールではそのまま警告を出さずにインストールが行われるようになっているのかもしれない。
原因はわからないが、とにかくインストールは終了した。

データベースのセットアップを行う。

$ sudo jma-setup
図6 データベースのセットアップ

ORCAサーバー(jma-receipt)を起動する。

$ sudo service jma-receipt start

ORCA管理者アカウントormasterのパスワードを設定する。

$ sudo -u orca /usr/lib/jma-receipt/bin/passwd_store.sh
パスワードは8文字以上なので、パスワードにはhinfoのパスワードの末尾に1を付けたものを設定した。

ORCAクライアント(panda-client2)をインストールする。

$ sudo apt-get install -y panda-client2
図7 ORCAクライアントのインストール

ORCAの動作テスト

ORCAクライアント(glclient2)を起動する。
図8 ORCAクライアント(glclient2)を検索して起動する
図9 ORCAクライアントのランチャー
図9のランチャー画面が出たらパスワードを入力して[接続]をクリックする。
図10 ORCAクライアントの初期画面
図10に示す初期画面が表示されたらOK。
実際にやってみたとき、図9で[接続]ボタンをクリックしたら「サーバーに接続できない」 というエラーメッセージが出た。そこで、ORCAサーバーを再起動したところ、図10の画面が表示された。

プログラムの更新

図10の画面で[F2 プログラムの更新]ボタンをクリックする。
図11 プログラムの更新
右下の[更新]ボタンをクリックする。
図12 プログラム更新の確認画面
確認画面が表示されたら[OK]ボタンをクリックする。
図13 プログラム更新完了
プログラムの更新が完了したら[戻る]→[終了]をクリックしてORCAクライアントを終了する。

ORCAクライアントのインストール

ORCAのダウンロード・インストールサイトからクライアントソフトをダウンロードしてインストールする。
図14 ORCAのダウンロード・インストールサイト
 図14の画面から「monsiaj (Java版日医標準レセプトソフトクライアント) 5.0.0以降」をクリックする。
図15 ORCAクライアント(monsiaj)ダウンロード画面
 ORCAクライアント(monsiaj)のインストール方法には、Java Web Start版とZIPアーカイブ版の2通りの方法があるが、ここではJava Web Start版を使ってインストールを行う。
図15の右上の「最新版のダウンロード」から「Java Web Start」 をクリックして「stable.jnlp」をダウンロードする。

ORCAクライアントの起動

ダウンロードした「stable.jnlp」をダブルクリックして起動する。
図16 ORCAクライアントの起動
 すると、図17に示す確認画面が表示されるので[実行(R)]をクリックする。
図17 アプリケーション実行確認画面
 ORCAクライアントのログイン画面が出たら、
  • サーバー:http://サーバのIPアドレス:8000/rpc/
  • ユーザ:ormaster
  • パスワード:ormasterのパスワード
を入力して[接続]をクリックする。
図18 ORCAクライアントのログイン画面
 すると、図19に示すようにORCAクライアントの初期画面が現れる。
図19 ORCAクライアントの初期画面


プリンタの登録

新規にプリンターを登録する手順についてまとめる。登録するプリンターはCanon LBP8710。プリンタードライバーは既にインストール済である。

まず、[システム設定]画面を開く。
図1 システム設定画面
システム設定画面から[プリンター]を選択すると図2に示すプリンター設定画面(CUPS設定ツール)が表示される(ちなみにこれは system-config-printer を入力しても表示される)。
図2 プリンターの設定画面(CUPS設定ツール)
プリンターを追加するには左上にある[+追加]ボタンをクリックする。ところが、なぜか[+追加]ボタンがグレイアウトしていて選択できない。

【原因判明】
CUPS設定ツールにおいて[+追加]やプリンターの複製、名前の変更、削除などができなかった理由は管理者権限で動いていなかったからだと判明。
管理者権限で動かすにはコマンドで
$ sudo system-config-printer
と、管理者権限でCUPS設定ツールを起動しなければならない。

そこで、メニューバーの[サーバー(S)]をクリックして、図3の画面が出たら[CUPSサーバー]から「/var/run/cups/cups.sock」を選択して(デフォルト)[接続]ボタンをクリックしてCUPSサーバに接続する。ちなみに、[CUPSサーバー]からは「/var/run/cups/cups.sock」以外に「localhost」も選択できるが、どちらでやっても結果は変わらないのではないかと思う。
図3 CUPSサーバーに接続

図4 プリンター設定画面(CUPS設定ツール)
元の画面に戻ったら、今度は[+追加]ボタンがアクティブになっているのでクリックする。
図5 デバイス選択画面
図5のデバイス選択画面が出たら、[デバイス]から「LPD/LPRホストまたはプリンター」を選択し、[ホスト名]にプリンターのIPアドレスを、[キュー]に「lp1」と入力して[進む]をクリックする。
図6 プリンタードライバー選択画面(1)
図6のプリンタードライバー選択画面(1)が出たら、[データベースからプリンターを選択する]をチェック(デフォルト)して、[製造元]から「Canon」を選択して[進む]をクリックする。
図7 プリンタードライバー選択画面(2)
図7のプリンタードライバー選択画面(2)が出たら、[モデル]から「LBP Black and White LISP4」を選択して[進む]をクリックする。
図8 インストール可能なオプション
 図8の「インストール可能なオプション」を設定する画面が表示されたら、そのまま何もしないで[進む]をクリックする。ここでは、下記に示す何らかのオプションが設定できるようだが、何を選択して良いのかわからないため、何もしないことにする。
  • Output Option
  • Puncher Unit
  • Secure Watermark Function of Device
図9 プリンターの説明入力画面
図9のプリンターの説明を入力する画面が出たら、[プリンター名]には「lp1」を、説明には「Canon LBP 8710(Black and White LIPS4)」を、そして[場所]にはプリンター設置場所を入力して[適用]をクリックする。
図10 認証画面(1)
リモートプリンターの追加には管理者アカウントが必要なので、パスワードを入力する。
図11 認証画面(2)
もう一度、図11の認証画面が表示されるので、[OK]をクリックする。
図12 テスト頁印刷画面
図12のテスト頁印刷画面が表示されたら[テスト頁の印刷]をクリックする。
図13 テストページ送信完了通知
テストページの印刷状況を確認するために、ブラウザを立ち上げて、アドレスに
http://localhost:631
と入力してCUPSの管理ページを出し、[Printers]→[lp1]と選択すると図14の画面が表示された。
図14 CUPS管理ページでlp1の状態を確認した画面
図14が示すように、[State]に「プリンターには現在到達できません。」というエラーメッセージが表示された。

【CUPSの管理画面を日本語化する】

CUPSのWeb管理画面はブラウザの言語設定を使っている。したがって、Firefoxの[設定]→[言語]→[言語設定]で「日本語 (ja)」を選択する。

※「日本語 (ja)」になっているのにCUPS画面が英語の場合は、一度言語から「日本語 (ja)」を消してからもう一度「日本語 (ja)」を設定するとよい。
図15 CUPS設定ファイル(設定ファイルの編集)
CUPS設定ファイル(/rtc/cups/cupsd.conf) に
DefaultLanguage ja
と記述することでも日本語化できる。

【Tips】

  1. CUPSの再起動
    $ sudo service cups restart
  2. CUPS設定ツールの起動
    $ sudo system-config-printer
  3. Canon Peinter Setup Utility
    $ sudo cnsetuputil
  4. CUPS管理画面(Web)
    http://localhost:631
なお、プリンターの設定についてはORCAのドキュメントにも記述があるので、参考にするとよい。ただし、このドキュメントではプリンタードライバーとしてPPDファイルを用いる方法を説明している。
今回のように、メーカー側がドライバーインストールツールを提供している場合は、事前にインストールしておけば、[データベースからプリンターを選択する]を使ってドライバーが選択できる。

OpenDolphinとORCAの連携

第3章の章末問題 第2章の章末問題でやったカルテ例1をOpenDolphinに入力してORCAで診療報酬明細書を作成し、模範解答と比較しなさい。 を実際にやってみたのでまとめておく。 OpenDolphinで過去にさかのぼってカルテは作成できるか? その前に標題に...