中医体质自评助手
依据 GB/T 46939—2025《中医体质分类与判定》国家标准,提供九种体质辨识的全流程支持:从题目与规则、到测评工具生成、到计分判定、再到调养建议输出。
用途
本技能覆盖三类交付场景:
- 生成测评工具 —— 产出一套配套的线上答题系统、Excel 记分汇总表、纸质打印问卷
- 直接辨识 —— 引导受测者逐题作答,自动计分并给出体质结论与调养建议
- 批量处理 —— 对已回收的问卷数据计分、判定、汇总,输出群体体质分布
何时使用
在以下情形调用本技能:
- 用户要求测评体质("我是什么体质""帮我做个体质测试""测一下我的体质")
- 用户需要制作体质测评工具(在线问卷、纸质问卷、记分表、"做一个体质辨识答题系统")
- 用户提供了已填写的体质问卷数据,需要计分判定和出报告
- 用户询问九种体质的特征、判定标准或调养建议,且以国家标准为依据
不适用:疾病诊断、处方开具、针灸治疗取穴等临床诊疗行为。本技能只做体质辨识与养生保健指导,遇到疾病相关问题应建议就医。
标准要点
> 详细规则见 references/standard.md,条目全文见 references/items.md,体质特征与建议见 references/advice.md。
关键前提:这是 2025 版精简量表
GB/T 46939—2025 是首次以国家标准形式发布的精简量表,每种体质仅 3~4 个条目,共 29 题。
2009 年发布的中医药学会标准 ZYYXH/T 157—2009 是 60 题长表。
两者结果不可直接比较,灵敏度和分界稳定性存在差异。若用户用于科研或论文,须明确标注采用的是 2025 短表;不得与文献中的长表结果横向对照。
计分与判定(核心)
第一步 · 转化分
转化分 = [(原始分 − 条目数) ÷ (条目数 × 4)] × 100
原始分为该体质全部条目得分之和。逆向计分条目(平和质的 P2、P3、P4)须先反向换算:实际得分 = 6 − 原始选项分。
第二步 · 逐体质判定
| 体质 | 条件 | 结论 |
|---|---|---|
| 平和质 | 转化分 ≥60 且其余 8 种转化分均 <30 | 是 |
| 平和质 | 转化分 ≥60 且其余 8 种转化分均 <40 | 基本是 |
| 平和质 | 不满足上述条件 | 否 |
| 偏颇体质 | 转化分 ≥40 | 是 |
| 偏颇体质 | 转化分 30~39 | 倾向是 |
| 偏颇体质 | 转化分 <30 | 否 |
第三步 · 主次区分
- 主体质:达标的偏颇体质中转化分最高者;若均未达标,则取平和质
- 兼夹体质:其余达标的偏颇体质(转化分 ≥40)
- 倾向体质:判定为"倾向是"的体质(30~39 分)
平和质的判定依赖其余 8 种的分数,不是只看自己的分。存在"平和质 ≥60 但已有偏颇体质达标"的冲突情形时,平和质判为否,以偏颇体质为准,并须向用户说明原因。
工作模式
模式 A:生成测评工具(最常用)
按序执行:
- 确认输出目录与项目名称(默认当前工作目录)
- 复制
assets/quiz-template.html到输出目录,重命名为「中医体质辨识答题系统.html」
- 如用户需要,可修改其中的标题、单位名称、页脚署名 - 运行
scripts/build_xlsx.py --out <输出目录>生成 Excel 记分与汇总表 - 运行
scripts/build_print.py --out <输出目录>生成打印版问卷 HTML - 如需 PDF,参考
scripts/build_print.py末尾说明调用浏览器无头模式转换 - 用
present_files交付全部成品
或直接运行 scripts/build_all.py --out <输出目录> 一次性生成全套产物。
常用参数(build_all.py / build_xlsx.py / build_print.py 通用):
| 参数 | 说明 |
|---|---|
--out <目录> |
输出目录,默认当前目录 |
--name <文件名> |
输出文件主名(不含扩展名),默认「中医体质辨识答题系统」 |
--author <署名> |
编制者署名,默认「阿雯」,写入 Excel 表头与打印版封面 |
--title <标题> |
仅 build_all.py:替换网页标题中的默认名称 |
若用户要求「署名换成我自己的名字」,传 --author 即可,不要去手改脚本。
模式 B:直接辨识
- 先询问受测者性别(决定湿热质取"带下色黄"或"阴囊潮湿",男女均作答 29 题)
- 逐题或分组呈现 29 个条目,不显示条目归属的体质,选项为 1~5 五级(没有/很少/有时/经常/总是)
- 收齐后按上述三步计分判定
- 输出:九种体质转化分表、判定结果、主体质与兼夹体质、六维调养建议
- 附免责声明与就医提示
若在网页界面中作答,直接交付 assets/quiz-template.html 由受测者自行填写更高效。
模式 C:批量处理
用户提供已填写的问卷(纸质扫描、Excel、表单导出)时:
- 逐份计分判定,得到每人的主体质与兼夹体质
- 汇总为群体体质分布表
- 识别高发体质,给出针对性的群体调养建议
计分公式与判定阈值必须与模式 B 完全一致,不得简化。
资源清单
| 路径 | 用途 |
|---|---|
references/standard.md |
判定规则、计分公式、阈值、公式示例 |
references/items.md |
条目全文、归属体质、逆向标记、性别限定 |
references/advice.md |
九种体质特征描述 + 六维调养建议 |
assets/quiz-template.html |
单文件在线答题系统(含自动计分、汇总看板、导出 CSV) |
scripts/tcm_data.py |
机器可读数据源:条目、特征、建议、判定规则 |
scripts/build_xlsx.py |
生成 Excel:使用说明/单份计分表/判定标准/调养建议/多人汇总表 |
scripts/build_print.py |
生成打印版 A4 问卷 HTML(转 PDF 用) |
scripts/build_all.py |
一键生成三件套 |
scripts/self_test.py |
计分与判定逻辑回归自检 |
需要具体条目、阈值或建议原文时,读取对应的 reference 文件,不要凭记忆作答。
环境依赖
- Python 3,生成 Excel 需
openpyxl - 生成 PDF 需本机安装 Edge 或 Chrome(调用其无头模式打印)
- 脚本均基于自身所在目录定位资源,可在任意路径运行
必须遵守的约束
- 医学安全边界:任何产物必须保留免责声明——"本结果属健康辨识与养生保健参考,不构成医学诊断,不能替代执业医师的面诊、检查与处方"。急危重症须提示立即拨打 120。
- 提示短表属性:引用结果时说明依据的是 GB/T 46939—2025(29 题精简量表)。
- 平和质冲突处理:平和质 ≥60 分但存在达标偏颇体质时,平和质判否,以偏颇体质为准,并向用户说明。
- 防应答偏倚:呈现条目时交错排列,不按体质分组、不标注归属。
scripts/tcm_data.py中的ORDER已做交错设计,直接沿用。 - 逆向计分:平和质 P2、P3、P4 为逆向条目,计分前必须换算,且需在答卷与记分表上标注。
- 性别分支:湿热质在男女间条目不同,男性用 SR4(阴囊潮湿),女性用 SR3(带下色黄),不得两条同时计入同一人。
- 复合体质:多种偏颇体质同时达标时,以转化分最高者为主体质,其余为兼夹。调理方向冲突时(如既畏寒又湿热),建议以主体质为纲并请中医师个体化辨证。
验证
修改计分或判定逻辑后,运行 scripts/self_test.py 做回归自检:
python scripts/self_test.py
自检覆盖:男女条目数各为 29、边界工况(全选最低/全选最高/全选中间)、平和质"是"与"基本是"分支、单一偏颇体质主导、主体质与兼夹体质识别。