/interaction
药物名称或食物名称(用于检查特定药物的相互作用,可选)
$ npx -y skills add huifer/WellAlly-health --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/interaction
Context preview
What this command does when you run it.
药物名称或食物名称(用于检查特定药物的相互作用,可选)
Command definition
interaction.mddescription: 检查和管理药物相互作用
arguments:
- name: action
description: 操作类型:check(检查)/list(列出规则)/add(添加规则)/update(更新规则)/delete(删除规则)/history(查看历史)
required: true
- name: drugs
description: 药物名称或食物名称(用于检查特定药物的相互作用,可选)
required: false药物相互作用检查
检测和管理药物相互作用,包括药物-药物、药物-疾病、药物剂量、药物-食物四种类型的相互作用,提供五级严重程度分级(A/B/C/D/X)的专业建议。
操作类型
1. 检查相互作用 - `check`
检查当前用药方案中存在的相互作用。
**参数说明:**
- `drugs` (可选): 指定要检查的药物,格式:`药物1 药物2`,不指定则检查所有当前用药
**示例:**
/interaction check
/interaction check 华法林 阿司匹林
/interaction check 辛伐他汀 氨氯地平
**检查内容:**
- 🔄 药物-药物相互作用
- 🏥 药物-疾病冲突
- 💊 药物剂量冲突
- 🍽️ 药物-食物相互作用
2. 列出相互作用规则 - `list`
查看相互作用规则库。
**参数说明:**
- 无参数:列出所有规则统计
- 级别筛选:`A`/`B`/`C`/`D`/`X`(列出特定级别的规则)
- 药物名称:列出特定药物相关的规则
**示例:**
/interaction list
/interaction list X
/interaction list 华法林
3. 添加相互作用规则 - `add`
添加自定义相互作用规则。
**参数说明:**
- 规则信息(必填),格式:`药物1 药物2 级别(A/B/C/D/X) 风险描述`
**示例:**
/interaction add 阿司匹林 华法林 X 显著增加出血风险
/interaction add 二甲双胍 酒精 C 增加乳酸酸中毒风险
4. 更新相互作用规则 - `update`
更新已有的相互作用规则。
**参数说明:**
- 规则信息(必填),格式:`药物1 药物2 [字段] [值]`
**示例:**
/interaction update 阿司匹林 华法林 severity B
/interaction update 华法林 维生素K recommendations 保持摄入量稳定
5. 删除相互作用规则 - `delete`
删除自定义的相互作用规则。
**参数说明:**
- 药物名称(必填),格式:`药物1 药物2`
**示例:**
/interaction delete 阿司匹林 华法林
6. 查看检查历史 - `history`
查看过去的相互作用检查记录。
**示例:**
/interaction history
/interaction history 2025-12
执行步骤
检查相互作用 (check)
1. 加载当前用药列表
从 `data/medications/medications.json` 读取所有活跃药物(`active: true`)。
如果没有用药记录,输出提示:
💡 提示
暂无用药记录,请先使用 /medication add 添加药物
2. 执行四种检测逻辑
2.1 药物-药物相互作用检测
**检测算法:**
// 遍历所有药物组合
for (let i = 0; i < medications.length; i++) {
for (let j = i + 1; j < medications.length; j++) {
const drug1 = medications[i];
const drug2 = medications[j];
// 检查直接匹配(药物名称)
const directMatch = findInteraction(drug1.name, drug2.name);
if (directMatch) {
interactions.push({
type: 'drug_drug',
drugs: [drug1, drug2],
rule: directMatch
});
}
// 检查类别匹配
const categoryMatch = findCategoryInteraction(drug1, drug2);
if (categoryMatch) {
interactions.push({
type: 'category',
drugs: [drug1, drug2],
rule: categoryMatch
});
}
}
}**匹配规则优先级:** 1. 直接名称匹配(药物通用名或商品名完全相同) 2. 同义词匹配(考虑药物的别称) 3. 类别匹配(同类药物,如多种NSAIDs) 4. 机制匹配(通过相同代谢酶的药物)
2.2 药物-疾病冲突检测
**数据来源:**
- `data/profile.json` - 用户档案中的疾病史
- 出院小结记录中的诊断
- 症状记录中的慢性病信息
**检测逻辑:**
for (const medication of medications) {
for (const disease of userDiseases) {
const conflict = findDrugDiseaseConflict(medication.name, disease.name);
if (conflict) {
conflicts.push({
type: 'drug_disease',
medication: medication,
disease: disease,
rule: conflict
});
}
}
}2.3 药物剂量冲突检测
**检查项目:** 1. 日剂量是否超过最大剂量 2. 是否接近警告阈值 3. 年龄相关剂量调整(如老年人需减量) 4. 肾功能调整(如肌酐清除率低时需减量)
**检测逻辑:**
for (const medication of medications) {
const dosageRule = findDosageLimit(medication.name);
if (!dosageRule) continue;
// 计算当前日剂量
const currentDose = calculateDailyDose(medication);
// 检查是否超过最大剂量
if (currentDose > dosageRule.max_daily_dose.value) {
conflicts.push({
type: 'exceeds_max_dose',
medication: medication,
current: currentDose,
limit: dosageRule.max_daily_dose
});
}
// 检查年龄相关调整
if (userAge >= 65 && dosageRule.adjustments?.elderly) {
if (currentDose > dosageRule.adjustments.elderly.max_dose) {
conflicts.push({
type: 'age_specific_exceeds',
medication: medication,
age_group: '老年人(>65岁)',
current: currentDose,
limit: dosageRule.adjustments.elderly.max_dose
});
}
}
}2.4 药物-食物相互作用检测
**数据来源:**
- 从 `diet` 命令获取近期饮食记录(近7天)
**检测逻辑:**
// 获取近期饮食记录
const recentFoods = getRecentDietRecords(days: 7);
for (const medication of medications) {
// 查找该药物的已知食物相互作用
const foodInteractions = findFoodInteractions(medication.name);
for (const interaction of foodInteractions) {
// 检查用户是否食用了相关食物
const consumed = checkFoodConsumption(recentFoods, interaction.food.examples);
if (consumed && consumed.frequency >= 'moderate') {
interactions.push({
type: 'drug_food',
medication: medication,
food: interaction.food,
consumed: consumed,
rule: interaction
});
}
}
}3. 汇总和排序结果
将所有检测到的相互作用按严重程度排序:
- 🆘 X类(绝对禁忌)- 优先显示
- 🔴 D类(禁忌)
- 🟠 C类(相对禁忌)
- 🟡 B类(谨慎使用)
- 🟢 A类(安全)- 通常不显示
4. 输出检查报告
**输出格式:**
无相互作用时:
✅ 药物相互作用检查
检查时间:2025年12月31日 12:34
━━━━━━━━━━━━━━━━━━━━━━━━━━
当前用药(3种):
• 阿司匹林 100mg (每天1次)
• 氨氯地平 5mg (每天1次)
• 二甲双胍 500mg (每天3次)
检查结果:
━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 未检测到药物相互作用
✅ 未检测到药物-疾病冲突
✅ 未检测到剂量问题
✅ 未检测到饮食冲突
━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 您的用药方案安全性良好,请继续遵医嘱用药
📅 建议每月进行一次相互作用检查
本次检查结果已保存
存在严重相互作用时:
🚨 药物相互作用检查
检查时间:2025年12月31日 12:34
━━━━━━━━━━━━━━━━━━━━━━━━━━
当前用药(4种):
• 华法林 5mg (每天1次)
• 阿司匹林 100mg (每天1次)
• 氨氯地平 5mg (每天1次)
• 辛伐他汀 20mg (每晚1次)
检测到 3 个相互作用:
━━━━━━━━━━━━━━━━━━━━━━━━━━
🆘 绝对禁忌(1个)
━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 华法林 + 阿司匹林
━━━━━━━━━━━━━━━━━━━━━━━━━━
严重程度:🆘 绝对禁忌 (X类)
风险等级:5/5
问题描述:
━━━━━━━━━━━━━━━━━━━━━━━━━━
阿司匹林可增强华法林的抗凝作用,显著增加出血风险。
可能导致严重出血,包括颅内出血、消化道出血等。
作用机制:
━━━━━━━━━━━━━━━━━━━━━━━━━━
阿司匹林抑制血小板功能,与华法林的抗凝作用产生协同效应
临床影响:
━━━━━━━━━━━━━━━━━━━━━━━━━━
• 出血风险增加 3-5 倍
• 严重出血发生率:约 2-5%/年
• 颅内出血风险增加 50%
管理建议:
━━━━━━━━━━━━━━━━━━━━━━━━━━
🚫 建议避免合用,除非:
- 有明确的心血管适应症(如房颤+冠心病)
- 在专科医生指导下使用
- 定期监测凝血功能
⚠️ 如必须合用:
• 密切监测 INR 值(目标值 2.0-3.0)
• 观察出血迹象:瘀斑、牙龈出血、鼻出血、黑便
• 避免受伤和剧烈运动
• 定期复查血常规
👁️ 需要立即就医的情况:
• 严重头痛
• 呕血或黑便
• 严重皮下瘀斑
• 血尿
数据来源:FDA药品说明书
━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 禁忌(1个)
━━━━━━━━━━━━━━━━━━━━━━━━━━
2. 辛伐他汀 + 氨氯地平
━━━━━━━━━━━━━━━━━━━━━━━━━━
严重程度:🔴 禁忌 (D类)
风险等级:4/Read more
description: 检查和管理药物相互作用
arguments:
- name: action
description: 操作类型:check(检查)/list(列出规则)/add(添加规则)/update(更新规则)/delete(删除规则)/history(查看历史)
required: true
- name: drugs
description: 药物名称或食物名称(用于检查特定药物的相互作用,可选)
required: false药物相互作用检查
检测和管理药物相互作用,包括药物-药物、药物-疾病、药物剂量、药物-食物四种类型的相互作用,提供五级严重程度分级(A/B/C/D/X)的专业建议。
操作类型
1. 检查相互作用 - `check`
检查当前用药方案中存在的相互作用。
**参数说明:**
- `drugs` (可选): 指定要检查的药物,格式:`药物1 药物2`,不指定则检查所有当前用药
**示例:**
/interaction check /interaction check 华法林 阿司匹林 /interaction check 辛伐他汀 氨氯地平
**检查内容:**
- 🔄 药物-药物相互作用
- 🏥 药物-疾病冲突
- 💊 药物剂量冲突
- 🍽️ 药物-食物相互作用
2. 列出相互作用规则 - `list`
查看相互作用规则库。
**参数说明:**
- 无参数:列出所有规则统计
- 级别筛选:`A`/`B`/`C`/`D`/`X`(列出特定级别的规则)
- 药物名称:列出特定药物相关的规则
**示例:**
/interaction list /interaction list X /interaction list 华法林
3. 添加相互作用规则 - `add`
添加自定义相互作用规则。
**参数说明:**
- 规则信息(必填),格式:`药物1 药物2 级别(A/B/C/D/X) 风险描述`
**示例:**
/interaction add 阿司匹林 华法林 X 显著增加出血风险 /interaction add 二甲双胍 酒精 C 增加乳酸酸中毒风险
4. 更新相互作用规则 - `update`
更新已有的相互作用规则。
**参数说明:**
- 规则信息(必填),格式:`药物1 药物2 [字段] [值]`
**示例:**
/interaction update 阿司匹林 华法林 severity B /interaction update 华法林 维生素K recommendations 保持摄入量稳定
5. 删除相互作用规则 - `delete`
删除自定义的相互作用规则。
**参数说明:**
- 药物名称(必填),格式:`药物1 药物2`
**示例:**
/interaction delete 阿司匹林 华法林
6. 查看检查历史 - `history`
查看过去的相互作用检查记录。
**示例:**
/interaction history /interaction history 2025-12
执行步骤
检查相互作用 (check)
1. 加载当前用药列表
从 `data/medications/medications.json` 读取所有活跃药物(`active: true`)。
如果没有用药记录,输出提示:
💡 提示 暂无用药记录,请先使用 /medication add 添加药物
2. 执行四种检测逻辑
2.1 药物-药物相互作用检测
**检测算法:**
// 遍历所有药物组合
for (let i = 0; i < medications.length; i++) {
for (let j = i + 1; j < medications.length; j++) {
const drug1 = medications[i];
const drug2 = medications[j];
// 检查直接匹配(药物名称)
const directMatch = findInteraction(drug1.name, drug2.name);
if (directMatch) {
interactions.push({
type: 'drug_drug',
drugs: [drug1, drug2],
rule: directMatch
});
}
// 检查类别匹配
const categoryMatch = findCategoryInteraction(drug1, drug2);
if (categoryMatch) {
interactions.push({
type: 'category',
drugs: [drug1, drug2],
rule: categoryMatch
});
}
}
}**匹配规则优先级:** 1. 直接名称匹配(药物通用名或商品名完全相同) 2. 同义词匹配(考虑药物的别称) 3. 类别匹配(同类药物,如多种NSAIDs) 4. 机制匹配(通过相同代谢酶的药物)
2.2 药物-疾病冲突检测
**数据来源:**
- `data/profile.json` - 用户档案中的疾病史
- 出院小结记录中的诊断
- 症状记录中的慢性病信息
**检测逻辑:**
for (const medication of medications) {
for (const disease of userDiseases) {
const conflict = findDrugDiseaseConflict(medication.name, disease.name);
if (conflict) {
conflicts.push({
type: 'drug_disease',
medication: medication,
disease: disease,
rule: conflict
});
}
}
}2.3 药物剂量冲突检测
**检查项目:** 1. 日剂量是否超过最大剂量 2. 是否接近警告阈值 3. 年龄相关剂量调整(如老年人需减量) 4. 肾功能调整(如肌酐清除率低时需减量)
**检测逻辑:**
for (const medication of medications) {
const dosageRule = findDosageLimit(medication.name);
if (!dosageRule) continue;
// 计算当前日剂量
const currentDose = calculateDailyDose(medication);
// 检查是否超过最大剂量
if (currentDose > dosageRule.max_daily_dose.value) {
conflicts.push({
type: 'exceeds_max_dose',
medication: medication,
current: currentDose,
limit: dosageRule.max_daily_dose
});
}
// 检查年龄相关调整
if (userAge >= 65 && dosageRule.adjustments?.elderly) {
if (currentDose > dosageRule.adjustments.elderly.max_dose) {
conflicts.push({
type: 'age_specific_exceeds',
medication: medication,
age_group: '老年人(>65岁)',
current: currentDose,
limit: dosageRule.adjustments.elderly.max_dose
});
}
}
}2.4 药物-食物相互作用检测
**数据来源:**
- 从 `diet` 命令获取近期饮食记录(近7天)
**检测逻辑:**
// 获取近期饮食记录
const recentFoods = getRecentDietRecords(days: 7);
for (const medication of medications) {
// 查找该药物的已知食物相互作用
const foodInteractions = findFoodInteractions(medication.name);
for (const interaction of foodInteractions) {
// 检查用户是否食用了相关食物
const consumed = checkFoodConsumption(recentFoods, interaction.food.examples);
if (consumed && consumed.frequency >= 'moderate') {
interactions.push({
type: 'drug_food',
medication: medication,
food: interaction.food,
consumed: consumed,
rule: interaction
});
}
}
}3. 汇总和排序结果
将所有检测到的相互作用按严重程度排序:
- 🆘 X类(绝对禁忌)- 优先显示
- 🔴 D类(禁忌)
- 🟠 C类(相对禁忌)
- 🟡 B类(谨慎使用)
- 🟢 A类(安全)- 通常不显示
4. 输出检查报告
**输出格式:**
无相互作用时:
✅ 药物相互作用检查 检查时间:2025年12月31日 12:34 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 当前用药(3种): • 阿司匹林 100mg (每天1次) • 氨氯地平 5mg (每天1次) • 二甲双胍 500mg (每天3次) 检查结果: ━━━━━━━━━━━━━━━━━━━━━━━━━━ ✅ 未检测到药物相互作用 ✅ 未检测到药物-疾病冲突 ✅ 未检测到剂量问题 ✅ 未检测到饮食冲突 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 💡 您的用药方案安全性良好,请继续遵医嘱用药 📅 建议每月进行一次相互作用检查 本次检查结果已保存
存在严重相互作用时:
🚨 药物相互作用检查
检查时间:2025年12月31日 12:34
━━━━━━━━━━━━━━━━━━━━━━━━━━
当前用药(4种):
• 华法林 5mg (每天1次)
• 阿司匹林 100mg (每天1次)
• 氨氯地平 5mg (每天1次)
• 辛伐他汀 20mg (每晚1次)
检测到 3 个相互作用:
━━━━━━━━━━━━━━━━━━━━━━━━━━
🆘 绝对禁忌(1个)
━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 华法林 + 阿司匹林
━━━━━━━━━━━━━━━━━━━━━━━━━━
严重程度:🆘 绝对禁忌 (X类)
风险等级:5/5
问题描述:
━━━━━━━━━━━━━━━━━━━━━━━━━━
阿司匹林可增强华法林的抗凝作用,显著增加出血风险。
可能导致严重出血,包括颅内出血、消化道出血等。
作用机制:
━━━━━━━━━━━━━━━━━━━━━━━━━━
阿司匹林抑制血小板功能,与华法林的抗凝作用产生协同效应
临床影响:
━━━━━━━━━━━━━━━━━━━━━━━━━━
• 出血风险增加 3-5 倍
• 严重出血发生率:约 2-5%/年
• 颅内出血风险增加 50%
管理建议:
━━━━━━━━━━━━━━━━━━━━━━━━━━
🚫 建议避免合用,除非:
- 有明确的心血管适应症(如房颤+冠心病)
- 在专科医生指导下使用
- 定期监测凝血功能
⚠️ 如必须合用:
• 密切监测 INR 值(目标值 2.0-3.0)
• 观察出血迹象:瘀斑、牙龈出血、鼻出血、黑便
• 避免受伤和剧烈运动
• 定期复查血常规
👁️ 需要立即就医的情况:
• 严重头痛
• 呕血或黑便
• 严重皮下瘀斑
• 血尿
数据来源:FDA药品说明书
━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 禁忌(1个)
━━━━━━━━━━━━━━━━━━━━━━━━━━
2. 辛伐他汀 + 氨氯地平
━━━━━━━━━━━━━━━━━━━━━━━━━━
严重程度:🔴 禁忌 (D类)
风险等级:4/WellAlly Health is a local-first, AI-powered personal health record (PHR) system.

