SlideShare une entreprise Scribd logo
1  sur  39
EFデータ抽出ツール

  東京大学
  堀口 裕正
DPCデータを分析に使うには
• HISによるシステム化             高

• DPC分析ソフト(サービス)の利用           有償

 – ARROWS/EVE/ヒラソル・・・・・   低い




• 自分でDB化して分析              無料




               研究班がセミナーで
支援
医療機関自らDBを作って分析す
       る
• メリット
 – コストがかからない
 – 分析に必要な考え方が身につく
 – 1度作ってしまえば、同じデータを毎回出すの
   には手間がかからない
• とはいっても
 – 分析用データセットを作るのには手間と時間
   がかかる
例えば・・・
• ACCESSでのデータ分析
• 毎月のDataのインポートにかかる手間
• 分析したいものに応じて作る中間テーブルの
  設計
• データを修正したときの差し替えの手間

• 毎月決まったものを出すOR自分で高度な分析
  をしたい(しできるスキルがある)のでないと
  継続しない??
分析の結果ほしいもの
• 毎月継続してほしいもの
• 1回か2回データを出せば十分なもの

データの価値
  驚き
 満足度




         1 2 3 4 5 6 7 8  10   20
                        分析回数
結果として
• ちょっと1回データの分析結果を見てみた
  い
• あまり手間をかけたくない

といった希望が出てくる。そうすると

• DB化は面倒、DPCのデータファイルをその
  まま使って分析できないかなあ・・・。
ここからは研究班側の話
• そもそも研究遂行のために必要なので、
  情報システム+分析システムを構築
• 自分たちが使いやすいよう、あるいはよ
  り多くの成果が出るように改良やノウハ
  ウの蓄積を進めてきた。
研究班での分析システムの歴史
• 初期 統計ソフト(SPSS/STATA)+ACCESS

これでは処理しきれなくなって

• 中期 SQLサーバー+統計ソフト+BIソフト
 – BIソフト(QlikView/Spotfire・・・)

ここで得たノウハウやData Management手法を
   セミナーで医療機関の皆様に還元
近年の研究班におけるIT的課題
      1
• SQLサーバーでは量をこなせない??
 – 2009年 Fファイル9億行
 – 2010年 E/F統合ファイル 16億行
 – 7年分で約1000万退院分のデータ
 – Fファイル換算約50億行分

 処理に時間がかかる、たいへん・・・。今年も
 また16億行分のデータ・・・。非常にうれしい
         けど・・・。
近年の研究班におけるIT的課題
      2
• 論文になったり、公表したりした成果を
  作るために利用した加工データの加工ア
  イディアやロジックがそのあとお蔵入
  り・・・。

• (ありがたいことですが)年間数十本の
  論文成果、このデータの作成ロジック自
  体も世の中に貢献できないだろうか
課題1を解決するために
• 今「はやり」の分散処理システムを使うこと
  にしました。
• Hadoop/Pig
• たくさんのコンピュータを並列で使ってデー
  タが増えても機材の台数を増やすだけで解決。
• 処理をするためのスクリプト言語は統計ソフ
  トのスクリプト並み
        これはいいということで導入
             (詳しい説明は後述)
分散処理システム
• これからはBigDataの時代・・
• スケールアップよりスケールアウト
• SQLなんて古い、これからはNOSQLの時代

• なんてもてはやされています
• なんといってもOSS(オープンソースソフト
  ウエア)なので無償で使える

 すばらしい、やはり時代はこちらに・・・
     (By 東京のIT屋さん)
もちろん
• SQLサーバーを使用し続けながらデータ量を
  こなす問題を解決する手法もあります。
 – SSD+高速RAIDを使う
 – データベースを分割する
 – 機械の性能を上げる
• こちらの手法も研究班内では利用していまま
  でのSQLで培った資産を生かす試みもやって
  います。
• (ただ、この手法は大量データを処理するた
  めのノウハウなので、そこまでデータ量のな
  い医療機関の皆様に還元できる成果が少ない
  です)
とは?
• Googleの基 ソフト アのクローン
          盤   ウェ
  – Google File System, MapReduce
• Yahoo Research の Doug Cutting氏が開発
  – 元々はLuceneのサブプロジェクト
  – Apache Project
• Javaで記述!
MapReduceの実行フロー

                 <k, v>* ⇒ <k’, v’>*
       <k, v>*
