Sublime Text 无法直接构建中药处方管理系统,它只是轻量级代码编辑器;真正需用 Python+SQLite+Flask/Streamlit 实现结构化录入、剂量换算(含朝代差异)、药对分析等功能。

Sublime Text 本身不支持构建中药处方管理系统
Sublime Text 是一个轻量级代码编辑器,不是运行环境,也没有内置数据库、HTTP 服务或数值计算能力。你无法仅靠它“搭建”一个具备方剂组成管理、剂量换算、数据存储与分析功能的系统。常见误解是把编辑器当开发平台——它只能写代码、配插件、高亮语法,但 subl 命令启动不了后端,Ctrl+B 也跑不出一张药味频次统计表。
真正需要的是 Python + SQLite + 简易 Web 框架组合
中药处方管理的核心需求(结构化录入、按君臣佐使归类、剂量单位换算如“一钱≈3g”、药对共现分析)更适合用 Python 实现。Sublime 只负责写这些脚本:
- 用
sqlite3存方剂名、药物名、剂量、单位、来源(《伤寒论》/临床记录)、辨证类型 - 写一个
convert_dose()函数处理“两/钱/分/克/毫升”多单位映射,注意古方中“一钱”在不同朝代有 3g–4.1g 差异,需加era字段区分 - 用
flask或streamlit快速起个本地界面:输入“麻黄汤”,返回组成+剂量+现代等效量+常用加减法 - Sublime 中装
SublimeREPL插件可直接运行python脚本调试,但别指望它渲染表格或画热力图
剂量换算模块最容易出错的三个点
中药剂量不是简单乘除,历史文献和临床实践存在多重歧义,硬编码会翻车:
-
"三钱"在张仲景时代≈9g,清代≈10g,现代协定处方常直接标为10g——必须在数据库字段里存原始字符串"三钱"和解析后数值9.0两列,不能只存换算结果 - 毒性药如附子、细辛,古籍写“一枚”“半升”,需人工校验并打
is_toxic=True标签,换算逻辑要拦截非专业用户直接修改 - 单位缩写混乱:
"g"、"克"、"gm"、"公克"都得统一归一,建议入库前用正则re.sub(r"[克gGg]", "g", unit)清洗
方剂组成分析依赖结构化录入质量
“桂枝汤由桂枝、芍药、生姜、大枣、甘草组成”这种自由文本毫无分析价值。必须强制结构化:
- 每味药单独一行,字段含:
formula_id、herb_name(用《中药学》标准名,禁用“川芎”写成“芎”)、dose_raw、dose_value、unit、role(君/臣/佐/使/反佐) - 避免模糊表述:
"适量"、"少许"、"蜜丸如梧桐子大"这类无法量化的条目,应设为is_quantifiable=False并跳过统计 - 做药对分析时,用
GROUP BY a.herb_name, b.herb_name统计共现频次,但要注意“甘草+干姜”和“干姜+甘草”是同一对,得加CASE WHEN a.herb_name 去重

















