You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script时间条件格式:MD就诊日期范围校验问题

Google Apps Script 条件格式化:MD就诊日期校验逻辑修正

结论

你提出的代码修改是正确的,新条件能精准匹配你的校验需求,解决原代码的误判问题。

原代码的问题分析

原代码用固定数值MDTreatmentDays >=10 && MDTreatmentDays <=20做判断,这种硬编码逻辑完全依赖特定入院天数,会导致两种误判:

  • 入院第45天,MD就诊在入院后第34天:此时MDTreatmentDays=45-34=11,原代码中11落在10-20区间内,会错误触发标黄,但这次就诊实际属于30-60天的合规区间,不该警告。
  • 入院第40天,MD就诊在10天前:此时MDTreatmentDays=10,原代码会触发标黄,但这次就诊对应的入院后间隔是40-10=30天,刚好卡进30天的合规起始点,不该被警告。

硬编码的数值无法适配入院天数的动态变化,逻辑完全不成立。

新代码的逻辑合理性

新条件MDTreatmentDays > (AdmissionDays -30) && MDTreatmentDays < AdmissionDays是动态计算的,完全贴合你的需求:

  • 变量定义回顾:
    • AdmissionDays:今日距离入院日的天数
    • MDTreatmentDays:今日距离最近一次MD就诊日的天数
  • 转换为入院后就诊间隔:AdmissionDays - MDTreatmentDays是入院到就诊的天数
  • 新条件等价于判断最近一次MD就诊的入院后间隔 <30天,也就是就诊发生在0-30天区间,而30-当前入院天数区间内没有合规就诊,此时需要标黄警告。

验证你的错误场景:

  1. 入院第45天,MD就诊在入院后第34天:MDTreatmentDays=11,AdmissionDays-30=15,11>15不成立,条件不触发,不会标黄——符合预期。
  2. 入院第40天,MD就诊在10天前:MDTreatmentDays=10,AdmissionDays-30=10,10>10不成立,条件不触发,不会标黄——修正了原代码的误判。

扩展建议

如果要覆盖整个30-60天的校验周期(比如入院后50-60天的场景),可以把逻辑改成更通用的形式,避免针对特定天数区间写重复代码:

// 校验入院后30-60天内是否完成MD就诊
if (AdmissionDays >= 30 && AdmissionDays <= 60) {
  const daysAfterAdmissionToVisit = AdmissionDays - MDTreatmentDays;
  // 检查就诊是否落在30天到当前入院天数之间(因为还没到60天,只要到当前天数前的30天区间有就诊就合规)
  const hasValidVisit = daysAfterAdmissionToVisit >=30 && daysAfterAdmissionToVisit <= AdmissionDays;
  if (!hasValidVisit) {
    // 执行单元格标黄操作
  }
}

这种写法能适配30-60天内的所有入院天数,无需针对40-50天单独写判断。

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:34:52