
本项目把 HIS 价表、收费、医保对码与医嘱执行口径的变更,用期望状态描述出来,先看 plan 预览,再走三方会签,最后受控 apply,让 HIS 配置变更从人盯脚本变成系统按计划落地。我们面向信息科工程师、财务、医务、医保及内审人员,提供一套从配置描述、预览、审批、执行到审计归档的完整工具链。项目采用 Go 语言编写,交付形态为单一二进制文件,结合自研轻量 DSL 与文件系统持久化,无需依赖外部服务即可运行。
为什么要把 HIS 配置变更变成一次软件发布
在医院信息科日常工作中,价表调整、医保对码、医嘱执行口径变更是高频且高风险的操作。过去,信息科工程师录入或调整价表,往往依赖手工拼接 SQL 语句或在多个 Excel 表格之间来回复制粘贴。财务部门需要修改一批价表项的生效时间时,沟通全靠微信群,影响范围和财务科目归因只能靠人工估算。到了医务、财务、医保三方会签环节,流程更是繁琐,拒签和回退缺乏系统支撑。一旦面临飞检或内审,信息科和内审人员只能临时去数据库里捞日志,甚至手工补写配置变更说明。
我们意识到,HIS 配置变更的混乱,本质上是因为缺乏一套受控的发布流程。在软件工程里,代码上线有成熟的 CI/CD 流程,有 plan 预览,有审批,有灰度,有回滚。我们决定把这套思路直接平移到医疗具体场景中,开发了 HIS 声明式配置管理系统。我们希望信息科工程师在调整价表时,能像提交代码一样提交配置变更,系统会自动计算影响范围,自动拦截冲突,自动记录审计日志。
期望状态描述:告别手工拼接的配置描述
我们自研了一套轻量级的期望状态描述语言,用来替代手工 SQL 和 Excel。信息科工程师只需要用这份描述文件,把收费项目、价表项、医保对码、医嘱执行口径的期望状态写清楚。
这套描述语言内置了词法分析和语法解析,支持严格的字段约束和 schema 校验。工程师在编写配置时,系统会实时检查字典 schema,确保每一个收费项目的编码、价格、生效区间都符合规范。如果缺少必填字段或者格式错误,解析器会聚合诊断信息,给出明确的错误提示,而不是等到执行时才发现数据库报错。这种声明式的描述方式,彻底告别了面向过程的脚本拼接,让配置变更变得可读、可追溯、可版本化管理。
预览报告:在落地前看清所有影响
配置写好后,我们不会直接让它生效,而是先跑一次预览。通过执行预览命令,系统会生成一份详细的预览报告。
在终端里,这份报告是彩色的。新增的项目显示为绿色,改价的项目显示为黄色,删除的项目显示为红色。如果发现医保对码缺失或者存在冲突,系统会用亮红色高亮标出。除了直观的颜色提示,预览报告还会自动计算并展示这次变更影响的科室范围,以及对应的财务科目归因。
对于财务和信息科来说,这个预览步骤至关重要。他们可以清楚地看到,修改一个胸部正位片的价格,会影响到放射科的哪些业务,会归入哪个医技收入科目。同时,系统会把预览的中间产物落盘为 JSON 文件和 PDF 格式的价表变更申请单,为后续的会签和审计提供基础数据。如果发现对码冲突等阻断性问题,预览报告会直接标记为不可执行,从源头避免错误配置流入生产环境。
三方会签:把审批流程搬到网页上
预览报告确认无误后,就进入了三方会签环节。我们内置了一个轻量级的会签网页网关,信息科只需启动服务,医务、财务、医保三方的负责人就可以通过浏览器登录。
在网页上,三方可以查看详细的预览报告、变更条目表、对码核查结果和影响范围。每个人根据自己的角色进行签字或拒签。如果任何一方选择拒签并填写原因,系统会自动将这次变更回退到草稿状态,等待信息科修正后重新发起。会签网页还支持直接下载 PDF 格式的价表变更申请单,方便医院走线下纸质流程。所有的签字记录、时间戳和拒签原因,都会被系统完整记录下来,确保审批流程的严肃性和可追溯性。
受控执行与一致性自检:让变更安全落地
三方会签全部通过后,配置变更就可以正式落地了。我们设计了受控执行器,它会按照资源图的拓扑排序,逐条调用 HIS 价表维护接口。
在执行过程中,执行器会自动为每一次 HTTP 请求注入审计头,包括计划编号、操作人和请求编号。这种设计确保了 HIS 系统端的日志能够与我们的变更计划一一对应。如果一次性执行几百条变更时中途遇到接口失败,执行器会记录已成功和失败的条目,并自动生成一份逆序的回滚建议列表,帮助信息科快速恢复现场。
落地完成后,系统会自动触发一致性自检批处理。自检分为三组:金额一致性、医保对码一致性、医嘱执行口径一致性。系统会比对执行前后的数据,如果发现不一致项,会详细记录在自检报告中。这一步相当于给变更加上了最后一道安全锁,确保配置不仅写进去了,而且业务逻辑是正确的。
审计包归档:为飞检和内审提供完整证据链
医疗行业的合规要求极高,每一次配置变更都必须有据可查。我们把从描述、预览、会签、执行到自检的所有中间产物,统一打包成一个审计归档包。
这个归档包是一个 tar.gz 压缩包,里面包含了计划详情、资源差异分类汇总、执行前后的状态快照、三方签字记录、落地回填结果、自检发现以及状态迁移日志。最关键的是,前后状态快照都附带了 SHA-256 哈希值,确保数据在落盘后没有被篡改。当医院面临飞检或内审时,信息科只需交出这个压缩包,审计人员就能一键溯源到变更的每一个环节,彻底告别了临时补日志的窘境。
快速上手与典型场景
项目的部署和使用非常简单。拉取代码后,安装 Go 依赖,复制环境变量配置文件并填入 HIS 接口地址和令牌,编译出单一二进制文件即可。我们还提供了一键端到端演示脚本,可以自动完成校验、预览、模拟签字、执行、自检和打包的全流程。
以胸部正位片改价为例。信息科工程师在描述文件中把该项目的价格从 28.00 调整为 32.00,设定生效日期。运行预览命令后,终端显示黄色更新提示,标明影响放射科,归入医技收入科目。生成 PDF 申请单后,三方在网页上依次签字。签字通过后,执行命令让 HIS 接口按计划落地,最后运行自检并打包审计归档。整个过程清晰、受控、留痕。
如果遇到医保对码冲突,比如新录入的收费项目与现有字典对码不一致,预览命令会直接输出亮红色阻断提示,并标记为不可执行。信息科必须修正描述文件重新预览,直到冲突解决。这种自动阻断机制,把错误拦截在了落地之前。
架构设计与技术边界
在架构上,我们遵循了声明式配置的核心循环:期望状态描述、预览、会签、受控执行、自检、审计归档。整个系统采用 Go 语言编写,利用其优秀的并发处理和交叉编译能力,交付为单一二进制文件。数据持久化完全依赖文件系统,不需要额外部署数据库或消息队列,极大地降低了信息科的运维负担。
在安全与合规边界方面,我们做了严格的限制。本系统不涉及临床辅助决策,不提供 AI 诊疗建议,也不会自动写入电子病历。我们只做 HIS 配置变更的期望状态描述、受控落地与审计留痕。最终的医疗业务决策权,始终保留在医务、财务和医保三方手中。技术只是手段,合规与安全才是医疗信息化的底线。
项目地址: https://github.com/nexorin9/his-declarative-config
往期热门文章
HIS厂商的"架构收敛":当所有系统长得一模一样,你凭什么收费?
一群鼓吹AI Coding的专家,正在制造医疗信息化的新技术债
夜雨聆风