docker-composeで医薬品の副作用報告データベースJADERを取り込んだMySQLを立ち上げる

# はじめに
## JADER（医薬品副作用データベース）とは

JADER (医薬品副作用データベース:Japanese Adverse Drug Event Report) とは、[独立行政法人医薬品医療機器総合機構（PMDA）](https://www.pmda.go.jp/index.html)がインターネット上に公開している医薬品の副作用報告に関するデータベースです。PMDAの公式サイト上にある[ダウンロードページ](https://www.pmda.go.jp/safety/info-services/drugs/adr-info/suspected-adr/0005.html)よりcsv形式のデータをダウンロードすることができます。

JADERは、以下の4つのcsvファイルで構成されています。医薬品ごとに報告された副作用の種類や報告件数などを調べる場合には、「識別番号」をキーとしてテーブル間のレコードを紐づける作業が必要なため、ExcelよりもMySQLなどのデータベースに取り込んだ上で取り扱う方が楽です。
- 症例一覧(DEMO)テーブル (患者の性別、年齢、体重など)
- 医薬品情報(DRUG)テーブル (使用した医薬品名など)
- 副作用情報(REAC)テーブル (副作用やその転起など)
- 原疾患(HIST)テーブル (原疾患など)

## Jader-mysql-docker

PMDAの公式サイトに公開されているJADERのデータセットは、おおよそ月一で最新の情報に更新されているようです。更新されるたびに自分の環境のデータベースに反映させるのが面倒だったため、JADERのデータセットを取り込んだまっさらなMySQLをすぐに構築できるdocker-compose.ymlと環境設定ファイルをまとめたJader-mysql-dockerを作りました。

Jader-mysql-dockerを使うことで、インターネットより別途ダウンロードしたJADERのcsvファイルを取り込んだMySQLデータベースを簡単に立ち上げることができます。

詳しくは[github](https://github.com/haRimi-epi/Jader-mysql-docker#jader-mysql-docker)をご覧ください。

# 前提条件

## dockerとdocker-composeが利用できる環境を用意する。

- dockerについては多くの方が[タグ：docker](https://qiita.com/tags/docker)で記事を書かれていますので、そちらを参考に構築してください。
- 筆者はVSphere ESXi上にPhoton OSを展開してDocker環境として使っています。
  - この環境の導入にご興味のある方は[こちらのブログ](https://blog.denet.co.jp/lets-create-a-docker-and-docker-compose-env-using-photon-os/)などを参考にされると良いかもしれません。
  - 合わせて[タグ：ESXi](https://qiita.com/tags/esxi)もご参考に。


# Jader-mysql-dockerによるJADERを取り込んだMySQLの構築手順


## 1 . JADERの最新のデータセットをダウンロードする。
- PMDAの公式サイト上にあるJADERの[ダウンロードページ](https://www.pmda.go.jp/safety/info-services/drugs/adr-info/suspected-adr/0005.html)より、最新のデータセットを入手してください。
- 取得にあたっては、PMDAが定める所定の利用規約に同意いただく必要がある点に留意してください。

## 2 . JADERのデータセットのファイル名を変更する。
- ダウンロードしたJADERのファイル名の末尾には年月を意味する数字が付与されています。それら末尾にある年月の記載を削除し、以下のファイル名に変更してください。

~~~
demo.csv
drug.csv
hist.csv
reac.csv
~~~

## 3 . Jader-mysql-dockerの入手
- [github](https://github.com/haRimi-epi/Jader-mysql-docker#jader-mysql-docker)上のリポジトリをクローンするなどして、最新のJader-mysql-dockerを取得してください。

~~~
$ git clone https://github.com/haRimi-epi/Jader-mysql-docker.git
$ cd ./Jader-mysql-docker/
~~~

## 4 . JADERのファイルを設置
- cloneしたリポジトリの./init/jader/にはデモ用のJADERデータセットが格納されているため、それらを手順2で用意したファイルに置き換えてください。

~~~
$ ls ./init/jader/
demo.csv  drug.csv  hist.csv  reac.csv
~~~

## 5 . docer-composeを実行
- docker-composeコマンドでJader-mysql-dockerを実行してください。
- このコマンドにより、docker環境にMySQLが立ち上がり、./init/jader/下にある4つのJADERのデータが個別のテーブルとしてロードされます。

~~~
$ docker-compose up -d
~~~

## 6 . プロセスの確認

- mysql_jaderが起動していることを確認してください。
- MySQLを立ち上げてJADERファイルを取り込むため、立ち上げ完了まで２、３分程度かかります。

~~~
$ docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
cfd6a2ad9081   mysql:latest   "docker-entrypoint.s…"   13 seconds ago   Up 12 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql_jader
~~~

## 7 . データベースへのアクセス
- 全てのデータがMySQL環境にロードされると、MySQLにアクセスできるようになります。
- デフォルトではMySQLのユーザ名とパスワードは次の通りです。
  - MySQL username: root
  - MySQL userpass: root
- docker psでプロセスが立ち上がっていることが確認できるにも関わらず、データベースに接続できない場合には、データロードの最中である可能性があるため、辛抱強くもう数分お待ちください。


# おわりに

医薬品の副作用やワクチンの副反応について、ニュースやSNSでもよく話題になります。PMDAでは全国の医療機関より医薬品に関する副作用情報を収集し、それらの分析・評価を行い、安全対策の必要性を厚生労働省と連携して検討しています。この検討に使われているデータは、オープンデータとしてインターネットに公開されているため、興味のある人なら誰でも入手することができ、Jader-mysql-dockerを利用することでデータベース環境を簡単に用意できます。

ただし、副作用報告の件数が多いことだけをもって、その医薬品の安全性に問題があると結論づけることはできません。副作用報告データベースを分析する際には、[データマイニング手法によるシグナル検出](https://www.jstage.jst.go.jp/article/jjpe/14/1/14_1_27/_pdf/-char/ja)という方法が用いられます。データベースから安全性に関するシグナル（兆候）を検出し、注目すべき医薬品と副作用を特定した上で、それらの因果関係を個別の副作用報告などの症例情報や臨床試験などの情報も含めて入念に評価・検討した上で、医薬品の安全性に対する結論を出す必要があるのです。

ニュースやSNSの情報だけを鵜呑みにするのではなく、ぜひ、自分でも副作用報告のデータを分析してみてください。

# 参考記事
- [100秒でMySQLのローカル環境をDockerで作って、データも自動で入れる。最強のSQL練習環境構築法](https://zenn.dev/takuho/articles/efc40344f3122e)
  - Jader-mysql-dockerは、こちらの記事より着想を得て作成しました。
- [Photon OS を使って、Docker / Docker Compose 環境を作ってみよう](https://blog.denet.co.jp/lets-create-a-docker-and-docker-compose-env-using-photon-os/)
  - ESXiなどの仮想環境でDocker環境を構築することに興味のある方は、こちらの記事で紹介されているPhoton OSがおすすめです。

# お断り

Jader-mysql-dockerは筆者が個人的な利用を目的として作成したものです。
作成にあたっては実在の団体等とは一切関わりはありません。