WFU

2015年6月2日 星期二

如何取出併發症?


作者:陳建翰 醫師


這篇文章, 是在探勘健保資料庫的過程當中, 自己找到的取出併發症的過程,
跟大家分享!


資料庫:  DD檔

ID 來源:
已經完成篩選的表格, 確保每一個ID對應的都是一個資料 (以下用代號: 5_final)

併發症的定義:
手術出院後30天內的再住院 , 30天是目前我有看到的文獻大家可以接受標準


步驟:

1. 先創建另一個Table, (51_chk) , 先用5_final 為來源, 抓出ID 以及 OP時間(OPdate)當基底

2. 創建Table  51_chk2001,

Select 2001年dd檔中的住院時間, 所有ICD9_CM code 以及ICD_OP_Code,
from dd2001
Inner joint 51_chk on 51_chk.ID = dd2001.ID
AND datediff (dd2001.住院日, 51_chk.手術日) < 30 
AND datediff (dd2001.住院日, 51_chk.手術日) > 0
Group by 51_chk.ID

[注意] 一定要加上> 0, 不然會把開刀前的住院一起抓進來就QQ了,

3. 同樣的方法, 複製到看你想抓幾年! 每一年都用不同的檔名!

4. 把這些表Combine成一個表: 請用最簡單的Insertion即可!!

Create 52_chk
Select 所有colume, from 51_chk2001
Insert into 52_chk, select 所有colume, from 51_chk2002

依此類推

5. 用52_chk 做Complication 定義以及排除要件! 我是用Case 做定義!

比如: COPD 是 ICD 490~ 496, 我就下
CASE
When left (ICD9CM, 3) between 490 and 496 or left (ICD9CM1, 3) between 490 and 496
Then '1'
else '0'
End COPD

6. 再做一張表 53_chk, 下一個Complication 用的Case!

CASE
When A = '1' Then '1'
When B = '1' Then '1'
else '0'
End complication

7. 最後一張Complication的表 54_chk, 用Where complication =1, 把所有Complication的挑出來

這裡要小心! 有的病人會倒楣30天內住兩次院的, 
雖然大多都被第一個MIN排除掉, 但總有病人在醫院跨年的慘劇, 所以這裡最好再下一個 MIN

Min (53_chk.併發症住院Date) as 併發症住院Date

8. 最後, 用Left outer joint 把5_final 跟 54_chk combine起來, 就完成了!!

[注意] 不要忘記5_final 本身有多少個資料喔, 因為Left outer joint 不會幫你select掉重複的, 有時54_chk 的ID 會有重複, 所有用步驟7的Min(日期) 把她Select 掉! 當然, 也可以下 Group by ID, 不過我不知道效果會不會一樣就是了!