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