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

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

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

DPC分類番号はご存知の通り14桁の英数字で構成されています。 それぞれの番号にはルールが設定されていますので、それに従うことで特定の条件に当てはまる患者データを抽出することが可能です。
例えば、手術をしている、処置1で分岐している等ですね。
今回は「副傷病分岐の無いDPC」を探してみます。ありがちな話ですが、コーディング担当者の見落としで、実は副傷病分岐がある、というケースもあるからです。
それを全患者疑ってかかるのは非常にめんどいので、あらかじめ「誰を」疑うのか決めてしまいましょう。

select distinct 病棟コード,データ識別番号,診療行為名称,分類番号
from d1606
Where 分類番号 LIKE '____________0_'
AND データ区分 = 93

Where 分類番号 LIKE '____________0_' がミソです。 分かりづらいですが、12桁のアンダーバーと0,そして1桁のアンダーバーです。
PostgreのLIKE構文は、アンダーバーを「任意の1文字」と見なします。
この条件では、第13桁目が「0」のものが検索されます。
そもそも副傷病分岐がないものは「x」が入りますし、既に分岐されているものは「1」が入っていますので、得られる結果は「副傷病分岐はあるが、分岐されていない患者」のリストです。

ちなみに%は「任意の何か、有無は問わない」と見なされます。 なので「何でもいいから脳梗塞という文言が入ったもの」という条件で検索したいときは%脳梗塞%としてやれば、「急性脳梗塞」も「脳梗塞後遺症」も「脳梗塞」も全て引っかかります。

今回は極めて単純なパターンマッチなのでSQLで済ませましたが、これ以上複雑なことをやるのであればスクリプト側で処理するのが良いでしょう。