乐于分享
好东西不私藏

[开源] 临床AI决策举证链系统:面向医务质控与信息科的AI处方责任追溯

[开源] 临床AI决策举证链系统:面向医务质控与信息科的AI处方责任追溯

本项目是专为互联网医院、区域医疗平台及AI辅助用药系统设计的「AI建议→医师确认→患者结果」三角举证链系统,直面犹他州AI医疗纠纷中暴露的问责真空问题。我们不做泛泛的AI日志归档,而是以HMAC-SHA256哈希链为底层锚点,构建可验证、不可篡改、时间序完整的临床决策证据包。面向医务部/质控办用于医疗鉴定举证,面向信息科支撑AI工具准入评估,也面向临床科室提供每日诊疗行为的合规参照。系统交付形态覆盖API服务、CLI命令行、HTML/JSON双格式报告,核心能力包括AI建议结构化记录、医师Override理由归因、冲突检测引擎、完整性校验签名、飞检合规报告生成。技术栈采用FastAPI+Pydantic+SQLAlchemy构建高可信后端,CLI基于Typer,加密依赖cryptography库,全链路支持Docker容器化与docker-compose编排。

定位与能力范围

我们不替代临床决策,也不包装成“全自动审方机器人”。本系统定位清晰:当AI给出一条降压药建议,医师选择采纳或覆盖,患者后续出现改善或不良事件,这三段动作必须形成可回溯、可验证、可举证的闭环链条。它不是给医生看的实时弹窗,而是给质控人员调取的司法级证据包;不是给信息科交差的静态报表,而是支撑AI工具持续准入评估的动态数据基座。

能力边界同样明确:- 不采集原始HIS数据库,只通过REST API或JSONL日志接入结构化事件流;- 不干预临床操作流程,仅记录医师在AI建议后的显式动作(采纳、覆盖、忽略)及理由;- 不预测患者结局,只忠实摄入并关联已发生的患者结果字段(痊愈、恶化、不良事件等);- 不替代电子病历系统,但可与之解耦对接,作为独立的“临床AI行为审计层”。

这套设计源于一个朴素共识:AI在医疗场景的价值不在替代人,而在放大人的判断力;而放大的前提是,每一次人机协作都必须留下可追溯的责任印记。

核心功能分层实现

系统按M1至M8八层模块组织,每层承担明确职责,不重叠、不越界:

模块
名称
关键职责
M1
数据接入层
提供JSONL日志解析器、REST API接收端点、多格式适配器框架,统一收口AI侧、医师侧、患者侧三类异构输入
M2
归因引擎层
解析AI置信度与局限性说明,提取医师Override理由关键词,运行冲突检测(如AI建议头孢 vs 患者青霉素过敏史),构建时间序三角链
M3
举证链构建层
基于HMAC-SHA256生成哈希链,对每条session_id内三段事件做完整性签名,输出带数字指纹的举证包
M4
报告生成层
输出两类标准交付物:医疗鉴定格式举证包(含时间戳、操作人、原始内容、哈希值)、飞检合规报告(按科室/时段聚合统计)
M5
API层
提供健康检查、举证查询、报告生成、配置管理四大类端点,内置认证与限流中间件
M6
CLI层
支持批量导入日志、单session举证查询、配置导出、日志检索等运维高频操作
M7
配置管理层
通过YAML加载科室级个性化规则(如内科默认启用冲突检测,儿科关闭某类药物提示),所有变更留审计日志
M8
部署层
提供Docker镜像构建脚本、docker-compose编排文件、端到端集成测试用例,开箱即验

这种分层不是为炫技,而是让每一类使用者,质控员查报告、信息科调API、运维跑CLI,都能精准触达所需能力,无需理解全栈。

使用与配置

上手极简,三步即可启动本地验证环境:

pip install -r requirements.txtcp .env.example .env# 编辑 .env 填入 API_KEY 和 DATABASE_URL

启动方式任选其一:

uvicorn src.api.main:app --host 0.0.0.0 --port 8000 --reload

或使用Docker:

docker-compose up -d

系统预置3个脱敏样例场景,位于data/目录,覆盖典型临床路径:

