乐于分享
好东西不私藏

[开源] 我把价表调整做成了一次软件发布:HIS 声明式配置管理系统的 plan 预览与受控 apply

[开源] 我把价表调整做成了一次软件发布:HIS 声明式配置管理系统的 plan 预览与受控 apply

本项目把 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 哈希值,确保数据在落盘后没有被篡改。当医院面临飞检或内审时,信息科只需交出这个压缩包,审计人员就能一键溯源到变更的每一个环节,彻底告别了临时补日志的窘境。

子命令
作用
关键参数
validate
仅跑描述语言校验,不生成预览
指定描述文件路径
plan
生成预览报告与落盘中间产物
指定描述文件与输出目录
serve
启动三方会签网页服务
指定监听地址
apply
按计划编号应用变更并记录落地结果
指定计划编号
reconcile
运行三组一致性自检
指定计划编号与医保后端
audit-pack
打包审计中间产物为归档压缩包
指定计划编号

快速上手与典型场景

项目的部署和使用非常简单。拉取代码后,安装 Go 依赖,复制环境变量配置文件并填入 HIS 接口地址和令牌,编译出单一二进制文件即可。我们还提供了一键端到端演示脚本,可以自动完成校验、预览、模拟签字、执行、自检和打包的全流程。

以胸部正位片改价为例。信息科工程师在描述文件中把该项目的价格从 28.00 调整为 32.00,设定生效日期。运行预览命令后,终端显示黄色更新提示,标明影响放射科,归入医技收入科目。生成 PDF 申请单后,三方在网页上依次签字。签字通过后,执行命令让 HIS 接口按计划落地,最后运行自检并打包审计归档。整个过程清晰、受控、留痕。

如果遇到医保对码冲突,比如新录入的收费项目与现有字典对码不一致,预览命令会直接输出亮红色阻断提示,并标记为不可执行。信息科必须修正描述文件重新预览,直到冲突解决。这种自动阻断机制,把错误拦截在了落地之前。

架构设计与技术边界

在架构上,我们遵循了声明式配置的核心循环:期望状态描述、预览、会签、受控执行、自检、审计归档。整个系统采用 Go 语言编写,利用其优秀的并发处理和交叉编译能力,交付为单一二进制文件。数据持久化完全依赖文件系统,不需要额外部署数据库或消息队列,极大地降低了信息科的运维负担。

在安全与合规边界方面,我们做了严格的限制。本系统不涉及临床辅助决策,不提供 AI 诊疗建议,也不会自动写入电子病历。我们只做 HIS 配置变更的期望状态描述、受控落地与审计留痕。最终的医疗业务决策权,始终保留在医务、财务和医保三方手中。技术只是手段,合规与安全才是医疗信息化的底线。

项目地址: https://github.com/nexorin9/his-declarative-config

往期热门文章

院长们相信AI,不是因为AI

医保,正在接管医生的鼠标

医院最不缺的,就是数据

互联网医院死了三千家,没人写讣告

有多少人工,就有多少智能

医生的一天,都在给系统打工

几百万,买了个SQL

系统瘫痪,信息科祭天

互联网医院,最后变成了一张线上处方单

自主知识产权,终于可以下载了

医疗数据开始值钱以后

医院买了两个AI:一个写病历,一个查病历

医院信息化最稳定的能力叫迎检

医疗AI:95%的准确率,意味着总有人会成为那5%

医院信息化最成熟的系统:丧事喜办

AI进了医院,但责任还停留在HIS时代

HIS维护费,买不到产品的未来

AI还没成熟,认证先成熟了

代码越便宜,HIS厂商越危险

医院第一次拥有了无限加班系统

医院HIS最大的成功,就是活成了物业

院长大会上,HIS厂商没有名字

院长们正在把AI当许愿池

医院信息科AI Coding:上线一时爽,运维修罗场

牛马造嚼子:当医院信息科开始用AI自我驯化

AI正在帮医院证明:信息科不需要预算

当医院开始自己写系统,HIS厂商的黄金时代结束了

医疗AI做出来了,但没人付钱

医院的“功能无限责任制”逼死了HIS和乙方

HIS厂商最赚钱的产品,是恐惧

医疗AI,连幻觉都谈不上

医疗AI正在被医院HIS“降维打击”

医院数据全进中台了,然后呢?

当整个行业默认HIS不会变好

排队两小时,看病三分钟:医院HIS系统正在改变诊疗

HIS厂商的"架构收敛":当所有系统长得一模一样,你凭什么收费?

十万字病历,AI只配读懂噪音

一群鼓吹AI Coding的专家,正在制造医疗信息化的新技术债

当AI开始学习自己编造的病历

不是AI不行,是HIS系统把门焊死了

医院AI培训:台上教你投喂,台下让你背锅

当AI开始操作医院HIS系统,医疗AI的问题就变了

医院信息网络安全大赛:表演给谁看?

CHIMA年年开,问题年年在

CHIMA2026:AI挤满展厅,但医院已经不买单了

医院的数据不属于医院

医院信息科不会消失,但正在被掏空

谁解释数据,谁就定义医院

一线崩了!医院信息科正在拖垮整个医疗信息化

医疗信息化将进入无人实施时代

当医院信息科主任用AI下场写代码,交付链第一次被打穿

当代码不再是“技术”:HIS厂商的“辜鸿铭时刻”

我用一个Agent,把实施链路压缩到一轮循环

AI狂欢背后:HIS厂商正在成为第一批受害者

离职程序员被炼成AI!但我发现真正该慌的是医生

HIS厂商还没倒,但已经不值钱了!

HIS厂商真正的危机:医院不再必须买系统了

代码不再稀缺,医院HIS厂商还怎么定价?

买国产不会被问责,买进口不会被原谅

把HIS系统的Loading改成Thinking,它就是AI了吗?

Seedance2证明了一件事:医疗AI可能只是另一种幻觉

软件已死:医院未来不需要买系统,只需要买“技能包”

我用OpenClaw干了一件HIS厂商最怕的事

Epic的“美国HIS神话”,为何在中国公立医院无法复制?

中国公立医院的内外网隔离,究竟在保护什么?

Oracle的撤退信号:医疗信息化,正在被资本重新定价

别做梦了,绝大多数公立医院,根本玩不转HIS自研

互联网大厂做不好HIS?因为这不是软件业,是保姆业

为什么开源HIS系统在中国几乎绝迹?

这套HIS系统完美运行,所以:医生全责

当HIS系统真正好用时,病人已经出事了

比“大厂救不了”更残酷的真相,当全国医院共用一套HIS系统

中国式 RWD 祛魅:所谓真实世界数据,其实是 AWD?

都在说医疗数据是金矿,但没人敢提那个尴尬的真相

中国医院信息化正在经历一场反向演化:越评级,越难用

为什么互联网大厂的“降维打击”,救不了中国医院的HIS?