434 lines
17 KiB
Markdown
434 lines
17 KiB
Markdown
## 报卡管理界面PRD文档
|
||
|
||
### 一、页面概述
|
||
|
||
**页面名称**:报卡管理界面
|
||
**页面目标**:提供传染病报卡的审核、管理、筛选及批量操作功能,帮助疾控人员高效完成报卡审核工作
|
||
**适用场景**:疾控中心工作人员日常审核医疗机构上报的传染病病例
|
||
|
||
- 医院CDC管理员日常审核传染病报卡
|
||
- 批量处理待审核/退回的报卡
|
||
- 按条件筛选统计报卡数据
|
||
**页面类型**:数据管理列表页(含详情抽屉)
|
||
|
||
**核心功能**:
|
||
|
||
1. 报卡数据概览统计(今日待审/本月失败/本月成功/本月上报)
|
||
2. 多维度筛选报卡数据(时间/状态/科室/来源等)
|
||
3. 报卡列表展示与批量操作(审核/退回/导出)
|
||
4. 报卡详情查看与单条审核
|
||
5. 审核记录追溯与意见填写
|
||
|
||
**用户价值**:
|
||
|
||
- 疾控人员可快速处理待审报卡
|
||
- 支持批量审核提升工作效率
|
||
- 完整记录审核过程便于追溯
|
||
- 多维度筛选快速定位目标报卡
|
||
**原型图地址**:https://static.pm-ai.cn/prototype/20260206/cc9991b716df0303fa3459042e33a1ea/index.html
|
||
**流程图**:
|
||
```mermaid
|
||
flowchart TD
|
||
A["进入报卡管理界面"] --> B["查看报卡概览统计"]
|
||
B --> C["点击统计卡片"]
|
||
C --> D["悬停统计卡片"]
|
||
D --> E["自动设置筛选项"]
|
||
B --> F["鼠标悬停"]
|
||
F --> G["筛选报卡数据"]
|
||
G --> H["卡片上浮+阴影"]
|
||
E --> I["设置筛选条件"]
|
||
I --> K["点击重置按钮"]
|
||
K --> J["清空条件"]
|
||
I --> L["点击查询按钮"]
|
||
L --> M["触发筛选"]
|
||
M --> N["操作报卡列表"]
|
||
N --> O["勾选报卡"]
|
||
N --> P["处理单条报卡"]
|
||
O --> Q["批量操作报卡"]
|
||
P --> R["点击单条审核"]
|
||
P --> S["点击单条查看"]
|
||
Q --> T["点击批量审核"]
|
||
Q --> U["点击批量退回"]
|
||
R --> V{"报卡状态"}
|
||
S --> W{"报卡状态"}
|
||
V -- 已审核 --> X["打开查看抽屉"]
|
||
V -- 待审核/失败 --> Y["校验选择状态"]
|
||
W -- 任意 --> X
|
||
T --> Z["校验选择状态"]
|
||
U --> AA["校验选择状态"]
|
||
Y -- 选择有效 --> AB["打开审核抽屉"]
|
||
AB-->AN["展示审核记录"]
|
||
AB-->AO["展示审核记录"]
|
||
Y -- 未选择 --> AC["提示请选择报卡"]
|
||
Z -- 选择有效 --> AD{"包含已审核项"}
|
||
Z -- 未选择 --> AE["提示请选择报卡"]
|
||
AD -- 是 --> AF["提示只能选择待审核报卡"]
|
||
AD -- 否 --> AG["弹出审核弹窗"]
|
||
AA -- 选择有效 --> AH{"包含已审核项"}
|
||
AA -- 未选择 --> AI["提示请选择报卡"]
|
||
AH -- 是 --> AF
|
||
AH -- 否 --> AJ["弹出退回弹窗"]
|
||
AG --> AK["加载报卡详情"]
|
||
AJ --> AL["加载报卡详情"]
|
||
AK -- 加载失败 --> AM["提示数据加载失败"]
|
||
AL -- 加载失败 --> AM
|
||
AK -- 成功 --> AN["展示审核记录"]
|
||
AL -- 成功 --> AO["展示审核记录"]
|
||
AN --> AP["填写审核意见"]
|
||
AO --> AQ["填写退回原因"]
|
||
AP --> AR{"意见是否为空"}
|
||
AQ --> AS{"原因是否为空"}
|
||
AR -- 是 --> AT["红字提示必填"]
|
||
AS -- 是 --> AU["红字提示必填"]
|
||
AR -- 否 --> AV["点击确认审核"]
|
||
AS -- 否 --> AW["点击确认退回"]
|
||
AV --> AX["点击审核通过"]
|
||
AW --> AY["点击退回修改"]
|
||
AX --> AZ["更新报卡状态"]
|
||
AY --> BA["更新报卡状态"]
|
||
AZ --> BB["生成审核记录"]
|
||
BA --> BC["生成审核记录"]
|
||
BB --> BD["按钮置灰"]
|
||
BC --> BD["按钮置灰"]
|
||
AX --> BE["提示操作失败,请检查网络"]
|
||
AY --> BE
|
||
AZ --> BF["刷新表格数据"]
|
||
BA --> BF
|
||
BF --> BG["刷新行状态"]
|
||
BG --> BH["结束"]
|
||
BE --> BH
|
||
```
|
||
|
||
|
||
### 二、整体布局分析
|
||
|
||
**页面宽度**:自适应布局
|
||
**主要区域划分**:
|
||
|
||
1. **顶部导航栏**(固定高度60px)
|
||
2. **报卡管理概览区**(统计卡片+快捷操作,高度自适应)
|
||
3. **筛选控制区**(多条件组合筛选,折叠式布局)
|
||
4. **报卡列表区**(表格展示,占主体60%高度)
|
||
**布局特点**:上下层级结构,筛选区支持折叠/展开
|
||
5. **抽屉详情区**
|
||
|
||
|
||
|
||
### 三、页面区域详细描述
|
||
|
||
#### 1. 顶部导航栏
|
||
|
||
**区域位置**:页面顶部固定
|
||
**区域尺寸**:高度60px,100%宽度
|
||
**区域功能**:展示系统标识和用户信息
|
||
**包含元素**:
|
||
|
||
- **系统Logo**
|
||
|
||
- - 元素类型:图标+文字组合
|
||
- 显示内容:"CDC"图标+"报卡管理"文字
|
||
- 样式特征:蓝色主色调(#4a6fa5),左侧对齐
|
||
|
||
#### 2. 报卡管理概览
|
||
|
||
**区域位置**:导航栏下方
|
||
|
||
**区域尺寸**:100%宽度,自适应高度
|
||
**区域功能**:关键数据统计与快速操作入口
|
||
**包含元素**:
|
||
|
||
- **统计卡片组**(4个)
|
||
|
||
- - 展示方式:网格布局(4列)
|
||
- 数据字段:
|
||
|
||
| **字段名** | **类型** | **示例值** | **可操作** | **计算逻辑** |
|
||
| ------------ | -------- | ---------- | ---------- | ------------------------- |
|
||
| 今日待审核 | 数字 | 12 | 可点击 | 当天created_at+待审状态 |
|
||
| 本月审核失败 | 数字 | 3 | 可点击 | 当月created_at+失败状态 |
|
||
| 本月审核成功 | 数字 | 2 | 可点击 | 当月created_at+成功状态 |
|
||
| 本月已上报 | 数字 | 156 | 可点击 | 当月created_at+已上报状态 |
|
||
|
||
o 交互行为:
|
||
|
||
- - - 悬停:卡片上浮5px+阴影加深
|
||
- 点击:自动设置对应筛选项
|
||
|
||
- 样式特征:左侧状态色条(蓝/橙/红/绿)
|
||
|
||
#### 3. 筛选控制区
|
||
|
||
**区域功能**:多维度组合筛选报卡数据
|
||
|
||
**区域尺寸**:100%宽度,高度自适应(展开状态)
|
||
**包含元素**:
|
||
|
||
- **筛选条件组**(横向排列→移动端垂直堆叠)
|
||
|
||
- - 登记来源(下拉单选):全部/门诊/住院/急诊/体检
|
||
- 上报时间范围(双日期选择器)--默认值:最近一个月
|
||
- 患者姓名(文本输入)
|
||
- 审核状态(下拉单选):全部/待审核/审核通过/审核失败/已上报
|
||
- 上报科室(树形下拉多选)--全部科室/取值于《科室管理》adm_organization表
|
||
|
||
- **操作按钮**:
|
||
|
||
- - “查询”(主按钮,触发筛选)
|
||
- “重置”(次要按钮,清空条件)
|
||
|
||
#### 4. 报卡列表区
|
||
|
||
**区域功能**:展示报卡数据及操作入口
|
||
**包含元素**:
|
||
|
||
- **表格头部**
|
||
|
||
- - 全选复选框(联动所有行选择状态)
|
||
- 列标题:报卡名称/病种名称/患者信息等11列
|
||
|
||
- **快捷操作按钮组**
|
||
|
||
- - 包含按钮:
|
||
|
||
- - “批量审核”蓝色按钮,(需选择条目)点击弹出填写审核备注弹窗
|
||
- “批量退回修改”橙色警示按钮,(需选择条目)点击弹出退回原因填写弹窗
|
||
- “导出当前”(按筛选条件)
|
||
|
||
- **表格行**
|
||
|
||
- - 数据字段:
|
||
|
||
取值于传染病报卡表(infectious_card)
|
||
|
||
| **列名** | **数据类型** | **示例值** | **说明** |
|
||
| -------- | ------------ | ---------------- | --------------- |
|
||
| 选择框 | boolean | - | 带全选功能 |
|
||
| 报卡名称 | string | 传染病报告卡 | - |
|
||
| 病种名称 | string | 病毒性肝炎 | - |
|
||
| 报卡编号 | string | HOSP202601150001 | 唯一标识 |
|
||
| 患者姓名 | string | 张某某 | 脱敏显示 |
|
||
| 性别 | enum | 男 | 男/女/未知 |
|
||
| 年龄 | number | 32 | - |
|
||
| 上报科室 | string | 儿科 | - |
|
||
| 登记来源 | string | 门诊 | - |
|
||
| 上报时间 | datetime | 2026-01-31 09:23 | - |
|
||
| 状态 | badge | 待审核 | 待审核<->已提交 |
|
||
| 操作 | button | 审核/查看 | 根据状态禁用 |
|
||
|
||
|
||
|
||
- - 行操作按钮:
|
||
|
||
- - “审核”(主按钮,打开可编辑抽屉)
|
||
- “查看”(次要按钮,打开只读抽屉)
|
||
|
||
- 交互规则:
|
||
|
||
- - 已审核通过的报卡禁用"审核"按钮
|
||
- 行hover时显示浅蓝色背景
|
||
|
||
- 分页功能:
|
||
|
||
- - 实现分页功能(可以设置每页5/10/20条)
|
||
|
||
#### 5. 抽屉详情区
|
||
|
||
**区域位置**:右侧滑出
|
||
**区域尺寸**:自适应布局
|
||
**包含元素**:
|
||
|
||
· **报卡表单(****根据具体报卡登记的界面内容,比如《中华人民共和国传染病报告卡》内容和功能与需求编号102界面保持一致,建议用同一个界面)**
|
||
|
||
- - 字段分组:
|
||
|
||
- 1. 患者基本信息(姓名、身份证等)
|
||
2. 临床信息(发病日期、诊断分类等)
|
||
3. 疾病选择(甲/乙/丙类传染病复选框)
|
||
4. 上报信息(报告单位、医生等)
|
||
|
||
· **审核记录**
|
||
|
||
- - 展示方式:时间轴列表
|
||
- 数据字段:时间、操作人、操作类型、意见
|
||
|
||
· **操作按钮组**
|
||
|
||
- - 主按钮:审核通过(绿色)
|
||
- 次按钮:退回修改(橙色)
|
||
|
||
|
||
|
||
### 四、交互功能详细说明
|
||
|
||
#### 1. 批量审核流程
|
||
|
||
**触发条件**:勾选多行后点击"批量审核"
|
||
**操作流程**:
|
||
|
||
1. 系统校验:至少选择1条非"已通过"状态的报卡
|
||
|
||
2. 弹出审核弹窗(500px居中模态框)
|
||
|
||
3. 填写审核意见(必填)
|
||
|
||
4. 点击"确认审核":
|
||
|
||
5. 批量更新状态为"审核通过",(自动批量写入每一条审核记录(插入infectious_audit 字段详表②、更改表infectious_card. Statu= 2和infectious_card. update_time= now()))
|
||
|
||
6. 刷新表格数据
|
||
|
||
7. - 成功:更新状态为"审核通过",添加审核记录
|
||
- 失败:提示"审核失败,请检查网络"
|
||
- 包含已审核项:提示"只能选择待审核报卡"
|
||
- 未填写意见:阻止提交并红字提示
|
||
|
||
#### 2. 批量退回修改操作
|
||
|
||
**触发方式**:勾选多选框后点击"批量退回"
|
||
**前置校验**:
|
||
|
||
- 至少勾选一条非"已审核"状态报卡
|
||
- 选中已审核报卡时提示"只能操作待审核报卡"
|
||
|
||
**执行流程**:
|
||
|
||
1. 弹出模态框要求填写退回原因(必填)填写退回原因:阻止提交并红字提示
|
||
2. 提交后批量更新选中报卡状态
|
||
3. 每条生成审核记录(①、插入infectious_audit 字段详表②、更改表infectious_card. Statu=5和infectious_card. update_time= now())
|
||
|
||
#### 3.单卡审核流程
|
||
|
||
**触发方式**:点击操作列"审核"按钮
|
||
**状态控制**:
|
||
|
||
- 待审核/审核失败:可操作
|
||
- 审核通过:按钮禁用
|
||
**执行流程**:
|
||
|
||
1. 右侧滑出审核抽屉
|
||
2. 从行数据获取报卡ID自动填充患者报卡信息(异步加载报卡详情数据)
|
||
3. 展示历史审核记录(如有)
|
||
4. 填写审核意见/退回原因
|
||
5. 点击"审核通过"或"退回修改"
|
||
6. 更新表格行状态(生成审核记录(①、插入infectious_audit 字段详表②、更改表infectious_card. Statu=2/5和infectious_card. update_time= now()))
|
||
|
||
**异常处理**:
|
||
|
||
· 数据加载失败:提示"数据加载失败,请重试"
|
||
|
||
**·** 重复提交:按钮置灰防止重复点击
|
||
|
||
**状态变化**:
|
||
|
||
- 审核通过:表格行变绿色,按钮禁用,状态变成“审核通过”
|
||
- 退回修改:表格行变橙色,生成退回记录,状态变成“审核失败”审核失败<->退回
|
||
|
||
**数据校验**:
|
||
|
||
- 必填字段红框提示
|
||
- 身份证号格式校验
|
||
- 日期逻辑校验(发病日期≤诊断日期)
|
||
|
||
#### 4. 筛选查询功能
|
||
|
||
**触发方式**:点击"查询"按钮
|
||
**查询逻辑**:
|
||
|
||
- 登记来源:精确匹配
|
||
- 患者姓名:模糊匹配
|
||
- 时间范围:闭区间查询
|
||
- 状态筛选:精确匹配
|
||
- 上报科室:多选
|
||
**性能优化**:
|
||
- 500ms防抖处理
|
||
- 分页加载(可以设置每页5/10/20条)实现分页功能
|
||
|
||
#### 5. 报卡详情查看
|
||
|
||
**触发条件**:点击行"查看"按钮
|
||
**抽屉内容**:
|
||
|
||
- 只读表单(包含所有报卡字段)
|
||
- 审核记录时间轴(倒序展示)
|
||
- 关闭按钮(右上角×图标)
|
||
**数据加载**:根据行数据获取报卡ID自动填充患者报卡信息(异步加载报卡详情数据)
|
||
|
||
#### 6. 筛选联动逻辑
|
||
|
||
| **操作** | **系统响应** |
|
||
| ---------------------- | ------------------------------------------ |
|
||
| 点击"今日待审核"统计卡 | 自动设置: - 时间=当天 - 状态=待审核 |
|
||
| 本月审核失败 | 自动设置: - 时间=本月 - 状态=审核失败 |
|
||
| 本月审核成功 | 自动设置: - 时间=本月 - 状态=审核成功 |
|
||
| 本月已上报 | 自动设置: - 时间=本月 - 状态=已上报 |
|
||
|
||
|
||
|
||
### 五、数据结构说明
|
||
|
||
**关键数据表**:
|
||
|
||
```
|
||
|
||
infectious_card 与报卡审核记录表(infectious_audit)采用 一对多 关联:
|
||
① 、一张报卡可经历多次审核(初审、复审、退回、重审等)。
|
||
② 、关联键:infectious_card.card_no → infectious_audit.card_id(FK)。
|
||
*infectious_card. Statu增加状态5退回=审核失败(当批量退回修改/退回修改时更改表infectious_card. Statu=5 and infectious_card. update_time= now())
|
||
|
||
*infectious_audit 字段详表
|
||
```
|
||
|
||
| **字段名** | **中文名称** | **取值说明** | **类型****(PG)** | **约束** |
|
||
| ----------------- | ------------ | ------------------------------------------------------------ | ---------------- | ---------------------------------------- |
|
||
| audit_id | 审核记录ID | 主键,自增 | BIGINT | PRIMARY KEY |
|
||
| card_id | 报卡ID | 关联infectious_card.card_no | BIGINT | NOT NULL, FK |
|
||
| audit_seq | 审核序号 | 第几次审核,从1开始 | SMALLINT | NOT NULL, ≥1 |
|
||
| audit_type | 审核类型 | 1批量审核/2单审核通过/3批量退回修改/4单退回修改 /5其他 | CHAR(1) | NOT NULL, IN('1','2','3','4','5') |
|
||
| audit_status_from | 审核前状态 | 同infectious_card.status(0暂存/1已提交=待审核/2已审核=审核通过/3已上报/4失败/5退回=审核失败) | CHAR(1) | NOT NULL, IN('0','1','2','3','4','5') |
|
||
| audit_status_to | 审核后状态 | 同上,审核后的新状态 | CHAR(1) | NOT NULL, IN('0','1','2','3','4') |
|
||
| audit_time | 审核时间 | 精确到秒,当前时间戳 | TIMESTAMP | NOT NULL, DEFAULT now() |
|
||
| auditor_id | 审核人账号 | 登录账号 | VARCHAR(20) | NOT NULL |
|
||
| auditor_name | 审核人姓名 | 登录账号的姓名 | VARCHAR(50) | NOT NULL |
|
||
| audit_opinion | 审核意见 | 审核意见简述 | TEXT | |
|
||
| Reason_for_return | 退回原因 | 退回原因简述 | TEXT | |
|
||
| fail_reason_code | 失败原因码 | 字典:001必填项/002逻辑错误/003网络超时等 | VARCHAR(20) | |
|
||
| fail_reason_desc | 失败详情 | 详细描述,可空 | TEXT | |
|
||
| is_batch | 是否批量 | 0单条审核/1批量审核 | BOOLEAN | NOT NULL, DEFAULT false |
|
||
| batch_size | 批量数量 | 批量时涉及报卡数 | INTEGER | NOT NULL, DEFAULT 1, ≥1 |
|
||
| created_time | 记录创建时间 | 自动生成 | TIMESTAMP | NOT NULL, DEFAULT now() |
|
||
| updated_time | 记录更新时间 | 自动更新 | TIMESTAMP | NOT NULL, DEFAULT now(), ON UPDATE now() |
|
||
|
||
```
|
||
|
||
```
|
||
|
||
|
||
|
||
### 六、开发实现要点
|
||
|
||
**样式规范**:
|
||
|
||
- **主色调**:`#4a6fa5`(导航栏/主按钮)
|
||
|
||
- **状态色**:
|
||
|
||
- - 待审核:`rgba(74, 111, 165, 0.1)`
|
||
- 审核失败:`rgba(231, 76, 60, 0.1)`
|
||
|
||
- **字体**:
|
||
|
||
- - 标题:`16px/1.5 #333`
|
||
- 表格内容:`14px/1.5 #666`
|
||
|
||
**注意事项**:
|
||
|
||
- 审核记录需永久保存不可删除
|
||
|
||
|
||
|
||
### 七、补充说明
|
||
|
||
1. **日期格式**:统一使用`YYYY/MM/DD`(符合医疗系统惯例)
|
||
2. **地址组件**:四级联动(省→市→区→街道)
|
||
3. **职业选项**:使用国家标准职业分类
|
||
4. **病种名称**:严格遵循《传染病报告卡》规范用词 |