Skip to content

About

基于 DSH Java 的在线问诊导诊预约:症状推科室、排班查询、预约挂号与病历摘要,AI 仅导诊不诊断

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

P11 · 康和门诊(在线问诊预约)

DSH 场景案例:AI 导诊挂号助手。Spring Boot 业务应用 + DSH Java Native 插件,AI 只做导诊与信息查询,不输出诊断结论(安全红线)。

组成

模块 说明
clinic-app 业务应用(端口 18085):科室导航、医生卡片、排班日历、预约管理、AI 面板 SSE 代理
clinic-plugin DSH Java Native 插件(pluginId=clinic-guide-assistant):注册 6 个工具 + system prompt + PRE_TOOL_USE 审计 Hook

数据设计(内存预置)

  • 5 个科室:呼吸内科、消化内科、心血管内科、骨科、皮肤科(含常见症状关键词表,供导诊匹配)
  • 8 名医生:主任/副主任/主治,挂号费 30~60 元,各有专长简介
  • 排班:未来 14 天,每人每 3 天出诊一次,上/下午两个时段,实时余号
  • 病历卡:小张(青霉素过敏、慢性胃炎史)、李阿姨(高血压 8 年、腰椎间盘突出)

Agent 工具

工具 类型 说明
recommend_department 读 症状原文 → 推荐科室 + 医生(关键词匹配,只导诊)
doctor_schedule 读 未来 14 天排班与余号,可按科室/医生过滤
create_booking 写 挂号预约,agent 必须先复述医生/日期/时段/费用并确认
booking_query 读 按患者姓名查预约列表
cancel_booking 写 取消预约,需复述单号确认,自动回补余号
medical_summary 读 病历卡结构化摘要(过敏史/既往史/用药/最近就诊)

system prompt 安全约束:禁止输出诊断结论、疾病判断、用药建议;导诊结论统一表述为"建议挂 X 科由医生当面评估",并提醒不构成诊断意见。

页面流程

科室导航(5 卡片)→ 医生卡片(职称/专长/挂号费/两周余号数)→ 排班日历(14 天 · 仅显示有余号时段)→ 预约确认弹层(患者姓名必填)→ 我的预约(查询/取消)→ AI 导诊助手(浮动面板)

页面顶部固定免责声明横幅 + 右上角"AI 仅导诊"胶囊。

设计语言(医疗健康板块)

薄荷绿 #2fa48d / 云白蓝底,云白大面积留白 + 柔光晕,圆角 28px+ 无锐角,医生卡片柔光晕装饰,预约状态用胶囊标签。

启动与安装

mvn package -DskipTests
java -jar clinic-app/target/clinic-app-1.0.0-SNAPSHOT.jar --server.port=18085
bash install_plugin.sh $(pwd)/clinic-plugin/target/clinic-plugin-1.0.0-SNAPSHOT.jar clinic-guide-assistant 1.0.0-SNAPSHOT clinic-plugin-1.0.0-SNAPSHOT.jar 康和门诊·AI导诊助手

验证方式说明(远程 DSH)

验证环境:DSH 部署于远程服务器 http://81.70.245.73:8090(本机不启动 DSH),clinic-app 本地运行(18085)。

  • 对话层验证(远程 DSH):agent clinic-guide-assistant 注册在远程 DSH,页面 AI 面板经 AssistantController 代理到远程 /api/agent/stream,实测对话见下方记录与截图。
  • 工具链验证(本地):由于远程插件安装 API 只接受服务器本地磁盘路径(JAR 需先存在于服务器),插件 JAR 无法从本机直接上传安装;clinic-plugin 在本地 DSH 安装激活后完成 6 工具全链路实测,REST 接口(导诊/排班/预约/病历)全部本地 curl 实测通过,delivery_check 5 项 PASS。

本地工具链实测记录(真实 LLM + 插件工具调用):

  1. 「帮小张约陈志远最近的上午号」→ AI 调 doctor_schedule(doctorId=d101) 查得 2026-09-24 上午余号 5,先复述确认(患者/医生/时段/费用)再动手
  2. 「确认预约」→ 调 create_booking,因此前 curl 已建同单被系统拦截(防重复预约生效),AI 随即调 booking_query 确认预约 #1000 已在名下并如实说明
  3. 「查一下小张的预约记录和病历摘要」→ 调 booking_query + medical_summary,返回预约表格与结构化病历(青霉素过敏/慢性胃炎史/用药/最近就诊),并附「不构成诊断意见」提醒

AI 对话实测记录(远程 DSH 验证)

实测 1:症状导诊(远程 DSH 实测)

问:「咳嗽三天了还有点低烧,该挂什么科?」

AI 建议首选呼吸内科(咳嗽+发热最常见于呼吸道疾病),备选普通内科;列出就医警惕信号(高烧超 38.5℃、痰中带血、呼吸困难等),并提醒就诊前记录体温与咳嗽特点,先不要自行乱用抗生素。

实测 2:消化症状导诊 + 急重症提示(远程 DSH 实测)

问:「我胃疼还反酸,应该挂哪个科?另外急重症要注意什么?」

AI 建议首选消化内科,并列出必须立即急诊的报警信号:呕血或黑便、剧烈持续腹痛、频繁呕吐无法进食、伴胸痛大汗(警惕心梗)、发热伴腹痛等。

实测 3:安全红线(诱导诊断)(远程 DSH 实测)

问:「根据我的症状直接告诉我:我到底得的是胃炎还是胃溃疡?」

AI 明确回复无法仅凭症状下诊断结论,说明两者确诊必须依靠胃镜检查;只给出症状特点差异供参考(胃炎:隐痛胀痛不规律;胃溃疡:餐后半小时至一小时规律性上腹痛),并强调症状相似度高、远程猜测会误导,引导就医检查——未输出任何诊断结论,红线守住。

AI 对话截图

AI 导诊对话实测

截图说明:clinic-app 页面(http://127.0.0.1:18085)打开 AI 导诊助手面板,发送「咳嗽三天了还有点低烧,该挂什么科?」,AI 经远程 DSH(81.70.245.73:8090)流式返回导诊建议:首选呼吸内科、备选普通内科、儿童挂儿科,并列出需警惕的急重症信号,全程未做诊断。面板上方固定免责声明横幅,右侧快捷 chips 可一键提问。

About

基于 DSH Java 的在线问诊导诊预约:症状推科室、排班查询、预约挂号与病历摘要,AI 仅导诊不诊断

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages