## 报卡管理界面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. **病种名称**:严格遵循《传染病报告卡》规范用词