読者です 読者をやめる 読者になる 読者になる

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

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

様式1ファイルの項目マスタをアップしました

DPCデータ提出で使われる、様式1ファイルのペイロード項目マスタをGitHubで公開しています。完全な情報は厚生労働省のサイトに公開されていますが、残念ながらPDFでした。データ分析に利用できるよう、csvとxlsxで公開しています。

Postgres用SQLクエリまとめに追加をしました

このブログでは今まで色々なSQLクエリを紹介してきましたが、殆どがPostgreSQL用でした。 SQLite向けのクエリはDPCチェッカーに突っ込んでいますが、Postgres用のクエリはどこにもまとまっていません。 流石に不味い、ということでこちらに随時アップロード…

DPCチェッカー 0.13 Windowsアプリケーション版を配布開始

DPCデータの簡易分析ツール、DPCチェッカーのWindows版を公開しました。算定チェックや簡単な可視化をやっています。

Scalaでcsvをいじってみました

Scalaを使ってCSVデータをいじってみます。使用する外部ライブラリはopencsvのみ。

EFファイル/DファイルをPowershellで扱う

PowerShellでEFファイルやDファイルを扱ってみます。Import-Ccvコマンドを使えば、単純な置換作業はとても簡単になります。

PostgreSQL用のクエリをまとめてます(進行形)

このブログではずっとPostgreSQL用にクエリを書き連ねて来ましたが、そろそろいい数になりましたのでGitHubに上げることにしました。 こちらです。 まだ数は多くありませんが、これから順次増やしていく予定です。 また、よくよく考えるとPostgresの環境構築…

SQLiteと日付型データについて

SQL

SQLiteは素晴らしいツールです。 単体exeで走り、かつデータベースは一つのファイルに纏まるので、DBをUSBに入れて、実行環境ごと持ち運ぶことが出来ます。 パブリックドメインなので、好きなように使って大丈夫です。Accessと違って、DBのサイズ制限も無い…

DPCチェッカー 0.12 ダッシュボード機能を書き直し

DPCチェッカーは、SQLとPandasを用いたDPCデータの簡易分析ツールです。ver 0.12にアップデートしました。

DPCチェッカー0.11 認知症ケア加算のチェック機能を追加

例によってこちらです。 今回は単なるクエリの追加だけですが、SQLiteの仕様について面白いことも分かったので、いずれ別記事で書きます。 また、今後の方針についてですが・・・ 今後の方針 やっぱりexeで走るアプリケーションにしたい 中身のコードがひどいの…

「改訂新版JavaScript本格入門」を読みました

今書いているアプリケーションでは、ブラウザを使ったデータの可視化をやってます。 残念ながらその部分はJavaScriptに頼らざるを得ず、コピペと当てずっぽうではコードが動かないので、本を買いました。 「改訂新版JavaScript本格入門」は、痒いところに手…

行値式を使った条件指定について(Postgres SQL前提)

SQL

保険算定というのは奇々怪々です。 あまりにも制度が複雑になりすぎて、「○○を行った患者さんで、××は算定してなくて、でも△△を算定してる人が知りたい」みたいな問題が割と出てきます。 一つ一つの条件は単純ですが、重なってくると面倒ですね。 さて、入院…

DPC疾患の月別推移を可視化する(修正版)

前回はタイトル通り、DPC疾患の月別推移を可視化する関数を書きました。 あれは実行するとデータを作り、同時にグラフを描画するというひどい代物で、流石に反省しましたのでクラスに書き換えてみました。 何気にこのブログでクラスを書くのは初めてですね。…

DPC疾患の月別推移を可視化する

今回はDPC入院料の分析のお話です。 DPC入院料の推移を見ると、時折奇妙な動きをすることがあります。特定の科の数字が跳ね上がったり、下がったりです。 もちろん中身をチェックすることになりますが、毎回集計して目で見るのは面倒ですね。自動化しましょ…

認知症ケア加算の算定ミスをチェックする

明けましておめでとうございます。 つい数日前のエントリで、今年はSQL紹介だけの単調なエントリはやらないぞ!と書いておいてアレですが、算定ミスチェックのSQLでございます。 認知症ケア加算は、「入院後14日以前か、15日以降か」で算定する点数が変わり…

2016年の終わりに

このブログを始めたのが今年の1月でしたので、年が明ければ一周年となります。 お読み頂いた皆さんには、お付き合い頂き有り難うございました。 来年はもう少しマシな内容になると思います・・・うーん、なる、はず・・・なるといいな・・・ 2016年のまとめ 今年はず…

