该系统面向基层医疗机构(社区卫生服务中心、乡镇卫生院、私人诊所等)的门诊医生使用。
当前基层医生撰写电子病历存在三个核心痛点:一是录入效率低,每次问诊后需手动填写8-10分钟,严重影响接诊量;二是格式不统一,不同医生书写习惯差异大,病历质量参差不齐;三是缺乏智能化辅助,现有HIS系统不支持语音识别、智能诊断建议、药品推荐等AI能力。
此外,云端AI方案存在患者数据出院的合规风险,基层机构难以接受。
本系统通过本地化部署的AI大模型+语音识别+知识库检索,帮助医生在问诊过程中实时生成结构化病历,数据全程不出医院网络,满足医疗数据合规要求。
实际落地后,医生病历录入时间从8-10分钟缩短到2-3分钟,效率提升约70%,目前已稳定运行于3家基层医疗机构。
系统是一个Windows桌面客户端,医生安装后即可使用,主要功能模块如下:
医生登录与科室选择
医生输入账号密码登录,系统自动查询该医生所属科室。单科室时自动回填,多科室时手动选择。
患者管理
展示患者列表,支持分页加载。选择患者后自动加载该患者的历史病历列表,支持新建病历草稿。
AI辅助问诊
医生点击开始录音后,系统通过腾讯云ASR实时将语音转为文字,中间结果灰色预览显示,句子结束时自动上屏。对话以气泡形式展示(医生右侧、AI左侧)。
AI智能生成病历
医生发送对话内容后,后端Dify工作流自动处理:若对话含“生成病历”指令,则生成完整结构化病历(主诉、现病史、既往史、体格检查、初步诊断、疑似诊断、诊疗建议、治疗方案等12个字段);若不含,则生成问诊建议。AI回复以SSE流式输出,逐字展示。
知识库联想
医生在诊断、治疗方案、药品三个字段输入关键词时,系统自动从Dify知识库语义检索候选项。药品联想时返回药品名称、规格、用法、单位、价格,医生可直接选择填入表格。
用药表格编辑
支持多行用药记录动态增删,知识库选择后自动填充规格、用法、单位、价格,医生补充填写剂量、频次、天数。
病历保存与PDF导出
病历字段编辑完成后保存至后端。点击导出PDF按钮,后端返回PDF文件流,系统自动写入本地并用默认程序打开。
HIS系统集成
系统启动时在本机18081端口拉起一个HTTP服务。外部HIS系统通过POST请求推送患者信息(支持JSON和表单两种格式),系统自动切换到对应医生视角、预选患者、加载对应病历。
技术栈:
桌面端:Java 17 + JavaFX 17.0.6 + FXML + ControlsFX + BootstrapFX + Ikonli + TilesFX
网络通信:JDK内置HttpClient(支持REST、SSE、WebSocket)
语音识别:腾讯云ASR WebSocket(16kHz PCM音频实时推送,备用讯飞IAT)
AI工作流:Dify advanced-chat工作流(4个LLM节点、3个知识库数据集)
本地大模型:Ollama + qwen3:32b
知识库:Dify Dataset Retrieve API(向量+关键词混合检索,top_k=12)
JSON解析:Gson 2.10.1
打包部署:jpackage + WiX Toolset 3.14(生成Windows .exe安装包)
核心实现要点:
AI工作流设计
在Dify平台编排advanced-chat工作流,根据用户输入是否包含“生成病历”走不同分支。完整病历生成分支包含:LLM1生成完整病历JSON、代码节点提取诊断检索词、3个知识库并行检索、LLM3知识库校准输出。问诊建议分支类似。知识库校准规则强制约束:诊断和药品只能输出知识库中存在的名称,不允许LLM常识补充,避免AI幻觉。
实时语音识别
实现腾讯云ASR WebSocket客户端,构建HMAC-SHA1鉴权URL。连接成功后首包RecognitionStart触发音频发送,每40ms推送1280字节PCM音频帧。slice_type=2时表示句子结束,触发最终文本回调并上屏;其他slice_type为中间结果,展示为灰色预览文字。讯飞IAT作为备用方案,可在配置中切换。
SSE流式对话
使用JDK HttpClient发送POST请求,请求头Accept设为text/event-stream。独立线程
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论