本项目是专为康复医学场景设计的处方安全校验工具对接医院信息系统HIS中的康复理疗处方流程在医生提交前实时识别禁忌证与物理因子之间的互斥风险。核心机制由两部分构成一是基于 YAML 定义的「禁忌证×物理因子」互斥知识图谱覆盖骨折急性期、出血倾向、恶性肿瘤等临床关键禁忌类型二是纯中文 NLP 语义分析引擎可从非结构化处方文本中精准抽取技术名称如体外冲击波、超短波、参数值强度、频率、时长、治疗阶段术后4周、急性期等要素。我们提供 CLI 命令行检查、HTML 可视化报表、JSON 结构化输出和轻量 Web API 四种交付形态支持单条处方快速验证、批量文件扫描、知识库热重载与本地离线使用。技术栈以 Python 3.9 为主引擎辅以 TypeScript/Node.js 构建 CLI 与服务层全部模块开源无外部云依赖所有规则与词典均存于本地 YAML 文件便于科室自主维护与持续迭代。定位与能力范围我们不做处方生成也不替代医师判断只做一件事在康复理疗处方正式进入 HIS 执行队列前守住最后一道安全校验关。服务对象明确聚焦两类人群一线康复治疗师需快速确认方案是否合规与临床药师需参与处方审核质控。能力边界清晰限定在「物理因子疗法」范畴包括但不限于冲击波、超声波、短波、超短波、微波、磁疗、电疗、光疗等主流技术不覆盖运动疗法、作业疗法或言语治疗等行为干预类内容。所有风险判定均基于临床共识性禁忌规则例如「骨折术后4周内禁用高频冲击波」「恶性肿瘤局部禁用热疗」「出血倾向患者禁用低频电刺激」而非经验性建议或文献争议观点。系统不介入医嘱开立界面而是作为独立校验环节嵌入现有工作流可人工粘贴文本检查可批量导入 JSON 处方数据也可通过 API 接入 HIS 后台自动触发。核心功能与运行逻辑系统采用「知识驱动 语义理解」双轨并行架构所有能力围绕「检测什么、怎么检测、结果怎么用」展开功能模块检测目标实现方式输出示例互斥知识图谱技术与禁忌证的禁止组合YAML 矩阵定义forbidden_pairs支持多禁忌证并列「体外冲击波」×「骨折急性期」触发高风险告警NLP 语义抽取文本中隐含的技术名、参数、时间阶段基于规则与同义词词典的轻量 NLP不依赖大模型从“术后28天”抽取出「治疗阶段急性期后」规则引擎单处方内部冲突、跨处方叠加风险、参数超界、时间窗口违规多层匹配逻辑支持parameter_bounds和timing_windows强度 4.5 bar 超出冲击波上限 4.0 bar风险评分综合严重性、发生概率、可逆性加权打分四级制低/中/高/极高分数区间映射临床处置优先级总分 78 → 「高」风险需主治医师复核多格式报告适配不同下游使用场景JSON程序解析、HTML浏览器查看、CSVExcel 分析HTML 报表含色块分级、违规定位、整改建议三栏布局所有功能均可离线运行无需联网调用外部服务。知识库修改后支持热重载修改data/knowledge_base.yaml后执行--reload-kb或kb --reload即可生效无需重启进程。使用与配置安装仅需两步分别部署 Python 引擎与 Node.js CLI 工具cd rehab-prescription-safety-guardian/python pip install -r requirements.txt pip install -e .cd rehab-prescription-safety-guardian/cli npm install日常使用以命令行为主要入口覆盖四类典型场景单条处方快速筛查适合治疗师开完方后随手验证python main.py --text 患者李某腰椎间盘突出术后3天予超短波治疗批量处方合规审计适合信息科或药学部做季度抽查python main.py --batch-dir ./data --output ./results --format csv知识库自查与管理支持科室自主更新规则npx ts-node src/index.ts kb --validatenpx ts-node src/index.ts kb --listWeb API 快速集成供 HIS 开发者接入后台校验服务npx ts-node src/index.ts serve --port 3000# POST /check 接收 JSON 处方返回结构化风险结果HTML 可视化工具无需启动服务直接打开templates/viewer.html即可上传 JSON 报告文件查看带颜色标记的风险分布与逐条整改建议kb_manager.html则提供知识库规则的表格化浏览与 YAML 校验入口。工程结构与模块职责项目按职责分层组织Python 侧专注核心逻辑Node.js 侧负责交互与呈现目录主要模块职责说明python/src/knowledge_base.py,nlp_extractor.py,rules_engine.py知识加载、语义抽取、规则匹配、风险评分、报告生成等全链路引擎cli/src/commands/check.ts,commands/batch.ts,commands/kb.tsCLI 命令封装统一调用 Python 引擎或直连本地逻辑templates/report_template.html,viewer.html静态 HTML 页面纯前端渲染零后端依赖data/knowledge_base.yaml,synonym_dictionary.yaml,sample_prescriptions.json所有可编辑数据源YAML 规则即文档JSON 示例即测试用例所有模块均配备单元测试python/tests/与cli/tests/确保核心逻辑变更时风险可控。知识库校验器knowledge_base_validator.py会严格检查 YAML 结构是否符合预设 Schema避免因格式错误导致规则失效。数据与扩展知识库是系统可长期演进的关键其结构完全开放且符合临床表达习惯contraindications: - id: CONTRA_001 name: 骨折急性期 description: 骨折后4周内 severity: high forbidden_pairs: - technique: 体外冲击波 contraindications: [CONTRA_001] reason: 冲击波可能加重骨损伤 parameter_bounds: - technique: 体外冲击波 parameter: 强度 max_value: 4.0 unit: bar新增一条禁忌只需在对应 section 下追加 YAML 条目无需改动代码。同义词词典synonym_dictionary.yaml支持将「ESWT」「体外冲击波」「冲击波治疗」等不同表述统一归一保障 NLP 抽取鲁棒性。示例处方sample_prescriptions.json已按风险等级分类含正常、低风险、高风险三类共 7 条真实风格样本可直接用于功能验证与培训演示。限制与说明本系统不处理影像报告、检验结果等多模态数据所有输入均为纯文本处方描述不替代医师最终决策所有风险提示均附带「建议」而非「禁止」措辞不支持处方历史回溯分析仅做单次静态校验HTML 查看器依赖现代浏览器Chrome/Firefox/Edge 最新版不兼容 IE。常见问题均有明确归因与解法例如现象原因解决方式Knowledge base not founddata/knowledge_base.yaml缺失或路径错误检查data/目录是否存在该文件Invalid YAML formatYAML 缩进错误或冒号后缺空格使用在线 YAML validator 校验语法Python engine not foundPython 包未正确安装在python/目录下重新执行pip install -e .所有说明文档均内置于项目docs/目录未单独发布 Wiki 或 PDF保持信息与代码同步更新。项目地址https://github.com/nexorin9/rehab-prescription-safety-guardian