DPCデータの分析とかやるブログ

DPCデータの分析なんかをテキトーにやってます。

DPC入院中に行った診療行為を探すSQL(ついでにパラメータの変え方も)

SQL

以前、DPC中に使用した注射薬剤を探すSQLを書きました。 これはちょっと修正するだけで、あらゆる診療行為に拡張できます。 このブログではSQLの解説はあんまり真面目にしてきませんでしたので、今回はゆっくり解説をしてみましょう。 なお、SQLってなんだろ…

【雑談】 「Python 機械学習プログラミング」を読み始めるなど

半分趣味ですが、「Python 機械学習プログラミング」を読み始めてます。 最初はscikit-learnのドキュメントを読もうとしましたが、あっさり挫折したので・・・ OK、少しばかり言い訳させてください。 チュートリアルはやりましたよ。 でも、私の限られた知的能…

相関係数で疾患別の特徴を見る

DPCデータを見ていると、残念ながら「件数は多いのに赤字」という疾患に出くわすことがあります。 なぜ赤字なのか、理由は疾患によりますが、理由の一つに 在院日数が伸びても資源投入に変化がない というものがります。 DPC入院料は在院日数が伸びるにつれ…

アプリケーションについて幾つか

データ分析をやっていると、当然、分析結果をプレゼンすることがあります。 大体はパワーポイントをでっち上げますが、パワポは人間の「理解しよう」という気を失わせる道具です。 スライドが1枚進むたびに、聴衆の興味は失われていきます。 (もちろん、あ…

PostgreSQL : crosstabの使い方

SQL

遅れましたがcrosstab関数の紹介です。 まず前回使ったコードをおさらいしましょう。 select * from crosstab('select データ識別番号,連番,ペイロード9 from ff1test Where コード = ''A006040''', 'select m from generate_series(1,10) m') AS( データ識…

様式1ファイルを扱ってみる(2)

<注> 今回のSQLはPostgreSQLの拡張機能を使います!Postgre以外では動きません! 今回は前回作った様式1データから、横持ちのデータを取り出してみます。 やってみたいのは、以下のようなデータ抽出です。 元データ データ識別番号 連番 ペイロード9 001 1 …

様式1ファイルを扱ってみる(1)

今までのエントリでは、DPCデータのうちEFファイルとDファイルに焦点を絞って話してきました。 当然、こう思う方もいるでしょう。 「あれ、様式1はどこいったの?」 面倒くさいので扱いたくなかった試行錯誤の途中なのでエントリにしていませんでしたが、今…

前月からDPC請求方法が変化した患者を探す

今年度の改定で、DPC請求/出来高請求は一入院で統一することになりました。 つまり、DPCから出来高分岐になれば、前月以前分は返戻処理することになります。 また、前月でDPCが終わったものの、今月になって手術などを行いDPC期間が延長になれば、前月分を返…

入院日の点滴量を調べるSQL(正規表現を使用)

脱水の多い季節です。 この仕事をしていると、夏と言えば脱水で救急医療加算を算定しようとなるのですが、さてEFファイルから対象患者を探すことは出来るでしょうか? 結論から言えば、出来るけど面倒です。 記録されている点滴の内容はこんな感じですね。 …

グラフライブラリBokehの紹介(動く例つき)

以前、Bokehというグラフライブラリの紹介をしましたが、その時は「Webベースのグラフが出来上がる」と触れ込んだくせに例は画像ファイルという体たらくでした。 今回は反省して実際に動く例を作りましたので、リンクを張ります。 Bokehの実例 ぐりぐり動か…

NULLの問題について(テーブル結合の落とし穴)

最近あった問題点のお話です。 このブログでもDPC出来高対比の出し方は何度か記事にしてきました。 要は「データ識別番号」「入院年月日」の二つをキーにしてEFファイル/Dファイルを集計し、二つのテーブルを結合するという手順を踏むのですが、では日別に…

Bokehを使ったグラフ描画

今までPythonでのグラフ描画といえばmatplotlibやSeabornがメジャーでしたが、ここにきてBokehというライブラリが完成度を上げてきました。 matplotlibが最終的に静的なイメージファイルを吐き出すのと違い、Bokehはhtmlファイルを書き出します。 縮小・拡大…

DPC出来高対比を可視化する

前々回はSeabornを使ったグラフ描画を紹介しました。 今回は具体的にデータの可視化を行ってみましょう。試しに、一ヶ月の患者別DPC出来高対比点数をグラフにしてみます。 import pandas.io.sql as psql import psycopg2 as pg import pandas as pd import n…

副傷病分岐の無いDPCを探すSQL

DPC分類番号はご存知の通り14桁の英数字で構成されています。 それぞれの番号にはルールが設定されていますので、それに従うことで特定の条件に当てはまる患者データを抽出することが可能です。 例えば、手術をしている、処置1で分岐している等ですね。 …

PythonからSQLサーバーに接続してグラフを描いてみる

今日はPythonからPostgreのDBに接続し、データを引っこ抜いてくるところまでやってみましょう。 最後にオマケで、グラフを描画してデータの可視化まで行います。 使うライブラリは以下の通り。 Pandas(Pythonでデータを扱うなら必須のライブラリ) Numpy(Pa…

EFファイル統合スクリプト(平成28年度版)

EFファイル統合をPython+Pandasで行う さて6月になりましたが、未だにEF統合ツールが公開されません。 いい加減待つのも飽きましたので、平成28年度様式に対応したEF統合スクリプトを書きました。 使い方は単純です。 下記のコードをコピペし、テキスト…

【雑談】DPCデータを扱う手法② 成功例編

前回に引き続き雑談です。 DPCデータを扱う上で、今のところ上手く行っているものを上げます。 PostgreSQL(現在も運用中) まあ、基本と言えば基本です。DPCデータのように、データ量が膨大で、かつ蓄積される性質のものであれば、SQLサーバーが最初の選択…

【雑談】DPCデータを扱う手法① 失敗例編

私がDPCデータを扱い始めてから、1年くらい経ちますが、こんだけ続けると一体何が「最適解」なのか見えてきます。 今日はそんな話を書いてみましょう。ご参考までに。 失敗したもの Excel (開始数秒で終了) これについては試した人も多いのではないでしょ…

手術点数の内訳を出すSQL(暫定)

Dファイル(EFファイルでもいいですが)には、当然手術点数が記録されています。 では単純に手術の手技点数を出してみるかー、と思ってSQLを書いたら、「異常に高い手技点数」が出てきてひっくり返りました。 どうやら普通に行為点数×行為回数をやると、「手…

DPCに包括された注射薬剤を抽出するSQL

「一体どんな注射がDPCで消えたのか」調べたい、ということは割とよくあります。 DICにおけるリコモジュリンのように、分岐が用意されていればいざ知らず、殆どの薬剤は溶けて消えてしまうからです。 以下のSQLで、誰にどのような薬剤が使われ消えて行ったの…

平成28年度EFの新項目「行為明細区分情報」について

平成28年度のEFファイルから、新たに行為明細区分情報なる項目が追加されました。 ここには以下の内容で12桁の数字が入ります。 1桁目 退院時処方区分 2桁目 入院料包括項目区分 3桁目 持参薬区分 4桁目 持参薬処方区分 5桁目 DPC適用区分 6~12桁目 0を設定…

EFデータを使った退院処方のチェック(平成28年度版)

以前にも書いていた、退院処方のチェックをするSQLです。 平成28年度から「出来高包括フラグ」が「行為明細区分情報」に 吸収されてしまったので、それに対応して変更を加えています。 --退院日に出来高になってないもの探し select データ識別番号-10 AS ID…

平成28年度新形式のE/F/EF/DファイルのSQLテーブル定義表

さて平成28年度になってしまい、EFファイル/Dファイルの用件も変更されてしまいました。 特にEFファイルは出来高・包括フラグが行為明細区分情報に置き換えられています。 さっそくPostgreSQLで読み込むためのテーブル定義文を作りましたので、参考までにど…

EFファイル統合を自力でやってみる Python+Pandasでの実装

Pythonを使う理由 まず、SQLというのは大量のデータを保存し、登録し、抽出するのには向いていますが、整形には向いていません。 手っ取り早く表形式のデータを扱い、整形するとなると、一番お手頃なのがPythonとそのライブラリPandasを使うことです。 Anaco…

EFファイル統合を自力でやってみる SQLでの実装(2)

前回までの手続きで、「Eファイルの入ったテーブル」「Fファイルの入ったテーブル」「空のEFテーブル」が出来ました。 今回はこの三つを使ってEFファイルをでっち上げてみます。 まず、EFファイルの明細点数・金額はFファイルの3つの項目をくっつけたものな…

EFファイル統合を自力でやってみる SQLでの実装(1)

PostgreSQLを使ってEFファイル統合を自力でやってみましょう。 まず、Eファイル・Fファイルを収納するテーブルを作ります。 CREATE TABLE ETEST (id INTEGER, 施設コード VARCHAR(255), データ識別番号 INTEGER, 退院年月日 DATE, 入院年月日 DATE, データ区…

EFファイル統合を自力でやってみる(1)

さて新年度となりDPC制度も変わりました。 具体的には厄介なことに様式1とEF/Dファイルの仕様が変わっています。 EFファイルとDファイル使って仕事をしてた私にはいい迷惑です。 さて、何はともあれ関連情報を見に行くと・・・あれ? 平成28年度対応版_EF…

DPC係数変更の影響を調べる

DPC係数変更の影響を調べる さて、DPC病院にはそろそろ新係数が届いたことでしょう。 いい加減上司から「で、この係数だとどんくらい増収(もしくは減収)するわけ?」と聞かれた方もいるでしょう。 そんな方へのSQLです。 select sum(行為点数*行為回数) AS…

SQLで吐き出したデータの活用について(技術的なお話)

DPCデータをSQLで引っこ抜く作業を続けていると、まあ、当然ながら「分析を」という話になる。 これが非常に面倒な話で、最初のうちはExcelでグラフをでっち上げていればいいのだが、何度も似たようなことを繰り返していると面倒になるのは間違いない。 (あ…

DPC期間中に使用した薬剤を抽出するSQL

DPC入院期間中に使用した薬剤は、特別なものを除いて全て包括されてしまう。 つまり、使った薬剤の料金は全部病院持ち、とゆーことである。 どの病院もコストをコントロールしようと思うわけだ。そこでDPC期間中に使用した薬剤を取り出すSQLなんぞを書いてみ…

EFファイル/Dファイルを使ってDPC・出来高対比を出す

DPC・出来高の点数対比は、一番業務で使いそうな数字である。 SQLを使って出す方法は、 1)該当月の患者別DPC点数集計をする 2)同じく該当月の出来高点数集計をする 3)上ふたつを突合する という手順になる。 別に1)と2)を個別に行ってExcelでvlook…

