56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
# frontend/nurse-app Specification
|
||
|
||
## Purpose
|
||
定义护理员 APP(Flutter)的交互与行为——登录、今日任务、服务执行、拍照分档、异常上报、扑空、离线补传。
|
||
|
||
## Requirements
|
||
|
||
### Requirement: 登录
|
||
APP MUST 支持租户 code + 账号 + 密码登录,token 持久化,后续请求带 token。
|
||
|
||
#### Scenario: 登录
|
||
- **WHEN** 护理员输入租户/账号/密码登录
|
||
- **THEN** 进入今日任务页,token 落本地
|
||
|
||
### Requirement: 今日任务(M1)
|
||
APP MUST 展示本人今日工单(老人/时段/项目/状态),点卡片进入服务执行。
|
||
|
||
#### Scenario: 看今日任务
|
||
- **WHEN** 护理员打开 APP
|
||
- **THEN** 首屏即今日工单卡片
|
||
|
||
### Requirement: 服务执行(M2)
|
||
APP MUST 支持签到(自动定位+时间)→ 勾项目(默认全勾,exec_result 三态)→ 拍照 → 签退(自动算时长)。签到/签退时间不传客户端值(服务器取时)。
|
||
|
||
#### Scenario: 签到签退
|
||
- **WHEN** 护理员点签到再点签退
|
||
- **THEN** 自动记录时间/定位/时长,后端生成留痕
|
||
|
||
### Requirement: 拍照分档
|
||
APP MUST 支持必拍/免拍/可拍三档;必拍项强制拍照 + 压疮结构化标签;必拍未拍签退按钮不可点;提供「无法拍摄」拒拍出路(选原因放行)。
|
||
|
||
#### Scenario: 必拍强制
|
||
- **WHEN** 必拍项未拍照
|
||
- **THEN** 签退按钮不可点,提示「这项需要拍一张照片」
|
||
|
||
### Requirement: 异常上报
|
||
APP MUST 支持异常上报(9 宫格分类必选,描述/语音/照片可选)。
|
||
|
||
#### Scenario: 分类必选
|
||
- **WHEN** 护理员上报异常只选分类
|
||
- **THEN** 允许提交
|
||
|
||
### Requirement: 扑空(未遇)
|
||
APP MUST 支持扑空专门形态:到访时间(自动)/定位(自动)/原因(必选),工单转 not_met。
|
||
|
||
#### Scenario: 扑空留证据
|
||
- **WHEN** 护理员登记未遇
|
||
- **THEN** 到访时间+定位+原因必留,工单转 not_met
|
||
|
||
### Requirement: 离线队列
|
||
APP MUST 支持离线签到/签退/勾项目/照片/异常(本地队列 + client_md5),恢复联网后自动补传(幂等去重)。
|
||
|
||
#### Scenario: 离线补传
|
||
- **WHEN** 断网时签到,恢复联网
|
||
- **THEN** 自动补传且不重复(client_md5 去重)
|