Pythonでのデータ可視化について色々

Pythonでグラフを描こうと思ったら まあ、普通はmatplotlibですね。 matplotlibは事実上のデファクトであり、これで困ることはまずありません。以上、今回はこれで終わり・・・ というわけには行きませんね。他にも幾つかの選択肢がありますので、見ていきまし…

DPCチェッカー0.10 ダッシュボード機能を追加

例によってこちらです。 バージョン0.08の変更点:ダッシュボード機能 予告通りダッシュボードをつけました。 開くと科別・病棟別の出来高対比グラフ、また同じく科別・病棟別の収益分布がグラフで描画されます。 ネタが思いつけば追加は簡単なので、順次増…

DPCチェッカー0.08 デザインをちょっと修正

例によってこちらからどうぞ。 バージョン0.08の変更点:デザイン修正 これを書いている人間は、残念ながら「デザイン」とか「絵心」というものは皆無です。 ということでGoogle様のMaterial Design Liteに乗っかりました。 といっても所々昔のままで、ツギ…

SQL方言について(ついでにDPCチェッカーにクエリを追加)

SQLの方言 残念なことですが、SQLは実装ごとに方言があります。 私はPostgreSQLばっかりいじってたので気にも留めていませんでしたが、今回DPCチェッカーを作っていて否が応でも気付かざる得ませんでした。 DPCチェッカーは組み込みで配布するため、SQLite3…

DPCチェッカー0.07 : 外部クエリの読み込みに対応しました

例によってこちらからどうぞ。 バージョン0.07の変更点:外部クエリの読み込み機能について 今まで当ツールはコード内部にそのまんまSQLクエリが書いてあるというシロモノでした。 拡張性もへったくれもありませんので、バージョン0.07でSQLクエリは本体から…

DPCチェッカーを0.06にアップデートしました

といっても、csvエクスポート機能をつけただけですが… 例によってこちらからどうぞ。 今後の予定としては さっさと外部クエリ読み込みを実装する というか今までブログに上げてきたクエリを整理してGitHubにまとめる Bokehを使った可視化は業務でやってるの…

DPCチェッカー 0.05を公開しました

DPCチェッカー 0.05 いきなりですが、業務の片手間にツールを作ったので公開します。 こちらからどうぞ。 DPCチェッカーはEF/Dファイルを読み込み、出来高対比を算出したり、退院時処方のエラーチェックを行うソフトです。 Flask/Pandas/SQLite3で実装された…

持参薬の記録についてあれこれ

10月から持参薬の記録が必須になりました。 面倒極まりない仕様ですが、データを扱うときにも注意点が増えます。 というのも、この持参薬情報、 出来高実績点数や明細点数情報を保持したままなのです! つまり、普通にEFファイルを集計すると、持参薬込の…

再びのアプリケーション考察

データ分析をやっていると、やっぱり「アプリケーションで配布したい!」と思うときがあります。 (このブログで書いている諸々のSQL文も、まとめてアプリケーションにバンドルしてしまいたいのです) 最近真剣に選択肢を検討してみたので、結果をつらつら書…

pandasql : DataFrameにSQLクエリを発行するライブラリ

やっぱりDataFrameにもSQLをゴリゴリ書きたい! Pandasをいじっていると、そう思うことはよくあります。 別にDataFrameに不満があるわけではありませんが、例えば次のような例を見てみましょう。 df = pd.DataFrame({'category':['game','game','game','PC',…

電子点数本を使ってDPCデータを拡張する(2)

前回はDPC点数本をDBに取り込むと便利かも、みたいな話で終わりました。 例えば 分類番号 病名 入院期間1 入院期間2 入院期間3 040080xx 肺炎 5 12 30 みたいなテーブルを用意します。今回は仮にdpcmasterというテーブル名とします。 Dファイルには分類番号…

電子点数本を使ってDPCデータを拡張する(1)

DPCのDファイルには、DPC分類番号が記録されています。 理論的には、これを利用し紐付けすれば、その日の診療データがDPC期間のどの区分に該当するか、といった分析も可能になる筈です。 そのためのデータが厚生労働省のページで配布されているので、今回は…

【雑談】 「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」読んでます

以前に「Python 機械学習プログラミング」を読んでましたが、原理的な部分の理解が今ひとつだったので別な本に手を出しました。 「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」です。 最初からこれ読めば良かった 機械学習の初…

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を設定…