330 lines
7.4 KiB
Markdown
330 lines
7.4 KiB
Markdown
# 医生预约系统安装检查清单
|
|
|
|
## ✅ 文件创建检查
|
|
|
|
### 后端文件
|
|
- [x] `server/app/common/model/doctor/Appointment.php` (1,893 bytes)
|
|
- [x] `server/app/adminapi/controller/doctor/AppointmentController.php` (2,588 bytes)
|
|
- [x] `server/app/adminapi/logic/doctor/AppointmentLogic.php` (8,624 bytes)
|
|
- [x] `server/app/adminapi/validate/doctor/AppointmentValidate.php` (1,922 bytes)
|
|
- [x] `server/app/adminapi/lists/doctor/AppointmentLists.php` (1,163 bytes)
|
|
- [x] `server/sql/doctor_appointment.sql` (1,310 bytes)
|
|
|
|
### 前端文件
|
|
- [x] `admin/src/api/doctor.ts` (已更新)
|
|
- [x] `admin/src/views/tcm/diagnosis/appointment.vue` (新建)
|
|
- [x] `admin/src/views/tcm/diagnosis/index.vue` (已更新)
|
|
|
|
### 文档文件
|
|
- [x] `server/APPOINTMENT_BACKEND_SETUP.md`
|
|
- [x] `admin/APPOINTMENT_SYSTEM.md`
|
|
- [x] `admin/APPOINTMENT_UI_UPDATE.md`
|
|
- [x] `admin/APPOINTMENT_IMPLEMENTATION_SUMMARY.md`
|
|
- [x] `APPOINTMENT_QUICK_START.md`
|
|
- [x] `APPOINTMENT_COMPLETE.md`
|
|
- [x] `INSTALLATION_CHECKLIST.md` (本文件)
|
|
|
|
### 安装脚本
|
|
- [x] `install_appointment_system.bat` (Windows)
|
|
- [x] `install_appointment_system.sh` (Linux/Mac)
|
|
- [x] `server/test_appointment_api.php` (API测试脚本)
|
|
|
|
## 📋 安装步骤
|
|
|
|
### 步骤 1: 创建数据库表 ⏳
|
|
|
|
```bash
|
|
# Windows (CMD)
|
|
mysql -u username -p database < server\sql\doctor_appointment.sql
|
|
|
|
# Linux/Mac
|
|
mysql -u username -p database < server/sql/doctor_appointment.sql
|
|
|
|
# 或使用phpMyAdmin导入 server/sql/doctor_appointment.sql
|
|
```
|
|
|
|
**验证:**
|
|
```sql
|
|
SHOW TABLES LIKE 'la_doctor_appointment';
|
|
DESC la_doctor_appointment;
|
|
```
|
|
|
|
### 步骤 2: 清除缓存 ⏳
|
|
|
|
```bash
|
|
cd server
|
|
php think clear
|
|
```
|
|
|
|
**验证:**
|
|
```bash
|
|
# 应该看到缓存清除成功的消息
|
|
```
|
|
|
|
### 步骤 3: 测试API接口 ⏳
|
|
|
|
```bash
|
|
# 方法1: 使用测试脚本
|
|
cd server
|
|
php test_appointment_api.php
|
|
|
|
# 方法2: 使用curl
|
|
curl "http://localhost/adminapi/doctor.appointment/availableSlots?doctor_id=1&appointment_date=2026-03-04&period=morning"
|
|
```
|
|
|
|
**预期结果:**
|
|
```json
|
|
{
|
|
"code": 1,
|
|
"msg": "success",
|
|
"data": {
|
|
"slots": [...]
|
|
}
|
|
}
|
|
```
|
|
|
|
### 步骤 4: 创建测试数据 ⏳
|
|
|
|
```sql
|
|
-- 创建医生排班
|
|
INSERT INTO `la_doctor_roster`
|
|
(`doctor_id`, `date`, `period`, `status`, `quota`, `max_patients`, `create_time`, `update_time`)
|
|
VALUES
|
|
(1, '2026-03-04', 'morning', 1, 10, 15, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
(1, '2026-03-04', 'afternoon', 1, 10, 15, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
|
|
```
|
|
|
|
**验证:**
|
|
```sql
|
|
SELECT * FROM la_doctor_roster WHERE doctor_id = 1 AND date = '2026-03-04';
|
|
```
|
|
|
|
### 步骤 5: 配置权限 ⏳
|
|
|
|
在后台权限管理中添加以下权限节点:
|
|
|
|
```
|
|
doctor.appointment/availableSlots
|
|
doctor.appointment/create
|
|
doctor.appointment/cancel
|
|
doctor.appointment/lists
|
|
doctor.appointment/detail
|
|
doctor.appointment/doctorAvailability
|
|
```
|
|
|
|
### 步骤 6: 测试前端功能 ⏳
|
|
|
|
1. 登录后台管理系统
|
|
2. 进入"中医诊断"页面
|
|
3. 点击任意患者的"挂号"按钮
|
|
4. 验证以下功能:
|
|
- [ ] 医生列表正确显示
|
|
- [ ] 日期选择器显示未来7天
|
|
- [ ] 时间段根据医生和日期加载
|
|
- [ ] 可以选择时间段
|
|
- [ ] 可以提交预约
|
|
- [ ] 预约成功后有提示
|
|
|
|
## 🔍 验证检查
|
|
|
|
### 数据库检查
|
|
|
|
```sql
|
|
-- 检查表是否存在
|
|
SHOW TABLES LIKE 'la_doctor_appointment';
|
|
|
|
-- 检查表结构
|
|
DESC la_doctor_appointment;
|
|
|
|
-- 检查索引
|
|
SHOW INDEX FROM la_doctor_appointment;
|
|
|
|
-- 检查排班数据
|
|
SELECT COUNT(*) FROM la_doctor_roster WHERE status = 1;
|
|
```
|
|
|
|
### 文件检查
|
|
|
|
```bash
|
|
# Windows
|
|
dir server\app\adminapi\controller\doctor\AppointmentController.php
|
|
dir server\app\adminapi\logic\doctor\AppointmentLogic.php
|
|
dir server\app\adminapi\validate\doctor\AppointmentValidate.php
|
|
dir server\app\adminapi\lists\doctor\AppointmentLists.php
|
|
dir server\app\common\model\doctor\Appointment.php
|
|
|
|
# Linux/Mac
|
|
ls -la server/app/adminapi/controller/doctor/AppointmentController.php
|
|
ls -la server/app/adminapi/logic/doctor/AppointmentLogic.php
|
|
ls -la server/app/adminapi/validate/doctor/AppointmentValidate.php
|
|
ls -la server/app/adminapi/lists/doctor/AppointmentLists.php
|
|
ls -la server/app/common/model/doctor/Appointment.php
|
|
```
|
|
|
|
### API检查
|
|
|
|
```bash
|
|
# 测试获取可用时间段
|
|
curl -X GET "http://localhost/adminapi/doctor.appointment/availableSlots?doctor_id=1&appointment_date=2026-03-04&period=morning"
|
|
|
|
# 测试创建预约
|
|
curl -X POST "http://localhost/adminapi/doctor.appointment/create" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"patient_id": 1,
|
|
"doctor_id": 1,
|
|
"appointment_date": "2026-03-04",
|
|
"period": "morning",
|
|
"appointment_time": "09:00",
|
|
"appointment_type": "video"
|
|
}'
|
|
```
|
|
|
|
## ⚠️ 常见问题
|
|
|
|
### 问题 1: 控制器不存在
|
|
|
|
**症状:**
|
|
```
|
|
控制器不存在: app\adminapi\controller\doctor\AppointmentController
|
|
```
|
|
|
|
**解决方案:**
|
|
```bash
|
|
cd server
|
|
php think clear
|
|
```
|
|
|
|
### 问题 2: 数据库表不存在
|
|
|
|
**症状:**
|
|
```
|
|
Table 'database.la_doctor_appointment' doesn't exist
|
|
```
|
|
|
|
**解决方案:**
|
|
```bash
|
|
mysql -u username -p database < server/sql/doctor_appointment.sql
|
|
```
|
|
|
|
### 问题 3: 没有可用时间段
|
|
|
|
**症状:**
|
|
API返回空的slots数组
|
|
|
|
**解决方案:**
|
|
1. 检查医生排班是否存在
|
|
2. 检查排班状态是否为1(出诊)
|
|
3. 检查日期和时段是否匹配
|
|
|
|
```sql
|
|
SELECT * FROM la_doctor_roster
|
|
WHERE doctor_id = 1
|
|
AND date = '2026-03-04'
|
|
AND period = 'morning';
|
|
```
|
|
|
|
### 问题 4: 预约失败
|
|
|
|
**症状:**
|
|
创建预约时返回错误
|
|
|
|
**可能原因:**
|
|
1. 时间段已被占用
|
|
2. 号源已满
|
|
3. 医生未排班
|
|
4. 排班状态不是出诊
|
|
|
|
**检查方法:**
|
|
```sql
|
|
-- 检查已有预约
|
|
SELECT * FROM la_doctor_appointment
|
|
WHERE doctor_id = 1
|
|
AND appointment_date = '2026-03-04'
|
|
AND status = 1;
|
|
|
|
-- 检查排班信息
|
|
SELECT * FROM la_doctor_roster
|
|
WHERE doctor_id = 1
|
|
AND date = '2026-03-04';
|
|
```
|
|
|
|
## 📊 性能检查
|
|
|
|
### 数据库索引
|
|
|
|
```sql
|
|
-- 检查索引是否正确创建
|
|
SHOW INDEX FROM la_doctor_appointment;
|
|
|
|
-- 应该看到以下索引:
|
|
-- PRIMARY (id)
|
|
-- unique_appointment (doctor_id, appointment_date, appointment_time, status)
|
|
-- idx_patient (patient_id)
|
|
-- idx_doctor_date (doctor_id, appointment_date)
|
|
-- idx_roster (roster_id)
|
|
```
|
|
|
|
### 查询性能
|
|
|
|
```sql
|
|
-- 测试查询性能
|
|
EXPLAIN SELECT * FROM la_doctor_appointment
|
|
WHERE doctor_id = 1
|
|
AND appointment_date = '2026-03-04'
|
|
AND status = 1;
|
|
|
|
-- 应该使用 idx_doctor_date 索引
|
|
```
|
|
|
|
## 🎯 最终检查
|
|
|
|
完成以下所有项目后,系统即可投入使用:
|
|
|
|
- [ ] 数据库表创建成功
|
|
- [ ] 后端缓存已清除
|
|
- [ ] API接口测试通过
|
|
- [ ] 测试数据已创建
|
|
- [ ] 权限节点已配置
|
|
- [ ] 前端功能测试通过
|
|
- [ ] 文档已阅读
|
|
- [ ] 用户已培训
|
|
|
|
## 📞 技术支持
|
|
|
|
如遇到问题:
|
|
|
|
1. **查看日志**
|
|
- 后端日志: `server/runtime/log/`
|
|
- 浏览器控制台
|
|
|
|
2. **检查配置**
|
|
- 数据库连接: `server/config/database.php`
|
|
- 应用配置: `server/config/app.php`
|
|
|
|
3. **查看文档**
|
|
- `APPOINTMENT_QUICK_START.md` - 快速开始
|
|
- `server/APPOINTMENT_BACKEND_SETUP.md` - 后端详细说明
|
|
- `admin/APPOINTMENT_SYSTEM.md` - 系统设计
|
|
|
|
4. **测试工具**
|
|
- `server/test_appointment_api.php` - API测试脚本
|
|
- Postman/curl - 手动测试
|
|
|
|
## ✅ 完成标志
|
|
|
|
当你看到以下结果时,说明安装成功:
|
|
|
|
1. ✅ API返回正确的时间段数据
|
|
2. ✅ 可以成功创建预约
|
|
3. ✅ 前端界面正常显示
|
|
4. ✅ 可以完成完整的预约流程
|
|
|
|
---
|
|
|
|
**版本**: 1.0.0
|
|
**创建时间**: 2024-02-26
|
|
**最后更新**: 2024-02-26
|
|
|
|
祝你使用愉快!🎉
|