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

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

PostgreSQLとRstudio環境構築

正直PostgreSQLは、ほぼ触ったことがありません。

ただ医師会のレセコン(ORCA)や、オープンソース電子カルテのOpenDolphinはPostgreSQLを利用しており、これからレセコン・電子カルテデータをいじるのに避けては通れません。
はじめて操作した電子カルテMySQLだったのですが、使い始めはSQLの文法より何より、データベースサーバー・クライアントのインストール等の環境構築で手間取った記憶があります。もちろん細かいこともあとから勉強必要ですが、データベースにアクセスして操作する楽しみを少しでも早く感じれるように、環境構築の時間を可能な限り短くしたいものです。

今回PostgreSQLSQLの練習前に、簡単に早く環境構築(PostgreSQL+Rstudio)することを目標に書いてみました。

準備するもの

時代はUbuntuです。Dockerのオーバーヘッドを減らすためメインPCのWindowsUbuntuに上書きするか(無茶?)、仮想マシンVMware等)にUbuntuOSをインストールしておいてください。僕はUbuntu64bit16.04LTSをインストールした仮想マシンを用意しました。
f:id:r_beginner:20161129205319p:plain

インストールからの流れ

  • Dockerいれる
  • 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

f:id:r_beginner:20161210180552j:plain
2つのコンテナともstatusはupで大丈夫のようです。

ホストマシン(僕はWindows)のブラウザにDockerをインストールした[IPアドレス]とポート[8787]と入力します。
例)192.168.0.5:8787
f:id:r_beginner:20161210180000p:plain

UsernameとPasswordは共にrstudioです。接続できたら新規ファイルを作成。

f:id:r_beginner:20161210175824p:plain

新規ファイルに下記のスクリプトをコピペしてください。

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

f:id:r_beginner:20161210173610p:plain

r_testというデータベースが確認できました。
つながらないときは、プロパティを確認してみましょう。

f:id:r_beginner:20161210173752p:plain

一応、別の方法でも。
仮想マシンの端末からpostgresコンテナ内に入り、コマンドで確認します。

$ sudo docker exec -it postgres bash
# psql -U postgres r_test
r_test=# \det+

f:id:r_beginner:20161210175304j:plain

空っぽのデータベースが見えました。大丈夫そうです。
あとは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)。
f:id:r_beginner:20161207174556p:plain

シェルスクリプトを書き込むdorca.shファイルを作ります。

$ gedit dorca.sh

f:id:r_beginner:20161207175536p:plain
エディターが立ち上がりましたね。ここに下記のスクリプトをコピーペーストして、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)のアドレスを追加します。
f:id:r_beginner:20161207181433j:plain
保存して終了します。次に別の設定ファイルが起動します。
f:id:r_beginner:20161207182323j:plain
最終行に'host all all 0.0.0.0/0 trust'を追加して、保存して終了します。

CLAIMサーバーの設定は、No、No、の次が下の画面になるのでYes、
f:id:r_beginner:20170226143834j:plain
Portはそのまま
f:id:r_beginner:20170226143841j:plain

最後にORCAのパスワードを確認されますので8桁以上のパスワードを入力しましょう。
これでサーバーの準備は完了です。

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

次のURLからクライアントソフトをダウンロードします。Javaバージョン8の実行環境が必要なので予めインストールしておいてください。
https://i18n.opendolphin.com/dolphin/client/OpenDolphin.zip

glclient2の設定

Ubuntuランチャーの一番上のボタンを押して、glclient2を検索
f:id:r_beginner:20161119154709j:plain
起動したら、先程入力したORCAのパスワードを入力してください。
f:id:r_beginner:20161119155003j:plain
01 医療事務ボタンを押すと、下記画面になります。
f:id:r_beginner:20161119155458p:plain
91マスタ登録から、101システム管理マスタを開き、管理コード9000CLAIM接続情報を選び、何度かEnterを押して確定。
f:id:r_beginner:20161207190702j:plain
CLAIM接続するを選び、送信アドレスに、OpenDolphinクライアントのIPアドレス(Win10)を入力、受付ポート5002を入力し登録します。
f:id:r_beginner:20161207190824j:plain