Data                   Map                  <k’, <v’>*>* ⇒ <k’’, v’’>*

                                                    Reduce               Data
                 <k, v>* ⇒ <k’, v’>*
       <k, v>*
Data                   Map             Shuffle

                                                    Reduce               Data
                 <k, v>* ⇒ <k’, v’>*
       <k, v>*                              <k’, <v’>*>* ⇒ <k’’, v’’>*
Data                   Map
Pig
• Hadoopを扱いやすくするミドルウェアの1つ
• Pig Latinという専用言語で簡単にDWH的な処
  理を書けるようにしたミドルウェア
 – Javaを使用せずに、SQL的な言語でMapReduce処理
   を記述する事が出来る
 – Googleでは、同様にSawzallというスクリプト言語
   で、MapReduce処理が簡単に書けるようになって
   いる
• Yahoo!が開発
• データのロード・結合やフィルタ処理を楽に
  書ける
システム開発の前提条件
• 利用者は研究者
 – 分析は自分の手慣れたソフトで試行錯誤を繰り返
   しながら使いたい
 – SAS/SPSS/STATA/R等の統計ソフトを使う+シン
   タックスぐらいはかける(理解できる)

• 結果データは1患者1レコードのCSVデータと
  して作成、それ以上の加工はしない
• Pigというスクリプト言語を利用し、ほしい
  データを抽出するスクリプトは利用者が自分
  で作成する(UIを作らない)
開発の概要
• 今回の抽出・加工を行うためのUDF(スク
  リプト言語で使う関数)を開発し、それ
  を利用した作業が行えるようにする
• UDFで実現する内容
 – 抽出・加工内容を定義した定義ファイルがわ
   かりやすくかける
 – 定義ファイルを使って必要なレコードを抽出
   する
 – 定義ファイルを使ってクロス表を作成する
 – (おまけ)日付データの取り扱いを楽にする
GroupFilterFormat
      (抽出・集計用定義)
• フォーマット
 – <グループ名>(<項目名>:[<付加値>, ... ], ... ), ...
• サンプル
   ボスミン(642450005[1,注],
       642450164[2,注],
       620517902[1 ,注]),
   ワルファリン(613330003[1,錠],
           621938101[0.2,細粒])
作成した関数
            関数                    定義
Exists                 指定した文字が含まれるか判定する。

ValueJoin              指定した付加値を Bag として追加する。
InnerGroup             Bag を Group してタプルにする。
GetDaySpan             2つの日付から経過日数を算出する。

GetYearSpan            2つの日付から経過年数を算出する。

AddDaySpan             日付に値を加算して日付を得る。
                       Bag 中で値が連続しているタプルだけ取り
PickupSequenceValues
                       出す。
処理イメージ
処理速度
• 本研究室内環境で2009年DPCデータか
  ら20種類程度の薬剤・処置の実施の有
  無を1患者1レコード型に書き出す加工
• 様式1 約300万・ Fファイル 約9.
  5億行
     台数        処理時間
          2           6900sec
          4           3650sec
          8           2080sec
          16          1010sec
          48           380sec
本システムの今後
• このシステムは処理がDPCデータに特化し
  ていないため、多様な応用が可能
 – オーダリングのデータ
 – 電子レセプトデータ
 – Webのアクセスログ・・・
• スクリプトの記載が簡単であることを確
  保しながら、関数を増やしていく。
• 同じスクリプトを医療機関で簡便に(パ
  ソコン1台で)利用できるプログラムも
  開発中
新しい分析ソフトのご紹介
• 研究班で分散処理技術の開発を行ってき
  た副産物としてできたソフト
• パソコン1台で実行可能
• DPCデータと処理用のスクリプトを入れれ
  ばその場で結果ファイルをはき出す。

DPCデータ抽出・整形プログラム(通称
Durok)
DPCデータ抽出・整形プログラ
        ム
• 医療機関の「DB化は面倒、DPCのデータファ
  イルをそのまま使って簡単に分析できないか
  なあ・・・」を実現/もちろんOSSなので無料
  (ただし無保証)
 – (注)なお簡単かどうかについては感じ方に個人
   差があります。
• 研究班側の「このデータの作成ロジック自体
  も世の中に貢献できないだろうか」について
  も実現可能
 – 但し以前のデータは複雑なSQL分を駆使して作成
   されていますので、今後の分析分からとなります
