复诊管理接口适配方案.md 6.3 KB

复诊管理接口适配方案

本文档旨在分析后端提供的复诊管理接口,并提出前端适配方案,以确保前后端协同工作。

后端接口分析

根据后端提供的接口设计,复诊管理功能包含以下接口:

  1. 创建复诊请求接口

    • URL: POST /follow-up/create
    • 应用场景: 患者创建复诊预约请求
    • 详细描述: 患者选择医生并指定预约时间,提交复诊申请,系统默认状态为"PENDING"(待确认)
  2. 更新复诊记录接口

    • URL: PUT /follow-up/{id}
    • 应用场景: 更新复诊记录(医生确认、取消或患者修改)
    • 详细描述:
      • 医生可以确认、取消或完成复诊
      • 患者可以修改自己待确认的复诊请求
      • 当状态更新为"COMPLETED"时,系统会自动记录实际就诊时间
  3. 分页查询复诊记录接口

    • URL: POST /follow-up/list
    • 应用场景: 根据时间范围和分页参数查询复诊记录
    • 详细描述:
      • 患者查看自己的复诊记录
      • 医生查看分配给自己的复诊记录
      • 系统管理员查看所有复诊记录
  4. 医生分页查询患者复诊记录接口

    • URL: POST /follow-up/list-by-patient
    • 应用场景: 医生查询特定患者的复诊记录(需有绑定关系或权限)
    • 详细描述:
      • 医生查看患者的复诊历史
      • 系统管理员查看任何患者的复诊记录
  5. 删除复诊记录接口

    • URL: DELETE /follow-up/{id}
    • 应用场景: 根据ID删除复诊记录
    • 详细描述:
      • 患者删除自己待确认的复诊请求
      • 仅允许患者本人删除自己的复诊记录

前端适配方案

1. API模块设计

需要创建一个新的API模块 src/api/followUp.ts 来封装所有复诊相关接口调用。

接口映射关系:

原设计接口 新接口 方法名
POST /followup/invite POST /follow-up/create createFollowUp
POST /followup/accept PUT /follow-up/{id} updateFollowUp
POST /followup/decline PUT /follow-up/{id} updateFollowUp
GET /followup/list POST /follow-up/list getFollowUpList
GET /appointment/list POST /follow-up/list getFollowUpList
POST /appointment/create POST /follow-up/create createFollowUp

2. 数据模型定义

需要定义相应的数据模型来匹配接口数据格式:

// 复诊记录实体
interface FollowUp {
  id: number;
  patientUserId: number;
  doctorUserId: number;
  scheduledTime: string; // 预约时间
  actualTime?: string;   // 实际就诊时间
  status: 'PENDING' | 'CONFIRMED' | 'CANCELLED' | 'COMPLETED'; // 状态
  remark?: string;       // 备注
  createdAt: string;     // 创建时间
  updatedAt: string;     // 更新时间
}

// 分页查询参数
interface FollowUpQueryParams {
  patientUserId?: number;
  doctorUserId?: number;
  status?: 'PENDING' | 'CONFIRMED' | 'CANCELLED' | 'COMPLETED';
  startTime?: string;
  endTime?: string;
  current?: number;
  size?: number;
}

// 创建复诊请求参数
interface CreateFollowUpRequest {
  doctorUserId: number;
  scheduledTime: string;
  remark?: string;
}

// 更新复诊请求参数
interface UpdateFollowUpRequest {
  status: 'PENDING' | 'CONFIRMED' | 'CANCELLED' | 'COMPLETED';
  scheduledTime?: string;
  actualTime?: string;
  remark?: string;
}

3. 页面功能调整

医生端功能调整

  1. 医生首页(todayReminders.followUpCount)

    • 继续使用现有接口获取待处理复诊数量
    • 需要确认是否仍使用 GET https://wx.baiyun.work/doctor/today_reminders
  2. 我的病人(inviteRevisit)

    • 将原来的占位功能改为实际调用新接口
    • 使用 createFollowUp 方法创建复诊请求
    • 弹窗需要包含时间选择器和备注输入框
  3. 复诊管理列表(/pages/doctor/manage/followup)

    • 使用 getFollowUpList 获取复诊记录列表
    • 支持按状态筛选(PENDING, CONFIRMED, COMPLETED, CANCELLED)
    • 支持查看详情和操作(确认、取消、完成)

患者端功能调整

  1. 我的医生(makeAppointment)

    • 将原来的占位功能改为实际调用新接口
    • 使用 createFollowUp 方法创建复诊请求
    • 弹窗需要包含医生选择、时间选择器和备注输入框
  2. 患者复诊记录列表

    • 使用 getFollowUpList 获取自己的复诊记录
    • 支持查看详情和修改待确认的复诊请求
    • 支持删除自己待确认的复诊请求

家属端功能调整

  1. 我的家人(inviteRevisit)
    • 与医生端类似,改为实际调用新接口
    • 使用 createFollowUp 方法创建复诊请求

4. 状态管理和权限控制

  1. 状态转换规则

    • PENDING -> CONFIRMED (医生确认)
    • PENDING -> CANCELLED (医生或患者取消)
    • CONFIRMED -> COMPLETED (医生标记完成,并记录实际就诊时间)
    • CONFIRMED -> CANCELLED (医生或患者取消)
  2. 权限控制

    • 患者只能操作自己的复诊记录
    • 医生只能操作分配给自己的复诊记录
    • 只有患者能删除自己待确认的复诊请求
    • 状态更新需要符合状态转换规则

5. 异常处理和用户体验优化

  1. 异常值提醒增强

    • 在健康数据异常提醒中增加"立即预约"按钮
    • 点击后跳转到预约页面或弹出预约表单
  2. 实时更新机制

    • 复诊状态变更后,及时更新相关页面和提醒数量
    • 考虑使用WebSocket或轮询机制实现实时更新

待办事项清单

  • 创建 src/api/followUp.ts API模块
  • 定义相关数据模型和接口类型
  • 修改医生端"邀请复诊"功能,替换为实际接口调用
  • 修改患者端"预约复诊"功能,替换为实际接口调用
  • 修改家属端"邀请复诊"功能,替换为实际接口调用
  • 创建医生复诊管理列表页面 (/pages/doctor/manage/followup)
  • 创建患者复诊记录列表页面
  • 实现复诊详情查看和状态更新功能
  • 增强异常值提醒中的预约功能
  • 添加适当的加载状态和错误处理

总结

新的后端接口设计更加规范化和完整化,提供了完整的复诊生命周期管理。前端需要相应地调整接口调用方式和业务逻辑实现,同时保持良好的用户体验。重点关注状态管理和权限控制,确保数据安全和操作合规性。