OpenDolphinクライアントの設定

ログイン画面から設定を選び
f:id:r_beginner:20161207191300p:plain
サーバー設定では、サーバーの欄に仮想マシンIPアドレスを入力
f:id:r_beginner:20161207191429p:plain
レセコン設定では、レセコンとの接続をクライアントにして、IPアドレス仮想マシンIPアドレス、ポート番号8210、リッスンアドレスをDolphinクライアントのIPアドレス(Win10)として保存。
f:id:r_beginner:20161207191727p:plain

以上で設定は終了です。使い方はORCAのサイトを参考に。
テスト患者をORCAから入力してみましょう。OpenDolphinのメインウインドウに患者が出力されました。これでORCAとOpneDolphinのCLAIM接続は成功です。
f:id:r_beginner:20161207192152j:plain

Enjoy!!

ORCA(日医標準レセプトソフト)の導入

当院では使用しておりませんが、ORCAというレセプトソフトがあります。ちょっと触ってみたいと思っても、Ubuntuにインストールするのでやや敷居が高い感じです。
今回は仮想マシンで環境構築してみます。
まずVMwareにUbuntu14.04LTSを準備します。

OSの準備

そのままだと日本語入力ができないようなので、
下記サイトを参考にmozc使えるようにしておきましょう。
OS右上のキーボードマークを押してください。

f:id:r_beginner:20161204112112j:plain
configureを選択。

f:id:r_beginner:20161204112139j:plain
➕ボタンを押して、

f:id:r_beginner:20161204112149j:plain
Only Show Current Languageのチェックを外し、Search Input Methodにmozcと入力、Mozcを選択しOK。

f:id:r_beginner:20161204112304j:plain
上矢印ボタンでMozcを一番上に移動し終了です。

ORCAのインストール

ここからORCAのインストールです。
このサイトに書いてあるとおり勧めます。
www.orca.med.or.jp

UbuntuにはWindowsのバッチのような、シェルスクリプトがあるので使ってみましょう。
まず端末を立ち上げて。(Ctrl+Alt+T)
orca.shファイルを作ります。

$ gedit orca.sh

エディターが起動します。
f:id:r_beginner:20161204113403j:plain
このエディターに下のスクリプトをコピペして、記録してください。

#!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を立ち上げます。
f:id:r_beginner:20161204145613j:plain

先ほど決めたパスワードを入力
f:id:r_beginner:20161204145630j:plain

レセプトソフトORCA仮想マシン上でたちあがりました。
f:id:r_beginner:20161204150028p:plain

つぎにネットワーク上の他のPCからレセコンを立ち上げます。
Windows機の場合は、下記からJava Web start版をインストールしてください。

ORCA Project: monsiaj(日医標準レセプトソフトクライアント)

立ち上げたあとは、仮想マシンのコンソールからifconfigでIPaddress確認し、
f:id:r_beginner:20161204150906j:plain

アプリの接続画面にアドレス入力
f:id:r_beginner:20161204151009p:plain

接続すると
f:id:r_beginner:20161204151120p:plain
上手く起動しました。

ORCAデータの定期的バックアップと、復元方法をマスターしてしまえば、業者に委託せずとも管理できそうです。あとは医療事務さんの同意が得られれば、現在のシステムから移行できるかな…。

参考:

  • Ubuntu Desktop 日本語 Remixのダウンロード

https://www.ubuntulinux.jp/download/ja-remix

  • Ubuntu server 14.04で日本語入力できない

Ubuntu server 14.04で日本語入力できない - pandazx's blog

DockerでRとMySQLの環境構築(Ubuntu16.04LTS仮想マシン編)

RとMySQLをDockerで動かす練習です。
今回はUbuntu 16.04 LTSで環境作ります。

まずVMwareでUbuntu64bit16.04LTSの仮想マシンを作っておきます。
f:id:r_beginner:20161129205319p:plain
端末から、

$ 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

f:id:r_beginner:20161129211745j:plain
大丈夫みたいです。STATUSはUPになってます。

Dockerコンテナのip addressを確認して。

$ ifconfig

