OpenDolphin(オープンソース電子カルテ)とRstudioの接続
以前ブログで、OpenDolphin(電子カルテ)とORCA(日医レセコン)の環境構築について書いたところ、OpenDolphinデータベースを二次利用できるのかコメントをいただきました。
実際OpenDolphinで電子カルテを運用されている方の参考にもなるかもしれないので、仮想マシンでの環境構築とRstudioでの接続までを書いておきます。
いつも通りUbuntu仮想マシン(Ubuntu1404)を用意します。
インストール用のスクリプトは上記ブログ内のものとほぼ同じですが、OpenDolphinのDockerコンテナで使用しているPostgreSQLと、ORCAのPostgreSQLのポートがぶつからないように、Docker runするときにPort(5433)を指定しています(通常は5432)。RstudioもクライアントPCにインストールするのが面倒なので、Dockerコンテナで入れちゃいます。
Ubuntuは固定IPに変更しておいた方がベターです。
端末から(Ctrl+Alt+T)。ファイル名は何でもよいですが、とりあえずdorca.shでシェルスクリプト用ファイルを作成します。
$ gedit dorca.sh
エディターが開いたら、下記スクリプトをコピペして、保存してください。
#!bin/sh printf "password: " read password # install ORCA echo "$password" | sudo -S wget -q https://ftp.orca.med.or.jp/pub/ubuntu/archive.key sudo apt-key add archive.key sudo wget -q -O \ /etc/apt/sources.list.d/jma-receipt-trusty48.list \ https://ftp.orca.med.or.jp/pub/ubuntu/jma-receipt-trusty48.list sudo apt-get update sudo apt-get -y dist-upgrade echo "$password" | sudo -S apt-get install -y jma-receipt wget https://ftp.orca.med.or.jp/pub/data/receipt/outline/update/claim_update.tar.gz tar xvzf claim_update.tar.gz sudo bash claim_update.sh sudo jma-setup sudo service jma-receipt start sudo apt-get install -y panda-client2 # install OpenDolphin sudo apt-get update sudo apt-get install curl sudo curl -sSL https://get.docker.com/|sh sudo service docker start sudo docker pull dolphindev/postgres sudo docker pull dolphindev/wildfly sudo docker run --name dolphin-db -p 5433:5432 -d dolphindev/postgres sudo docker run --name dolphin-server --link dolphin-db:ds -p 8080:8080 -d dolphindev/wildfly sudo docker run -d --name=rstudio -p 8787:8787 rocker/hadleyverse sudo service jma-receipt stop sudo gedit /etc/postgresql/9.3/main/postgresql.conf sudo gedit /etc/postgresql/9.3/main/pg_hba.conf sudo service postgresql stop sudo service postgresql start sudo dpkg-reconfigure jma-receipt sudo service jma-receipt start sudo ufw disable # ORCApasswordの設定 sudo -u orca /usr/lib/jma-receipt/bin/passwd_store.sh
あとは、シェルスクリプトを実行するだけです。
$ sh dorca.sh
うちの通信環境とPCスペックだと、シェルスクリプトの実行時間は35分程度です。
途中ORCAの設定等の入力を求められますが、上記サイトに書いてある通り入力してください。
では今回のポイントのOpenDolphinとRstudioの接続です。
Rstudio serverはDockerコンテナで動いているので、仮想マシン(Ubuntu)のIPアドレスとポートをクライアントPCのブラウザーに入力します。
例)192.168.244.211:8787
UsernameとPasswordは共にrstudioです。
これでRstudio severに接続できます。
次にRstudioで新規ファイルを作成。
下記コードをコピペして、一行ずつ実行してみてください。
install.packages("RPostgreSQL") library("RPostgreSQL") library("dplyr") con <- dbConnect(dbDriver("PostgreSQL"), host="192.168.244.211", # 自分の環境のIPアドレスを入力 port="5433", user= "postgres", dbname="dolphin", password="postgres") dbGetInfo(con) dbListTables(con) dbListFields(con, "d_stamp") dbReadTable(con, "d_facility") res <- dbSendQuery(con, "select * from demo_patient;") dbFetch(res) dbDisconnect(con)
dbConnectで接続オブジェクトを作って、dbListTablesでテーブルを確認したり
dbListFieldsでカラムを見たり
dbReadTableでテーブルを読み込んだり
ORCAから患者登録をして、OpenDolphinでカルテに書き込んで、Rstudioで実際にデータベースを確認してみると、いろいろアイデアが浮かんでくるかと思います。
楽しんでみてください。
参考サイト
DICOMserver構築②~Conquest・postgreSQL on Ubuntu16.04
以前DockerImageを使って、簡単なDICOMserver構築をブログにアップしましたが、今回は一つ一つコマンド入力しながらインストールして、データベースもPostgreSQLに変更してみます。
今回も仮想マシン(Ubuntu64bit 16.04LTS)上にサーバー構築します。
画像サーバーなので固定IPにしておきましょう。
基本は、下記サイトのインストール用ZIPファイル内にあるlinuxmanual.pdfに従って操作すれば問題ありません。
Conquest DICOM software
ちなみにpdfのマニュアルを見るときは、ZIPファイルの解凍先フォルダで
$ evince linuxmanual.pdf
です。
ではインストールを始めましょう。
sudo apt-get update sudo apt-get install g++ sudo apt-get -y install apache2 sudo a2enmod cgi sudo service apache2 restart
まず作業フォルダを作り、移動します。
mkdir conquest cd conquest
つぎにPostgreSQLをインストールします。スーパーユーザーでデータベース(conquest)を作成します。
sudo apt-get -y install libpq-dev sudo apt-get -y install postgresql sudo su # become superuser su – postgres # become postgres user psql # set the password to postgres \password postgres postgres \q createdb conquest # create database conquest psql -l # confirm database exit exit
coquestフォルダーにZIPファイルを落としてきて、解凍し、コンパイルします。
cd conquest wget http://ingenium.home.xs4all.nl/dicomserver/dicomserver1419.zip unzip dicomserver1419.zip chmod 777 maklinux ./maklinux # compile and install web access
2を選びPostgreSQLを選択します。
エラー出ますが無視。
conquestフォルダーで、
./dgate -v -r # regenerate the database ./dgate -v # run the server
ここもいろいろ言われますが…
これでサーバーは構築されています。ブラウザのアドレスバーに' http://localhost/cgi-bin/dgate?mode=top 'と入力すると。
次にクライアントのKPACSに接続するための設定です。
端末から、Ctrl+Cでサーバーを止めて、conquestフォルダを覗いてみます。
postgres@ubuntu:~/conquest$ ls -a
acrnema.mapが設定ファイルです。
gedit acrnema.map
KPServer(KPACS)のアドレスとポートを入力して、保存します。
./dgate -v
ブラウザで確認。
設定が反映されます。
クライアント側の設定も忘れずに。
これでKPACSとConquestが接続されているはずです。
DockerでDICOMserver構築①~Conquest、SQLite
フリーのDICOM画像serverでConquestというのがあります。
最近はDockerImageもあるようなので、使ってみました。
まずは、Ubuntu64ビット16.04を準備。
$ gedit conquest.sh
エディターを立ち上げたら、下のスクリプトをコピペします。
#!bin/sh sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D sudo apt-get install docker.io # まずはdocker-conquest sudo docker run --name conquest -d -p 5678:5678 -p 80:80 wavedrift/docker-conquest
実行します。
$ sh conquest.sh
これでサーバーは動いているはずです。
ブラウザのアドレスバーに”http://localhost/cgi-bin/dgate”と入力。
上手くつながってはいるのを確認してください。
次にクライアントソフトから接続するための設定をします。
クライアントは定番のKPACS。参考サイトからダウンロードしてください。アカウントの作成とログインが必要です。
ホストPC(ウチの環境はWindows)のDICOMviewerからも見えるように、acrnema.mapの設定を変更します。
まずはacrnema.mapがどこにあるのか?当たり前だけどDockerコンテナ内なので
Ubuntu端末から、conquestコンテナ内に入ります
$ sudo docker exec -it conquest bash
ファイル検索は、findで検索。
# find / -name 'acrnema.map'
conquestフォルダにありました。
# cd conquest # ls
dicom.iniもacrnema.mapもありますね、さあ編集です。でもgeditが動かない。
うーん、辛いけどviで開く。今後のためにも参考サイト見ながら操作の勉強。
# vi acrnema.map
クライアント何個かある場合はAEタイトルが重ならないように注意です。
ホストPCのIPアドレスを入力します。
conquest serverのrestartがわからず。コンテナのrestart。
$ sudo docker restart conquest
今度はホストPC上のクライアントソフト(KPACS:DICOMviewer)の設定です。
右上のDICOMsettingボタンを押して、DICOMconfigurationsで、仮想マシンのIPアドレスを入力し設定保存します。
KPACSのQuery→Networkタブを選択→Conquestにチェック→Search filterのSearchボタンを押してみましょう。テストデータが見えました。
接続成功です。
本当は、データベースをSQLiteからMySQLに変更したかったのですが、dicom.iniファイルを変更してから、もろもろの処理ができず、お手上げ状態でした。Windowsの場合はConquestのソフトでMySQLにデータベース変更したり、データベースの初期化ができるのですが、Linuxコマンドでは上手く行きませんでした。わかる人がいたら教えて欲しい…
参考:
- Conquest:Conquest DICOM software
- Docker conquest:https://hub.docker.com/r/wavedrift/docker-conquest/
- Ubuntu 12.04 LTS上へのConquestのインストール及び運用の記録:Ubuntu 12.04 LTS上へのConquestのインストール及び運用の記録
PostgreSQLとRstudio環境構築
正直PostgreSQLは、ほぼ触ったことがありません。
ただ医師会のレセコン(ORCA)や、オープンソース電子カルテのOpenDolphinはPostgreSQLを利用しており、これからレセコン・電子カルテデータをいじるのに避けては通れません。
はじめて操作した電子カルテはMySQLだったのですが、使い始めはSQLの文法より何より、データベースサーバー・クライアントのインストール等の環境構築で手間取った記憶があります。もちろん細かいこともあとから勉強必要ですが、データベースにアクセスして操作する楽しみを少しでも早く感じれるように、環境構築の時間を可能な限り短くしたいものです。
今回PostgreSQLでSQLの練習前に、簡単に早く環境構築(PostgreSQL+Rstudio)することを目標に書いてみました。
準備するもの
時代はUbuntuです。Dockerのオーバーヘッドを減らすためメインPCのWindowsをUbuntuに上書きするか(無茶?)、仮想マシン(VMware等)にUbuntuOSをインストールしておいてください。僕はUbuntu64bit16.04LTSをインストールした仮想マシンを用意しました。
インストールからの流れ
- Dockerいれる
- PostgreSQLコンテナ走らせる
- Rstudioコンテナ走らせる
- ホストPCからつないでみる
では始めます。Ctrl+Alt+Tと押して、端末を立ち上げてください。
シェルスクリプトを書き込むrpostgres.shファイルを作ります。
$ gedit rpostgres.sh
入力するとエディターが立ち上がります。下記のスクリプトをコピペして、記録してエディターを終了してください。
#!bin/sh sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D sudo apt-get install docker.io # まずPostgres環境 sudo docker run -d --name=postgres -p 5432:5432 -e POSTGRES_PASSWORD=mypwd postgres # rstudioの環境 sudo docker run -d --name=rstudio -p 8787:8787 rocker/hadleyverse
それではシェルスクリプトを実行します。
$ sh rpostgres.sh
10分とかからずインストールは終了したかと思います。念のためコンテナが動いているか確認します。
$ sudo docker ps -a
2つのコンテナともstatusはupで大丈夫のようです。
ホストマシン(僕はWindows)のブラウザにDockerをインストールした[IPアドレス]とポート[8787]と入力します。
例)192.168.0.5:8787
UsernameとPasswordは共にrstudioです。接続できたら新規ファイルを作成。
新規ファイルに下記のスクリプトをコピペしてください。
install.packages("RPostgreSQL") library("RPostgreSQL") con <- dbConnect(PostgreSQL(), host="192.168.0.5", # 自分の環境のIPアドレスを入力 user= "postgres", password="mypwd") dbSendQuery(con, "CREATE DATABASE r_test;")
一番上の行からrstudioのRunボタンで実行してみてください。
- まずRPostgreSQLパッケージをインストール
- パッケージを読み込み
- Connectionオブジェクトを作成
- オブジェクトにクエリを投げて実行します。(r_testというデータベースを作成)
これでつながりました。
確認も兼ねて、GUIのクライアントツールもインストールしてみましょう。
pgAdmin4 : https://www.pgadmin.org/download/windows.php
r_testというデータベースが確認できました。
つながらないときは、プロパティを確認してみましょう。
一応、別の方法でも。
仮想マシンの端末からpostgresコンテナ内に入り、コマンドで確認します。
$ sudo docker exec -it postgres bash # psql -U postgres r_test r_test=# \det+
空っぽのデータベースが見えました。大丈夫そうです。
あとはPostgreSQLの勉強をして、大好きなrstudioからガンガンSQLを流し込みましょう。
参考:
OpenDolphinとORCAの簡単な環境構築
OpenDolphinは日医レセコンORCAに接続できる、オープンソースの電子カルテです。
PC初心者でも導入できるように分かりやすく書かれていますので、これを参考に動かしてみたいと思います。
gihyo.jp
はじめに
極力インストールの手間を省略するためと、ホストOSの環境をよごさないために、VMwareの仮想マシンにUbuntu64,14.04LTSをインストールし、そこにORCAをインストールします。またOpenDolphinはUbuntuのDockerを利用してインストールします。
Ubuntuが苦手、Dockerがわからなくても環境構築できるように、シェルスクリプトを使ってコード入力を少なくすることにします。
ORCA、OpenDolphinサーバーとglclient2のインストール
まずUbuntu14.04LTSの仮想マシンは準備しておいてください。僕はVMwareで準備しました。そのままのUbuntu14.04は使いにくいので日本語入力はできるように設定変更してください。
わからない方は、ここを参考にしてください。
ORCA(日医標準レセプトソフト)の導入 - R言語による電子カルテデータの二次利用
Ubuntuの端末を起動してください(Ctrl+Alt+T)。
シェルスクリプトを書き込むdorca.shファイルを作ります。
$ gedit dorca.sh
エディターが立ち上がりましたね。ここに下記のスクリプトをコピーペーストして、saveボタンで記録してください。
#!bin/sh printf "password: " read password TIME_A=`date +%s` # install ORCA echo "$password" | sudo -S wget -q https://ftp.orca.med.or.jp/pub/ubuntu/archive.key sudo apt-key add archive.key sudo wget -q -O \ /etc/apt/sources.list.d/jma-receipt-trusty48.list \ https://ftp.orca.med.or.jp/pub/ubuntu/jma-receipt-trusty48.list sudo apt-get update sudo apt-get -y dist-upgrade echo "$password" | sudo -S apt-get install -y jma-receipt wget https://ftp.orca.med.or.jp/pub/data/receipt/outline/update/claim_update.tar.gz tar xvzf claim_update.tar.gz sudo bash claim_update.sh sudo jma-setup sudo service jma-receipt start sudo apt-get install -y panda-client2 # install OpenDolphin sudo apt-get update sudo apt-get install curl sudo curl -sSL https://get.docker.com/|sh sudo service docker start sudo docker pull dolphindev/postgres sudo docker pull dolphindev/wildfly sudo docker run --name dolphin-db -P -d dolphindev/postgres sudo docker run --name dolphin-server --link dolphin-db:ds -p 8080:8080 -d dolphindev/wildfly sudo service jma-receipt stop sudo gedit /etc/postgresql/9.3/main/postgresql.conf sudo gedit /etc/postgresql/9.3/main/pg_hba.conf sudo service postgresql stop sudo service postgresql start sudo dpkg-reconfigure jma-receipt sudo service jma-receipt start sudo ufw disable # ORCApasswordの設定 sudo -u orca /usr/lib/jma-receipt/bin/passwd_store.sh TIME_B=`date +%s` PT=`expr ${TIME_B} - ${TIME_A}` H=`expr ${PT} / 3600` PT=`expr ${PT} % 3600` M=`expr ${PT} / 60` S=`expr ${PT} % 60` echo "${H}:${M}:${S}"
エディターを終了し、ファイルが記録されているか確認します。
$ cat dorca.sh
確認できたら、あとで接続設定で必要となるIPアドレスを記録しておきます。
端末をもう一つ開いて、ifconfigで仮想マシンのIPアドレスを確認。
次にVMware等仮想化ソフトを動かしているOS(僕はWindows10)のIPアドレスを確認しておきます。
メモしておきましょう。
それでは、シェルスクリプトを実行します。
$ sh dorca.sh
つぎつぎスクリプトが実行されていきます。前半はORCAのインストール、後半はDockerのインストールとOpenDolphinに必要なDockerImageのダウンロード、コンテナの実行です。とりあえずここではDockerとかコンテナとかわからなくて問題ありません。
途中で確認入力を要求されたらy[yes]と入れてください。
後半でORCAのデータベースPostgresの設定画面が開きます。
59行目、listen_addressesの前の'#'をはずし、仮想化ソフトを動かしているOS(僕はWindows10)のアドレスを追加します。
保存して終了します。次に別の設定ファイルが起動します。
最終行に'host all all 0.0.0.0/0 trust'を追加して、保存して終了します。
CLAIMサーバーの設定は、No、No、の次が下の画面になるのでYes、
Portはそのまま
最後にORCAのパスワードを確認されますので8桁以上のパスワードを入力しましょう。
これでサーバーの準備は完了です。
OpenDolphinクライアントのインストール
次のURLからクライアントソフトをダウンロードします。Javaバージョン8の実行環境が必要なので予めインストールしておいてください。
https://i18n.opendolphin.com/dolphin/client/OpenDolphin.zip
ORCA(日医標準レセプトソフト)の導入
当院では使用しておりませんが、ORCAというレセプトソフトがあります。ちょっと触ってみたいと思っても、Ubuntuにインストールするのでやや敷居が高い感じです。
今回は仮想マシンで環境構築してみます。
まずVMwareにUbuntu14.04LTSを準備します。
OSの準備
そのままだと日本語入力ができないようなので、
下記サイトを参考にmozc使えるようにしておきましょう。
OS右上のキーボードマークを押してください。
configureを選択。
➕ボタンを押して、
Only Show Current Languageのチェックを外し、Search Input Methodにmozcと入力、Mozcを選択しOK。
上矢印ボタンでMozcを一番上に移動し終了です。
ORCAのインストール
ここからORCAのインストールです。
このサイトに書いてあるとおり勧めます。
www.orca.med.or.jp
UbuntuにはWindowsのバッチのような、シェルスクリプトがあるので使ってみましょう。
まず端末を立ち上げて。(Ctrl+Alt+T)
orca.shファイルを作ります。
$ gedit orca.sh
エディターが起動します。
このエディターに下のスクリプトをコピペして、記録してください。
#!bin/sh sudo wget -q https://ftp.orca.med.or.jp/pub/ubuntu/archive.key sudo apt-key add archive.key sudo wget -q -O \ /etc/apt/sources.list.d/jma-receipt-trusty48.list \ https://ftp.orca.med.or.jp/pub/ubuntu/jma-receipt-trusty48.list sudo apt-get update sudo apt-get -y dist-upgrade sudo apt-get install -y jma-receipt wget https://ftp.orca.med.or.jp/pub/data/receipt/outline/update/claim_update.tar.gz tar xvzf claim_update.tar.gz sudo bash claim_update.sh sudo jma-setup sudo service jma-receipt start sudo apt-get install -y panda-client2 # passwordの設定 # sudo -u orca /usr/lib/jma-receipt/bin/passwd_store.sh
確認してみます。
$ cat orca.sh
実行はshコマンド
$ sh orca.sh
つぎつぎにコマンドが実行されて、ORCA環境が作成されます。
最後にスクリプトでコメントアウトしておいた、パスワードの設定コマンドを入力
$ sudo -u orca /usr/lib/jma-receipt/bin/passwd_store.sh
これで準備は整いました。
クライアントソフト
glclient2を立ち上げます。
先ほど決めたパスワードを入力
つぎにネットワーク上の他のPCからレセコンを立ち上げます。
Windows機の場合は、下記からJava Web start版をインストールしてください。
ORCA Project: monsiaj(日医標準レセプトソフトクライアント)
立ち上げたあとは、仮想マシンのコンソールからifconfigでIPaddress確認し、
アプリの接続画面にアドレス入力
接続すると
上手く起動しました。
ORCAデータの定期的バックアップと、復元方法をマスターしてしまえば、業者に委託せずとも管理できそうです。あとは医療事務さんの同意が得られれば、現在のシステムから移行できるかな…。
参考:
- Ubuntu Desktop 日本語 Remixのダウンロード
https://www.ubuntulinux.jp/download/ja-remix
- Ubuntu server 14.04で日本語入力できない
DockerでRとMySQLの環境構築(Ubuntu16.04LTS仮想マシン編)
RとMySQLをDockerで動かす練習です。
今回はUbuntu 16.04 LTSで環境作ります。
まずVMwareでUbuntu64bit16.04LTSの仮想マシンを作っておきます。
端末から、
$ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates $ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
パッケージでDockerインストールするときは
$ sudo apt-get install docker.io
では、次に以前も紹介したHadley packageの入ったrocker/hadleyverse(Docker image)を入れます。
$ sudo docker run -d -p 8787:8787 -v ~:/home/rstudio rocker/hadleyverse
データベースはMySQLにします。
$ sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 3306:3306 mysql
ちゃんとうごいているか確認
$ sudo docker ps
大丈夫みたいです。STATUSはUPになってます。
Dockerコンテナのip addressを確認して。
$ ifconfig
さてRstudioをブラウザから動かして見ましょう。
ブラウザのアドレスバーに[ip address]:8787と入力します。
Rstudio serverが立ち上がりましたね。
Username,Passwordはどちらも"rstudio"で。
Consoleからでも、PackagesタブのInstallボタンでも良いので
install.packages("RMySQL")
まずはMySQLに接続するためのパッケージをインストール。
実際データベースを操作してみましょう。
Rstudioに新規ファイルを作り、下記コードをコピペしてください。
library(RMySQL) con <- dbConnect(MySQL(), host="[ip address]", port=3306, dbname="mysql", user="root", password="mysql") dbGetQuery(con,"SHOW DATABASES;") dbGetQuery(con,"CREATE DATABASE rbeginner;") dbGetQuery(con,"SHOW DATABASES;") dbDisconnect(con) # 終わったらconnectionは切りましょう
順番にRUNボタンで実行すると。最初の"SHOW DATABASES;"ではなかったものが、2回めにできていますね。
本当にMySQLにrbegginerのデータベースができているでしょうか?
もういちどUbuntu端末に戻ります。
$ sudo docker exec -it mysql bash
mysqlコンテナに入ります。
# mysql -u root -pmysql
mysql> show databases;
できていますね。Dockerは環境構築が簡単なので良いですね。