行为
Feature #24
打开【家医端】随访任务详情页展示逻辑
描述
家医端任务按钮显示规则¶
本文档描述家庭医生端(/fuv/external/familyDoctor/task-manager-detail 及相关列表)各任务类型在不同状态下的操作按钮显示逻辑。
个案管理端规则见 task-manager-button-rules.md。
通用字段¶
| 字段 | 类型 | 说明 |
|---|---|---|
taskType |
TaskType |
任务类型枚举 |
taskOriginalStatus |
TaskStatus |
任务原始状态 |
assignDoctorIds |
List<String> |
已指派家庭医生 ID 列表 |
dwAnswerId |
String |
问卷回答 ID;有值表示已填写问卷 |
currentUserId |
String |
当前登录用户 ID(TokenHelper.getUserId()) |
状态对照¶
| 展示文案 | taskOriginalStatus |
|---|---|
| 未开始 | NOT_START |
| 待随访 | WAIT_FOLLOW_UP |
| 已超时 | TIMEOUT |
| 已随访 / 已提交 | SUBMITTED |
| 已随访(失访) | SUBMITTED_LOST |
| 已取消 | CANCELED |
1. 上门访视 VISIT_FOLLOW_UP
家医端核心可操作任务类型,按钮与指派关系、当前登录用户强相关。
进行中 / 失访(待完成)¶
条件:
-
taskOriginalStatus∈NOT_START|TIMEOUT|WAIT_FOLLOW_UP|SUBMITTED_LOST
| 附加条件 | 显示按钮 |
|---|---|
assignDoctorIds 不为空,且包含 currentUserId
|
已完成(失访)、去完成 |
| 其他(未指派、未包含当前用户等) | 不显示按钮 |
已提交¶
条件:
-
taskOriginalStatus=SUBMITTED
| 附加条件 | 显示按钮 |
|---|---|
dwAnswerId 不为空 |
查看问卷 |
dwAnswerId 为空 |
不显示按钮 |
已取消¶
条件:
-
taskOriginalStatus=CANCELED
显示按钮: 不显示
伪代码¶
if taskType == VISIT_FOLLOW_UP:
if status in [NOT_START, TIMEOUT, WAIT_FOLLOW_UP, SUBMITTED_LOST]:
if assignDoctorIds 包含 currentUserId:
→ ["已完成(失访)", "去完成"]
else:
→ 不显示
elif status == SUBMITTED:
if dwAnswerId 有值: → "查看问卷"
else: → 不显示
elif status == CANCELED:
→ 不显示
2. 电话随访 PHONE_CALL_FOLLOW_UP
家医端仅可查看已填写的问卷,不可执行随访操作。
进行中¶
条件:
-
taskOriginalStatus∈NOT_START|TIMEOUT|WAIT_FOLLOW_UP
显示按钮: 不显示
终态(已提交 / 失访 / 已取消)¶
条件:
-
taskOriginalStatus∈SUBMITTED|SUBMITTED_LOST|CANCELED
| 附加条件 | 显示按钮 |
|---|---|
dwAnswerId 不为空 |
查看问卷 |
dwAnswerId 为空 |
不显示按钮 |
伪代码¶
if taskType == PHONE_CALL_FOLLOW_UP:
if status in [NOT_START, TIMEOUT, WAIT_FOLLOW_UP]:
→ 不显示
elif status in [SUBMITTED, SUBMITTED_LOST, CANCELED]:
if dwAnswerId 有值: → "查看问卷"
else: → 不显示
3. 复诊提醒 RE_VISIT_REMINDER
条件: 任意 taskOriginalStatus
显示按钮: 不显示
if taskType == RE_VISIT_REMINDER:
→ 不显示
4. 上传检查单 UPLOAD_CHECK_LIST
家医端不可上传或提交,仅可在已提交且有问卷数据时查看。
进行中 / 已取消¶
条件:
-
taskOriginalStatus∈NOT_START|TIMEOUT|WAIT_FOLLOW_UP|CANCELED
显示按钮: 不显示
已提交¶
条件:
-
taskOriginalStatus=SUBMITTED
| 附加条件 | 显示按钮 |
|---|---|
dwAnswerId 不为空 |
去查看 |
dwAnswerId 为空 |
不显示按钮 |
伪代码¶
if taskType == UPLOAD_CHECK_LIST:
if status in [NOT_START, TIMEOUT, WAIT_FOLLOW_UP, CANCELED]:
→ 不显示
elif status == SUBMITTED:
if dwAnswerId 有值: → "去查看"
else: → 不显示
5. 营养干预 NUTRITION_INTERVENTION
条件: 任意 taskOriginalStatus
显示按钮: 不显示
if taskType == NUTRITION_INTERVENTION:
→ 不显示
汇总矩阵¶
taskType |
进行中状态 | 终态 | 关键判断字段 |
|---|---|---|---|
VISIT_FOLLOW_UP |
完成失访 + 去完成(指派给当前用户) | 查看问卷(SUBMITTED 且有问卷) |
assignDoctorIds、currentUserId、dwAnswerId
|
PHONE_CALL_FOLLOW_UP |
无按钮 | 查看问卷(有问卷时) | dwAnswerId |
RE_VISIT_REMINDER |
无按钮 | 无按钮 | — |
UPLOAD_CHECK_LIST |
无按钮 | 去查看(SUBMITTED 且有问卷) |
dwAnswerId |
NUTRITION_INTERVENTION |
无按钮 | 无按钮 | — |
与个案管理端差异对照¶
| 场景 | 家医端 | 个案管理端 |
|---|---|---|
| 上门访视进行中 | 指派给当前用户 → 完成失访 / 去完成 | 去指派 / 重新指派 |
上门访视 CANCELED
|
不显示 | 有问卷 → 查看问卷 |
电话随访 SUBMITTED_LOST
|
有问卷 → 查看问卷 | 不显示 |
| 复诊提醒 | 全程不显示 | 进行中可提交;失访/取消可再提交 |
上传检查单进行中 / CANCELED
|
不显示 | 去上传/去查看 + 提交 |
上传检查单 SUBMITTED
|
有问卷 → 去查看 | 去查看 |
后端关联¶
- 接口:
GET /fuv/external/familyDoctor/task-manager-detail - 详情响应:
TaskManagerDetailResp(completeFlag/completeLostFlag目前仅覆盖上门访视的「去完成 / 完成失访」,其余按钮规则需前端或扩展字段实现) - 角色权限:
TaskTypeRoleOperateRelateUtil中FAMILY_DOCTOR仅对VISIT_FOLLOW_UP开放操作权限
行为