前言

在第三篇实训博客中,我们完成了智医辅联医疗平台业务核心层的全链路落地,打通了「患者端服务 - 医生端诊疗 - 管理端管控」的完整业务闭环,完成了各端核心业务模块的开发,解决了高并发、状态流转、权限管控等核心技术难点,项目整体完成度达到 80%。

本周实训四作为项目交付前的核心收口阶段,我们聚焦四大核心目标:一是完成全平台业务细节收口,修复前期开发暴露的核心 bug,统一全平台开发规范、数据结构与状态机标准,彻底解决跨端数据不一致问题;二是完成 P3 诊疗智能辅助模块的全链路落地,实现从本地模型训练、后端网关搭建到前端交互的完整闭环,落地轻量化诊疗辅助能力;三是完善各端核心业务功能,补全收费结算、出院办理、预约挂号防护等关键能力,实现业务流程的完整闭环;四是完成各端核心模块的联调对齐,为项目最终交付、演示验收奠定坚实基础。

目录

前言

一、项目本阶段目标与分工说明

二、各模块核心开发进度与成果

2.1 医生端:业务细节全面收口,诊疗智能辅助能力完整落地

2.2 管理端:收费模块闭环落地,全平台规范统一与 AI 管理框架搭建

2.3 患者端:出院功能全流程闭环,异步 ORM 核心问题与预约漏洞彻底解决

2.4 AI 智能模块:三层分类推理架构落地,医学问答与统计查询双功能实现

三、本阶段核心技术难点与解决方案汇总

3.1 业务一致性类:跨端数据同步与状态流转问题

3.2 异步编程类:FastAPI+SQLAlchemy 异步 ORM 懒加载报错问题

3.3 AI 工程化类:本地大模型部署与多模型推理链路搭建

3.4 安全防护类:业务逻辑漏洞与非法请求防护问题

四、项目整体进度与阶段成果总结


一、项目本阶段目标与分工说明

本阶段我们以「业务闭环收口、AI 能力落地、规范完全统一、联调全面对齐」为核心目标,小组内分工与对应交付内容如下表所示:

表格

负责模块 开发人员 本阶段核心交付内容
医生端 孙铭泽 完成核心 bug 修复与业务细节优化,落地 P3 诊疗智能辅助前端与后端接口,完成本地 Ollama 轻量化模型部署与联调
管理端 张翰学 完成核心 bug 修复与全模块 UI 规范统一,落地收费全流程核心模块,完成 AI 智能管理模块基础框架搭建
患者端 陈鹏宇 完成出院功能全流程开发,解决 FastAPI 异步 ORM 与懒加载核心问题,完成预约挂号逻辑漏洞修复与三层防护体系搭建
AI 智能模块 王涛 完成模型训练层、推理层全链路改造,搭建三层分类推理架构,实现医学问答与统计查询双功能落地,完成前端交互页面升级

二、各模块核心开发进度与成果

2.1 医生端:业务细节全面收口,诊疗智能辅助能力完整落地

医生端作为临床诊疗的核心载体,本阶段在前期主流程跑通的基础上,完成了业务细节优化与 bug 修复,同时实现了 P3 诊疗智能辅助模块从架构设计到可运行落地的完整跨越,核心开发成果如下:

  1. 核心 bug 全面修复,解决跨模块数据不一致问题针对医生个人主页头像与医生档案列表不同步、裂图的核心问题,从根因上完成了全链路修复:优化 DAO 层更新语句,确保photo_url字段可靠落库;修复审批合并时驼峰 / 蛇形键名不兼容问题,确保头像变更审批通过后可正确写入主表;更新头像时同步sys_user.avatar字段,保证顶栏与档案页头像同源;前端统一相对路径头像拼接VITE_APP_BASE_API的规则,彻底解决裂图与更新不同步问题。

  2. 审批流程体验与可读性专项优化针对管理端医生档案变更审批场景,优化了审批信息展示形式,将原本的裸 JSON 数据替换为中文标签 + 结构化详情展示,新增变更项标签、照片预览功能,审批前确认弹窗展示完整的变更说明,避免管理员因信息不清晰导致误操作,大幅提升了审批流程的可用性。

  3. P3 诊疗智能辅助架构与接口完整落地确定了「不侵入核心业务表、HTTP 同步调用、可配置双通道网关」的架构定位,后端基于 FastAPI 完成了智能辅助接口开发:GET /clinic/llm/status接口返回本地 / 云端通道配置状态,POST /clinic/llm/assist接口统一封装 OpenAI 兼容的/v1/chat/completions请求格式,支持本地 / 云端 / 智能体三通道切换;明确了任务分工,本地轻量模型负责病历模板生成、病史摘要、用药参考等基础提效工作,云端深度模型负责病历润色、复杂病例提示等进阶需求,严格遵循「仅辅助、不决策」的医疗安全原则。

  4. 本地轻量化模型部署与踩坑优化完成 Ollama 本地部署与轻量化千问大模型适配,解决了模型目录迁移、显存不足、链路不通等核心问题:通过环境变量OLLAMA_MODELS实现模型目录自定义,解决 C 盘空间不足问题;针对大模型显存不足问题,选用qwen2.5:3b轻量化模型完成链路打通;完成.env.dev环境配置与后端联调,在本地开发环境实现了工作台一键调用模型、辅助文本回填的完整流程。

  5. 前后端联调超时与体验优化针对本地模型推理超时问题,为智能辅助接口单独设置 180s 超时时间,解决 axios 默认 10s 超时导致的请求失败问题;后端为请求增加max_tokens上限、按任务类型设置生成参数,在保证可用性的前提下缩短推理耗时;新增推理耗时软阈值提示,超过 20s 时给出友好的优化建议,而非无差别报错,大幅提升了前端交互体验。

