在线接诊(兽医)— 功能需求
1. 文档说明
| 项 |
说明 |
| 模块名称 |
在线接诊(兽医)(牧业疫病诊疗服务) |
| 目标 |
为已绑定兽医身份的登录用户提供与牧民/用户的即时在线问诊能力:按条件检索本人接诊会话、查看历史消息、发送与接收多媒体消息,完成疫病相关的远程沟通 |
| 使用端 |
业务后台(若依管理端);登录用户须为「畜牧医疗资源管理」中为该兽医已分配账号的兽医端角色用户(角色 100) |
| 修订依据 |
同目录 在线接诊(兽医)功能需求-草稿.md、界面原型(Snipaste_2026-05-20_17-34-19.jpg、Snipaste_2026-05-20_17-35-41.jpg、Snipaste_2026-05-20_17-38-33.jpg);并关联分析 AI 诊断(兽医、机构) 草稿与原型 |
本文档仅描述功能需求与业务规则,不涉及数据库表结构、接口路径、请求体字段命名、HTTP 报文、权限标识命名及技术栈选型。
2. 术语与业务对象
2.1 接诊会话(一条会话)
- 表示某一问诊人(牧民/用户)与某一接诊兽医之间的一条持续性的在线问诊对话容器。
- 会话由会话 ID 唯一标识;其下有多条问诊消息按时间顺序组成聊天记录。
- 业务上接诊人为当前绑定的兽医资源对应账号;本模块仅展示与操作「接诊人为当前登录兽医」的会话。
2.2 问诊消息(单条)
- 会话内一次发送的内容单元,类型包括:文本、图片、视频、语音。
- 每条消息记录发送方、接收方、发送时间、消息类型及内容(或媒体资源引用);在界面按时间轴展示,区分「问诊人侧」与「兽医侧」气泡。
2.3 问诊人(需求方)
- 在移动端「在线问诊」向该兽医发起或继续对话的用户;本模块展示其姓名,不在此维护用户档案、不代其发起新会话(新会话由移动端创建)。
2.4 当前登录人(接诊兽医)
- 通过「畜牧医疗资源管理」分配账号登录后台的兽医本人。
- 会话列表、消息读写范围均自动限定为当前兽医;不得查看或回复其他兽医的会话。
2.5 问诊类型(业务区分,非本模块菜单)
为与 AI 诊断、专家问诊等并行能力区分,会话在业务上带有问诊类型标识(如:兽医在线问诊、AI 问诊、专家在线问诊等)。
本模块仅处理「兽医在线问诊」类型的会话;列表与详情不出现 AI 会话或专家会话。
3. 关联需求分析(在线接诊 / AI 诊断)
「在线接诊(兽医)」与「AI 诊断(兽医、机构)」同属即时消息类产品能力,界面形态相近(左侧会话列表 + 右侧对话区),但服务对象、数据范围与业务目的不同,须严格隔离。
3.1 双模块定位对照
| 维度 |
在线接诊(兽医)(本文档) |
AI 诊断(兽医、机构) |
| 所属业务 |
牧业疫病诊疗服务 |
牧业疫病诊疗服务 |
| 使用角色 |
仅兽医账号 |
兽医账号 + 机构账号(机构人员自助使用 AI) |
| 对话对象 |
真实问诊人(牧民/用户) |
AI 助手(无真实对方用户在线回复) |
| 业务目的 |
人工远程问诊、病情沟通、处置建议 |
自助问答、知识检索、辅助分析(非替代兽医接诊) |
| 会话来源 |
移动端「在线问诊」选兽医后发起/续聊 |
后台或移动端「AI」入口新建会话或打开历史 |
| 列表标题语义 |
问诊人姓名 + 最后一条双方聊天摘要 |
问答标题 + 最后一条问答摘要 |
| 右侧标题区 |
问诊人姓名 |
AI 助手 |
| 列表筛选项 |
问诊人(模糊)、会话内容(模糊) |
仅会话内容(模糊) |
| 新建会话 |
无(由移动端用户侧发起) |
有「新增会话」 |
| 问诊类型标识 |
兽医在线问诊 |
AI 问诊 |
3.2 界面形态对照(后台)
flowchart TB
subgraph 兽医接诊["在线接诊(兽医)"]
V1[筛选: 问诊人 + 会话内容]
V2[左: 接诊会话列表]
V3[右: 与问诊人聊天]
end
subgraph AI诊断["AI 诊断(兽医、机构)"]
A1[筛选: 会话内容]
A2[左: 历史会话列表]
A3[右: 与 AI 助手对话]
A4[新增会话]
end
两模块菜单独立、数据列表互不可见;避免将 AI 历史会话误展示在接诊会话列表中。
3.3 与移动端协同对照
| 端 |
在线接诊相关 |
AI 诊断相关 |
| 移动端-在线问诊 |
兽医列表 → 兽医资料 → 在线问诊聊天;曾问诊过则进入原会话,否则新建会话(原型说明) |
— |
| 移动端-消息 Tab |
展示与各兽医的会话列表(兽医名称、摘要、日期) |
— |
| 移动端-AI Tab |
— |
历史 AI 会话列表;+ 创建会话;快捷入口(养殖技巧、疾病诊疗、用药指导、设备操作等) |
牧民侧「在线问诊」产生的消息,在兽医后台「在线接诊」中可见;牧民侧不直接出现在兽医后台的 AI 诊断列表中。
3.4 与「我的预约(兽医)」的关系
| 关系 |
说明 |
| 业务并行 |
「我的预约」管理预约单(待确认/已确认等);「在线接诊」管理即时对话,二者职责不同 |
| 本期不绑定预约 |
不校验预约单状态;牧民无需先有「已确认」等预约即可发起或继续在线问诊;聊天模块不读取、不拦截预约状态(见 §5.3) |
| 状态独立 |
发送聊天消息不自动变更预约单状态;预约「已完成」由整体业务规则置位,与聊天模块解耦 |
| 数据隔离 |
预约列表与接诊会话列表无交叉查询 |
3.5 机构侧说明(关联 AI 诊断)
- 机构账号可使用 AI 诊断 进行自助问答;不使用「在线接诊(兽医)」菜单(该菜单仅兽医角色)。
- 若机构人员需与牧民在线沟通,属其他业务(本期不在本文档范围)。
- 兽医与机构共用 AI 诊断模块时,各自仅能看到本人作为提问人的 AI 历史会话。
3.6 数据与权限隔离(业务层约定)
- 接诊会话:
接诊人 = 当前登录兽医;问诊类型 = 兽医在线问诊。
- AI 会话:
提问人 = 当前登录用户;问诊类型 = AI。
- 同一用户可能既是兽医(接诊他人)又是 AI 提问者(自问 AI),两类会话分表分列表,不得合并展示。
4. 会话与消息规则
4.1 会话范围与时间窗
| 项 |
规则 |
| 数据范围 |
仅当前登录兽医作为接诊人的会话 |
| 默认列表时间窗 |
左侧列表默认仅展示「最后一条消息时间」落在最近 3 个月内的会话(含起止日当天;起算时点须稳定) |
| 超窗会话检索 |
最后消息早于 3 个月的会话默认不出现;兽医填写问诊人或会话内容并点击搜索后,可检索并打开命中会话(可搜但不默认列出) |
| 排序 |
按最后一条消息时间倒序(最近活跃在前) |
| 会话唯一性 |
同一「问诊人 + 接诊兽医」在业务上对应一条持续会话(移动端续聊进入原会话;不鼓励后台重复建多条并行会话) |
4.1.1 会话删除/结束(兽医侧展示)
| 项 |
规则 |
| 牧民侧删除 |
牧民在移动端「消息」Tab 删除某条与兽医的会话后,该会话在兽医后台接诊列表中不再展示,兽医不可再查看或回复(视为对该兽医侧不可见) |
| 兽医侧操作 |
兽医后台不提供「删除会话」「结束会话」等按钮;不展示已删除/已结束的会话条目 |
| 历史消息 |
对已不可见会话,本期不提供兽医侧恢复入口 |
4.2 消息类型与展示
| 类型 |
发送方 |
展示要求 |
| 文本 |
问诊人 / 兽医 |
气泡内展示全文;过长可换行 |
| 图片 |
双方 |
缩略图展示;可点击查看大图(若平台统一支持预览) |
| 视频 |
双方 |
展示视频消息占位/封面;可点击播放(若平台支持) |
| 语音 |
双方 |
展示语音条及时长;可点击播放 |
兽医后台须能接收问诊人发来的各类型消息,并能发送各类型消息回复。
视频、语音(本期约定)
- 视频、语音均采用上传文件方式发送(选择本地文件后上传),不提供实时音视频通话(RTC)、不提供后台内嵌录音/录像控件(与「仅上传文件」一致;图标入口仍为选文件)。
- 图片、文本规则不变。
4.3 消息同步与时效
| 项 |
规则 |
| 同步要求 |
近实时:问诊人发送或兽医发送成功后,对方界面须在 1 秒内 看到新消息(含左侧列表摘要更新) |
| 实现取向 |
宜采用推送/长连接等机制;纯手动刷新不满足本需求 |
| 展示 |
聊天记录区按日期分组(如「3月30日」)及时刻(如「16:11」)展示,与原型一致 |
| 兽医发送成功 |
消息立即出现在当前会话兽医侧;同步至问诊人后亦须满足 1 秒内可见 |
5. 功能范围
5.1 本期实现
| 能力 |
说明 |
| 即时聊天布局 |
左列表 + 右对话区;§6 |
| 接诊会话列表 |
筛选、默认 3 个月、排序;§6.1 |
| 查看会话消息 |
选中会话加载全部历史消息;§6.2 |
| 发送消息 |
文本、图片;视频/语音为文件上传;§6.3 |
| 近实时同步 |
双向消息 ≤ 1 秒 可见;§4.3 |
| 超窗搜索 |
默认 3 个月列表;搜索可查更早会话;§6.1 |
| 工具栏 |
列表区 搜索、重置 |
5.2 本期不实现
| 项 |
说明 |
| 兽医后台「新建接诊会话」 |
会话由移动端用户发起;与 AI 诊断的「新增会话」不同 |
| 会话转接、多人会诊、@提醒 |
原型未要求 |
| 消息撤回、已读回执、输入中状态 |
除非平台统一 IM 规范另立,本期不做 |
| 将 AI 诊断结果一键插入接诊聊天 |
可单独立项;本期不做 |
| 机构端在线接诊、专家在线接诊后台 |
仅兽医本文档;专家/机构另模块 |
| 导出聊天记录、敏感词审核配置 |
未要求 |
| 视频/语音实时通话(RTC) |
不支持 |
| 后台内嵌录音/录像发送 |
不支持;语音/视频仅上传文件(见 §5.3) |
| 兽医侧删除/结束会话 |
不提供;牧民删除后会话对兽医不展示 |
5.3 本期产品确认项(已确认)
| # |
确认项 |
本期约定 |
| 1 |
消息时效 |
须近实时;对方可见新消息的延迟 ≤ 1 秒 |
| 2 |
3 个月窗外历史 |
可搜但不默认列出:默认列表仅最近 3 个月;搜索可命中更早会话并打开 |
| 3 |
与预约关系 |
暂不绑定预约状态;不校验是否已预约/已确认 |
| 4 |
视频/语音发送方式 |
仅上传文件;不做 RTC、不做后台内嵌录播 |
| 5 |
会话删除/结束 |
牧民删除后,兽医侧列表不展示该会话;兽医侧无删除/结束操作 |
6. 详细功能需求
6.1 接诊会话列表(左侧)
| 项 |
规则 |
| 标题 |
「接诊会话」(与原型一致) |
| 数据范围 |
仅当前兽医的兽医在线问诊会话;排除牧民已删除且对兽医不可见的会话(§4.1.1) |
| 时间范围 |
默认仅最近 3 个月内有最后消息的会话;搜索时可查更早会话(§4.1、§5.3) |
筛选条件
| 筛选项 |
规则 |
| 问诊人 |
选填;对问诊人姓名 模糊匹配;不受默认 3 个月限制(搜索时全量匹配) |
| 会话内容 |
选填;对会话内消息文本内容(及可检索的标题/摘要字段)模糊匹配;不受默认 3 个月限制 |
| 工具栏 |
搜索(触发后按条件查询,可含超 3 个月会话)、重置(恢复默认列表,仅 3 个月) |
| 默认进入 |
未点击搜索或已重置时,列表仅展示最近 3 个月会话 |
列表项展示(与原型一致)
| 元素 |
说明 |
| 头像 |
问诊人头像占位或默认图 |
| 问诊人姓名 |
— |
| 最后一条内容 |
展示该会话最新一条消息的摘要(文本截断;非文本类型可用固定文案如「[图片]」「[语音]」「[视频]」) |
| 问诊日期 |
以最后消息日期展示,格式如「M月D日」(如 3月30日) |
| 选中态 |
选中某条后高亮,右侧加载该会话 |
空列表
6.2 会话详情与聊天记录(右侧)
| 项 |
规则 |
| 入口 |
点击左侧某条接诊会话 |
| 顶部标题 |
展示当前会话的问诊人姓名(与左侧一致) |
| 聊天区 |
展示该会话全部历史消息(不受列表默认 3 个月限制;分页加载以实现为准,须能看全历史) |
| 气泡布局 |
问诊人消息在一侧(如左),兽医消息在另一侧(如右);带头像占位 |
| 未选会话 |
右侧可为空状态提示(如「请选择接诊会话」) |
只读约束
- 历史消息不可编辑、不可删除(除非平台统一 IM 规范另定管理员能力,本期兽医侧不做)。
6.3 发送消息(右侧输入区)
| 项 |
规则 |
| 文本输入 |
多行文本框;支持输入病情回复、指导建议等 |
| 图片 |
选择本地图片文件上传并发送 |
| 语音 |
选择本地语音文件上传并发送(非后台内嵌录音) |
| 视频 |
选择本地视频文件上传并发送(非后台内嵌录像);须可接收并展示问诊人上传的视频消息 |
| 发送按钮 |
「发送」;文本须非空;图片/音视频须已选文件 |
| 发送成功 |
消息近实时出现在聊天区(§4.3);更新左侧列表摘要与时间 |
发送身份
- 消息发送方均为当前登录兽医;接收方为该会话的问诊人。
失败处理
- 发送失败须提示原因(网络、文件过大、格式不支持等),消息不虚假展示为已成功。
6.4 与 AI 诊断的互斥说明(产品层)
| 场景 |
在线接诊(兽医) |
AI 诊断 |
| 兽医想查历史与牧民聊天 |
使用本模块 |
不使用 |
| 兽医想用 AI 查养殖/疾病知识 |
不使用 |
使用 AI 诊断 |
| 机构人员问 AI |
无菜单 |
使用 AI 诊断 |
两模块不得共用同一左侧列表或会话 ID 空间。
7. 业务流程
7.1 兽医后台使用流程
flowchart TD
A[兽医登录后台] --> B[进入在线接诊兽医]
B --> C[可选: 问诊人/会话内容筛选]
C --> D[搜索/重置]
D --> E[左侧接诊会话列表]
E --> F{选择会话?}
F -->|是| G[右侧展示问诊人姓名与历史消息]
G --> H[输入文本或选择图片/语音/视频]
H --> I[点击发送]
I --> J[消息入列并更新列表摘要]
J --> G
F -->|否| E
7.2 与移动端协同(牧民发起/续聊)
sequenceDiagram
participant 牧民
participant 移动端
participant 兽医后台
牧民->>移动端: 在线问诊-选择兽医
alt 曾与该兽医问诊过
移动端->>移动端: 进入原会话
else 首次
移动端->>移动端: 创建新会话
end
牧民->>移动端: 发送文本/图片/视频/语音(文件)
移动端-->>兽医后台: 近实时同步(≤1秒)
兽医后台->>兽医后台: 接诊会话列表可见更新
兽医后台->>兽医后台: 回复消息(文件上传)
兽医后台-->>移动端: 近实时同步(≤1秒)
牧民->>移动端: 查看兽医回复
opt 牧民删除会话
移动端->>移动端: 会话对兽医不可见
Note over 兽医后台: 列表不展示该会话
要点:
- 会话由移动端创建或续接,兽医后台不创建新接诊会话。
- 双方消息双向同步;兽医仅回复属于自己的会话。
- 与 AI 诊断 无自动串联;牧民在 AI 中的提问不会出现在兽医接诊列表。
7.3 与 AI 诊断流程的并行关系
flowchart LR
subgraph 牧民侧
M1[在线问诊选兽医]
M2[AI Tab 问 AI]
end
subgraph 兽医后台
V[在线接诊]
A[AI 诊断]
end
M1 --> V
M2 -.->|不经由兽医后台| AI移动端
兽医本人 --> V
兽医本人 --> A
8. 业务数据要素(逻辑层,非表结构)
实施时需持久化以下业务信息(字段命名与存储方式由技术方案定义):
| 逻辑对象 |
要点 |
| 会话 |
会话 ID;问诊人标识、问诊人姓名;接诊人标识、接诊人姓名;问诊类型(兽医在线问诊);问题标题(可选,首问摘要或会话标题);最后消息时间 |
| 消息 |
所属会话 ID;发送方/接收方标识与姓名;消息类型(文本/图片/视频/语音);内容或媒体资源引用;发送时间 |
与 AI 诊断存储的差异: AI 会话的问诊类型为 AI,提问人为当前登录用户本人,无「接诊人-问诊人」双方真人对话结构。
9. 提示约定(示例)
| 场景 |
示例文案 |
| 搜索无结果 |
未找到匹配的接诊会话 |
| 默认列表 |
仅展示最近 3 个月会话;更早记录请使用搜索 |
| 空列表 |
暂无接诊会话 |
| 未选会话 |
请选择接诊会话 |
| 发送失败 |
发送失败,请重试 |
| 文本为空 |
请输入消息内容 |
| 文件限制 |
图片/视频/语音不符合要求时的具体提示(大小、格式以实现为准) |
| 无权限 |
无权查看该会话 |
| 非本兽医会话 |
无权查看该会话 / 会话不存在 |
10. 非功能建议(业务侧)
- 会话与消息查询须限定当前兽医,防止越权查看他兽医的问诊记录。
- 消息投递:端到端可见延迟 ≤ 1 秒(§5.3);验收时须在双端同时在线场景下抽检。
- 图片、视频、语音上传须符合平台文件大小与格式统一规范。
- 列表与聊天的时间、日期展示格式与移动端、AI 诊断模块保持一致。
- 界面支持 i18n(汉语 + 藏文)。
- 消息量大时聊天区宜支持滚动加载或分页,避免一次加载过慢;左侧列表仍按最后消息时间排序。
- 高敏感场景下可考虑操作审计(查看会话、发送消息),与平台统一要求一致。
11. 修订记录
| 版本 |
说明 |
| 1.0 |
依据草稿与原型整理;补充与 AI 诊断(兽医、机构)关联分析;明确与我的预约、移动端在线问诊协同;剔除技术栈与接口表述;定义消息类型与会话隔离规则 |
| 1.1 |
纳入产品确认:近实时≤1秒;超3个月可搜不默认列出;不绑定预约;音视频仅上传文件;牧民删除后会话兽医侧不展示 |