MIMI数据库SCI论文分析(获取特定年龄段的患者的首次入院记录)

今天我们来分析一篇利用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论文分析icon-default.png?t=N6B9https://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 paWHERE ad.subject_id = pa.subject_idGROUP 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_RANKFROM MIMICIV_HOSP.ADMISSIONS AS ADMLIMIT 100;

图片

2,获取首次入院记录

利用postgres数据库的子查询,过滤出患者的首次入院记录

图片

至此,我们就查出了患者的首次入院记录。

三,合并数据

根据年龄过滤出符合条件的患者,以及查出了患者的首次入院记录之后,我们需要把这两部分数据进行合并,也就是取出符合年龄条件的首次入院记录。

我们可以使用postgres数据库的子查询把这两部分数据合并在一起。

图片

(注:以上SQL用到了官方的DATETIME跟DATETIME_DIFF函数,如果这两个函数你不是安装在MIMICIV_DERIVED模块,请把函数前的模块名替换成你自己的模块名)

关注公众号“科研分析”,后台回复“sci分析1”即可获取本次教程完整的脚本,回复“急性胰腺炎”即可获取本教程中的英文及中文sci论文。

教程中使用到的论文及代码可以在以下地址下载:

MIMI数据库SCI论文分析icon-default.png?t=N6B9https://mp.weixin.qq.com/s/fkcY6moAfBBqHdtfJCE_Lg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值