作者:陳建翰 醫師
這篇文章, 是在探勘健保資料庫的過程當中, 自己找到的取出併發症的過程,
跟大家分享!
資料庫: DD檔
ID 來源:
已經完成篩選的表格, 確保每一個ID對應的都是一個資料 (以下用代號: 5_final)
併發症的定義:
手術出院後30天內的再住院 , 30天是目前我有看到的文獻大家可以接受標準
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
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天內住兩次院的,
手術出院後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了,
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, 不過我不知道效果會不會一樣就是了!
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, 不過我不知道效果會不會一樣就是了!