2.2 管理端:收费模块闭环落地,全平台规范统一与 AI 管理框架搭建

管理端作为医院运营的管控中枢,本阶段完成了核心 bug 修复、全模块 UI 规范统一、收费全流程核心模块开发,同时搭建了 AI 智能管理模块的基础框架,与医生端智能辅助能力完成架构对齐,核心开发成果如下:

  1. 核心 bug 集中修复,数据一致性问题彻底解决针对前期开发中暴露的四大核心问题完成全量修复:优化药品库存预警校验逻辑,封装统一的预警校验函数,修复日期字符串比对错误导致的预警不触发问题;制定住院状态统一流转规则,封装专用状态校验函数,将床位状态与住院状态变更纳入同一事务,解决状态流转异常与数据冲突问题;统一全平台文件导出 HTTP 头规范,封装通用导出工具类,解决中文文件名乱码问题;与医生端共同制定全平台状态枚举规范,完成所有模块枚举值统一整改,从根源解决跨端数据解析错误。

  2. 全模块 UI 与交互规范统一优化完成全局 UI 样式统一,对齐医生端设计规范,统一了全模块表格样式、按钮尺寸、字体字号与颜色体系,修复了弹窗、标签页、表格边框错乱的兼容性问题;优化表格基础交互,统一列宽自适应规则,固定操作列,增加斑马纹与 hover 高亮效果;统一表单校验规则与错误提示样式,优化加载状态与按钮布局,降低用户误操作概率,实现了全平台交互体验的一致性。

  3. 收费全流程核心模块完整落地完成门诊收费、住院结算、退费审批三大核心功能开发,与前期处方、检查、住院模块形成完整业务闭环:门诊收费与处方、检查申请单强绑定,支持合并结算,收费完成后自动更新缴费状态并同步至医生端;住院结算支持中途结算与出院结算两种模式,自动汇总全周期费用明细,支持医保比例自动计算与预结算单生成;退费流程实行申请 - 审批制,全流程记录可追溯,符合医院财务合规要求;前端采用分步操作流程设计,引导操作人员完成结算全流程,降低操作失误概率。

  4. AI 智能管理模块基础框架搭建完成与医生端智能辅助架构对齐,完成管理端 AI 模块基础框架搭建:设计了本地 / 云端双通道配置接口,实现了通道状态查询、参数配置、连通性测试三大基础能力;配置信息加密存储,不对外暴露密钥等敏感信息,仅超级管理员拥有配置权限;前端完成基础配置页面开发,预留了调用监控、知识库管理、问题归档的功能入口,本地开发环境已完成与 Ollama 的连通性测试,为后续智能辅助能力的全平台管控做好了架构预留。

2.3 患者端:出院功能全流程闭环,异步 ORM 核心问题与预约漏洞彻底解决

