| 编号 | 证型名称 | 症状关键词(选1~3) | 舌象 | 脉象 | 推荐方剂 |
|---|---|---|---|---|---|
| 01 | 痰热咳嗽 | 咳嗽、痰黄、口干 | 黄腻 | 滑数 | 清金化痰汤 |
| 02 | 风寒咳嗽 | 咳嗽、怕冷、流涕 | 苔薄白 | 浮紧 | 三拗汤 |
| 03 | 气血两虚 | 乏力、面色淡白、心悸 | 淡 | 细 | 八珍汤 |
| 04 | 肝郁气滞 | 胸闷、易怒、叹气 | 正常或红 | 弦 | 柴胡疏肝散 |
| 05 | 阴虚火旺 | 口渴、盗汗、五心烦热 | 红 | 细数 | 知柏地黄丸 |
| 06 | 阳虚畏寒 | 畏寒、四肢冷、腰酸 | 淡白 | 迟 | 金匮肾气丸 |
| 07 | 肾阴虚 | 腰膝酸软、耳鸣、盗汗 | 红 | 细 | 六味地黄丸 |
| 08 | 肾阳虚 | 畏寒、下肢冷、夜尿频 | 淡胖 | 沉弱 | 右归丸 |
| 09 | 脾阳虚 | 腹泻、食少、怕冷 | 淡白 | 迟弱 | 附子理中丸 |
| 10 | 胃热炽盛 | 胃脘痛、口臭、便秘 | 黄 | 滑数 | 清胃散 |
| 11 | 肝火上炎 | 头痛、易怒、面红 | 红 | 弦数 | 龙胆泻肝汤 |
| 12 | 风热感冒 | 发热、咽痛、头痛 | 红、薄黄 | 浮数 | 银翘散 |
| 13 | 风寒感冒 | 恶寒、头痛、无汗 | 淡、薄白 | 浮紧 | 荆防败毒散 |
| 14 | 湿热下注 | 小便黄赤、带下黄臭 | 黄腻 | 滑数 | 龙胆泻肝汤 |
| 15 | 痰湿中阻 | 胸闷、痰多、体重困重 | 白腻 | 滑 | 二陈汤 |
| 16 | 脾虚湿盛 | 食欲差、腹胀、腹泻 | 白腻 | 缓 | 参苓白术散 |
| 17 | 血瘀阻络 | 刺痛、舌紫、瘀斑 | 紫暗 | 弦涩 | 血府逐瘀汤 |
| 18 | 心血不足 | 心悸、失眠、多梦 | 淡 | 细 | 养心汤 |
| 19 | 肝肾阴虚 | 头晕、耳鸣、腰酸 | 红 | 细 | 左归丸 |
| 20 | 心阴虚 | 心悸、五心烦热、失眠 | 红少苔 | 细数 | 天王补心丹 |
| 21 | 心阳虚 | 心悸、胸闷、怕冷 | 淡 | 沉细 | 桂枝甘草汤 |
| 22 | 脾气虚 | 乏力、纳差、腹泻 | 淡 | 缓 | 四君子汤 |
| 23 | 肺气虚 | 咳嗽无力、自汗 | 淡 | 弱 | 玉屏风散 |
| 24 | 肺阴虚 | 干咳、口干、潮热 | 红少苔 | 细数 | 沙参麦冬汤 |
| 25 | 痰火扰心 | 失眠、烦躁、痰多 | 黄腻 | 滑数 | 温胆汤 |
| 26 | 肝风内动 | 眩晕、震颤、手抖 | 红绛 | 弦 | 镇肝熄风汤 |
| 27 | 气滞血瘀 | 胁肋胀痛、舌紫 | 紫暗 | 弦涩 | 膈下逐瘀汤 |
| 28 | 湿阻中焦 | 腹胀、恶心、食欲差 | 白腻 | 缓 | 平胃散 |
| 29 | 胃寒 | 胃痛、喜热饮、遇冷加重 | 淡 | 迟 | 良附丸 |
| 30 | 肝气犯胃 | 胃胀、嗳气、易怒 | 正常 | 弦 | 柴胡疏肝散 |
推荐写法(PHP 规则)
举例:将“肝郁气滞”写成一段 PHP 判断逻辑
elseif (
(in_array('胸闷', $symptoms) || in_array('叹气', $symptoms) || in_array('易怒', $symptoms))
&& $pulse === '弦'
) {
$diagnosis = "肝郁气滞";
$formula = "柴胡疏肝散";
}
高效建议(进阶)
如果你希望:
| 目标 | 实现方式 |
|---|---|
| 批量维护规则 | 将上表做成 JSON 或 MySQL 表 |
| 自动匹配最接近证型 | 遍历规则集,匹配条件越多分数越高 |
| 可视化规则管理 | 制作后台界面管理规则条件 |
| 模糊关键词搜索 | 使用 PHP 函数 strpos() 替代 in_array() |
如你希望我现在就为你:
- 🛠️ 整理成 PHP
if...elseif...代码段; - 📦 打包成 JSON / SQL 格式(适合数据库读取);
- 📋 提供配套前端/后台 UI(规则库管理页面);
请告诉我你偏好哪一种,我立即为你生成!
整理成 PHP if...elseif... 代码段;
// 模糊匹配函数:同时支持精确匹配与关键词包含
function match_symptom($symptoms, $keyword) {
foreach ($symptoms as $s) {
if ($s === $keyword || strpos($s, $keyword) !== false) {
return true;
}
}
return false;
}
// 诊断规则匹配逻辑(模糊与精确兼容)
if (match_symptom($symptoms, ‘咳’) && match_symptom($symptoms, ‘痰’) && $tongue === ‘黄腻’ && in_array($pulse, [‘滑’, ‘数’])) {
$diagnosis = “痰热咳嗽”;
$formula = “清金化痰汤”;
} elseif (match_symptom($symptoms, ‘咳’) && match_symptom($symptoms, ‘怕冷’) && match_symptom($symptoms, ‘流涕’) && $tongue === ‘薄白’ && $pulse === ‘浮紧’) {
$diagnosis = “风寒咳嗽”;
$formula = “三拗汤”;
} elseif (match_symptom($symptoms, ‘乏力’) && match_symptom($symptoms, ‘心悸’) && $tongue === ‘淡’ && $pulse === ‘细’) {
$diagnosis = “气血两虚”;
$formula = “八珍汤”;
} elseif ((match_symptom($symptoms, ‘胸闷’) || match_symptom($symptoms, ‘叹气’) || match_symptom($symptoms, ‘易怒’)) && $pulse === ‘弦’) {
$diagnosis = “肝郁气滞”;
$formula = “柴胡疏肝散”;
} elseif (match_symptom($symptoms, ‘口渴’) && match_symptom($symptoms, ‘盗汗’) && $tongue === ‘红’ && $pulse === ‘细数’) {
$diagnosis = “阴虚火旺”;
$formula = “知柏地黄丸”;
} elseif (match_symptom($symptoms, ‘畏寒’) && match_symptom($symptoms, ‘四肢冷’) && match_symptom($symptoms, ‘腰酸’) && $tongue === ‘淡白’ && $pulse === ‘迟’) {
$diagnosis = “阳虚畏寒”;
$formula = “金匮肾气丸”;
} elseif (match_symptom($symptoms, ‘腰膝酸软’) && match_symptom($symptoms, ‘耳鸣’) && match_symptom($symptoms, ‘盗汗’) && $tongue === ‘红’ && $pulse === ‘细’) {
$diagnosis = “肾阴虚”;
$formula = “六味地黄丸”;
} elseif (match_symptom($symptoms, ‘畏寒’) && match_symptom($symptoms, ‘夜尿频’) && $tongue === ‘淡胖’ && $pulse === ‘沉弱’) {
$diagnosis = “肾阳虚”;
$formula = “右归丸”;
} elseif (match_symptom($symptoms, ‘腹泻’) && match_symptom($symptoms, ‘食少’) && $tongue === ‘淡白’ && $pulse === ‘迟弱’) {
$diagnosis = “脾阳虚”;
$formula = “附子理中丸”;
} elseif (match_symptom($symptoms, ‘胃脘痛’) && match_symptom($symptoms, ‘口臭’) && match_symptom($symptoms, ‘便秘’) && $tongue === ‘黄’ && $pulse === ‘滑数’) {
$diagnosis = “胃热炽盛”;
$formula = “清胃散”;
} elseif (match_symptom($symptoms, ‘头痛’) && match_symptom($symptoms, ‘面红’) && $tongue === ‘红’ && $pulse === ‘弦数’) {
$diagnosis = “肝火上炎”;
$formula = “龙胆泻肝汤”;
} elseif (match_symptom($symptoms, ‘发热’) && match_symptom($symptoms, ‘咽痛’) && match_symptom($symptoms, ‘头痛’) && $tongue === ‘红’ && $pulse === ‘浮数’) {
$diagnosis = “风热感冒”;
$formula = “银翘散”;
} elseif (match_symptom($symptoms, ‘恶寒’) && match_symptom($symptoms, ‘无汗’) && $tongue === ‘薄白’ && $pulse === ‘浮紧’) {
$diagnosis = “风寒感冒”;
$formula = “荆防败毒散”;
} elseif (match_symptom($symptoms, ‘小便黄赤’) && match_symptom($symptoms, ‘带下黄臭’) && $tongue === ‘黄腻’ && $pulse === ‘滑数’) {
$diagnosis = “湿热下注”;
$formula = “龙胆泻肝汤”;
} elseif (match_symptom($symptoms, ‘痰多’) && match_symptom($symptoms, ‘体重困重’) && $tongue === ‘白腻’ && $pulse === ‘滑’) {
$diagnosis = “痰湿中阻”;
$formula = “二陈汤”;
} elseif (match_symptom($symptoms, ‘食欲差’) && match_symptom($symptoms, ‘腹胀’) && match_symptom($symptoms, ‘腹泻’) && $tongue === ‘白腻’ && $pulse === ‘缓’) {
$diagnosis = “脾虚湿盛”;
$formula = “参苓白术散”;
} elseif (match_symptom($symptoms, ‘刺痛’) && $tongue === ‘紫暗’ && $pulse === ‘弦涩’) {
$diagnosis = “血瘀阻络”;
$formula = “血府逐瘀汤”;
} elseif (match_symptom($symptoms, ‘心悸’) && match_symptom($symptoms, ‘失眠’) && $tongue === ‘淡’ && $pulse === ‘细’) {
$diagnosis = “心血不足”;
$formula = “养心汤”;
} elseif (match_symptom($symptoms, ‘头晕’) && match_symptom($symptoms, ‘耳鸣’) && match_symptom($symptoms, ‘腰酸’) && $tongue === ‘红’ && $pulse === ‘细’) {
$diagnosis = “肝肾阴虚”;
$formula = “左归丸”;
} elseif (match_symptom($symptoms, ‘心悸’) && match_symptom($symptoms, ‘五心烦热’) && match_symptom($symptoms, ‘失眠’) && $tongue === ‘红少苔’ && $pulse === ‘细数’) {
$diagnosis = “心阴虚”;
$formula = “天王补心丹”;
}

Leave a Reply