11 KiB
11 KiB
心理健康系统-心理咨询预约功能需求说明(xljk_consultation)
1. 项目定位
- 一级模块:心理健康系统(Mental Health System)
- 二级功能:心理咨询预约(Consultation Appointment)
- 功能标识前缀:xljk_consultation
- 其他二级功能举例:心理健康测评(xljk_evaluation)、心理危机干预等
2. 主要功能
2.1 预约时段管理(心理健康管理员)
- 设置咨询师工作日历(可选上午/下午、时间段、最大预约数、状态)
- 支持批量配置、复制、日历/表格视图
2.2 预约申请与处理
- 学生自主预约
- 咨询师处理预约(确认/拒绝/记录到访情况/填写咨询内容)
- 预约三次不到自动限制
2.3 咨询记录管理
- 咨询师填写沟通时长、内容
- 历史记录可查
2.4 统计与报表
- 按学期统计预约数、到访数、到访率、沟通时长
- 支持班级、专业等维度
2.5 角色权限
- 管理员:配置时段、管理咨询师、查阅统计
- 咨询师:处理预约、填写记录、查阅统计
- 班主任:查阅本班学生预约情况
- 学生:自主预约、查阅个人记录
3. 数据结构设计(表名全部以xljk_consultation_为前缀)
3.1 咨询师表(xljk_consultation_counselor)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| name | varchar(50) | 咨询师姓名 |
| work_no | varchar(20) | 工号 |
| title | varchar(50) | 职称 |
| specialty | varchar(255) | 专长领域 |
| introduction | text | 简介 |
| status | char(1) | 状态(0正常 1停用) |
3.2 预约时段表(xljk_consultation_schedule)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| counselor_id | bigint(20) | 咨询师ID |
| schedule_date | date | 日期 |
| morning_enabled | tinyint(1) | 上午启用 |
| morning_start_time | time | 上午开始 |
| morning_end_time | time | 上午结束 |
| afternoon_enabled | tinyint(1) | 下午启用 |
| afternoon_start_time | time | 下午开始 |
| afternoon_end_time | time | 下午结束 |
| max_appointments | int | 最大预约数 |
| current_appointments | int | 当前预约数 |
| status | char(1) | 0可预约 1已满 2停用 |
3.3 预约记录表(xljk_consultation_appointment)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| student_id | bigint(20) | 学生ID |
| student_name | varchar(50) | 学生姓名 |
| student_no | varchar(20) | 学号 |
| phone | varchar(20) | 手机号 |
| major | varchar(100) | 专业 |
| class_name | varchar(50) | 班级 |
| counselor_id | bigint(20) | 咨询师ID |
| schedule_id | bigint(20) | 预约时段ID |
| appointment_date | date | 预约日期 |
| time_slot | char(1) | 0上午 1下午 |
| status | char(1) | 0待处理 1已确认 2已完成 3已取消 4未到访 |
| apply_time | datetime | 申请时间 |
| process_time | datetime | 处理时间 |
| process_remark | varchar(500) | 处理备注 |
3.4 咨询记录表(xljk_consultation_record)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| appointment_id | bigint(20) | 预约记录ID |
| visit_status | char(1) | 0正常到访 1未到访 |
| duration | int | 沟通时长(分钟) |
| content | text | 咨询内容 |
3.5 未到访记录表(xljk_consultation_no_show)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint(20) NOT NULL | 主键ID |
| tenant_id | varchar(20) NOT NULL DEFAULT '000000' | 租户编号 |
| create_dept | bigint(20) DEFAULT NULL | 创建部门 |
| create_by | bigint(20) DEFAULT NULL | 创建者 |
| create_time | datetime DEFAULT NULL | 创建时间 |
| update_by | bigint(20) DEFAULT NULL | 更新者 |
| update_time | datetime DEFAULT NULL | 更新时间 |
| deleted | tinyint(1) DEFAULT 0 | 删除标志(0代表存在 1代表删除) |
| student_id | bigint(20) | 学生ID |
| appointment_id | bigint(20) | 预约记录ID |
| no_show_date | date | 未到访日期 |
| expire_date | date | 限制到期日 |
| status | char(1) | 0生效中 1已过期 2已解除 |
4. API设计(全部以/xljk/consultation为前缀)
4.1 预约时段管理
- GET
/api/xljk/consultation/schedule/list - GET
/api/xljk/consultation/schedule/{id} - POST
/api/xljk/consultation/schedule - PUT
/api/xljk/consultation/schedule - DELETE
/api/xljk/consultation/schedule/{ids} - POST
/api/xljk/consultation/schedule/batch - POST
/api/xljk/consultation/schedule/copy - GET
/api/xljk/consultation/schedule/calendar
4.2 预约管理
- GET
/api/xljk/consultation/appointment/list - GET
/api/xljk/consultation/appointment/{id} - POST
/api/xljk/consultation/appointment/apply - POST
/api/xljk/consultation/appointment/process - POST
/api/xljk/consultation/appointment/record - GET
/api/xljk/consultation/appointment/record/{appointmentId} - POST
/api/xljk/consultation/appointment/cancel - GET
/api/xljk/consultation/appointment/student
4.3 咨询师管理
- GET
/api/xljk/consultation/counselor/list - GET
/api/xljk/consultation/counselor/{id} - POST
/api/xljk/consultation/counselor - PUT
/api/xljk/consultation/counselor - DELETE
/api/xljk/consultation/counselor/{ids}
4.4 统计与报表
- GET
/api/xljk/consultation/statistics/overview - GET
/api/xljk/consultation/statistics/by-class - GET
/api/xljk/consultation/statistics/by-major - GET
/api/xljk/consultation/statistics/by-semester
4.5 预约限制管理
- GET
/api/xljk/consultation/no-show/list# 查询未到访记录列表 - GET
/api/xljk/consultation/no-show/{id}# 获取未到访记录详情 - PUT
/api/xljk/consultation/no-show/{id}/release# 解除预约限制 - GET
/api/xljk/consultation/no-show/check-limitation# 检查学生是否被限制预约
5. 权限标识建议
xljk:consultation:schedule:listxljk:consultation:appointment:applyxljk:consultation:appointment:processxljk:consultation:appointment:recordxljk:consultation:counselor:listxljk:consultation:statistics:viewxljk:consultation:noshow:list# 查看未到访记录列表xljk:consultation:noshow:query# 查看未到访记录详情xljk:consultation:noshow:release# 解除预约限制
6. 业务流程
6.1 预约流程
- 管理员设置预约时段
- 学生发起预约申请
- 咨询师处理预约申请(确认/拒绝)
- 系统通知学生预约结果
6.2 咨询流程
- 学生按预约时间到访
- 咨询师进行咨询
- 咨询师记录咨询情况(到访情况、沟通时长、咨询内容)
- 系统更新预约状态为"已完成"
6.3 未到访处理流程
- 学生未按预约时间到访
- 咨询师记录为"未到访"
- 系统在
xljk_consultation_no_show表中创建未到访记录 - 系统检查30天内学生未到访次数
- 如达到三次未到访,系统自动限制7天内不能预约(从最后一次未到访日期算起,不含当天)
- 限制期间学生尝试预约时,系统提示预约受限及解除日期
6.4 预约限制解除流程
-
自动解除:
- 系统定期检查限制记录
- 限制期满7天后,自动将状态更新为"已过期(1)"
- 状态更新后,学生可以正常预约
-
手动解除:
- 心理健康管理员可通过"预约限制解除"菜单查看限制记录
- 管理员可手动解除限制,将状态更改为"已解除(2)"
- 手动解除后,学生立即可以正常预约
-
限制状态说明:
- "生效中(0)":限制当前有效,学生无法预约
- "已过期(1)":限制已自动到期,学生可以预约
- "已解除(2)":限制被管理员手动解除,学生可以预约
7. 其他说明
- 咨询内容属于高度敏感信息,需要特别注意保密
- 预约规则可能需要根据实际情况进行调整
- 当前仅支持一位咨询师,后续可扩展多咨询师
- 所有表均包含基础字段(创建者、创建时间、更新者、更新时间、逻辑删除、租户ID)
- 预约限制功能中,30天内累计三次未到访的计算以
no_show_date字段为准 - 预约限制到期日计算公式:
expire_date = no_show_date + 7天(不包含未到访当天) - 预约限制解除页面仅显示有限制的记录(即
status有值的记录)