riakでつくるhealthcare database
TRANSCRIPT
![Page 1: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/1.jpg)
RiakでつくるHealthcare Database川島直美
![Page 2: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/2.jpg)
自己紹介
• 川島直美です
- (独)国立病院機構 本部 総合研究センター診療情報分析部 システム開発専門職
-前処理SE
- GitHub: imoan1983
![Page 3: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/3.jpg)
診療情報分析部since 2010
• 診療データの収集・分析
-医療の可視化・比較
-質の向上・均てん化への貢献
• 国立病院機構 143病院
-入院患者:60万人/年
-外来患者:のべ1,000万人/年
![Page 4: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/4.jpg)
今日のお話
1. 医療情報の利用
2. RiakでつくるHealthcare Database
3. これからしたいこと
![Page 5: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/5.jpg)
医療情報の利用
![Page 6: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/6.jpg)
二次利用
医療情報の利用
一次利用
![Page 7: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/7.jpg)
医療情報の利用
患者個人の記録
傷病の治癒
一次利用
![Page 8: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/8.jpg)
二次利用
医療情報の利用
不特定多数の記録
新しい知見
![Page 9: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/9.jpg)
臨床疫学研究
前向き研究
後向き研究
![Page 10: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/10.jpg)
臨床疫学研究
研究計画
予算獲得
調査開始
前向き研究
大金
時間
![Page 11: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/11.jpg)
臨床疫学研究
過去データ
研究計画・予算獲得
分析開始
少額
すぐ
後向き研究
支援DBを作ろう!!
![Page 12: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/12.jpg)
MIA since 2010
Medical Information Analysis databank
• テキストファイルを収集・RDB化
• SQLで自由分析
- DPC調査データ• 包括支払い制度参加病院(1900弱)に作成義務
-レセプトデータ• 全国9万超の保険医療機関が作成する診療報酬請求データ
RDB
![Page 13: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/13.jpg)
レセプトで分析するお話
情報処理学会 デジタルプラクティス 2013年15号https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_
action=repository_view_main_item_detail&
item_id=94255&item_no=1&page_id=13&block_id=8
第36回 データマイニング+WEB@東京
http://www.slideshare.net/naomikawashima52/
tokyowebmining36th
載りました
喋りました
![Page 14: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/14.jpg)
もっと知りたい
• レセプト=『○○をしました ××円です』
-どうしてしたのか?
-した結果どうなったのか?
• カルテには書いてある
-自然言語処理はハードルが高い…
![Page 15: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/15.jpg)
SS-MIX2データStandardized Structured Medical record Information eXchange
• 電子カルテのデータを統一形式で出力
-部門システム間連携
-地域医療機関情報連携
• 20種を超えるファイル定義
-検査結果 etc
-検査や薬を全国統一コードで記載
![Page 16: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/16.jpg)
Riakで作るSS-MIX Database
![Page 17: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/17.jpg)
実験開始
• データ提供
-中規模2病院
-1年分
- 1.5GB, 3.5GB
-オフライン収集
![Page 18: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/18.jpg)
Why Riak?
![Page 19: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/19.jpg)
未確定仕様
• SS-MIX2仕様書 ver 0.96
- 今後ファイル定義は変わりうる
- 患者ごと・日ごとのファイル
- 1KB程度 ×数百万/1年
- ファイル命名規則は確定• 患者ID_診療日_オーダーNo_タイムスタンプ_有効/無効フラグ
Key Value Store Key:ファイル名 Value:ファイル内容
![Page 20: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/20.jpg)
総量予測困難
• 作成義務のないデータ
-電子カルテ未導入病院
-必要になったら必要な分だけ作成
• スモールスタートして急増にも備えたい
分散処理DB
![Page 21: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/21.jpg)
AWS使う?
• 超個人情報です
-全ファイルに患者氏名
-オンプレミス前提
KVS + 分散処理 + オンプレミス
Riak
![Page 22: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/22.jpg)
インポート
• HL7メッセージの組み合わせ
-繰り返しあり、省略あり
MSH|^~\&|HIS123|SEND|GW|RCV|20111220103059.0000||OUL^R22^OUL_R22|20111220131032|P|2.5||||||~ISO PID|0001||0001000052^^^^PI||患者^太郎^^^^^L^I~カンジャ^タロウ^^^^^L^P||19700405|M|||^^^^PV1|0001|O|01^^^^^CSPM|1|000000001219001||023^血清^JC10|||||||||||||201112191500OBR|1|000000011000354|000000001219001|E001^血液学的検査^99O03|||20111219|20111219||||||||607^医ORC|SC|000000011000354|000000001219001||CM||||20111220103059|||607^医師一郎^^^^^^^^L^^^^^I|01OBX|1|NM|3A016000002327102^A/G比^JC10||1.7||1.2-2.0||||F|||201112191500OBX|2|NM|3A010000002327101^総蛋白^JC10||7.2|g/dl^g/dl^99XYZ|6.70-8.3||||F|||201112191500OBX|3|NM|3A015000002327101^アルブミン^JC10||4.9|g/dl^g/dl^99XYZ|3.7-5.5||||F|||201112191500
![Page 23: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/23.jpg)
HL7
• 各フィールドに省略あり、深さあり
- JSON化してインポート
- kuenishi/meddatumhttps://github.com/kuenishi/meddatum
“fieldA”:“AA”, “fieldB”:{“subField1”:“B1”,“subField2”:“B2”}, “fieldD”:“DD”
AA | B1 ^ B2|| DD
![Page 24: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/24.jpg)
検索
• Riak Searchで楽々・高速
- medicineCode : AAAAA*
• どのまとまりで出力する?
![Page 25: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/25.jpg)
患者をどう数えるか?
Q. 数えたい『1人』とは何か?
A.症例数
冬に肺炎、夏に骨折で入院は別症例
![Page 26: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/26.jpg)
汎用的な区切りは?
• ~入院 :外来エピソード
• 入院~退院:入院エピソード
• 退院~ :外来エピソード エピソード単位で出力
入院 退院 入院
![Page 27: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/27.jpg)
抽出後…
• JSONでは統計ソフトに渡せない
• kuenishi/presto-riakhttps://github.com/kuenishi/presto-riak
- SQLで二次元表を出力
-グループ化
presto:default> select * from table;hosp_id | patiend_id | date
---------+------------+---------123456 | 7777777777 | 19830311123456 | 0000000000 | 20000401234567 | 3333333333 | 20140122
(3 rows)
![Page 28: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/28.jpg)
これからしたいこと
![Page 29: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/29.jpg)
ファイルの取り消し
• ファイル名の末尾1桁で有効/無効の区別
患者ID_診療日_オーダーNo_タイムスタンプ_1
患者ID_診療日_オーダーNo_タイムスタンプ_0
ファイル名(Key)で検索して削除
![Page 30: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/30.jpg)
データの保全
• 研究利用
-利用中に値が変わっては困る
• データ、indexディレクトリを保存
![Page 31: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/31.jpg)
ファイル内のヒット
• 『HbA1c検査の値が10.0以上』で過剰ヒット
JSON化の工夫
“検査名”:“HbA1C”,“検査値”:8.2 …“検査名”:“血糖”,“検査値”:110.5…
“HbA1C”:8.2 …“血糖”:110.5…
![Page 32: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/32.jpg)
検出限界以下・以上の表現
• 『検査値:[ * : 2 ]』で検索漏れ
JSON化の工夫
“検査値”:“<=1.0”…
“検査値下限”:0 …“検査値上限”:1.0 …
![Page 33: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/33.jpg)
様々なエピソード
• ○○薬投与期間中
• ✕✕発症前1年から直近
• □□の検査値が△△を上回っている間
Start~Endを患者ごとに指定?
![Page 34: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/34.jpg)
データの是正
• 仕様無視
-数値フィールドに文字列
- JISなのに『 ① 』『 ㌘ 』
-『髙』野さんは? 標準化団体へ問い合わせ
• 独自コード
-標準コード付番中
![Page 35: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/35.jpg)
終わりに
• 大きな予算がつきそうです
-数十病院、リアルタイム収集
• 成果物を発信していきます
- https://github.com/imoan1983
![Page 36: RiakでつくるHealthcare Database](https://reader033.vdocuments.net/reader033/viewer/2022042615/55a616441a28abf9328b47d7/html5/thumbnails/36.jpg)
ありがとうございました