【问题标题】:Calculate medication adherence: cumulative pill shortage计算服药依从性:累积药丸短缺
【发布时间】:2016-06-30 13:06:55
【问题描述】:

很难找到计算药物依从性的正确方法。知道不存在完美的解决方案,我想计算一个病人绝对不能服药的天数,因为他没有。我想在每次开药时都这样做。

我的药房数据如下所示:

x <- data.frame(
  patient_id = 1,
  issue_date = as.Date( "1990-01-01" ) + cumsum( c( 0, 35, 30, 25, 30 ) ),
  no_tablets = 60
)

  patient_id issue_date no_tablets
1          1 1990-01-01         60
2          1 1990-02-05         60
3          1 1990-03-07         60
4          1 1990-04-01         60
5          1 1990-05-01         60

我当然可以计算issue_dates 的差值,看看它是否等于患者必须服用的no_tablets / 2(每日剂量)。 但如果患者提早取药,下一次的等待时间会比这段时间长,因为他有药物库存。

我尝试对累积天数和累积剂量进行计算,然后对所有非负累积药丸短缺求和。但是,如果我的病人迟到了一次,然后准确地按时取药,这个数字仍然存在,然后被计算多次。

您还有其他想法吗? 提前谢谢!

【问题讨论】:

    标签: r cumulative-sum


    【解决方案1】:

    在您的示例中,该患者的药片供应量似乎继续超过补充药片之间的天数。如果没有您想要的输出示例,我认为下面的脚本可能就足够了:

    x <- data.frame(
      patient_id = c(rep(1, 5), rep(2, 5)),
      issue_date = c(rep(as.Date( "1990-01-01" ) + cumsum( c( 0, 35, 30, 25, 30 ) ), 2)),
      no_tablets = c(rep(60, 5), rep(31, 5))
    )
    
    y <- data.frame(
      patient_id = c(1, 2),
      pills_per_day = c(2, 1)
    )
    
    z <- merge(x, y, by = "patient_id")
    
    library(data.table)
    z <- data.table(z)
    z[, days_excess := (no_tablets/pills_per_day) - ifelse(patient_id == shift(patient_id, 1, type = "lead"), 
                                                       -as.integer(issue_date - shift(issue_date, 1, type="lead")), 
                                                       NA)]
    
    print(z)
       patient_id issue_date no_tablets pills_per_day days_excess
     1:          1 1990-01-01         60             2          -5
     2:          1 1990-02-05         60             2           0
     3:          1 1990-03-07         60             2           5
     4:          1 1990-04-01         60             2           0
     5:          1 1990-05-01         60             2          NA
     6:          2 1990-01-01         31             1          -4
     7:          2 1990-02-05         31             1           1
     8:          2 1990-03-07         31             1           6
     9:          2 1990-04-01         31             1           1
    10:          2 1990-05-01         31             1          NA
    

    【讨论】:

    • 非常感谢您的回复。在我的示例中,患者必须每天服用 2 粒药片,因此有时天数会超过一天的药片供应量。
    • @Jasper 我编辑了我的答案以添加一名额外的患者,并为这两名患者每天添加不同的药丸数量。再看一遍,我也去掉了 cumsum 函数,只看每个 refill 的每月超额。
    • 再次感谢布兰登。问题在于,当患者从先前的过量中剩余“库存”时,他被允许出现药丸不足。所以我觉得我需要做一些累积的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多