f:id:r_beginner:20161129211301j:plain

さてRstudioをブラウザから動かして見ましょう。
ブラウザのアドレスバーに[ip address]:8787と入力します。
Rstudio serverが立ち上がりましたね。
f:id:r_beginner:20161129212203p:plain
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;

f:id:r_beginner:20161129214240j:plain

できていますね。Dockerは環境構築が簡単なので良いですね。

Rで画像処理~magick package

最近、ホームページもRmarkdownで書くようになりました。凝ったものは必要ないし、修正するのも楽だし、Rstudioで全て済ませられるので満足してます。ただホームページに貼り付ける画像を編集するのに、他の画像ソフトを立ち上げるのはやや面倒だなとは感じていました。でも、もうほかのソフトは必要ないかもしれません、magick packageがあれば…

インストール

magickは、ImageMagick STLというものをラップしているみたいです。
まずはインストールしてみましょう。

install.packages("magick")

画像の入出力

パッケージを読み込んでから、画像を取り込みます。
先日頂いた、えび味噌ラーメン画像です。

library(magick)
ramen <- image_read('img/ebi_miso.jpg')

Rstudioのviewerに出力するには、ramenとそのまま打ち込むだけです。


f:id:r_beginner:20160911123202j:plain
f:id:r_beginner:20160911125853j:plain
コンソールには画像の情報も一緒に出力されます。

画像の情報だけ欲しい場合は、image_infoを使います。

image_info(ramen)

ちなみに画像の出力は、image_writeを使います。

image_write(ramen,path='img/ebi_miso.png',format='png')

画像の処理

画像のサイズ変更は、image_scaleで。

library(dplyr)
image_scale(ramen, "200") %>% image_browse()  # width: 300px
image_scale(ramen, "x200") %>% image_browse() # height: 300px

画像の回転、鏡像はimage_rotate,image_flip,image_flopで。

image_rotate(ramen, 45)
image_flip(ramen)
image_flop(ramen)

f:id:r_beginner:20160911135847j:plain
画像のフィルター、効果は、image_blur,image_noiseで。

image_blur(ramen, 10, 5)
image_noise(ramen) 

f:id:r_beginner:20160911140655j:plain

画像のテキスト注釈

上の写真のようなテキストを付けるのは、image_annotateを使います。

ramen %>% 
  image_annotate(.,'text!!',size=70,gravity='northeast',color='green') 

f:id:r_beginner:20160911141542j:plain

画像の結合

ラーメン画像を3枚用意します(ramen1,ramen2,ramen3)。
3つの画像をcombineしてから、image_appendするのですが、画像の大きさが、まちまちかもしれないので、image_scaleで高さをそろえてからappendしてください。

img <- c(ramen1,ramen2,ramen3)
image_append(image_scale(img, "x200")) 

f:id:r_beginner:20160911143743j:plain

レイヤー

Photoshopみたいにレイヤーを重ねたりできます。

logo <- image_read("https://www.r-project.org/logo/Rlogo.png")
image_scale(ramen, "500") ->ramen500
image_scale(logo, "300") ->logo300
img <- c(ramen500 ,logo300)
image_mosaic(img)

f:id:r_beginner:20160911144328j:plain

アニメーション

先ほどのラーメン画像3枚でパラパラアニメです。image_animateを使用します。

img <- c(ramen1,ramen2,ramen3)
image_animate(image_scale(img, "200x200"), fps = 1, dispose = "previous") 

f:id:r_beginner:20160911145157g:plain

試してない機能もまだまだあります。
ラスター画像に変換し、ggplotに貼り付けたりもできるようです。

まとめ

簡単な画像処理は、Rでできそうです。
たくさんの画像に同じ処理するような場合には、効率よいですね。
繰り返し作業は画像ソフトより、可能な限りRで済ませたいものです。

ggmapで位置情報を可視化

電子カルテ用のPCはインターネットに接続されていないものが多いです。セキュリティーの問題もありやむを得ないのですが…。ただ折角の患者位置情報を可視化できないのはもったいないことです。Rでは、leaflet packageでインタラクティブな地図にプロットもできますがインターネット接続が必要となりますので、今回は静的な地図へのプロットをggmap packageで練習します。