患者端作为患者就医服务的入口,本阶段完成了出院办理全流程功能开发,彻底解决了 FastAPI 异步 SQLAlchemy 操作与懒加载的核心报错问题,同时修复了预约挂号时间逻辑漏洞,搭建了完整的安全防护体系,核心开发成果如下:

  1. 出院功能全流程开发完成,实现住院服务完整闭环在前期入院、选床、支付功能的基础上,完成了出院办理、费用结算、床位释放全流程开发,补全了患者端住院服务的完整闭环;规范了出院相关的 VO、DO 数据结构,解决了因数据结构不规范、属性缺失导致的查询与序列化错误,实现了出院费用自动计算、押金抵扣、结算单生成的完整功能。

  2. FastAPI 异步 ORM 与懒加载核心问题彻底解决针对开发中频繁出现的MissingGreenlet报错,深入分析了异步场景下 SQLAlchemy 懒加载的错误时序,明确了「会话关闭后触发懒加载导致的数据库连接失效」的核心根因;通过预加载selectinload一次性查询主表与关联表数据,在会话关闭前主动提取属性构建 VO 对象,彻底避免了异步场景下的懒加载触发;对比分析了懒加载与预加载两种模式的优劣,确定了 FastAPI 异步场景下「以空间换稳定」的预加载方案,为全项目异步 ORM 操作制定了统一规范。

  3. 预约挂号逻辑漏洞修复,三层防护体系搭建完成针对「可预约已过去时间号源」的核心逻辑漏洞,从前端、接口、入库三个环节搭建了完整的三层防护体系:第一层后端时段接口做核心过滤,查询当日号源时自动剔除已过去的时段,从数据源头上掐掉过期号源;第二层后端预约创建接口做兜底校验,硬性检查预约开始时间必须晚于当前时间,即使前端被绕过也能拦截非法请求;第三层优化前端日期选择器,禁用过期日期与时段,减少用户无效操作,彻底解决了预约时间逻辑漏洞。

2.4 AI 智能模块:三层分类推理架构落地,医学问答与统计查询双功能实现

AI 智能模块作为平台的智能增强核心,本阶段在前期数据集重构的基础上,完成了训练层、推理层、接口层、前端层的全链路改造,搭建了「意图分类 - 业务模块分类 - 结果执行」的三层推理架构,实现了医学问答与自然语言统计查询两大核心功能,核心开发成果如下:

  1. 模型训练层全链路改造完成在 train.py 中新增train_intent_classify()训练函数,基于 bert-base-chinese 完成微调,支持意图分类模型的单独训练与全量训练;修复了 ONNX 模型导出时文件冲突导致的训练失败问题,新增导出前旧文件自动清理逻辑,打通了「数据预处理 - 模型训练 - 模型导出」的完整链路。

  2. 三层推理架构搭建完成,双业务场景落地重构推理层,扩展为三个模型并行加载的架构:第一层意图分类模型,判断用户输入属于「医学问答」还是「统计查询」;第二层症状 - 科室分类模型,处理医学问答类请求,完成科室推荐与知识库检索;第三层业务模块分类模型,判断统计查询所属的 7 个业务模块,调用对应服务完成数据库查询与结果格式化。实现了「自然语言输入→模型分类→业务执行→自然语言输出」的端到端能力,既可以完成症状分诊的医学问答,也可以实现病历数、接诊量等运营数据的自然语言统计查询。

  3. 接口层、VO 层与前端页面全面升级完成 Controller 层改造,注入异步数据库会话,支持统计查询的数据库操作;扩展了数据结构,新增意图、模块分类与置信度相关字段,完善了模型状态查询接口;前端页面完成同步升级,训练任务选项扩展为 4 类,服务状态卡片新增两个新模型的加载状态展示,实现了 AI 对话界面与核心功能的可视化交互。

三、本阶段核心技术难点与解决方案汇总

本阶段开发过程中,我们针对医疗系统业务特性、AI 工程化落地、异步编程等场景下的核心技术难点,形成了统一的解决方案与开发规范,核心难点与解决方式汇总如下:

3.1 业务一致性类:跨端数据同步与状态流转问题

现象:医生端与管理端之间出现头像更新不同步、状态枚举值不匹配、业务状态流转冲突等问题,导致跨端数据不一致。根因:前期分模块开发缺乏统一的全局规范,数据更新未做多端同步,状态流转无统一校验逻辑,键名命名不统一导致序列化与合并异常。解决方案

  1. 制定《全平台数据与状态机统一规范》,明确所有业务状态的枚举值、命名规则、流转条件,所有模块严格遵循同一套标准;
  2. 核心数据更新采用「多表同步写入」机制,头像、姓名等核心信息变更时,同步更新所有关联表的对应字段,确保数据同源;
  3. 封装统一的状态流转校验函数,所有状态变更必须通过该函数校验,从底层杜绝异常状态跳转;
  4. 统一驼峰 / 蛇形命名转换规则,通过 Pydantic 做请求体校验,兼容两种键名格式,避免审批合并等场景下的数据丢失。

3.2 异步编程类:FastAPI+SQLAlchemy 异步 ORM 懒加载报错问题

