# 我的预约(兽医)— 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 我的预约(兽医)(牧业疫病诊疗服务) | | 目标 | 为**已绑定兽医身份**的登录用户提供「面向本人的诊疗预约」查询与处置能力:筛选预约单、查看详情、对**待确认**预约执行**确认接诊**或**拒绝接诊** | | 使用端 | 业务后台(若依管理端);登录用户须为「畜牧医疗资源管理」中为该兽医**已分配账号**的专家端角色用户 | | 修订依据 | 同目录 `我的预约(兽医)功能需求-草稿.md`、界面原型;并关联分析 **我的预约(机构)**、**我的预约(专家)** 草稿与原型 | 本文档**仅描述功能需求与业务规则**,不涉及数据库表结构、接口路径、请求体字段命名、HTTP 报文、权限标识命名及技术栈选型。 --- ## 2. 术语与业务对象 ### 2.1 兽医预约单(一条记录) - 表示牧民/用户在**移动端「预约服务」**中选择某位**已发布兽医**后提交的一条预约申请。 - 预约单在业务上**归属该兽医**(与当前登录账号所绑定的兽医资源一一对应);本模块**仅展示并操作「属于当前登录兽医」的单据**。 - 一条预约单包含:预约人、预约日期、预约时段、联系方式、服务地址、服务需求、状态及(若已拒绝)拒绝理由等。 ### 2.2 当前登录人(服务提供方视角) - 指通过「畜牧医疗资源管理」**分配账号**(专家端角色,草稿约定角色编号 **100**)登录后台的**兽医本人**。 - 列表与操作的数据范围:**自动限定为当前账号绑定的兽医资源 ID 下的预约记录**;不得查看或操作其他兽医的预约。 ### 2.3 预约人(需求方) - 在移动端填写预约信息的用户(姓名、电话、地址、需求等);本模块**只读展示**,不在此维护预约人档案。 --- ## 3. 关联需求分析(兽医 / 机构 / 专家) 三模块同属「**我的预约**」产品族:均为**服务提供方**在后台查看「指向自己的预约」。差异来自**预约对象类型**与**状态机复杂度**。 ### 3.1 三端定位对照 | 维度 | 我的预约(兽医) | 我的预约(机构) | 我的预约(专家) | | --- | --- | --- | --- | | 所属业务 | 牧业疫病诊疗服务 | 牧业疫病诊疗服务 | 牧业养殖科技服务 | | 预约对象 | **兽医人员**(移动端「预约服务-兽医」) | **诊疗机构**(「预约服务-诊疗机构」) | **科技专家**(「预约服务-专家」) | | 账号来源 | 医疗资源管理-兽医**分配账号** | 医疗资源管理-机构**分配账号** | 科技资源管理-专家**分配账号** | | 移动端提交后 | 进入 **待确认**,待兽医处置 | 进入 **已预约**(无待确认环节) | 进入 **待确认**,待专家处置 | | 提供方处置 | **确认接诊 / 拒绝接诊** | **仅查看**(无确认/拒绝) | **确认接诊 / 拒绝接诊** | | 拒绝理由 | 拒绝时**必填**(≤100 字) | 无 | 拒绝时**必填**(≤100 字) | | 服务评价 | **本期不做**「查看评价」(见 **§3.3**) | 无 | **已完成**可「查看评价」及详情星级 | ### 3.2 状态模型对照 ```mermaid flowchart LR subgraph 兽医与专家["兽医 / 专家(需接单)"] A1[待确认] -->|确认接诊| B1[已确认] A1 -->|拒绝接诊| C1[已拒绝] A1 -->|用户取消| D1[已取消] B1 -->|业务闭环| E1[已完成] B1 -->|用户取消| D1 end subgraph 机构["机构(登记制)"] A2[已预约] -->|用户取消| D2[已取消] A2 -->|业务闭环| E2[已完成] end ``` | 状态 | 兽医本模块 | 机构模块 | 专家模块 | 说明 | | --- | --- | --- | --- | --- | | **待确认** | ✓ | — | ✓ | 用户已提交,等待服务方确认或拒绝 | | **已预约** | — | ✓ | — | 机构预约提交后即为此态(无接单动作) | | **已确认** | ✓ | — | ✓ | 服务方已确认接诊;兽医/专家可 **完成接诊** | | **已拒绝** | ✓ | — | ✓ | 服务方拒绝,须展示拒绝理由 | | **已取消** | ✓ | ✓ | ✓ | 用户取消(或业务规则允许的取消) | | **已完成** | ✓ | ✓ | ✓ | 服务已结束;专家端可延伸评价能力 | > **本期约定(兽医):** 状态取值与草稿一致,共 **五种**:待确认、已取消、已确认、已拒绝、已完成。**不出现**机构的「已预约」枚举,避免与「已确认」语义混淆。 ### 3.3 与专家模块的差异(本期范围) | 能力 | 兽医(本文档) | 专家(关联文档) | | --- | --- | --- | | 列表字段 | 含预约时段、服务地址、服务需求、拒绝理由 | 同左 | | 待确认操作 | 查看、确认接诊、拒绝接诊 | 同左 | | 已确认操作 | 查看、**完成接诊** | 查看、**完成接诊** | | 已完成操作 | **仅查看** | 查看、**查看评价** | | 详情-评价信息 | **不展示**星级与综合评价 | 已完成展示到场准时/服务态度/指导效果/综合评价 | | 评价列表弹窗 | **无** | 有(评价人、评价时间、综合评价) | 若产品要求三端「已完成」体验一致,须单独立项将评价能力扩展到兽医端;**本期以兽医草稿为准,不实现评价相关功能**。 ### 3.4 与机构模块的差异(本期范围) | 能力 | 兽医(本文档) | 机构(关联文档) | | --- | --- | --- | | 列表字段 | **完整**(含时段、地址、需求、拒绝理由) | **精简**(预约人、日期、电话、状态) | | 详情字段 | 同列表业务字段 | 含时段、地址、需求(详情比列表全) | | 接单 | 有 | **无** | | 状态筛选 | 五种 | 三种(已预约/已取消/已完成) | 机构侧为**登记查看型**;兽医侧为**接单处置型**,与专家侧处置逻辑对齐。 ### 3.5 与上下游模块关系 | 上游/平行模块 | 关系 | | --- | --- | | **畜牧医疗资源管理** | 兽医须**已发布**且已**分配账号**,本模块才有数据与菜单入口;服务时段、服务周日、接诊方式等由资源管理维护,在**用户提交预约时**校验,本模块展示结果即可(**单日最大接诊人数**仅诊疗机构资源维护,不适用于兽医) | | **移动端预约服务** | 用户选择兽医、填写预约信息并提交 → 生成 **待确认** 预约单;用户可在待确认/已确认等态**取消** → 本模块见 **已取消** | | **我的预约(机构)** | 同一「预约服务」产品不同 Tab;**数据隔离**,不交叉列表 | | **我的预约(专家)** | 同属预约服务族但业务域与资源表不同;**数据隔离** | | **在线接诊(兽医)**(若实施) | 可与 **已确认** 预约衔接现场服务;完成服务后由业务规则将状态置为 **已完成**(具体触发方式由整体方案约定,本模块负责展示与只读) | --- ## 4. 预约状态与状态机(兽医) ### 4.1 状态定义 | 状态 | 含义 | 本模块可执行操作 | | --- | --- | --- | | **待确认** | 用户已提交,等待兽医确认或拒绝 | 查看、**确认接诊**、**拒绝接诊** | | **已确认** | 兽医已确认,待履约 | 查看、**完成接诊** | | **已拒绝** | 兽医已拒绝 | **仅查看**(须能看拒绝理由) | | **已取消** | 预约已取消(通常为用户侧) | **仅查看** | | **已完成** | 服务已结束 | **仅查看** | ### 4.2 状态迁移(兽医侧动作与用户侧) ```mermaid stateDiagram-v2 [*] --> 待确认: 用户提交预约 待确认 --> 已确认: 兽医确认接诊 待确认 --> 已拒绝: 兽医拒绝接诊(必填理由) 待确认 --> 已取消: 用户取消 已确认 --> 已完成: 服务完成(业务闭环) 已确认 --> 已取消: 用户取消(若规则允许) ``` **兽医侧不得**将状态改为「已取消」或「已完成」;**不得**对已确认/已拒绝/已取消/已完成记录再次确认或拒绝。 ### 4.3 并发与幂等 - 对同一条 **待确认** 记录,**确认接诊**与**拒绝接诊**互斥;成功后状态变更,重复点击应提示「当前状态不允许该操作」。 - 若用户同时将预约取消为 **已取消**,兽医侧确认/拒绝应失败并提示状态已变更。 --- ## 5. 功能范围 ### 5.1 本期实现 | 能力 | 说明 | | --- | --- | | 分页列表 | 筛选 + 默认仅当前兽医预约;**§6.1** | | 查看详情 | 全字段只读;**§6.2** | | 确认接诊 | 仅 **待确认**;**§6.3** | | 拒绝接诊 | 仅 **待确认**;必填拒绝理由;**§6.4** | ### 5.2 本期不实现 - **查看评价**、详情内星级与综合评价(见 **§3.3**,专家模块已有) - 兽医主动取消预约、代用户改期、改地址 - 导出、批量确认/拒绝、消息推送配置 - 机构/专家预约的跨类型查询 --- ## 6. 详细功能需求 ### 6.1 预约记录列表 | 项 | 规则 | | --- | --- | | 数据范围 | **仅**当前登录账号绑定兽医的预约记录 | | 分页 | 默认每页 **20** 条 | | 排序 | 默认 **预约日期倒序**,同日按 **创建时间倒序**(或预约时段开始时间倒序,以实现为准,须稳定) | | 工具栏 | **搜索**、**重置** | **筛选条件** | 筛选项 | 规则 | | --- | --- | | 预约人 | 选填;对**预约人姓名** **模糊**匹配 | | 预约日期 | 选填;**起止日期** `startDate`、`endDate`(`yyyy-MM-dd`);含起止日当天;`startDate` 不得晚于 `endDate` | | 状态 | 选填;**精确**匹配五种状态之一;空则不过滤 | **列表列(展示)** | 列名 | 说明 | | --- | --- | | 预约人 | — | | 预约日期 | `yyyy-MM-dd` | | 预约时段 | `HH:mm~HH:mm`(开始~结束) | | 联系电话 | — | | 服务地址 | 过长可截断,详情看全文 | | 服务需求 | 过长可截断 | | 状态 | 标签展示,五种枚举 | | 拒绝理由 | **已拒绝**时展示;其他状态可为空或「—」 | | 操作 | 见 **§7** | --- ### 6.2 查看预约详情 | 项 | 规则 | | --- | --- | | 入口 | 任意状态均可「查看」 | | 形式 | 弹窗或详情页,**只读** | | 字段 | 预约人、预约日期(`yyyy-MM-dd`)、预约时段(`HH:mm~HH:mm`)、联系电话、服务地址、服务需求、**状态** | | 拒绝理由 | 当状态为 **已拒绝** 时**必须展示**;其他状态不展示或展示为空 | | 评价相关 | **本期不展示**(与专家模块区分) | --- ### 6.3 确认接诊 | 项 | 规则 | | --- | --- | | 前置 | 状态为 **待确认**;记录属于当前登录兽医 | | 操作 | 用户点击「确认接诊」;宜二次确认(「确定接受该预约?」) | | 结果 | 状态变为 **已确认**;记录操作人、操作时间(审计,若平台统一要求) | | 拒绝 | 非待确认、已取消等 → 「当前状态不允许确认接诊」 | | 成功后 | 列表刷新;移动端用户侧应同步为已确认(由整体预约服务保证) | --- ### 6.4 拒绝接诊 | 项 | 规则 | | --- | --- | | 前置 | 状态为 **待确认**;记录属于当前登录兽医 | | 操作 | 用户点击「拒绝接诊」→ 弹出表单 | | 拒绝理由 | **必填**;trim 后 **1~100** 字(字符计);空或超长校验失败 | | 结果 | 状态变为 **已拒绝**;拒绝理由落库并回显于列表/详情 | | 取消弹窗 | 不提交则状态不变 | | 拒绝 | 非待确认 → 「当前状态不允许拒绝接诊」 | --- ## 7. 操作与权限矩阵 | 操作 | 待确认 | 已确认 | 已拒绝 | 已取消 | 已完成 | | --- | --- | --- | --- | --- | --- | | 查看 | ✓ | ✓ | ✓ | ✓ | ✓ | | 确认接诊 | ✓ | — | — | — | — | | 拒绝接诊 | ✓ | — | — | — | — | | 完成接诊 | — | ✓ | — | — | — | - 模块级:**列表查询**、**详情**、**确认**、**拒绝** 须按按钮粒度授权(具体标识由技术方案定义)。 - 无「兽医」绑定关系的账号不应看到本菜单或列表为空。 --- ## 8. 业务流程 ### 8.1 模块总览 ```mermaid flowchart TD A[兽医登录后台] --> B[进入我的预约兽医] B --> C[列表筛选] C --> D{选择记录} D --> E[查看详情] D --> F{状态?} F -->|待确认| G[确认接诊] F -->|待确认| H[拒绝接诊+理由] F -->|其他| E G --> I[已确认] H --> J[已拒绝] ``` ### 8.2 与移动端协同(牧民侧摘要) 1. 用户在「预约服务」选择兽医、日期时段并提交 → 兽医侧出现 **待确认**。 2. 兽医 **确认** → 用户侧 **已确认**;兽医 **拒绝** → 用户侧 **已拒绝**并可见理由。 3. 用户在允许状态下 **取消** → 兽医侧 **已取消**,确认/拒绝按钮消失。 4. 服务完成后业务置 **已完成** → 兽医侧仅可查看(本期无评价入口)。 --- ## 9. 提示约定(示例) | 场景 | 示例文案 | | --- | --- | | 筛选 | 「结束日期不能早于开始日期」 | | 拒绝理由 | 「请填写拒绝理由」「拒绝理由不能超过 100 字」 | | 状态 | 「当前状态不允许确认接诊」「当前状态不允许拒绝接诊」「该预约已取消,无法操作」 | | 范围 | 「未绑定兽医资源,无法查询预约」 | | 成功 | 「确认接诊成功」「拒绝接诊成功」 | --- ## 10. 非功能建议 - 列表查询须带**当前兽医 ID** 条件,防止越权。 - 确认/拒绝写操作日志。 - 日期、时段展示格式与移动端、机构/专家模块保持一致。 - 界面支持 i18n;状态标签颜色可与原型一致(待确认/已确认/已拒绝/已取消/已完成)。 --- ## 11. 修订记录 | 版本 | 说明 | | --- | --- | | 2.0 | 依据兽医草稿与原型重写;补充与机构、专家关联分析;状态机与操作矩阵;明确本期不做评价;剔除技术栈与接口表述 |