更新
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
# 医生数据统计功能说明
|
||||
|
||||
## 功能概述
|
||||
|
||||
医生数据统计功能用于统计每个医生在不同时间范围内的诊单数据,包括:
|
||||
- 已挂号数量(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. 添加更多维度的统计(按科室、按时段等)
|
||||
Reference in New Issue
Block a user