ソフトウェアの使用方法
• もしかするとここからが本題
• ソフトの入手方法
 – 東京大学医療経営政策学のホームページから
 – 昨年度研究班の報告書DVDの中から

 – 東大のページには今から説明するサンプルス
   クリプトも一緒に置いてあります。
 – このスクリプトは随時追加予定
       http://plaza.umin.ac.jp/hmp/
ソフトを立ち上げると
分析をするには




こんな風に5箇所にファイルを設定して実行ボタンを押します。
サンプルスクリプト1
• 統合EFファイル抽出スクリプト
 – 医療資源をもっとも投入した傷病名のICD10が
   ○○である患者の統合EFファイルのデータだけを
   抜き出したファイルを作るスクリプト


• 「このスクリプトは少数の患者さんのデータ
  だけになっていれば自分でも(EXCELか何か
  で)E/Fファイルの分析ができるのに」と
  思っている方に、特定の患者のEFデータのみ
  を抜き出してファイルを作成するものです。
Master1ファイルの中身
このマスターに抽出対象ICDコードを1行1こづつ記
載します。                       • ファイル内のICD10リスト
E100                          を抽出してほしいICD10の
E101
E102                          リストに書き換えます。
E103
E104
E105
E106
E107
E108
E109
E110
E111
E112
E113
E114
E115
E116
E117
E118
E119
データ抽出スクリプトの中身
MASTER = load 'master.txt';          • こちらは特段い
A = JOIN FF1 by $32,MASTER by $0;      じる必要はあり
                                       ません。
A1 = Foreach A generate $0,$3,$9,$2;
A2 = FILTER A1 by $3==0;
B = JOIN A2 by ($0,$1,$2),EF by
($0,$1,$3);
FINALDATA =FOREACH B generate
$4,$5,$6,$7,$8,$9,$10,
$11,$12,$13,$14,$15,$16,$17,$18,$19,
$20,$21,$22,$23,$24,$25,$26,$27,$28,
$29,$30,$31,$32,$33,$34;
結果ファイル
• 出力フォルダーにoutput.txtというファイ
  ルができます。そこに抽出された患者の
  統合EFファイルが書き出されます。
  (フォーマットはそのままです)

• あとはお好みでEXCELでもACCESSでもで
  ファイルを開いて分析を行ってください。
