乐于分享
好东西不私藏

[医疗软件开源] 接口故障工单语义归类器,让日志分析回归确定性

[医疗软件开源] 接口故障工单语义归类器,让日志分析回归确定性

在医院信息科的日常运维中,一条 HL7 消息解析失败、一次 REST 接口超时、一个数据库唯一约束冲突,都可能引发跨系统业务中断。传统方式依赖工程师逐行翻看日志、比对错误码、回忆历史案例,效率低、主观性强、新人上手慢、结果难复现。而当前不少团队尝试引入大语言模型辅助归类,却面临幻觉输出、逻辑黑箱、无法审计等现实风险。有没有一种既轻量又可靠、既开箱即用又可深度定制的解决方案?答案是:有。它不依赖模型训练,不调用远程 API,不产生不可解释的推理路径,而是以纯规则引擎为底座,把多年沉淀的接口故障经验固化为可读、可查、可改的 YAML 配置。这就是专为医院信息系统设计的「接口故障工单语义归类器」。

项目概述:规则驱动的结构化归类工具

该项目是一个面向医疗信息系统的轻量级开源工具,核心目标是将非结构化的接口故障日志文本,自动映射为四大明确故障类别,并给出标准化排查路径与处置建议。它不是通用 NLP 工具,也不试图替代日志采集或监控平台,而是聚焦于「归因」这一关键环节,成为信息科值班人员手中的“故障分类速查手册”。

  • 零模型依赖
    全程不使用任何机器学习模型或大语言模型,所有判断基于关键词匹配与决策树式规则组合
  • 结果完全可解释
    每条归类结论均可追溯至具体命中了哪几条规则、哪些关键词、权重如何计算
  • 开箱即用但绝不僵化
    内置覆盖 HL7 v2.x、REST API、数据库(如 Oracle 错误码 ORA-00001)、消息队列(MQ)等场景的 32 条规则,同时支持用户随时增删改查
  • 双模交互体验
    提供命令行(CLI)与网页(Web)两种使用方式,适配不同工作习惯与部署环境

它不追求“智能”,而坚守“确定”;不强调“泛化”,而专注“精准”。当稳定性、可审计性、交付速度成为第一优先级时,规则引擎反而是更务实的选择。

技术亮点:透明、可控、可扩展的规则体系

本项目的技术实现围绕“规则可管理、逻辑可验证、结果可复现”三大原则展开,拒绝黑盒,拥抱白盒。

  • YAML 规则即代码所有分类逻辑统一定义在 rules/default_rules.yaml 中,每条规则包含 ID、类别、正则模式、权重、排查顺序、处置动作等字段。新增一条规则只需编辑 YAML 或调用 CLI 命令,无需修改 Python 源码。

  • 多维评分机制保障准确性单条日志可能同时匹配多个规则。系统采用「权重 × 优先级」加权累加策略,同类规则按乘积排序,跨类则汇总各组得分,最终输出主类别与次选类别,并附带置信度(0.0–1.0)。例如一条含 connection timed out 的日志,会以高分命中「传输问题」,同时低分关联「配置问题」,供人工交叉验证。

  • 全链路 CLI 工具链提供覆盖全流程的命令行能力,从单条归类到批量处理,从交互调试到规则运维,全部封装为语义清晰的子命令:

python -m src.cli classify "HL7 parsing failed in MSH segment"
python -m src.cli batch data/sample_rest_errors.txt --output-format markdown -o report.md
python -m src.cli rule-add data_source "HIS.*timeout" --weight 0.9 --action "检查 HIS 系统状态"
  • 生产就绪的 Web 服务基于 Flask 构建的轻量 Web 服务,启动即用,界面简洁直观:粘贴日志、点击归类、5 秒内返回结构化结果。支持本地存储最近 10 条历史记录,也开放完整 RESTful API,便于集成进现有运维平台或告警系统。

  • 完备的测试与验证机制内置 pytest 单元测试套件,覆盖规则加载、匹配逻辑、边界情况;提供 rule-validate 命令校验 YAML 语法与字段完整性;rule-export 可一键生成符合规范的模板,降低二次开发门槛。

应用场景:聚焦医院信息科真实痛点

本工具并非通用日志分析器,其设计深度贴合医疗信息化一线工作流,适用于以下典型场景:

  • 日常接口故障响应值班人员收到 HIS-LIS 接口中断工单,复制报错日志粘贴至 Web 页面,立即获得「数据源问题」判定及 #1 排查步骤,大幅缩短首响时间。

  • 新员工能力快速构建入职信息科的新同事无需背诵上百种错误码含义,通过工具归类+查看对应处置建议,即可在实践中快速建立故障模式认知图谱。

  • 集成平台(ESB)日志治理在 ESB 日志中心接入该工具,对海量中间件日志进行自动化初筛归类,为后续根因分析提供结构化输入。

  • 医保对账差异归因当医保上传失败时,结合交易流水与接口日志,利用工具识别是否由「配置问题」(如参数格式不符)或「接收方问题」(如对方系统维护)导致,提升对账闭环效率。

  • 等级评审与质控数据溯源在三级医院评审准备过程中,可批量归类历史接口异常记录,生成统计报告,佐证接口稳定性建设成效与问题改进路径。

这些场景共同指向一个本质需求:将隐性经验显性化,将个体判断标准化,将重复劳动自动化。它不替代工程师的判断力,而是放大其专业价值。

使用指南:三分钟上手,五秒见效

无论你是命令行爱好者还是图形界面用户,都能在极短时间内完成部署与使用。

快速安装与验证

git clone https://github.com/nexorin9/interface-fault-classifiercd interface-fault-classifierpip install -r requirements.txtpython -m src.cli --help

CLI 单条归类示例

python -m src.cli classify "ORA-00001: unique constraint violated"

输出将清晰展示: - 归类结果为「配置问题」 - 置信度 0.95 - 匹配关键词 ORA-00001- 排查顺序 #2(配置类问题排第二) - 明确动作:“检查数据库主键/唯一索引字段映射关系,确认两端约束定义一致”

启动 Web 图形界面

python -m src.web

访问 http://127.0.0.1:5000,即可在浏览器中完成全部操作。支持多行日志批量粘贴,结果支持一键复制为 JSON 或 Markdown 格式,方便嵌入日报或知识库。

自定义规则入门

若需适配本院特有系统报错,可直接编辑 rules/default_rules.yaml,或使用 CLI 快速添加:

python -m src.cli rule-add config "AUTH_TOKEN_EXPIRED" --weight 0.95 --action "检查认证 Token 有效期与刷新机制" --save

随后验证规则有效性:

python -m src.cli rule-validate rules/default_rules.yaml

整个过程无需重启服务,规则热加载生效(Web 服务需重启一次),真正实现“所见即所得”的运维体验。

总结:回归工程本质的医疗信息工具

在 AI 浪潮席卷各行各业的当下,本项目选择了一条看似“保守”却极具现实意义的技术路径:用结构化规则替代概率模型,用可审计逻辑替代黑盒推理,用轻量部署替代复杂依赖。它不标榜“智能”,却实实在在提升了信息科工程师的工作确定性;它不追求“全能”,却在接口故障归因这一垂直场景做到极致可用。对于重视合规性、审计性与交付确定性的医疗机构而言,这种“小而美、稳而准”的工具,往往比宏大但飘渺的方案更具落地价值。

项目当前免费开源,若您对项目有疑问、使用上的困惑或想深入交流,欢迎私信我们,或加入社群讨论。

项目地址:https://github.com/nexorin9/interface-fault-classifier