本项目是专为医院医保办公室日常对账工作设计的命令行工具,解决HIS结算数据与医保平台回传数据之间因编码口径、支付规则、计算逻辑、时间粒度等不一致导致的差异分析难题。我们把原本需要人工逐条比对、翻查政策文件、撰写公文说明的重复劳动,转化为可配置、可复用、可打印的标准化输出流程。核心机制是基于18类预定义差异规则(含编码差异、口径差异、计算差异、时间差异、数据差异五大类)进行结构化识别,再通过业务语义映射引擎将技术字段差值翻译成医保办人员能直接理解的表述,最后联动归因分析、申诉要点草稿、多格式报告生成三大模块,交付差异说明函、申诉函、汇总报告三类正式文书。它以CLI为默认交互形态,支持CSV/JSON双格式输入,输出覆盖JSON(供系统集成)、Markdown(供在线审阅)、PDF(供盖章归档)、Excel(供台账管理)四种形态;底层采用TypeScript开发,模块职责清晰,支持编程调用与模板自定义。
定位与能力范围
我们不做通用数据比对工具,也不替代HIS或医保平台本身。本项目的边界非常明确:只处理已结算完成、双方数据均已导出为结构化文件(CSV或JSON)后的「结果对账」环节。所有能力都围绕一个目标展开,让医保办同事在收到医保平台《差异明细反馈表》后,30分钟内完成从原始数据导入到打印盖章版说明函的全流程。
这意味着我们不采集实时接口、不对接院内数据库、不参与结算过程控制,但深度适配医保业务语境:比如「甲乙类分类差异」不是简单标记字符串不等,而是结合医保目录判断是否属于超限使用;「限定支付范围差异」会关联诊断编码与药品适应症规则;「拒付差异」自动提取拒付原因代码并映射到政策条款编号。这种业务感知能力,来自对国家医保局《医保药品目录》《诊疗项目目录》《耗材目录》结构的理解,也来自对地方医保审核规则的留白设计,所有差异类型定义、归因逻辑、申诉话术均可在src/rules/下扩展,不需修改核心引擎。
核心功能
本系统提供三层递进式能力:差异识别 → 语义翻译 → 文书交付。每一层都可独立启用或跳过,满足不同成熟度单位的落地节奏。
- 差异识别
自动加载HIS与医保数据,按18种预设类型逐条比对。支持金额容差(默认±0.01元)、数量容差(默认±0)、医保目录对照(通过
--catalog参数加载JSON目录文件)等业务友好配置。 - 语义翻译
将「HIS药品编码A001 vs 医保编码B002」翻译为「该药品在HIS系统中使用院内自编码A001,但医保平台要求使用国家医保药品编码B002,属编码映射未同步问题」;将「HIS认定为甲类,医保认定为乙类」翻译为「该诊疗项目在HIS系统中按甲类管理,但根据《2023年XX省医保诊疗目录》,其限定支付条件为“限恶性肿瘤患者”,本次就诊未勾选对应诊断,故医保平台按乙类支付」。
- 文书交付
基于分析结果,一键生成四类交付物:差异分析报告(含明细表格与归因统计)、差异说明函(正式公文格式,含医院落款与联系人)、申诉要点草稿(分条列述政策依据与事实支撑)、汇总台账(Excel格式,含筛选与冻结首行功能)。
功能模块 | 输入 | 输出 | 典型使用场景 |
|---|---|---|---|
mrt analyze | HIS CSV/JSON + 医保 CSV/JSON | JSON分析结果(含差异项、归因、申诉标识) | 初次跑通流程,验证数据质量 |
mrt report | analysis-result.json | Markdown/PDF/Excel格式的说明函、申诉函、汇总报告 | 准备向医保局提交材料 |
mrt export | analysis-result.json | PDF(带页眉页脚)、Excel(含自动筛选) | 归档备查、科室内部通报 |
mrt config | 无 | 本地配置文件 | 统一设置常用医保目录路径、默认容差、字体等 |
使用与配置
上手只需三步:初始化、分析、出函。全部通过终端命令完成,无需安装图形界面或依赖浏览器。
首先创建标准目录结构:
mrt init该命令生成data/(放原始数据)、output/(放结果)、config/(放配置)三个文件夹,并附带示例CSV文件。
接着执行差异分析。最简命令如下:
mrt analyze --his data/his.csv --medicare data/medicare.csv若需提升准确性,可叠加参数: ---catalog data/catalog.json:加载本地医保目录,用于编码合规性校验
---amount-tolerance 0.5:将金额容差放宽至0.5元(适用于高值耗材)
---no-attribution:跳过责任方判断(适合初筛阶段)
--i:进入交互模式,系统逐项提示确认关键判断
分析完成后,生成正式说明函:
mrt report --input analysis-result.json --type letter --output diff-letter.md mrt export --input analysis-result.json --type pdf --report-type letter --output ./output两条命令分别生成可编辑的Markdown底稿与可直接打印的PDF文件,后者自动嵌入医院名称、联系人、日期等占位符,只需替换即可盖章。
配置管理同样简洁:
mrt config --show mrt config -i交互式配置支持设置默认医保目录路径、常用容差值、PDF导出字体(解决中文乱码)、报告模板路径等,配置保存于用户主目录下,全局生效。
数据与扩展
系统严格遵循医保业务字段规范,不强制要求字段名英文化。中文CSV文件(如含「就诊流水号」「医保项目编码」「拒付原因说明」等列)会被自动映射为内部标准字段,无需预先重命名。
HIS数据需包含以下必填字段:就诊流水号、患者身份证号、就诊类型、费用明细序号、费用类别、HIS项目编码、单价、数量、金额、医保报销类别、统筹支付金额、个人账户支付金额、个人自付金额。医保数据需包含:医保结算流水号、就诊流水号、医保项目编码、医保项目类别、医保结算单价、医保结算数量、医保结算金额、医保支付类别、统筹支付金额、个人账户支付金额、个人自付金额、审核状态。
所有模板文件位于templates/目录,使用Handlebars语法编写。例如diff-letter.md中{{hospitalName}}、{{contactPerson}}等变量可在mrt report时通过--vars参数注入,或在配置中预设。如需定制更复杂的逻辑(如按科室自动分组),可直接编辑模板,只要保持变量名不变,系统即可正确渲染。
工程结构
项目采用分层架构,各模块职责单一、耦合度低,便于医院信息科二次开发或对接院内系统:
模块目录 | 主要职责 | 可复用性说明 |
|---|---|---|
src/data/ | 解析HIS/医保/目录三类数据,统一转为内部标准对象 | 可单独引入,作为院内ETL流程的数据清洗组件 |
src/rules/ | 定义18种差异类型及匹配规则,支持动态注册新规则 | 新增地方性规则(如特药双通道认定)只需在此扩展 |
src/analysis/ | 差异比对引擎与归因分析器,输出结构化差异项 | 归因逻辑可对接医院知识库API,实现智能推荐 |
src/generator/ | 生成说明文案、申诉要点、报告内容 | 文案模板支持i18n,可快速适配多语言医保局 |
src/output/ | PDF与Excel导出器,封装字体、样式、分页逻辑 | PDF导出器已内置中文字体fallback机制 |
所有模块均提供TypeScript类型定义,index.ts导出完整API列表,支持直接import调用,不依赖CLI层。
环境与运行
最低运行环境明确且轻量:Node.js ≥ 18.0.0,npm ≥ 9.0.0。无Python、Java等额外依赖,避免医院IT部门部署阻力。
安装方式有两种: -本地运行:克隆仓库后npm install && npm run build,执行./bin/mrt.js即可
-全局命令:npm link后直接使用mrt命令,适合多项目复用
PDF导出依赖系统字体。若出现中文乱码,可在配置中指定中文字体路径(如/System/Library/Fonts/PingFang.ttc或C:\Windows\Fonts\simhei.ttf),系统将优先加载。
常见问题均有确定解法: - 中文CSV识别失败?→ 检查文件是否UTF-8无BOM编码
- 拒付原因未匹配条款?→ 在src/rules/diff-types.ts中补充对应原因代码映射
- Excel导出无筛选功能?→ 确认autoFilter: true已在ExcelExporter配置中启用
项目地址:
https://github.com/nexorin9/medicare-reconciliation-translator