サンプルスクリプト2
• 標準化死亡比計算スクリプト
 – 国立病院機構が平成22年度医療の質評価・公
   表推進事業における臨床評価指標において公
   表(http://www.hosp.go.jp/7,9502.html )した標準
   化死亡比の計算方法に基づいて、自分のデー
   タで標準化死亡比を計算するスクリプトです。
使い方
• Durokにて統合EFファイル・様式1ファイ
  ル・本スクリプト及びマスターを選択し、
  実行します。
• 出力フォルダーのoutput.txtというファイ
  ルにデータが書き出されます。
出力データ
左から順に
 –   医療機関番号
 –   退院患者数
 –   死亡退院患者数
 –   予測死亡数
 –   (実)死亡退院率
 –   予測死亡退院率
 –   標準化死亡比
 –   標準化死亡比の95%信頼区間上限
 –   標準化死亡比の95%信頼区間下限
     の順に記載されています。
このほかにこのソフトでできる
       こと
患者番号 レセプトコード 名称                    投与量     点数        実施日
                   バイアスピリン錠100
 1000036 610443053                       1        5.8 20101220
                   ㎎
                   バイアスピリン錠100
 1000036 610443053                       1        5.8 20101224
                   ㎎                                        ログ型データから
                   バイアスピリン錠100
 1000036 610443053                       1        5.8 20101229
                   ㎎
                   バイアスピリン錠100
 1000036 610443053                       1        5.8 20101229
                   ㎎
                   バイアスピリン錠100
 1002404 610443053                       1        5.8 20100805
                   ㎎
                   バイアスピリン錠100
 1002404 610443053                       1        5.8 20100812
                   ㎎
                   グリセオール注200m
 1002404 620002191                       3       909 20100729
                   l
                   グリセオール注200m
 1002404 620002191                     バイアスピリン 20100730
                                         3       909                    グリセオール
                   l
                      患者番号       投与量計    初回投与日 最終投与日 投与量計               初回投与日 最終投与日
                         1000036       4    20101220     20101229
                         1002404       2    20100805     20100812   6    20100729   20100730


                          1患者1レコード型へのデータ変換

                          これで統計ソフトで、分析ができる
1患者1レコード型の
   データ変換スクリプト
• 現在鋭意プログラム開発中
• シンプルに表現できるスクリプトでこの
  処理ができるようになる予定
• 目標今年夏が終わるまで。

• 今のソフトのままでも実現可能ですが、
  スクリプトが複雑/速度が遅いので現在公
  開を見合わせています。
自分でスクリプトが書きたい
• もちろん自分で書くこ
  ともできます。
• 日本語で紹介されてい
  る本で使えるものはこ
  の本
• 3800円 450ページ
• Pigのスクリプトについ
  て書かれている部分は
  20ページあまりです。

• 分散処理そのものに興
  味がある人には非常に
  おすすめです。
まとめ DPCデータを分析に使うに
         は
• HISによるシステム化                高

• DPC分析ソフト(サービス)の利用              有償

 – ARROWS/EVE/ヒラソル・・・・・      低い




• 自分でDB化して分析                 無料

• DPCデータから直接分析をする
              研究班新規のやり方の提案

Contenu connexe

Tendances

IoT風速計を作った話
IoT風速計を作った話IoT風速計を作った話
IoT風速計を作った話YuitaTakenaka
 
DID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpactDID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpactYusuke Kaneko
 
クラスタリングとレコメンデーション資料
クラスタリングとレコメンデーション資料クラスタリングとレコメンデーション資料
クラスタリングとレコメンデーション資料洋資 堅田
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しようAmazon Web Services Japan
 
【JEUG】 オープンSIEMの世界へ
【JEUG】 オープンSIEMの世界へ【JEUG】 オープンSIEMの世界へ
【JEUG】 オープンSIEMの世界へHibino Hisashi
 
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~Developers Summit
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...ケンタ タナカ
 
クラウドTCOの真実
クラウドTCOの真実クラウドTCOの真実
クラウドTCOの真実SORACOM, INC
 
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)Hiroshi Tokumaru
 
アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門Yoichi Kawasaki
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadogtyamane
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析Yuki Mizuno
 
実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性
実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性
実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性Noriyuki Mizuno
 
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2Kentaro Mitsuyasu
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編Mikiya Okuno
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかJun Kato
 

Tendances (20)

IoT風速計を作った話
IoT風速計を作った話IoT風速計を作った話
IoT風速計を作った話
 
DID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpactDID, Synthetic Control, CausalImpact
DID, Synthetic Control, CausalImpact
 
クラスタリングとレコメンデーション資料
クラスタリングとレコメンデーション資料クラスタリングとレコメンデーション資料
クラスタリングとレコメンデーション資料
 
これがCassandra
これがCassandraこれがCassandra
これがCassandra
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
 
【JEUG】 オープンSIEMの世界へ
【JEUG】 オープンSIEMの世界へ【JEUG】 オープンSIEMの世界へ
【JEUG】 オープンSIEMの世界へ
 
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
【15-B-7】無意味なアラートからの脱却 ~ Datadogを使ってモダンなモニタリングを始めよう ~
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
最高の統計ソフトウェアはどれか? "What’s the Best Statistical Software? A Comparison of R, Py...
 
クラウドTCOの真実
クラウドTCOの真実クラウドTCOの真実
クラウドTCOの真実
 
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
 
アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadog
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性
実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性
実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性
 
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
 

Similaire à DPCデータ(E/Fファイル)分析ツールの紹介

20120822_dstn技術交流会_DataSpider接続先技術動向
20120822_dstn技術交流会_DataSpider接続先技術動向20120822_dstn技術交流会_DataSpider接続先技術動向
20120822_dstn技術交流会_DataSpider接続先技術動向dstn
 
20180605 azure antenna_workshop
20180605 azure antenna_workshop20180605 azure antenna_workshop
20180605 azure antenna_workshopMiyuki Mochizuki
 
Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Hitoshi Yoshida
 
【Dll171201】深層学習利活用の紹介 掲載用
【Dll171201】深層学習利活用の紹介 掲載用【Dll171201】深層学習利活用の紹介 掲載用
【Dll171201】深層学習利活用の紹介 掲載用Hirono Jumpei
 
