上传文件至 md/需求

This commit is contained in:
2026-01-29 22:39:03 +08:00
parent 1c781c1224
commit 6f71c678bd

View File

@@ -0,0 +1,505 @@
## 门诊医生站传染性报卡登记PRD文档
### 一、页面概述
**页面名称**:门诊医生站传染性报卡登记
**页面目标**:帮助医生完成法定传染病病例的电子报告卡填写与提交
**适用场景**:医生确诊或疑似发现法定传染病病例时,进行报卡登记
**页面类型**:表单页(复杂表单)
**核心功能**
1. 患者基本信息录入(含身份验证)
2. 传染病分类选择与疾病诊断信息登记
3. 病例分类与流行病学信息记录
4. 数据校验与表单提交
5. 地址四级联动选择(省-市-区县-街道)
**用户价值**
- 规范传染病报告流程,确保数据完整准确
- 减少手工填写错误,提高上报效率
- 自动关联患者基本信息,减少重复录入
- 内置校验规则防止漏报错报
**原型图地址**:https://static.pm-ai.cn/prototype/20260128/6041dcc237645108aa9e917e8d57705f/index.html
**流程图**:
```mermaid
flowchart TD
A(["开始报卡"]) --> B["填写患者基本信息"]
B --> C{"身份证格式错误"}
C -- 是 --> D["提示请输入有效身份证号码"]
C -- 否 --> E{"患者年龄≤14岁"}
E -- 是 --> F["显示家长姓名输入框"]
E -- 否 --> G["隐藏家长姓名输入框"]
F --> H["填写现住地址"]
G --> H
H --> I{"地址加载失败"}
I -- 是 --> J["显示手动输入选项"]
I -- 否 --> K["选择疾病分类"]
J --> K
K --> L{"选择特定疾病"}
L -- 是 --> M["显示疾病分型选择"]
L -- 否 --> N["跳过分型选择"]
M --> O["填写发病/诊断日期"]
N --> O
O --> P{"日期逻辑错误"}
P -- 是 --> Q["提示发病日期不能晚于诊断日期"]
P -- 否 --> R["填写报告信息"]
Q --> R
R --> S["表单校验"]
S --> T{"校验失败"}
T -- 是 --> U["显示错误提示"]
T -- 否 --> V["保存报卡"]
U --> S
V --> W{"点击重置按钮"}
W -- 是 --> X["保留关键信息重置其他字段"]
X --> S
V --> Y{"点击关闭按钮"}
Y -- 是 --> Z{"确认关闭"}
Z -- 是 --> AA(["结束流程"])
Z -- 否 --> V
```
### 二、整体布局分析
**页面宽度**:自适应布局
**主要区域划分**
1. **顶部标题区**5%):展示表单标题和卡片编号
2. **患者信息区**30%):患者基本信息、联系方式、现住地址等
3. **疾病信息区**50%):疾病分类选择、发病/诊断日期、疾病分型等
4. **报告信息区**10%):报告单位、医生、填卡日期等
**操作按钮区**5%):保存、重置、关闭按钮
**布局特点**:上下布局,采用响应式网格,表单分组清晰,必填项高亮标识
### 三、页面区域详细描述
#### 1. 标题区
**区域位置**:页面顶部
**区域尺寸**高度60px
**区域功能**:展示表单标题和唯一编号标识
**包含元素**
- 表单标题
- - 元素类型:标题文本
- 默认内容:“中华人民共和国传染病报告卡”
- 样式要求20px字号深蓝色(#2c3e50),居中加粗
- 卡片编号
- - 元素类型:输入框
- 默认值:空
- 提示文字:“单位自编,与网络直报一致”
- 交互行为支持手动输入12位编号
- 样式要求12px灰色文字带下划线分隔线
#### 2. 患者基本信息区
**区域位置**:标题区下方
**区域功能**:采集患者核心身份信息、联系方式、居住地等
**包含元素**
- 患者姓名输入框
- - 元素类型:文本输入框,自动引入当前就诊患者信息的姓名
- 校验规则必填项支持中文姓名2-10字
- 家长姓名输入框
- - 元素类型:文本输入框
- 条件显示当系统计算年龄≤14岁时自动显示必填标识
- 身份证号输入框
- - 元素类型:文本输入框,自动引入当前就诊患者信息的身份证号
- 校验规则必填项自动校验18位身份证格式
- 性别选择
- - 元素类型:单选按钮组
- 选项:男/女/未知,自动匹配当前就诊患者信息的性别
- 默认值:必填项
- 出生日期输入
- - 元素类型:复合输入区域
- 包含:年(4位)/月(2位)/日(2位)三个输入框,自动匹配当前就诊患者信息的出生年月
- 联动逻辑:自动计算实足年龄并填充到年龄输入框
- 工作单位输入框
- - 元素类型:文本输入框,自动引入当前就诊患者信息的工作单位
- 特殊场景:学生自动关联学校信息
- 联系电话
- - 元素类型:电话输入框,自动引入当前就诊患者信息的联系方式
- 校验规则必填11位手机号或带区号固话
- 紧急联系人电话
- - 元素类型:电话输入框
- 校验规则必填11位手机号或带区号固话
- 病人属于
- - 复选框类型:通过现地址自动判断
- 校验规则:必填
- 职业
- - 下拉选项类型:取值于字典管理的字典名称为“职业”维护的数据
- 校验规则:必填
#### 3. 现住地址选择区
**区域功能**:四级联动地址选择(省-市-区县-街道)
**交互逻辑**
1. 省份选择后动态加载对应城市
2. 城市选择后动态加载区县
3. 区县选择后动态加载街道
4. 村(居)和门牌号为手动输入
**数据要求**
- 初始默认值:省-市-区县-街道(自动引入当前就诊患者信息的现住址)
- 异常处理:当上级未选择时禁用下级选择
**字典取值跟新增患者的现住址保持一致(患者管理-)患者列表)**
![](media/clip_image001.png)
#### 4. 疾病信息区
**区域功能**:选择传染病类型及相关临床信息
**包含元素**
- **疾病分类选择**
- - 布局方式:网格布局(3列)
- 分类:甲类/乙类/丙类传染病
- 交互行为:多选但同类别互斥
- 特殊处理:选择炭疽/肺结核/病毒性肝炎/疟疾/梅毒/血吸虫病等疾病时激活分型选择
- **疾病复选框互斥逻辑:**
- - 选择炭疽病时显示分型选项(肺炭疽/皮肤炭疽/胃肠炭疽/未分型)
- 选择肺结核时显示分型选项(涂阳/仅培阳/菌阴/未痰检)
- 选择病毒性肝炎时显示分型选项(甲/乙/丙/戊型)
- 选择疟疾时显示分型选项(间日疟/恶性疟/三日疟/卵形疟/未分型)
- 选择梅毒时显示分型选项(Ⅰ期/Ⅱ期/Ⅲ期/胎传/隐性)
- 选择血吸虫病时显示分型选项(急性/慢性/晚期/未分型)
- **分型选择**
- - 元素类型:动态下拉框
- 数据源:根据疾病类型动态加载
- 示例:肺结核→涂阳/仅培阳/菌阴/未痰检
- **其他法定管理以及重点监测传染病输入框:**
- - 手动输入非列表疾病
- 自动关联传染病代码库
- **发病日期**
- - 元素类型:日期选择器
- 验证规则:不得晚于诊断日期
- **诊断日期**
- - 元素类型:日期选择器
- 取值:默认当前系统时间
- **死亡日期**
- - 元素类型:日期选择器
- 填写规则:根据实际情况填写
- **病例分类**
- - 复选框类型: 1疑似病例/2临床诊断病例/3确诊病例/4病原携带/5阳性检测结果
- 校验规则:必填
#### 5. 报告信息区
**区域功能**:记录报告单位和责任人信息等
**包含元素**
- **报告单位**
- - 元素类型:文本输入
- 默认值:当前登录医院
- 交互行为:只读
- **联系电话**
- - 元素类型:文本输入
- 默认值:当前登录医院的联系电话
- 交互行为:可编辑
- **报告医生**
- - 元素类型:文本输入
- 默认值:当前登录医生
- 验证规则:必填
- **填卡日期**
- - 默认当前系统日期,显示为"YYYY-MM-DD"格式
- **修订病名**
- - 元素类型:文本输入
- 默认值:空
- 填写:自定义编辑
- **退卡原因**
- - 元素类型:文本输入
- 默认值:空
- 填写:自定义编辑
- **备注**
- - 元素类型:文本输入
- 默认值:空
- 填写:自定义编辑
#### 6. 操作按钮区
**区域位置**:页面底部
**包含元素**
- **保存按钮**
- - 元素类型:主要操作按钮
- 交互行为:触发表单验证,通过后保存
- 样式特征:蓝色(#3498db)圆角8px
- **重置按钮**
- - 交互行为:清除非基础信息字段
- 特殊处理:保留患者姓名、身份证等关键信息
- **关闭按钮**
- - 交互行为:二次确认后关闭页面
- 样式特征:红色(#e74c3c)
### 四、交互功能详细说明
#### 1. 地址联动选择
**触发条件**:选择省级行政区
**操作流程**
1. 选择省份→加载该省下所有城市
2. 选择城市→加载该市所有区县
3. 选择区县→加载街道列表
**异常处理**:网络错误时显示"加载失败,请手动输入"
#### 2. 疾病分型联动
**触发条件**:选择特定疾病
**数据映射**
| **疾病类型** | **分型选项** |
| ------------ | ---------------------------------- |
| 肺结核 | 涂阳/仅培阳/菌阴/未痰检 |
| 梅毒 | I期/II期/III期/胎传/隐性 |
| 炭疽 | 肺炭疽/皮肤炭疽/胃肠炭疽/未分型 |
| 病毒性肝炎 | 甲/乙/丙/戊型 |
| 疟疾 | 间日疟/恶性疟/三日疟/卵形疟/未分型 |
| 血吸虫病 | 急性/慢性/晚期/未分型 |
#### 3. 表单验证
**全局验证**
1. 提交时检查必填字段
2. 验证身份证号格式
3. 确保至少选择一种疾病
**字段级验证**
- 电话号码11位数字错误提示“请输入有效的联系电话”
- 发病日期≤诊断日期≤填卡日期,错误提示“发病日期不能晚于诊断日期”
- 身份证号18位且符合校验算法错误提示“请输入有效的身份证号码”
### 五、数据结构说明
**传染病报卡表infectious_card**
| **字段** | **类型** | **国标含义** | **来源****/****说明** |
|---------------------| -------------- |-----------------|--------------------------------------|
| card_no | VARCHAR(20) PK | 卡片编号 | 机构代码+年月日+4位流水 |
| visit_id | BIGINT FK | 本次就诊ID | adm_encounter.id |
| diag_id | BIGINT FK | 诊断记录唯一ID | adm_encounter_diagnosis.condition_id |
| pat_id | BIGINT FK | 患者主索引 | adm_patient.id |
| id_type | TINYINT | 证件类型 | |
| id_no | VARCHAR(30) | 证件号码 | 18位校验 |
| pat_name | VARCHAR(50) | 患者姓名 | |
| parent_name | VARCHAR(50) | 家长姓名 | ≤14岁必填 |
| sex | CHAR(1) | 性别 | 1男/2女/0未知 |
| birthday | DATE | 出生日期 | |
| age | INT | 实足年龄 | 函数计算 |
| age_unit | CHAR(1) | 年龄单位 | 岁/月/天-》1岁/2月/3天 |
| workplace | VARCHAR(100) | 工作单位 | 学生填学校 |
| phone | VARCHAR(20) | 联系电话 | 患者本人电话 |
| contact_phone | VARCHAR(20) | 紧急联系人电话 | |
| address_prov | VARCHAR(6) | 现住址省 | GB2260 |
| address_city | VARCHAR(6) | 现住址市 | 同上 |
| address_county | VARCHAR(6) | 现住址县 | 同上 |
| address_town | VARCHAR(9) | 现住址街道 | 同上 |
| address_village | VARCHAR(80) | 现住址村/居委 | |
| address_house | VARCHAR(40) | 现住址门牌号 | |
| patient_belong | TINYINT | 病人属于 | 系统判定1本县区/2本市其他/3本省其他/4外省/5港澳台/6外籍 |
| occupation | VARCHAR(4) | 职业 | GB/T 6565取值于字典管理的字典名称为“职业”维护的数据 |
| disease_code | VARCHAR(8) | 疾病名称 | WS 218-2020,见下表 |
| disease_type | VARCHAR(8) | 分型 | 见下表6类必分型疾病必填 |
| other_disease | VARCHAR(50) | 其他法定管理以及重点监测传染病 | |
| case_class | TINYINT | 病例分类 | 1疑似病例/2临床诊断病例/3确诊病例/4病原携带/5阳性检测结果 |
| onset_date | DATE | 发病日期 | 默认诊断时间,病原携带者填初检日期 |
| diag_date | DATETIME | 诊断日期 | 精确到小时 |
| death_date | DATE | 死亡日期 | 死亡病例必填 |
| correct_name | VARCHAR(50) | 订正病名 | 订正报告必填 |
| withdraw_reason | VARCHAR(100) | 退卡原因 | 退卡时必填 |
| report_org | VARCHAR(18) | 报告单位 | 统一信用代码(医院名称) |
| report_org_phone | VARCHAR(20) | 联系电话 | 报告单位电话:医院总值班/防保科座机 |
| report_doc | VARCHAR(20) | 报告医生 | 医生姓名 |
| report_date | DATE | 填卡日期 | 当天日期 |
| status | TINYINT | 状态 | 0暂存1已提交2已审核3已上报4失败5作废 |
| fail_msg | VARCHAR(500) | 失败原因 | 国家平台返回 |
| xml_content | TEXT | 上报XML | 日志 |
| create_time | DATETIME | 创建时间 | |
| update_time | DATETIME | 更新时间 | |
| card_name_code | TINYINT | 报卡名称代码 | 数值对照(取值于字典管理-》报卡名称代码1-中华人民共和国传染病报告卡 |
| registration source | TINYINT | 登记来源 | 1门诊/2住院 |
| dept_id | TINYINT | 科室ID | 患者当前就诊科室 |
| doctor_id | TINYINT | 医生ID | 患者当前开单医生 |
**甲类传染病2 种)―― 01xxxx**
| **disease_code** | **疾病名称** | **国家平台码** |
| ---------------- | ------------ | -------------- |
| 0101 | 鼠疫 | 甲类 |
| 0102 | 霍乱 | 甲类 |
存值示例:`0101`(鼠疫)、`0102`(霍乱)
**乙类传染病27 种)―― 02xxxx**
| **disease_code** | **疾病名称** | **国家平台码** |
| ---------------- | -------------------- | ------------------ |
| 0201 | 传染性非典型肺炎 | 乙类(按甲类管理) |
| 0202 | 艾滋病 | 乙类 |
| 0203 | 病毒性肝炎 | 乙类 |
| 0204 | 脊髓灰质炎 | 乙类(按甲类管理) |
| 0205 | 人感染高致病性禽流感 | 乙类(按甲类管理) |
| 0206 | 麻疹 | 乙类 |
| 0207 | 流行性出血热 | 乙类 |
| 0208 | 狂犬病 | 乙类 |
| 0209 | 流行性乙型脑炎 | 乙类 |
| 0210 | 登革热 | 乙类 |
| 0211 | 炭疽 | 乙类(按甲类管理) |
| 0212 | 细菌性和阿米巴性痢疾 | 乙类 |
| 0213 | 肺结核 | 乙类 |
| 0214 | 伤寒和副伤寒 | 乙类 |
| 0215 | 流行性脑脊髓膜炎 | 乙类 |
| 0216 | 百日咳 | 乙类 |
| 0217 | 白喉 | 乙类 |
| 0218 | 新生儿破伤风 | 乙类 |
| 0219 | 猩红热 | 乙类 |
| 0220 | 布鲁氏菌病 | 乙类 |
| 0221 | 淋病 | 乙类 |
| 0222 | 梅毒 | 乙类 |
| 0223 | 钩端螺旋体病 | 乙类 |
| 0224 | 血吸虫病 | 乙类 |
| 0225 | 疟疾 | 乙类 |
存值示例:乙肝→`0203`;肺结核→`0213`;梅毒→`0222`
**丙类传染病11 种)―― 03xxxx**
| **disease_code** | **疾病名称** | **国家平台码** |
| ---------------- | ---------------------- | -------------- |
| 0301 | 流行性感冒 | 丙类 |
| 0302 | 流行性腮腺炎 | 丙类 |
| 0303 | 风疹 | 丙类 |
| 0304 | 急性出血性结膜炎 | 丙类 |
| 0305 | 麻风病 | 丙类 |
| 0306 | 流行性和地方性斑疹伤寒 | 丙类 |
| 0307 | 黑热病 | 丙类 |
| 0308 | 包虫病 | 丙类 |
| 0309 | 丝虫病 | 丙类 |
| 0310 | 其它感染性腹泻病 | 丙类 |
| 0311 | 手足口病 | 丙类 |
存值示例:手足口病→`0311`;流感→`0301`
**分型码与名称对照(系统存值用)**
| **大类疾病** | **disease_code** | **分型中文** | **disease_type** **存值** |
| -------------- | ---------------- | ------------ | ------------------------- |
| **病毒性肝炎** | 0203 | 甲型 | 020301 |
| | | 乙型 | 020302 |
| | | 丙型 | 020303 |
| | | 戊型 | 020304 |
| | | 未分型 | 020305 |
| **炭疽** | 0211 | 肺炭疽 | 021101 |
| | | 皮肤炭疽 | 021102 |
| | | 胃肠炭疽 | 021103 |
| | | 未分型 | 021104 |
| **肺结核** | 0213 | 涂阳 | 021301 |
| | | 仅培阳 | 021302 |
| | | 菌阴 | 021303 |
| | | 未痰检 | 021304 |
| **梅毒** | 0222 | Ⅰ期 | 022201 |
| | | Ⅱ期 | 022202 |
| | | Ⅲ期 | 022203 |
| | | 胎传 | 022204 |
| | | 隐性 | 022205 |
| **疟疾** | 0225 | 间日疟 | 022501 |
| | | 恶性疟 | 022502 |
| | | 三日疟 | 022503 |
| | | 卵形疟 | 022504 |
| | | 未分型 | 022505 |
| **血吸虫病** | 0224 | 急性 | 022401 |
| | | 慢性 | 022402 |
| | | 晚期 | 022403 |
| | | 未分型 | 022404 |
### 六、开发实现要点
**样式规范**
- 主色调:#3498db(按钮/重要标签)
- 错误状态:#e74c3c(边框+文字)
- 表单间距8px垂直间距16px水平间距
**技术要求**
- 支持Chrome/Firefox/Edge最新版
**注意事项**
1. 身份证号不需脱敏显示