R言語による電子カルテデータの二次利用

~R言語初心者がデータ処理を楽しめるように基本的内容中心のサイトです~

OpenDolphin(オープンソース電子カルテ)とRstudioの接続

r-beginner.hatenadiary.jp

以前ブログで、OpenDolphin(電子カルテ)とORCA(日医レセコン)の環境構築について書いたところ、OpenDolphinデータベースを二次利用できるのかコメントをいただきました。

実際OpenDolphinで電子カルテを運用されている方の参考にもなるかもしれないので、仮想マシンでの環境構築とRstudioでの接続までを書いておきます。

いつも通りUbuntu仮想マシン(Ubuntu1404)を用意します。

インストール用のスクリプトは上記ブログ内のものとほぼ同じですが、OpenDolphinのDockerコンテナで使用しているPostgreSQLと、ORCAPostgreSQLのポートがぶつからないように、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

f:id:r_beginner:20170303182547p:plain

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でテーブルを確認したり

f:id:r_beginner:20170303203529j:plain

dbListFieldsでカラムを見たり

f:id:r_beginner:20170303203625j:plain

dbReadTableでテーブルを読み込んだり

f:id:r_beginner:20170303203700j:plain

ORCAから患者登録をして、OpenDolphinでカルテに書き込んで、Rstudioで実際にデータベースを確認してみると、いろいろアイデアが浮かんでくるかと思います。
楽しんでみてください。



参考サイト