カタログDTPのデータを活用しよう!
カタログDTPのデータを活用しよう!カタログDTPのデータを活用しよう!
カタログDTPのデータを活用しよう!Masataka Kawahara
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネスMie Mori
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosionRakuten Group, Inc.
 
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...Insight Technology, Inc.
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展Recruit Technologies
 
オープンソースのデータ分析ソフト3製品「RapidMiner」「NYSOL」「Revolution R Enterprise (RRE) ※Rの商用版」のご紹介
オープンソースのデータ分析ソフト3製品「RapidMiner」「NYSOL」「Revolution R Enterprise (RRE) ※Rの商用版」のご紹介オープンソースのデータ分析ソフト3製品「RapidMiner」「NYSOL」「Revolution R Enterprise (RRE) ※Rの商用版」のご紹介
オープンソースのデータ分析ソフト3製品「RapidMiner」「NYSOL」「Revolution R Enterprise (RRE) ※Rの商用版」のご紹介Satoshi Kitajima
 
Apuri she ji_gaido_d_bmentenansushe_ji__v1.0
Apuri she ji_gaido_d_bmentenansushe_ji__v1.0Apuri she ji_gaido_d_bmentenansushe_ji__v1.0
Apuri she ji_gaido_d_bmentenansushe_ji__v1.0Kaito Tonooka
 
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤aitc_jp
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Tatsuya Tojima
 
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューションDell TechCenter Japan
 
20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!
20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!
20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!VxRail ChampionClub
 

Similaire à DPCデータ(E/Fファイル)分析ツールの紹介 (20)

jubatus pressrelease
jubatus pressreleasejubatus pressrelease
jubatus pressrelease
 
20120822_dstn技術交流会_DataSpider接続先技術動向
20120822_dstn技術交流会_DataSpider接続先技術動向20120822_dstn技術交流会_DataSpider接続先技術動向
20120822_dstn技術交流会_DataSpider接続先技術動向
 
20180605 azure antenna_workshop
20180605 azure antenna_workshop20180605 azure antenna_workshop
20180605 azure antenna_workshop
 
おしゃスタat銀座
おしゃスタat銀座おしゃスタat銀座
おしゃスタat銀座
 
Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2
 
JAWS DAYS 2022
JAWS DAYS 2022JAWS DAYS 2022
JAWS DAYS 2022
 
データ分析概略
データ分析概略データ分析概略
データ分析概略
 
【Dll171201】深層学習利活用の紹介 掲載用
【Dll171201】深層学習利活用の紹介 掲載用【Dll171201】深層学習利活用の紹介 掲載用
【Dll171201】深層学習利活用の紹介 掲載用
 
カタログDTPのデータを活用しよう!
カタログDTPのデータを活用しよう!カタログDTPのデータを活用しよう!
カタログDTPのデータを活用しよう!
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion情報爆発シンポジウム infoplosion
情報爆発シンポジウム infoplosion
 
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは?  by 日本ヒューレット・パッ...
[db tech showcase Tokyo 2014] C25: Facebookが採用した世界最大級の分析基盤とは? by 日本ヒューレット・パッ...
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
オープンソースのデータ分析ソフト3製品「RapidMiner」「NYSOL」「Revolution R Enterprise (RRE) ※Rの商用版」のご紹介
オープンソースのデータ分析ソフト3製品「RapidMiner」「NYSOL」「Revolution R Enterprise (RRE) ※Rの商用版」のご紹介オープンソースのデータ分析ソフト3製品「RapidMiner」「NYSOL」「Revolution R Enterprise (RRE) ※Rの商用版」のご紹介
オープンソースのデータ分析ソフト3製品「RapidMiner」「NYSOL」「Revolution R Enterprise (RRE) ※Rの商用版」のご紹介
 
Apuri she ji_gaido_d_bmentenansushe_ji__v1.0
Apuri she ji_gaido_d_bmentenansushe_ji__v1.0Apuri she ji_gaido_d_bmentenansushe_ji__v1.0
Apuri she ji_gaido_d_bmentenansushe_ji__v1.0
 
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
 
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
【講演資料】ビッグデータ時代の経営を支えるビジネスアナリティクスソリューション
 
20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!
20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!
20171012_VxRailチャンピオンクラブKickOffセミナー_BootUp!ハイパーコンバージド!
 

