今天我们来分析一篇利用MIMIC数据库发表的SCI论文,这是一篇2022年12月份发表在《Inflammation》期刊上的论文。
论文名为《Association between lactate-to-albumin ratio and 28-days all-cause mortality in patients with acute pancreatitis: A retrospective analysis of the MIMIC-IV database.》
中文名为《急性胰腺炎患者乳酸白蛋白比值与28天内全因死亡率的关系:对MIMIC-IV数据库的回顾性分析》
教程中使用到的论文及代码可以在以下地址下载:
MIMI数据库SCI论文分析https://mp.weixin.qq.com/s/fkcY6moAfBBqHdtfJCE_Lg
该论文筛选患者的标准如下:
本次教程先教大家如何提取年龄大于18岁的患者的首次入院记录,后续教程会陆续分析其他的过滤条件。
一,年龄过滤
mimiciv数据库中并没有直接记录患者的真实年龄,patients表中有一个关于关于年龄的字段anchor_age,但是这个年龄是经过mimic偏移的年龄。
1,计算患者的真实年龄
患者的真实年龄=anchor_age+admittime-anchor_year
其中anchor_age,anchor_year可以在mimiciv_hosp.patients表中找到,患者的入院年龄可以在mimiciv_hosp.admissions表中找到。
以下为患者的真实年龄的计算SQL:
pa.anchor_age + mimiciv_derived.DATETIME_DIFF(ad.admittime,
mimiciv_derived.DATETIME(pa.anchor_year, 1, 1, 0, 0, 0)
请注意:上述SQL中DATETIME_DIFF与DATETIME函数我是安装在mimiciv_derived模块中,如果大家安装在了public模块中,请修改成如下
pa.anchor_age + public.DATETIME_DIFF(ad.admittime,
public.DATETIME(pa.anchor_year, 1, 1, 0, 0, 0)
这个算法算出来的年龄是小数,我们可以使用ROUND函数转成整数,最终计算年龄的公式如下:
2,排除小于18岁的患者
我们可以先使用子查询先查询出来患者的真实年龄,再排除掉小于18岁的患者
with base as (SELECT
ad.subject_id,
MAX(ROUND(pa.anchor_age + mimiciv_derived.DATETIME_DIFF(ad.admittime,
mimiciv_derived.DATETIME(pa.anchor_year, 1, 1, 0, 0, 0), 'YEAR'),0)) AS age
FROM mimiciv_hosp.admissions ad, mimiciv_hosp.patients pa
WHERE ad.subject_id = pa.subject_id
GROUP BY
ad.subject_id)
SELECT * FROM base WHERE base.age >=18 limit 100;
以上我们就筛选出来了大于等于18岁的患者,大家可以根据这份代码筛选出来其他年龄段的患者。
二,首次入院记录
mimiciv数据库记录了29万个病人的43万条入院记录,但是我们在做分析的时候,通常只需要分析某个病人的首次入院记录就可以了。
1,入院时间排序
要获取患者的首次入院记录,我们需要使用到postgres数据库的ROW_NUMBER函数,该函数会将患者进行分组,并可以按照入院时间排序。
SELECT ADM.SUBJECT_ID,
ADM.HADM_ID,
ADM.ADMITTIME,
ROW_NUMBER () OVER(PARTITION BY ADM.SUBJECT_ID
ORDER BY ADM.ADMITTIME) AS ADMITTIME_RANK
FROM MIMICIV_HOSP.ADMISSIONS AS ADM
LIMIT 100;
2,获取首次入院记录
利用postgres数据库的子查询,过滤出患者的首次入院记录
至此,我们就查出了患者的首次入院记录。
三,合并数据
根据年龄过滤出符合条件的患者,以及查出了患者的首次入院记录之后,我们需要把这两部分数据进行合并,也就是取出符合年龄条件的首次入院记录。
我们可以使用postgres数据库的子查询把这两部分数据合并在一起。
(注:以上SQL用到了官方的DATETIME跟DATETIME_DIFF函数,如果这两个函数你不是安装在MIMICIV_DERIVED模块,请把函数前的模块名替换成你自己的模块名)
关注公众号“科研分析”,后台回复“sci分析1”即可获取本次教程完整的脚本,回复“急性胰腺炎”即可获取本教程中的英文及中文sci论文。
教程中使用到的论文及代码可以在以下地址下载:
MIMI数据库SCI论文分析https://mp.weixin.qq.com/s/fkcY6moAfBBqHdtfJCE_Lg