今天写代码(赛博监工)的时间比较多,因此进展比较迅速。完成的内容包括:
对昨天的报告生成功能进行完善,添加了周报生成。
报告生成的内容主要面向医院的管理者,比如院长、科室主任等。内容包括基本统计、入院趋势分析、患者特征分析、住院天数分析、疾病类型提取分析、再入院分析、出院情况分析等。
周报生成的内容主要面向科室管理者及医生。内容包括本周运行概况、病种分析、检查检验汇总、治疗指标、质控指标、重点关注患者、下周预警。
进行了数据的增值加工,主要是提取数据中结构形成知识图谱。定义了包含9类节点(患者、就诊、疾病、主诉、检查、检验、药品、手术、科室)和9种关系的医疗知识图谱。
数据清洗环节做了大量工作——比如病症类型的合并、治疗手段的拆解、黑名单过滤、同义词归并、采购标记去除,确保图谱数据干净可用。当然这部分还是大模型做的,目前看来最后的粒度可显示,但是还达不到最终质量非常高的知识程度。
最终的结果存储到neo4j中,供给高级场景的检索使用。
基于知识图谱的高级场景,共实现了以下场景:
| RAG 智能问答 | |
最后是项目地址及简介,项目还在持续更新中:
github地址:https://github.com/liyan24/hospital-narrative-assistant
「医院叙事生成助手」是一个基于大语言模型的医院科室历史数据叙事生成系统,以某医院肿瘤血液科3990名患者的真实数据为基底,通过知识图谱进行结构化关联,再借助大模型的语义理解和生成能力,输出各类专业叙事。
数据来源:某医院肿瘤血液科信息系统脱敏数据,包括某医院肿瘤血液科患者3990人的入院出院信息表,检查检验表,医嘱表等。数据时间跨度为2018年11月3日至2025年5月29日,共计2,399天(约6.6年),
技术栈:FastAPI 后端 + Streamlit 前端 + Neo4j 知识图谱 + 大模型 + ECharts 可视化。
场景:
当医院数据学会「讲故事」—— 一个让 AI 把病历变成叙事的项目实录 一、一个科室主任的「数据焦虑」张主任是某三甲医院肿瘤血液科的负责人。每周一早晨,他的办公桌上都会堆满各种报表:本周入院多少人、出院多少人、做了多少台手术、用了哪些药、有没有患者短期内又回来住院…… 数据不缺,甚至可以说太多了。但张主任真正想知道的,Excel 给不了他:
这些问题,需要有人把散落在六张 Excel 表里的成千上万行记录,一点点拼凑、统计、整理,再写成一段人能读懂的话。这个过程,快则半天,慢则两三天。 二、我们的解法:让数据自己开口说话我们做了一个叫「医院叙事生成助手」的系统。它的核心逻辑很简单,分三步: 第一步,「搭骨架」——把散落的病历数据串成一张关系网。就像把一堆拼图碎片,先拼出轮廓。我们从 3990 名患者的入院记录、出院小结、医嘱、检查、检验、手术记录中,提取出「患者—就诊—诊断—用药—检查—手术」的完整链条,在数据库里构建了一张医疗知识图谱。 第二步,「查档案」——你想问什么,系统先去图谱里找真实答案。比如问「肺恶性肿瘤常用哪些药?」,系统不会凭空瞎编,而是去图谱里统计所有肺恶性肿瘤患者的用药记录,把真实数据整理成一份「证据清单」。 第三步,「讲故事」——把冷冰冰的统计数字,交给大模型写成人话。同样的数据,可以讲成不同的故事:给科室主任看的是「诊疗路径规范」,给质控科看的是「异常病例预警」,给临床医生看的是「某位患者的完整就诊历程」。 三、六个真实场景:数据叙事能做什么?场景 1:一位老患者的「三年就诊史」输入患者 ID,系统自动拉出他三年来的每一次入院、诊断、用药、检查、手术,写成一段 800 字的连贯叙事。不再是翻六张表找记录,而是一段「患者 2022 年 3 月因咳嗽咯血入院,诊断为肺恶性肿瘤,行胸腔镜手术,术后予华蟾素胶囊联合化疗……」的完整故事。 场景 2:一种疾病的「科室诊疗地图」输入「肺恶性肿瘤」,系统统计出本科室治疗这种病的:最常用的 20 种药、最常规的 15 项检查、最常见的合并症、平均住院天数分布。然后写成一段「科室诊疗规范叙事」,直接可用于科室培训或质量汇报。 场景 3:发现「隐藏」的合并症关系系统分析同一次就诊中的多个诊断,发现「肺恶性肿瘤 + 高血压」经常一起出现,还能挖掘更复杂的三病组合。这些关系藏在几万条记录里,肉眼几乎不可能发现。 场景 4:中西医结合的「用药密码」肿瘤血液科大量采用中西医结合治疗。系统能分析「痰瘀互结证」常用哪些中药颗粒,对比纯西医组和中西医结合组的住院天数差异,甚至追踪中医证型就诊的季节性变化。 场景 5:质控科的「异常雷达」系统自动扫描五类异常:该做 CT 却没做的肺肿瘤患者、住院天数异常偏长的病例、出院 30 天内又回来的患者、贫血却没补铁的情况、可能存在相互作用的药品组合。输出一份带风险评级和整改建议的质控报告。 场景 6:自然语言「问数据」不用学SQL,不用翻表格。直接打字问:「高血压常见合并症是什么?」「那位患者最后一次就诊用了什么药?」系统先理解你的问题,再去图谱里找答案,最后用自然语言回复你。每个回答都标注了数据来源,确保不「胡说」。 四、为什么这很重要?三个关键词🔹 快:过去需要统计员花大半天整理的数据,现在几分钟就能生成带图表、带叙事的完整报告。 🔹 深:知识图谱让数据之间的关系「显形」。合并症网络、药品共现、诊疗路径模式——这些洞察藏在海量记录里,传统统计很难直观呈现。 🔹 真:系统每个回答都基于真实数据,标注了数据来源。在医疗这种「说错一句都可能出大事」的领域,「有据可查」比「说得漂亮」更重要。 五、未来:从「讲故事」到「预判风险」现在的系统,主要是在「描述过去」——患者经历了什么、科室怎么治的、哪里可能有问题。下一步,我们想让它学会「预测未来」。 比如:基于某位患者的历史就诊模式,生成「该患者未来 30 天内非计划再入院的风险为 X%」的预测性叙事。或者,基于相似患者的图谱特征,为医生推荐「可以参考的诊疗案例」。 从「事后总结」到「事前预警」,这是数据叙事最有价值的进化方向。 结语医疗数据从来不缺,缺的是让数据「开口」的方式。 我们做的这个系统,本质上是一个「翻译器」——把数据库里的行和列,翻译成医生能听懂、能使用、能汇报的故事。大模型在这里不是替代医生的「黑箱」,而是帮医生从数据海洋里快速定位、整理、表达信息的「助手」。 当数据开始讲故事,医生就能用更少的时间,做更好的决策。这,就是 AI 数据叙事的真正意义。 |
—— 本文为一个 AI 数据叙事系列项目实录 ——
项目持续迭代中,欢迎交流探讨
夜雨聆风