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

122 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 医生数据统计功能说明
## 功能概述
医生数据统计功能用于统计每个医生在不同时间范围内的诊单数据,包括:
- 已挂号数量(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时必填)
- **返回数据**
```json
{
"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. 添加更多维度的统计(按科室、按时段等)