SuperAPI AI 工具集

healthcare-cdss-patterns

编程与开发

查看项目

更新于 10-15 10:36

技能介绍

用途

healthcare-cdss-patterns 提供构建临床决策支持系统(Clinical Decision Support System,CDSS)的开发模式,目标是将 CDSS 模块集成进电子病历(EMR)工作流。资料明确指出,CDSS 模块属于患者安全关键组件,对漏报(false negatives)零容忍。

适用场景包括:

  • 实现药物相互作用检查
  • 构建剂量校验引擎
  • 实现临床评分系统(NEWS2、qSOFA、APACHE、GCS)
  • 为异常临床数值设计告警系统
  • 构建带安全检查的用药医嘱录入
  • 将检验结果解读与临床上下文集成

主要能力

CDSS 引擎被设计为无副作用的纯函数库:输入临床数据,输出告警,因此完全可测试。资料列出三个主要模块:

  1. checkInteractions(newDrug, currentMeds, allergies):将新药与当前用药及已知过敏进行比对,返回按严重度排序的 InteractionAlert[],使用 DrugInteractionPair 数据模型。
  2. validateDose(drug, dose, route, weight, age, renalFunction):依据按体重、按年龄调整、按肾功能调整的规则校验处方剂量,返回 DoseValidationResult。
  3. calculateNEWS2(vitals):根据 NEWS2Input 计算国家早期预警评分 2(National Early Warning Score 2),返回包含总分、风险等级和升级指导的 NEWS2Result。

整体数据流为:EMR UI(用户录入数据)→ CDSS 引擎(纯函数、无副作用,包含药物相互作用检查器、剂量校验器、临床评分、告警分类器)→ 返回告警 → EMR UI(内联显示告警,关键告警时阻断操作)。

药物相互作用检查

DrugInteractionPair 包含 drugA、drugB(通用名)、severity(critical/major/minor)、mechanism、clinicalEffect、recommendation。checkInteractions 遍历当前用药查找相互作用,并检查过敏的交叉反应(交叉反应告警固定为 critical),最后按严重度排序返回。资料强调相互作用对必须是双向的:若药物 A 与药物 B 相互作用,则药物 B 也与药物 A 相互作用。

剂量校验

DoseValidationResult 包含 valid、message、suggestedRange(min/max/unit 或 null)、factors。校验逻辑包括:

  • 按体重:若规则要求体重但体重缺失或无效,则阻断(返回 valid: false,factors 含 weight_missing),而非放行;超过按体重最大剂量则判为无效。
  • 按年龄调整:当规则定义年龄区间且提供了年龄时,超过年龄调整上限则无效。
  • 按肾功能调整:当规则定义 eGFR 区间且提供了肾功能时,超过肾功能调整上限则无效。
  • 绝对上限:超过绝对最大剂量则无效。

临床评分:NEWS2

NEWS2Input 包含 respiratoryRate、oxygenSaturation、supplementalOxygen、temperature、systolicBP、heartRate、consciousness(alert/voice/pain/unresponsive)。NEWS2Result 包含 total(0-20)、risk(low/low-medium/medium/high)、components、escalation。资料强调评分表必须与英国皇家内科医师学会(Royal College of Physicians)规范完全一致。

告警严重度与 UI 行为

  • Critical:阻断操作,不可关闭的模态框,红色;临床医生必须记录覆盖原因才能继续。
  • Major:内联警告横幅,橙色;继续前必须确认。
  • Minor:内联信息提示,黄色;仅告知,无需操作。

资料强调:关键告警绝不能自动关闭,也不能实现为 toast 通知;覆盖原因必须存入审计追踪。

使用方式

资料以 TypeScript 接口与函数签名展示各模块的调用方式,并给出示例:

  • 药物相互作用检查示例:checkInteractions('warfarin', ['aspirin', 'metformin'], ['penicillin']),返回 critical 级别的出血风险告警。
  • 剂量校验示例:validateDose('paracetamol', 1000, 'oral', 70, 45) 返回有效;validateDose('paracetamol', 5000, 'oral', 70, 45) 返回超过绝对上限 4000mg;validateDose('gentamicin', 300, 'iv') 因缺少体重返回无效。
  • NEWS2 评分示例:给定呼吸频率 24、血氧饱和度 93、补充吸氧 true、体温 38.5、收缩压 100、心率 110、意识 voice,返回 total 13、risk high、升级建议为紧急临床复核并考虑 ICU。

测试与限制

资料要求对 CDSS 进行零容忍漏报的测试:遍历所有相互作用对,验证正向与反向均能检出且严重度正确;验证缺少体重时 mg/kg 药物被阻断;验证畸形药物数据不抛异常。通过标准为 100%,漏掉一个相互作用即构成患者安全事件。

资料列出的反模式包括:让 CDSS 检查可跳过且无记录原因;将相互作用检查实现为 toast 通知;对药物或临床数据使用 any 类型;硬编码相互作用对而非使用可维护的数据结构;静默捕获 CDSS 引擎错误(必须显式暴露失败);在体重不可用时跳过按体重校验(必须阻断而非放行)。

关于具体药物相互作用数据库、剂量规则数据来源、部署平台、收费与价格等信息,资料暂未提供。