練習用のデータ(コンビニ位置情報)は、下記から入手しました。
http://www.sinfonica.or.jp/kanko/estrela/refer/s29/index.html
あらかじめtokyo3.csvというファイル名で保存しておきます。

df<- read.csv("tokyo3.csv",header = F)
colnames(df) <- c("name","address","lon","lat")

こんなデータフレームになります。

address name lon lat
ファミリーマート練馬駅西口店 東京都練馬区練馬1丁目15-1 139.6525 35.73847
セブンイレブン練馬3丁目店 東京都練馬区練馬3-1-10 139.6504 35.73736
ローソンストア100練馬3丁目店 東京都練馬区練馬3-1-7 139.6504 35.73736

まずは背景となる地図をget_map関数でゲットします。地図の中心は東京駅(lat=35.6813023,lon=139.7640529)とします。

library(ggmap)
lon_tokyo <- 139.7640529
lat_tokyo <- 35.6813023
map <- get_map(location=c(lon_tokyo,lat_tokyo), zoom=10,maptype = "terrain",source = c("google"))

地図の表示はggmap関数です。

ggmap(map) 

f:id:r_beginner:20160824191848j:plain

get_mapの引数maptypeはいろいろ選択できます。
f:id:r_beginner:20160824194217j:plain

詳しくは、ここを参照。
https://github.com/dkahle/ggmap/blob/master/R/get_map.R

先ほどのコンビニ位置データ(df)をプロットします。geom_pointで点を載せてみましょう。

ggmap(map) + 
  geom_point(aes(x=lon, y=lat), data=df, size=1, colour='red')

f:id:r_beginner:20160824204755j:plain

ここから一工夫。東京駅から10キロ圏内のコンビニをプロットしてみましょう。
二点間の距離が分かればいいのですが、どうすれば良いのでしょう。
ちゃんと緯度経度から距離を計算するヒュベニの公式がというものがあるのですね…

関数を作るのが面倒であれば下記サイトを参考にしてください。ちゃんとRの関数が載っています(MIT Licenseとのことです)
二地点の緯度・経度からその距離を計算する(日本は山だらけ〜)

東京駅からの距離カラム(dist)を追加します。

address name lon lat dist
ファミリーマート練馬駅西口店 東京都練馬区練馬1丁目15-1 139.6525 35.73847 11923.65
セブンイレブン練馬3丁目店 東京都練馬区練馬3-1-10 139.6504 35.73736 12020.09
ローソンストア100練馬3丁目店 東京都練馬区練馬3-1-7 139.6504 35.73736 12020.09

10キロ以内のデータを抽出すると

ggmap(map) + 
  geom_point(aes(x=lon, y=lat), data=df[df$dist <=10000,], size=1, colour='red')

f:id:r_beginner:20160824210559j:plain

ここまでできれば、診療圏調査も簡単です。
クリニックからの距離毎に来院患者数を出したり、患者年齢層で色分けしたり、新患がどこから来ているか調べたり…
看板も効果的に設置できますね。

RでSQLデータベースへの接続1~MySQL編

電子カルテのデータベースは各施設で環境が違うため、今回は接続イメージを理解するためMySQLで練習してみます。

MySQLの準備
まずMySQLをダウンロード

MySQL

インストールはおまかせで。

f:id:r_beginner:20160207115540j:plain

デフォルトでconnectorも入るらしいのでそのまま

f:id:r_beginner:20160207115728j:plain

Port:3306で

f:id:r_beginner:20160207120246j:plain

rootパスワード設定して

f:id:r_beginner:20160207120019j:plain

接続テストして、Connection successful

f:id:r_beginner:20160207120114j:plain

次はRの準備

今回はMySQLなので、RMySQLパッケージを使って

library(RMySQL)
library(dplyr)
con <- dbConnect(MySQL(), host="localhost", port=3306, dbname="world", user="root", password="****")
dbGetQuery(con,"SELECT * FROM country") %>% tail()
dbDisconnect(con) # 終わったらconnectionは切りましょう

簡単ですね~