Files
zyt/DOCTOR_STATISTICS_GUIDE.md
T
2026-03-27 18:06:12 +08:00

3.6 KiB
Raw Blame History

医生数据统计功能说明

功能概述

医生数据统计功能用于统计每个医生在不同时间范围内的诊单数据,包括:

  • 已挂号数量(status=1
  • 已完成数量(status=3
  • 已过号数量(status=4
  • 已取消数量(status=2
  • 完成率计算

文件清单

前端文件

  1. admin/src/views/doctor/tongji.vue - 统计页面
  2. admin/src/api/doctor.ts - API接口(已更新)

后端文件

  1. server/app/adminapi/controller/doctor/StatisticsController.php - 统计控制器
  2. server/app/adminapi/lists/doctor/StatisticsLists.php - 统计数据列表逻辑

功能特性

1. 时间范围筛选

  • 今天:查看当天的统计数据
  • 最近7天:查看最近一周的统计数据
  • 最近30天:查看最近一个月的统计数据
  • 自定义:选择任意日期范围进行查询

2. 医生筛选

  • 可以选择特定医生查看其统计数据
  • 也可以不选择医生,查看所有医生的统计数据

3. 统计指标

  • 总诊单数:该时间范围内的所有诊单
  • 已挂号:状态为"已预约"的诊单数量
  • 已完成:状态为"已完成"的诊单数量
  • 已过号:状态为"已过号"的诊单数量
  • 已取消:状态为"已取消"的诊单数量
  • 完成率:已完成数量 / 总诊单数 × 100%

4. 完成率颜色标识

  • 绿色:完成率 ≥ 80%
  • 蓝色:完成率 ≥ 60%
  • 橙色:完成率 ≥ 40%
  • 红色:完成率 < 40%

使用方法

  1. 访问医生统计页面(路由:/doctor/tongji
  2. 选择时间范围(今天/最近7天/最近30天/自定义)
  3. 可选:选择特定医生
  4. 点击"查询"按钮获取统计数据
  5. 查看统计表格中的各项数据

API接口

获取医生诊单统计

  • 接口地址GET /doctor.statistics/lists

  • 请求参数

    • doctor_id(可选):医生ID
    • time_type(必填):时间类型(today/week/month/custom
    • start_date(可选):开始日期(time_type=custom时必填)
    • end_date(可选):结束日期(time_type=custom时必填)
  • 返回数据

{
    "code": 1,
    "msg": "success",
    "data": {
        "lists": [
            {
                "doctor_id": 1,
                "doctor_name": "张医生",
                "total_count": 100,
                "registered_count": 20,
                "completed_count": 60,
                "missed_count": 10,
                "cancelled_count": 10,
                "completion_rate": 60.00,
                "time_range": "今天 (2024-01-01)"
            }
        ]
    }
}

数据库依赖

该功能依赖以下数据表:

  • la_doctor_appointment:医生预约表
  • la_admin:管理员表(医生信息)
  • la_admin_role:管理员角色关联表(用于识别医生角色)

医生角色识别

系统通过 la_admin_role 表来识别医生角色:

  • 查询 la_admin_role 表中 role_id=1 的记录
  • 获取对应的 admin_id 列表
  • 这些 admin_id 对应的管理员即为医生

预约状态说明

  • 1:已预约(已挂号)
  • 2:已取消
  • 3:已完成
  • 4:已过号

注意事项

  1. 统计数据基于 appointment_date 字段进行时间范围筛选
  2. 只统计 role_id=1 的管理员(医生角色)
  3. 只统计未删除且未禁用的医生
  4. 完成率保留两位小数

后续优化建议

  1. 添加数据导出功能(Excel
  2. 添加图表展示(柱状图、折线图)
  3. 添加同比、环比分析
  4. 添加医生排名功能
  5. 添加更多维度的统计(按科室、按时段等)