This commit is contained in:
Your Name
2026-03-27 18:06:12 +08:00
parent 9160c36735
commit 099bc1dd22
645 changed files with 276473 additions and 957 deletions
+121
View File
@@ -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. 添加更多维度的统计(按科室、按时段等)