现象:FastAPI 异步场景下,查询关联数据时频繁出现MissingGreenlet报错,接口返回 500 异常,是异步开发中高频出现的底层问题。根因:异步会话关闭后,代码尝试访问懒加载的关联属性,触发二次数据库查询时连接已失效,导致报错;本质是同步 ORM 的懒加载模式与异步编程模型不兼容。解决方案

  1. 制定异步场景下 ORM 操作统一规范,所有关联查询必须使用selectinload做预加载,一次性查询主表与关联表数据,从根源避免懒加载触发;
  2. 采用 VO 对象封装返回结果,在会话关闭前主动提取所有需要的属性值,固化为字典 / VO 对象,返回结果不再依赖 ORM 对象与数据库连接;
  3. 大字段内容采用按需加载模式,单独设计接口查询病历正文等大字段内容,平衡内存占用与异步安全性。

3.3 AI 工程化类:本地大模型部署与多模型推理链路搭建

现象:本地大模型部署出现显存不足、目录迁移失败、请求超时、链路不通等问题,多模型组合推理的流程复杂,工程化落地难度高。根因:大模型对显存 / 内存要求高,默认安装路径占用系统盘空间,本地推理耗长远超普通接口,多模型串行推理需要严格的流程控制与异常处理。解决方案

  1. 通过环境变量OLLAMA_MODELS自定义模型存储路径,解决系统盘空间不足问题;选用qwen2.5:3b轻量化开源模型,适配普通开发设备的显存条件,完成核心链路打通;
  2. 搭建「意图分类 - 场景分类 - 结果执行」的三层串行推理架构,每个环节设置异常兜底逻辑,某一环节推理失败时返回友好提示,不中断整体流程;
  3. 为 AI 接口单独设置长超时时间,后端通过max_tokenstemperature等参数控制生成长度与耗时,前端增加软阈值提示与加载状态,提升交互体验;
  4. 后端统一封装 OpenAI 兼容接口,实现本地 / 云端双通道可配置切换,无需改动业务代码即可完成模型替换,具备良好的扩展性。

3.4 安全防护类:业务逻辑漏洞与非法请求防护问题

现象:预约挂号场景出现可预约过去时段的逻辑漏洞,退费、结算等财务场景存在数据篡改风险,需要完善的业务安全防护体系。根因:前期开发仅关注功能实现,缺乏全链路的业务校验,仅前端做基础限制,后端无兜底校验,导致逻辑漏洞可被绕过。解决方案

  1. 建立「前端限制 - 接口过滤 - 入库校验」的三层防护体系,所有业务操作在后端做双重甚至三重校验,即使前端被绕过,也无法执行非法操作;
  2. 财务相关的收费、退费、结算操作,全部通过数据库事务包裹,操作全流程留痕,生成唯一操作流水号,确保所有资金变动可追溯、可审计;
  3. 号源、床位等稀缺资源操作,采用乐观锁机制控制并发,避免超卖、重复预约等问题;同时设置单用户操作频率限制,避免恶意刷号行为。

四、项目整体进度与阶段成果总结

经过本阶段的开发,智医辅联医疗平台完成了从「主流程跑通」到「全业务闭环收口、AI 能力落地」的核心跨越,项目整体完成度达到 95%,进入最终联调与交付准备阶段,核心里程碑成果如下:

  1. 全平台业务闭环全面收口,核心功能 100% 落地医生端、管理端、患者端的核心业务功能全部开发完成,实现了患者从挂号、就诊、缴费、检查、住院、出院到随访的全流程数字化服务,打通了临床诊疗、运营管控、患者服务的完整业务闭环,所有核心流程无阻塞、无断点。

  2. AI 智能辅助能力全链路落地,实现业务与智能的深度融合完成了从本地模型训练、后端网关搭建、多模型推理架构到前端交互的全链路开发,落地了症状分诊、病历辅助生成、运营数据自然语言查询三大核心能力,实现了「人做主流程、模型做提效」的设计目标,为平台增加了核心的智能化亮点。

  3. 全平台技术规范与数据标准完全统一制定了全平台统一的开发规范、数据结构标准、状态机规则与异步 ORM 操作指南,彻底解决了跨端数据不一致、联调适配困难的问题,所有模块的代码风格、接口设计、交互体验完全对齐,为后续项目迭代与团队协作奠定了坚实的规范基础。

  4. 核心技术难点全面突破,形成可复用的解决方案解决了异步 ORM 懒加载、本地大模型工程化落地、高并发资源管控、跨端数据同步等医疗系统开发中的核心技术难点,形成了标准化的解决方案与开发规范,团队成员的全栈开发能力、工程化思维与医疗业务理解能力得到了全面提升。

Logo

一站式 AI 云服务平台

更多推荐