在医疗信息化快速推进的今天,电子病历(EMR)已成为临床诊疗、医保结算与质量监管的核心载体。但一份看似完整的电子病历,是否真正具备法律效力?时间记录是否闭环?修改是否有痕?关键签字是否齐全?知情同意是否覆盖充分?这些问题一旦在医疗纠纷中被质疑,可能直接影响责任认定结果。MedRecordLegalScore 正是为此而生,一款专为医疗机构与信息科人员设计的开源 CLI 工具,可对标准格式的电子病历 JSON 文件进行自动化法律风险扫描,并输出结构化评分与可操作的漏洞清单。
项目概述:用代码守护病历的法律底线
MedRecordLegalScore 是一个轻量、可集成、面向实际业务场景的命令行工具。它不替代人工质控,也不提供法律意见,而是将《病历书写基本规范》《电子病历系统功能应用水平分级评价标准》《民法典》《医疗纠纷预防和处理条例》等法规中关于病历法律效力的关键要求,转化为可执行、可验证、可量化的检测规则。
工具以 JSON 格式病历数据为输入,围绕 8 个核心法律风险维度 进行逐项检查,包括时间线闭环、修改痕迹、签字完备性、三类知情同意(手术/麻醉/输血)、抢救记录、会诊及死亡讨论记录。每发现一处问题,按其严重程度(critical / warning / info)扣减初始分 100 分,最终生成 0–100 分的「法律坚固度评分」,并映射为 A–F 五级等级制,直观反映病历当前的法律风险水位。
整个流程完全本地运行,无需上传病历至云端,保障数据隐私与合规边界;支持单次运行、批量脚本调用、CI/CD 集成等多种使用方式,适合作为医院信息科、医务科、病案室日常质控工作的技术补充。
技术亮点:简洁架构支撑专业判断
项目采用 Node.js + TypeScript 构建,兼顾开发效率与类型安全,整体结构清晰,便于二次开发与规则扩展。
模块化规则引擎每个检测维度(如 timeline、signature、surgical_consent)均封装为独立函数,输入统一病历对象,返回标准化 Issue 数组。新增规则只需实现接口约定,无需改动主流程。
灵活的 CLI 交互体验基于 Commander 实现参数解析,支持
-i指定输入文件、-f html生成可视化报告、--rules精确控制检测范围。配合 Chalk 实现彩色终端输出,critical 问题高亮红色,warning 黄色提示,info 灰色标注,大幅提升排查效率。双模输出能力既支持即时 CLI 查看结果,也支持生成完整 HTML 报告。HTML 版包含评分总览、各维度得分分布图、全部漏洞列表(含定位路径与改进建议),适合归档、汇报或跨部门协同审阅。
可配置的评分权重体系通过
.env文件或环境变量,可调整不同严重等级问题的默认扣分值(如RULES_WEIGHT_CRITICAL=20),满足不同医院对风险容忍度的差异化设定。完备的测试覆盖使用 Jest + ts-jest 编写单元测试,覆盖全部 8 类规则逻辑及边界情况,确保每次更新不会引入误判或漏判,为工具可靠性提供基础保障。
应用场景:嵌入真实工作流的实用价值
MedRecordLegalScore 并非停留在概念验证阶段的玩具项目,而是明确服务于一线医疗管理需求的实用型工具:
医务科与病案室日常自查可每日抽取若干份出院病历 JSON,批量运行评分,快速识别共性缺陷(如某科室抢救记录缺失率偏高),定向开展培训与整改。
医疗纠纷发生前的诉讼预检在接到投诉或预判存在争议时,立即对涉事病历运行全量检测,提前掌握法律脆弱点,辅助制定应对策略与证据补强方向。
电子病历系统上线前的合规验收新建或升级 EMR 系统后,用该工具对模拟病历进行压力测试,验证系统是否完整留存时间戳、签名、修改日志等法律要件,降低上线后合规返工风险。
医院等级评审准备工作对照评审标准中“病历内涵质量”“电子病历系统应用水平”等条款,自动生成符合要求的佐证材料与整改台账,提升迎评准备效率。
使用指南:三分钟上手,五步完成一次检测
项目开箱即用,无需复杂部署。以下是典型使用流程:
首先安装依赖并构建:
npm installnpm run build接着准备一份符合规范的病历 JSON 文件(如 data/good_case.json)。然后根据需要选择输出方式:
查看 CLI 实时结果(最常用):
./dist/index.js -i data/good_case.json生成 HTML 报告用于存档或汇报:
./dist/index.js -i data/bad_case.json -f html -o ./report同时输出 CLI 与 HTML,兼顾效率与留痕:
./dist/index.js -i data/mixed_case.json -f both若仅需聚焦特定环节(例如只查知情同意),可用 --rules 参数精准指定:
./dist/index.js -i data/good_case.json --rules surgical_consent,anesthesia_consent,transfusion_consent所有输出均包含三项核心信息:- Score 总分:0–100 分,初始 100 分,按问题严重程度扣减- Grade 等级:A(90–100)、B(70–89)、C(50–69)、D(30–49)、F(0–29)- Issues 漏洞清单:每条含类型、位置、描述、建议,按 critical > warning > info 排序
如需更详细日志,添加 -v 参数启用 verbose 模式;所有参数可通过 -h 查看完整帮助。
总结:让合规从经验走向量化
病历不仅是临床记录,更是法律凭证。过去,病历法律效力评估高度依赖专家经验与人工抽查,成本高、覆盖窄、难追溯。MedRecordLegalScore 的价值,在于将抽象的法规条文转化为可计算、可比较、可追踪的技术指标,把“差不多”变成“差几分”,把“可能有问题”变成“第 3 条抢救记录缺少时间戳”。
它不试图取代医生的专业判断,而是成为医务管理者手中一把精准的尺子;它不追求大而全的功能堆砌,而是专注解决一个具体问题:电子病历是否经得起法律推敲?
项目当前免费开源,所有源码、文档、示例数据均公开可查。如果你正在参与医院信息化建设、病历质控体系优化,或对医疗合规与软件工程交叉领域感兴趣,这款工具值得纳入技术工具箱。
项目地址:
https://github.com/nexorin9/medrecord-legal-score
项目当前免费开源,若您对项目有疑问、使用上的困惑或想深入交流,欢迎私信我们,或加入社群讨论。
夜雨聆风