Top Banner
Riak でつくる Healthcare Database 川島直美
36

RiakでつくるHealthcare Database

Jul 15, 2015

Download

Healthcare

Naomi Kawashima
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: RiakでつくるHealthcare Database

RiakでつくるHealthcare Database川島直美

Page 2: RiakでつくるHealthcare Database

自己紹介

• 川島直美です

- (独)国立病院機構 本部 総合研究センター診療情報分析部 システム開発専門職

-前処理SE

- GitHub: imoan1983

Page 3: RiakでつくるHealthcare Database

診療情報分析部since 2010

• 診療データの収集・分析

-医療の可視化・比較

-質の向上・均てん化への貢献

• 国立病院機構 143病院

-入院患者:60万人/年

-外来患者:のべ1,000万人/年

Page 4: RiakでつくるHealthcare Database

今日のお話

1. 医療情報の利用

2. RiakでつくるHealthcare Database

3. これからしたいこと

Page 5: RiakでつくるHealthcare Database

医療情報の利用

Page 6: RiakでつくるHealthcare Database

二次利用

医療情報の利用

一次利用

Page 7: RiakでつくるHealthcare Database

医療情報の利用

患者個人の記録

傷病の治癒

一次利用

Page 8: RiakでつくるHealthcare Database

二次利用

医療情報の利用

不特定多数の記録

新しい知見

Page 9: RiakでつくるHealthcare Database

臨床疫学研究

前向き研究

後向き研究

Page 10: RiakでつくるHealthcare Database

臨床疫学研究

研究計画

予算獲得

調査開始

前向き研究

大金

時間

Page 11: RiakでつくるHealthcare Database

臨床疫学研究

過去データ

研究計画・予算獲得

分析開始

少額

すぐ

後向き研究

支援DBを作ろう!!

Page 12: RiakでつくるHealthcare Database

MIA since 2010

Medical Information Analysis databank

• テキストファイルを収集・RDB化

• SQLで自由分析

- DPC調査データ• 包括支払い制度参加病院(1900弱)に作成義務

-レセプトデータ• 全国9万超の保険医療機関が作成する診療報酬請求データ

RDB

Page 13: RiakでつくるHealthcare Database

レセプトで分析するお話

情報処理学会 デジタルプラクティス 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

もっと知りたい

• レセプト=『○○をしました ××円です』

-どうしてしたのか?

-した結果どうなったのか?

• カルテには書いてある

-自然言語処理はハードルが高い…

Page 15: RiakでつくるHealthcare Database

SS-MIX2データStandardized Structured Medical record Information eXchange

• 電子カルテのデータを統一形式で出力

-部門システム間連携

-地域医療機関情報連携

• 20種を超えるファイル定義

-検査結果 etc

-検査や薬を全国統一コードで記載

Page 16: RiakでつくるHealthcare Database

Riakで作るSS-MIX Database

Page 17: RiakでつくるHealthcare Database

実験開始

• データ提供

-中規模2病院

-1年分

- 1.5GB, 3.5GB

-オフライン収集

Page 18: RiakでつくるHealthcare Database

Why Riak?

Page 19: RiakでつくるHealthcare Database

未確定仕様

• SS-MIX2仕様書 ver 0.96

- 今後ファイル定義は変わりうる

- 患者ごと・日ごとのファイル

- 1KB程度 ×数百万/1年

- ファイル命名規則は確定• 患者ID_診療日_オーダーNo_タイムスタンプ_有効/無効フラグ

Key Value Store Key:ファイル名 Value:ファイル内容

Page 20: RiakでつくるHealthcare Database

総量予測困難

• 作成義務のないデータ

-電子カルテ未導入病院

-必要になったら必要な分だけ作成

• スモールスタートして急増にも備えたい

分散処理DB

Page 21: RiakでつくるHealthcare Database

AWS使う?

• 超個人情報です

-全ファイルに患者氏名

-オンプレミス前提

KVS + 分散処理 + オンプレミス

Riak

Page 22: RiakでつくるHealthcare Database

インポート

• 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

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

検索

• Riak Searchで楽々・高速

- medicineCode : AAAAA*

• どのまとまりで出力する?

Page 25: RiakでつくるHealthcare Database

患者をどう数えるか?

Q. 数えたい『1人』とは何か?

A.症例数

冬に肺炎、夏に骨折で入院は別症例

Page 26: RiakでつくるHealthcare Database

汎用的な区切りは?

• ~入院 :外来エピソード

• 入院~退院:入院エピソード

• 退院~ :外来エピソード エピソード単位で出力

入院 退院 入院

Page 27: RiakでつくるHealthcare Database

抽出後…

• 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

これからしたいこと

Page 29: RiakでつくるHealthcare Database

ファイルの取り消し

• ファイル名の末尾1桁で有効/無効の区別

患者ID_診療日_オーダーNo_タイムスタンプ_1

患者ID_診療日_オーダーNo_タイムスタンプ_0

ファイル名(Key)で検索して削除

Page 30: RiakでつくるHealthcare Database

データの保全

• 研究利用

-利用中に値が変わっては困る

• データ、indexディレクトリを保存

Page 31: RiakでつくるHealthcare Database

ファイル内のヒット

• 『HbA1c検査の値が10.0以上』で過剰ヒット

JSON化の工夫

“検査名”:“HbA1C”,“検査値”:8.2 …“検査名”:“血糖”,“検査値”:110.5…

“HbA1C”:8.2 …“血糖”:110.5…

Page 32: RiakでつくるHealthcare Database

検出限界以下・以上の表現

• 『検査値:[ * : 2 ]』で検索漏れ

JSON化の工夫

“検査値”:“<=1.0”…

“検査値下限”:0 …“検査値上限”:1.0 …

Page 33: RiakでつくるHealthcare Database

様々なエピソード

• ○○薬投与期間中

• ✕✕発症前1年から直近

• □□の検査値が△△を上回っている間

Start~Endを患者ごとに指定?

Page 34: RiakでつくるHealthcare Database

データの是正

• 仕様無視

-数値フィールドに文字列

- JISなのに『 ① 』『 ㌘ 』

-『髙』野さんは? 標準化団体へ問い合わせ

• 独自コード

-標準コード付番中

Page 35: RiakでつくるHealthcare Database

終わりに

• 大きな予算がつきそうです

-数十病院、リアルタイム収集

• 成果物を発信していきます

- https://github.com/imoan1983

Page 36: RiakでつくるHealthcare Database

ありがとうございました