Dファイルを使ってDPCレセプト点数を出すSQL

DファイルからDPCレセプト点数を出してみる。 ・事前にDPC入院料を修正すること DファイルのDPC入院料は、医療機関係数が反映される前のものが記録されている。 そんなのあっても役に立たないので、一括で医療機関係数をかけてしまおう。 以下のSQLで簡単に…

EFファイルから患者別の出来高点数を出すSQL

EFファイルを使って出来高レセプト点数を出す EFファイルには食事料も含まれている。 データ区分97に入っているので、それを除外。 データ区分92には短期滞在入院料が入っているので、やっぱりそれも除外する。 SELECT データ識別番号,入院年月日,SUM(出…

EFファイル/Dファイル読み込み時の注意点

文字コード EFファイル/Dファイルともに文字コードはshift-JISになっている。 はっきり言ってやめて欲しい。SQLに読み込む前に、メモ帳か何かで開いて、エンコーディングをUTF-8に変更して保存し直そう。 読み込み設定 pgAdminで読み込む際は、 フォーマッ…

EFファイル/Dファイルのテーブル定義(PostgreSQL用)

PostgreSQLへ取り込むことを前提にしたテーブル定義例 ・EFファイル CREATE TABLE EF1601(id INTEGER,施設コード VARCHAR(255),データ識別番号 INTEGER,退院年月日 DATE,入院年月日 DATE,データ区分 DOUBLE PRECISION, 順序番号 DOUBLE PRECISION,行為明細番…