帮助构建临床决策支持系统规则、评分告警与EMR集成方案
该技能材料显示其为纯提示/模式文档类、开源且无密钥与远程端点,整体技术安全风险较低。需注意其面向临床决策场景,虽未见系统级安全红旗,但输出内容仍应经过专业验证后再用于高风险业务。
材料明确标注无需密钥或环境变量,未见令牌申请、存储或传输设计,因此凭证泄露与滥用面较小。
系统检查项与材料均显示无远程端点;README描述为“pure function library with zero side effects”,未见将用户/患者数据发送到外部服务的证据。
该技能被标记为 prompt-only,文档内容主要是 CDSS 设计模式与示例函数,未声明本机起进程、执行脚本或调用系统命令等能力。
材料仅描述对输入临床数据进行函数式处理并返回告警,未声明读写本地文件、数据库、EMR 实例或其他资源,也未见过度授权请求。
来源为 GitHub 开源仓库,且社区信任度较高(约 210k star),这些都是降低风险的正面证据。虽许可证未声明、维护状态未知,存在一定治理不确定性,但当前材料未见闭源外发、可疑安装链或明显供应链红旗。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "healthcare-cdss-patterns" 技能: 1. 下载 https://raw.githubusercontent.com/affaan-m/ECC/main/skills/healthcare-cdss-patterns/SKILL.md 2. 保存为 ~/.claude/skills/healthcare-cdss-patterns/SKILL.md 3. 装好后重载技能,告诉我可以用了
请为医院临床决策支持系统设计药物相互作用检查模块,包含规则结构、严重级别分层、告警文案、误报控制策略,以及在医生开立处方时的EMR集成流程。
输出药物相互作用检测的系统设计方案,包括规则模型、告警分级和处方流程集成建议。
请给出CDSS中的剂量校验开发模式,覆盖成人与儿童剂量范围、肾功能调整、重复给药检查、异常处理,以及如何向医生展示可解释的校验结果。
输出可实现的剂量校验规则框架、关键判断条件和面向临床用户的结果展示方式。
请设计一个将NEWS2和qSOFA纳入EMR工作流的CDSS方案,说明数据输入项、评分计算逻辑、告警阈值、严重程度分类,以及如何减少告警疲劳。
输出临床评分集成方案,包含计算规则、触发条件、告警分级与降低告警疲劳的建议。
Patterns for building Clinical Decision Support Systems that integrate into EMR workflows. CDSS modules are patient safety critical — zero tolerance for false negatives.
The CDSS engine is a pure function library with zero side effects. Input clinical data, output alerts. This makes it fully testable.
Three primary modules:
checkInteractions(newDrug, currentMeds, allergies) — Checks a new drug against current medications and known allergies. Returns severity-sorted InteractionAlert[]. Uses DrugInteractionPair data model.validateDose(drug, dose, route, weight, age, renalFunction) — Validates a prescribed dose against weight-based, age-adjusted, and renal-adjusted rules. Returns DoseValidationResult.calculateNEWS2(vitals) — National Early Warning Score 2 from NEWS2Input. Returns NEWS2Result with total score, risk level, and escalation guidance.EMR UI
↓ (user enters data)
CDSS Engine (pure functions, no side effects)
├── Drug Interaction Checker
├── Dose Validator
├── Clinical Scoring (NEWS2, qSOFA, etc.)
└── Alert Classifier
↓ (returns alerts)
EMR UI (displays alerts inline, blocks if critical)
interface DrugInteractionPair {
drugA: string; // generic name
drugB: string; // generic name
severity: 'critical' | 'major' | 'minor';
mechanism: string;
clinicalEffect: string;
recommendation: string;
}
function checkInteractions(
newDrug: string,
currentMedications: string[],
allergyList: string[]
): InteractionAlert[] {
if (!newDrug) return [];
const alerts: InteractionAlert[] = [];
for (const current of currentMedications) {
const interaction = findInteraction(newDrug, current);
if (interaction) {
alerts.push({ severity: interaction.severity, pair: [newDrug, current],
message: interaction.clinicalEffect, recommendation: interaction.recommendation });
}
}
for (const allergy of allergyList) {
if (isCrossReactive(newDrug, allergy)) {
alerts.push({ severity: 'critical', pair: [newDrug, allergy],
message: `Cross-reactivity with documented allergy: ${allergy}`,
recommendation: 'Do not prescribe without allergy consultation' });
}
}
return alerts.sort((a, b) => severityOrder(a.severity) - severityOrder(b.severity));
}
Interaction pairs must be bidirectional: if Drug A interacts with Drug B, then Drug B interacts with Drug A.
interface DoseValidationResult {
valid: boolean;
message: string;
suggestedRange: { min: number; max: number; unit: string } | null;
factors: string[];
}
function validateDose(
drug: string,
dose: number,
route: 'oral' | 'iv' | 'im' | 'sc' | 'topical',
patientWeight?: number,
patientAge?: number,
renalFunction?: number
): DoseValidationResult {
const rules = getDoseRules(drug, route);
if (!rules) return { valid: true, message: 'No validation rules available', suggestedRange: null, factors: [] };
const factors: string[] = [];
// SAFETY: if rules require weight but weight missing, BLOCK (not pass)
if (rules.weightBased) {
if (!patientWeight || patientWeight <= 0) {
return { valid: false, message: `Weight required for ${drug} (mg/kg drug)`,
suggestedRange: null, factors: ['weight_missing'] };
}
factors.push('weight');
const maxDose = rules.maxPerKg * patientWeight;
if (dose > maxDose) {
return { valid: false, message: `Dose exceeds max for ${patientWeight}kg`,
…
帮助你研究预测市场信号,用于产品决策、数据看板与智能体分析集成。
用安全的 Netmiko 模式批量执行 SSH 采集、解析与受控变更。
帮助开发者使用 Bun 进行运行、打包、测试与依赖管理,并评估替代 Node 的时机。
帮助用户检索美国专利商标官方记录并整理可复现的知识产权研究流程。
在每次编辑代码时自动格式化、检查并智能修复质量问题
帮助开发者在 Node.js 与 TypeScript 中正确使用以太坊 Keccak-256 哈希。
为医疗健康应用提供安全合规的 EMR/EHR 开发模式与界面流程建议
帮助用户基于RxNorm与DailyMed快速检查药物相互作用风险
帮助临床大模型查询药物相互作用、剂量建议与替代用药方案。
为医疗应用部署提供患者安全自动化评估,发现风险即阻止上线。
帮助设计和评估事件驱动、消息驱动与异步工作流系统架构。
用于注册配送确认模式,帮助规范物流确认与自动化处理流程。