DPCデータ(E/Fファイル)分析ツールの紹介

  • 2. DPCデータを分析に使うには • HISによるシステム化 高 • DPC分析ソフト(サービス)の利用 有償 – ARROWS/EVE/ヒラソル・・・・・ 低い • 自分でDB化して分析 無料 研究班がセミナーで 支援
  • 3. 医療機関自らDBを作って分析す る • メリット – コストがかからない – 分析に必要な考え方が身につく – 1度作ってしまえば、同じデータを毎回出すの には手間がかからない • とはいっても – 分析用データセットを作るのには手間と時間 がかかる
  • 4. 例えば・・・ • ACCESSでのデータ分析 • 毎月のDataのインポートにかかる手間 • 分析したいものに応じて作る中間テーブルの 設計 • データを修正したときの差し替えの手間 • 毎月決まったものを出すOR自分で高度な分析 をしたい(しできるスキルがある)のでないと 継続しない??
  • 6. 結果として • ちょっと1回データの分析結果を見てみた い • あまり手間をかけたくない といった希望が出てくる。そうすると • DB化は面倒、DPCのデータファイルをその まま使って分析できないかなあ・・・。
  • 7. ここからは研究班側の話 • そもそも研究遂行のために必要なので、 情報システム+分析システムを構築 • 自分たちが使いやすいよう、あるいはよ り多くの成果が出るように改良やノウハ ウの蓄積を進めてきた。
  • 8. 研究班での分析システムの歴史 • 初期 統計ソフト(SPSS/STATA)+ACCESS これでは処理しきれなくなって • 中期 SQLサーバー+統計ソフト+BIソフト – BIソフト(QlikView/Spotfire・・・) ここで得たノウハウやData Management手法を セミナーで医療機関の皆様に還元
  • 9. 近年の研究班におけるIT的課題 1 • SQLサーバーでは量をこなせない?? – 2009年 Fファイル9億行 – 2010年 E/F統合ファイル 16億行 – 7年分で約1000万退院分のデータ – Fファイル換算約50億行分 処理に時間がかかる、たいへん・・・。今年も また16億行分のデータ・・・。非常にうれしい けど・・・。
  • 10. 近年の研究班におけるIT的課題 2 • 論文になったり、公表したりした成果を 作るために利用した加工データの加工ア イディアやロジックがそのあとお蔵入 り・・・。 • (ありがたいことですが)年間数十本の 論文成果、このデータの作成ロジック自 体も世の中に貢献できないだろうか
  • 11. 課題1を解決するために • 今「はやり」の分散処理システムを使うこと にしました。 • Hadoop/Pig • たくさんのコンピュータを並列で使ってデー タが増えても機材の台数を増やすだけで解決。 • 処理をするためのスクリプト言語は統計ソフ トのスクリプト並み これはいいということで導入 (詳しい説明は後述)
  • 12. 分散処理システム • これからはBigDataの時代・・ • スケールアップよりスケールアウト • SQLなんて古い、これからはNOSQLの時代 • なんてもてはやされています • なんといってもOSS(オープンソースソフト ウエア)なので無償で使える すばらしい、やはり時代はこちらに・・・ (By 東京のIT屋さん)
  • 13. もちろん • SQLサーバーを使用し続けながらデータ量を こなす問題を解決する手法もあります。 – SSD+高速RAIDを使う – データベースを分割する – 機械の性能を上げる • こちらの手法も研究班内では利用していまま でのSQLで培った資産を生かす試みもやって います。 • (ただ、この手法は大量データを処理するた めのノウハウなので、そこまでデータ量のな い医療機関の皆様に還元できる成果が少ない です)
  • 14. とは? • Googleの基 ソフト アのクローン 盤 ウェ – Google File System, MapReduce • Yahoo Research の Doug Cutting氏が開発 – 元々はLuceneのサブプロジェクト – Apache Project • Javaで記述!
  • 15. MapReduceの実行フロー <k, v>* ⇒ <k’, v’>* <k, v>* Data Map <k’, <v’>*>* ⇒ <k’’, v’’>* Reduce Data <k, v>* ⇒ <k’, v’>* <k, v>* Data Map Shuffle Reduce Data <k, v>* ⇒ <k’, v’>* <k, v>* <k’, <v’>*>* ⇒ <k’’, v’’>* Data Map
  • 16. Pig • Hadoopを扱いやすくするミドルウェアの1つ • Pig Latinという専用言語で簡単にDWH的な処 理を書けるようにしたミドルウェア – Javaを使用せずに、SQL的な言語でMapReduce処理 を記述する事が出来る – Googleでは、同様にSawzallというスクリプト言語 で、MapReduce処理が簡単に書けるようになって いる • Yahoo!が開発 • データのロード・結合やフィルタ処理を楽に 書ける
  • 17. システム開発の前提条件 • 利用者は研究者 – 分析は自分の手慣れたソフトで試行錯誤を繰り返 しながら使いたい – SAS/SPSS/STATA/R等の統計ソフトを使う+シン タックスぐらいはかける(理解できる) • 結果データは1患者1レコードのCSVデータと して作成、それ以上の加工はしない • Pigというスクリプト言語を利用し、ほしい データを抽出するスクリプトは利用者が自分 で作成する(UIを作らない)
  • 18. 開発の概要 • 今回の抽出・加工を行うためのUDF(スク リプト言語で使う関数)を開発し、それ を利用した作業が行えるようにする • UDFで実現する内容 – 抽出・加工内容を定義した定義ファイルがわ かりやすくかける – 定義ファイルを使って必要なレコードを抽出 する – 定義ファイルを使ってクロス表を作成する – (おまけ)日付データの取り扱いを楽にする
  • 19. GroupFilterFormat (抽出・集計用定義) • フォーマット – <グループ名>(<項目名>:[<付加値>, ... ], ... ), ... • サンプル ボスミン(642450005[1,注], 642450164[2,注], 620517902[1 ,注]), ワルファリン(613330003[1,錠], 621938101[0.2,細粒])
  • 20. 作成した関数 関数 定義 Exists 指定した文字が含まれるか判定する。 ValueJoin 指定した付加値を Bag として追加する。 InnerGroup Bag を Group してタプルにする。 GetDaySpan 2つの日付から経過日数を算出する。 GetYearSpan 2つの日付から経過年数を算出する。 AddDaySpan 日付に値を加算して日付を得る。 Bag 中で値が連続しているタプルだけ取り PickupSequenceValues 出す。
  • 22. 処理速度 • 本研究室内環境で2009年DPCデータか ら20種類程度の薬剤・処置の実施の有 無を1患者1レコード型に書き出す加工 • 様式1 約300万・ Fファイル 約9. 5億行 台数 処理時間 2 6900sec 4 3650sec 8 2080sec 16 1010sec 48 380sec
  • 23. 本システムの今後 • このシステムは処理がDPCデータに特化し ていないため、多様な応用が可能 – オーダリングのデータ – 電子レセプトデータ – Webのアクセスログ・・・ • スクリプトの記載が簡単であることを確 保しながら、関数を増やしていく。 • 同じスクリプトを医療機関で簡便に(パ ソコン1台で)利用できるプログラムも 開発中
  • 24. 新しい分析ソフトのご紹介 • 研究班で分散処理技術の開発を行ってき た副産物としてできたソフト • パソコン1台で実行可能 • DPCデータと処理用のスクリプトを入れれ ばその場で結果ファイルをはき出す。 DPCデータ抽出・整形プログラム(通称 Durok)
  • 25. DPCデータ抽出・整形プログラ ム • 医療機関の「DB化は面倒、DPCのデータファ イルをそのまま使って簡単に分析できないか なあ・・・」を実現/もちろんOSSなので無料 (ただし無保証) – (注)なお簡単かどうかについては感じ方に個人 差があります。 • 研究班側の「このデータの作成ロジック自体 も世の中に貢献できないだろうか」について も実現可能 – 但し以前のデータは複雑なSQL分を駆使して作成 されていますので、今後の分析分からとなります
  • 26. ソフトウェアの使用方法 • もしかするとここからが本題 • ソフトの入手方法 – 東京大学医療経営政策学のホームページから – 昨年度研究班の報告書DVDの中から – 東大のページには今から説明するサンプルス クリプトも一緒に置いてあります。 – このスクリプトは随時追加予定 http://plaza.umin.ac.jp/hmp/
  • 29. サンプルスクリプト1 • 統合EFファイル抽出スクリプト – 医療資源をもっとも投入した傷病名のICD10が ○○である患者の統合EFファイルのデータだけを 抜き出したファイルを作るスクリプト • 「このスクリプトは少数の患者さんのデータ だけになっていれば自分でも(EXCELか何か で)E/Fファイルの分析ができるのに」と 思っている方に、特定の患者のEFデータのみ を抜き出してファイルを作成するものです。
  • 30. Master1ファイルの中身 このマスターに抽出対象ICDコードを1行1こづつ記 載します。 • ファイル内のICD10リスト E100 を抽出してほしいICD10の E101 E102 リストに書き換えます。 E103 E104 E105 E106 E107 E108 E109 E110 E111 E112 E113 E114 E115 E116 E117 E118 E119
  • 31. データ抽出スクリプトの中身 MASTER = load 'master.txt'; • こちらは特段い A = JOIN FF1 by $32,MASTER by $0; じる必要はあり ません。 A1 = Foreach A generate $0,$3,$9,$2; A2 = FILTER A1 by $3==0; B = JOIN A2 by ($0,$1,$2),EF by ($0,$1,$3); FINALDATA =FOREACH B generate $4,$5,$6,$7,$8,$9,$10, $11,$12,$13,$14,$15,$16,$17,$18,$19, $20,$21,$22,$23,$24,$25,$26,$27,$28, $29,$30,$31,$32,$33,$34;
  • 32. 結果ファイル • 出力フォルダーにoutput.txtというファイ ルができます。そこに抽出された患者の 統合EFファイルが書き出されます。 (フォーマットはそのままです) • あとはお好みでEXCELでもACCESSでもで ファイルを開いて分析を行ってください。
  • 33. サンプルスクリプト2 • 標準化死亡比計算スクリプト – 国立病院機構が平成22年度医療の質評価・公 表推進事業における臨床評価指標において公 表(http://www.hosp.go.jp/7,9502.html )した標準 化死亡比の計算方法に基づいて、自分のデー タで標準化死亡比を計算するスクリプトです。
  • 34. 使い方 • Durokにて統合EFファイル・様式1ファイ ル・本スクリプト及びマスターを選択し、 実行します。 • 出力フォルダーのoutput.txtというファイ ルにデータが書き出されます。
  • 35. 出力データ 左から順に – 医療機関番号 – 退院患者数 – 死亡退院患者数 – 予測死亡数 – (実)死亡退院率 – 予測死亡退院率 – 標準化死亡比 – 標準化死亡比の95%信頼区間上限 – 標準化死亡比の95%信頼区間下限 の順に記載されています。
  • 36. このほかにこのソフトでできる こと 患者番号 レセプトコード 名称 投与量 点数 実施日 バイアスピリン錠100 1000036 610443053 1 5.8 20101220 ㎎ バイアスピリン錠100 1000036 610443053 1 5.8 20101224 ㎎ ログ型データから バイアスピリン錠100 1000036 610443053 1 5.8 20101229 ㎎ バイアスピリン錠100 1000036 610443053 1 5.8 20101229 ㎎ バイアスピリン錠100 1002404 610443053 1 5.8 20100805 ㎎ バイアスピリン錠100 1002404 610443053 1 5.8 20100812 ㎎ グリセオール注200m 1002404 620002191 3 909 20100729 l グリセオール注200m 1002404 620002191 バイアスピリン 20100730 3 909 グリセオール l 患者番号 投与量計 初回投与日 最終投与日 投与量計 初回投与日 最終投与日 1000036 4 20101220 20101229 1002404 2 20100805 20100812 6 20100729 20100730 1患者1レコード型へのデータ変換 これで統計ソフトで、分析ができる
  • 37. 1患者1レコード型の データ変換スクリプト • 現在鋭意プログラム開発中 • シンプルに表現できるスクリプトでこの 処理ができるようになる予定 • 目標今年夏が終わるまで。 • 今のソフトのままでも実現可能ですが、 スクリプトが複雑/速度が遅いので現在公 開を見合わせています。
  • 38. 自分でスクリプトが書きたい • もちろん自分で書くこ ともできます。 • 日本語で紹介されてい る本で使えるものはこ の本 • 3800円 450ページ • Pigのスクリプトについ て書かれている部分は 20ページあまりです。 • 分散処理そのものに興 味がある人には非常に おすすめです。
  • 39. まとめ DPCデータを分析に使うに は • HISによるシステム化 高 • DPC分析ソフト(サービス)の利用 有償 – ARROWS/EVE/ヒラソル・・・・・ 低い • 自分でDB化して分析 無料 • DPCデータから直接分析をする 研究班新規のやり方の提案