样例文件
典型场景
sample_normal_adoption.jsonl
AI建议被医师采纳,患者病情改善,验证链路完整性
sample_override.jsonl
医师因青霉素过敏史覆盖AI建议,换用喹诺酮,结果改善,验证Override归因能力
sample_conflict.jsonl
AI建议双联抗血小板与患者消化道出血史冲突,医师识别风险并调整,后续出现轻微不良事件后缓解,验证冲突检测与结果关联能力

导入样例只需一行CLI命令(服务需已启动):

python -m src.cli.commands logs import --path data/sample_override.jsonl

所有样例均不含真实患者信息,符合医疗数据脱敏规范。

环境与运行

部署支持两种主流模式,均默认使用SQLite轻量数据库,生产环境可无缝切换至PostgreSQL:

  • Docker单容器模式
    :适合快速验证或边缘节点部署,通过-v挂载data/目录持久化日志与数据库;
  • docker-compose编排模式
    :含服务健康监控、日志集中查看、自动重启策略,适合信息科统一纳管。

关键环境变量需按实际配置:

变量名
必填
说明
API_KEY
所有写入与敏感读取接口的认证密钥
DATABASE_URL
默认sqlite:///./data/audit.db,支持postgresql://前缀
CORS_ORIGINS
若前端Web界面跨域访问,填逗号分隔的Origin列表
LOG_LEVEL
DEBUG
/INFO/WARNING,默认INFO

HIS系统对接只需调用三个POST端点,示例如下(需携带X-API-Key头):

curl -sS -X POST http://localhost:8000/ingest/ai_suggestion \  -H "Content-Type: application/json" \  -H "X-API-Key: your-api-key-here" \  -d '{"session_id": "S001", "user_id": "U100", "timestamp": "2026-06-05T10:00:00Z", "ai_content": "建议使用头孢曲松", "ai_confidence": 0.92, "limitation_note": "仅供参考"}'curl -sS -X POST http://localhost:8000/ingest/doctor_action \  -H "Content-Type: application/json" \  -H "X-API-Key: your-api-key-here" \  -d '{"session_id": "S001", "action": "override", "override_reason": "患者青霉素过敏,换用喹诺酮", "timestamp": "2026-06-05T10:05:00Z"}'curl -sS -X POST http://localhost:8000/ingest/patient_outcome \  -H "Content-Type: application/json" \  -H "X-API-Key: your-api-key-here" \  -d '{"session_id": "S001", "timestamp": "2026-06-05T14:00:00Z", "outcome": "痊愈", "adverse_event": false}'

数据与扩展

最小数据契约极其清晰:AI建议JSONL + 医师操作JSONL + 患者结果JSONL → 举证包JSON/HTML。三类输入各自独立,只要session_id一致,系统自动完成时间序对齐与哈希链组装。

字段设计遵循临床可读性优先原则,不强求技术范式:

  • ai_suggestion
     必含 session_idtimestampai_contentai_confidencelimitation_note
  • doctor_action
     必含 session_idaction(adopt/override/ignore), override_reason(仅action=override时必填)
  • patient_outcome
     必含 session_idtimestampoutcomeadverse_event

新增字段可通过YAML配置扩展,不影响现有链路。比如某院要求记录“药师审核意见”,只需在config.yaml中声明该字段为patient_outcome的可选扩展项,系统自动纳入哈希计算范围,无需修改代码。

限制与说明

我们坦诚说明当前边界:- 不支持实时流式处理,所有摄入均为HTTP同步请求或批量JSONL导入;- 不提供前端可视化界面,报告以HTML/JSON交付,由医院自有BI系统或质控平台集成展示;- 不内置AI模型,仅作为下游AI工具的“行为记录仪”与“举证生成器”;- SQLite默认配置适用于日均≤5000 session的中小规模部署,超量需切换至PostgreSQL并启用连接池。

所有能力均围绕一个目标:让每一次AI参与的临床决策,都有迹可循、有据可查、有责可溯。这不是锦上添花的功能模块,而是当下AI进入临床前必须铺设的责任基础设施。

项目地址:https://github.com/nexorin9/ai-triangle-evidence

往期热门文章

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

医院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?