From cb6b6ced676f9ad17a9391e058e143b57618f787 Mon Sep 17 00:00:00 2001 From: chenxianjing Date: Fri, 16 Jan 2026 18:54:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20md/=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...诊医生站开立会诊申请单界面PRD_2026-01-15.md | 387 ++++++++++++++++++ 1 file changed, 387 insertions(+) create mode 100644 md/需求/95-门诊医生站开立会诊申请单界面PRD_2026-01-15.md diff --git a/md/需求/95-门诊医生站开立会诊申请单界面PRD_2026-01-15.md b/md/需求/95-门诊医生站开立会诊申请单界面PRD_2026-01-15.md new file mode 100644 index 00000000..4e44c8b1 --- /dev/null +++ b/md/需求/95-门诊医生站开立会诊申请单界面PRD_2026-01-15.md @@ -0,0 +1,387 @@ +## 门诊医生站开立会诊申请单界面PRD文档 + +### 一、页面概述 + +**页面名称**:门诊医生站开立会诊申请单界面**页面目标**:帮助门诊医生完成会诊申请单的创建、编辑、提交和作废操作,实现多科室会诊流程的电子化管理**适用场景**: + +1. 门诊医生需要邀请其他科室专家进行会诊时 +2. 会诊申请单需要修改或补充信息时 +3. 会诊流程需要跟踪管理时 + **页面类型**:表单页+列表页复合型界面 + +**核心功能**: + +1. 会诊申请单的新增、保存、提交、作废功能 +2. 会诊科室/专家可视化选择 +3. 申请单数据表格展示与交互 +4. 表单数据自动填充与校验 +5. 申请单打印输出 + +**用户价值**: + +- 规范会诊申请流程,减少纸质单据使用 +- 通过智能填充减少医生重复录入 +- 实时查看会诊申请状态(新开/已提交/已确认/已签名/已完成/已取消) + +原型图地址:https://static.pm-ai.cn/prototype/20260115/4eb1bd5367f9d5610b32c0ecc6c793f5/index.html + +流程图: + +```mermaid +flowchart TD +%% ---------- 开始 ---------- +START(["开始"]) --> A["医生进入会诊申请单界面"] + +%% ---------- 操作选择 ---------- +A --> B{"操作选择"} +B -->|"打印"| C["选择已有申请单"] +B -->|"提交/取消提交"| D{"校验状态为“已提交”?"} +B -->|"删除"| E["弹出确认对话框"] +B -->|"结束"| F{"校验状态为“已提交”?"} +B -->|"编辑"| G["修改表单内容"] +B -->|"新增"| H["清空表单(保留患者信息)"] + +%% ---------- 打印分支 ---------- +C --> I["高亮选中行"] +I --> J["生成打印视图"] +J --> K["输出打印样式"] +K --> L(["取消"]) + +%% ---------- 提交/取消提交分支 ---------- +D -->|"不通过"| M["提示“请完善必填信息”"] +D -->|"通过"| N["更新状态为“已提交/新开”"] + +%% ---------- 删除分支 ---------- +E --> O{"确认?"} +O -->|"是"| P["标记状态为“已取消”"] +O -->|"否"| L + +%% ---------- 结束分支 ---------- +F -->|"不通过"| Q["提示“请先提交申请”"] +F -->|"通过"| R["标记状态为“已完成”"] + +%% ---------- 编辑分支 ---------- +G --> S{"校验必填字段"} +S -->|"不通过"| M +S -->|"通过"| T["保存到表格"] + +%% ---------- 新增/保存通用路径 ---------- +H --> U["填写表单"] +U --> V["选择会诊科室/专家"] +V --> W["自动填充邀请对象"] +W --> X["填写病史及目的"] +X --> Y["点击保存"] +Y --> Z{"校验必填字段"} +Z -->|"不通过"| M +Z -->|"通过"| AA["生成会诊申请记录"] +AA --> AB["保存到表格"] +AB --> AC["新增/更新记录"] + +%% ---------- 循环 ---------- +AC --> A +N --> A +P --> A +R --> A +T --> A +M --> A +Q --> A +L --> A +``` + +### 二、整体布局分析 + +**页面宽度**:自适应宽度(主内容区采用7:3比例分割) +**主要区域划分**: + +1. 顶部操作栏(48px固定高度) +2. 会诊申请单列表区(高度自适应) +3. 主内容区(分左右结构,7:3比例) + +- 左侧:会诊申请单表单区 +- 右侧:会诊科室/专家选择区 + **布局特点**:响应式上下+左右混合布局,主要对齐方式为左对齐 + +### 三、页面区域详细描述 + +#### 1. 顶部操作栏区域 + +**区域位置**:页面顶部固定位置**区域尺寸**:高度48px,宽度100%**区域功能**:提供全局操作功能入口**包含元素**: + +- **打印按钮** + - 元素类型:操作按钮 + - 显示内容:“打印” + - 交互行为:点击后生成A4打印视图,自动适配医院抬头格式 + - 样式特征:绿色背景(\#13C2C2),圆角4px,32px高度 +- **新增按钮** + - 元素类型:操作按钮 + - 显示内容:“新增” + - 交互行为:点击清空表单(保留当前患者基本信息) + - 样式特征:蓝色背景(\#1890FF) +- **结束按钮** + - 元素类型:危险操作按钮 + - 显示内容:“结束” + - 交互行为:点击结束已提交的会诊流程,标记申请单状态为"已结束",禁用后续操作 + - 样式特征:红色背景(\#FF4D4F) + - 限制条件:需先选中已提交的会诊单 +- **保存按钮** + - 元素类型:主要操作按钮 + - 显示内容:“保存” + - 交互行为:点击保存当前表单数据,校验必填字段后保存至表格,自动生成时间戳 + - 样式特征:绿色背景(\#52C41A) + +#### 2. 会诊申请单列表区 + +**区域位置**:顶部操作栏下方**区域尺寸**:高度自适应,宽度100%**区域功能**:展示当前医生的会诊申请记录**包含元素**: + +- **申请单表格** + - 展示方式:带边框表格 + - 数据字段: + + - 序号:文本 - 自增序号 - 不可操作 + - 急:布尔 - ✓表示紧急 - 不可操作 + - 申请单号:文本 - CS20260105001 - 不可操作 + - 会诊时间:日期 - 2026-01-05 15:08 - 不可操作 + - 邀请对象:文本 - 吴院长 - 不可操作 + - 申请科室:文本 - 内科 - 不可操作 + - 申请医师:文本 - 张医生 - 不可操作 + - 申请时间:日期 - 2026-01-05 15:08 - 不可操作 + - 提交状态:布尔 - 复选框 - 仅查看 + - 结束状态:布尔 - 复选框 - 仅查看 + - 操作功能: + + - - o 提交/取消提交按钮 + +``` +样式要求:蓝色小按钮,禁用状态显示灰色 +``` + + +``` +交互行为:切换提交状态,需二次确认 +``` + + +``` +o 删除图标 +``` + + +``` +样式要求:红色垃圾桶图标,hover时放大10% +``` + + +``` +交互行为:弹出确认对话框后作废该记录 +``` + + +[删除]**将状态改为“已取消”**** + +UPDATE ConsultationRequest +SET ConsultationStatus = 50,cancelnatureDate = <作废会诊时间> +WHERE ConsultationID = <会诊申请单ID> and ConsultationStatus <> 40 ; + +- 交互特性: + - 行点击选中效果(蓝色高亮+左侧边框) + - 行hover浅灰色背景 + - 提交按钮状态联动(切换提交状态,需二次确认) + +#### 3. 会诊申请单表单区 + +**区域位置**:主内容区左侧**区域尺寸**:占主内容区70%宽度**区域功能**:会诊申请单的详细表单填写**包含元素**: + +- **基础信息区** + - 申请单号:只读文本,【保存】时自动生成规则CS+年月日时分秒+4位随机数 + - 申请时间:只读文本,自动获取系统当前时间 + - 病人信息:病人姓名/性别/年龄/就诊卡号/申请医师/申请科室(不可编辑),自动获取当前患者档案信息。 +- **会诊信息区** + - 会诊时间:时间控件可编辑 + - 紧急标识:复选框控件 + - 申请医师:默认当前登录医生 + - 申请科室:默认当前医生登录的开单科室 + - 门诊诊断:自动获取医生开立的门诊诊断(主诊断) +- **病史及目的** + - 多行文本域,最小高度100px +- **会诊邀请** + - 会诊邀请对象:支持多选(逗号分隔)-》(可从右侧会诊邀请对象选择) +- **会诊记录区** + - 会诊意见:只读文本域 + - 会诊确认参加医师:只读字段 + - 所属医生、代表科室、签名医生、签名时间:只读字段 + +#### 4. 会诊邀请对象选择区(侧边栏) + +**区域位置**:主内容区右侧**区域尺寸**:占主内容区30%宽度**区域功能**:快速选择会诊科室和专家**包含元素**: + +- **会诊科室列表** + - 展示方式:带边框可滚动列表 + - 交互行为:选择科室后动态加载对应专家 +- **会诊专家列表** + - 展示方式:带边框可滚动列表 + - 交互行为:点击专家自动填入会诊邀请对象字段(防重复:已选专家提示"请勿重复选择") + - 特殊逻辑:支持多选(自动用逗号分隔) + +### 四、交互功能详细说明 + +#### 1. 会诊申请单提交流程 + +**功能描述**:完成会诊申请单的提交操作**触发条件**:点击表格行的"提交"按钮**操作流程**: + +1. 医生点击行内"提交"按钮 +2. 系统校验必填字段(会诊时间、邀请对象) +3. 提交状态复选框变为已勾选 +4. 按钮文字变为"取消提交" +5. 禁用该行编辑功能 + +【提交】**将状态从“新开”改为“已提交”** + +UPDATE ConsultationRequest +SET ConsultationStatus = 10,ConfirmingPhysician = <提交会诊医生姓名> ,ConfirmingPhysicianID = <提交会诊医生ID> ,ConfirmingDate = <提交会诊时间> +WHERE ConsultationID = <会诊申请单ID> and ConsultationStatus = 0 ; + +【取消提交】**将状态从“已提交”改为“新开”** + +UPDATE ConsultationRequest +SET ConsultationStatus = 0,ConfirmingPhysician = '',ConfirmingPhysicianID = '',ConfirmingDate = '' +WHERE ConsultationID = <会诊申请单ID> and ConsultationStatus = 10 ; + +**异常处理**: + +- 必填字段缺失:弹出"请完善会诊时间和邀请对象信息" +- 重复提交:提示"该申请已提交,请勿重复操作" + +#### 2. 会诊流程结束功能 + +**功能描述**:标记会诊流程已结束**触发条件**:选中已提交的申请单后点击顶部"结束"按钮**操作流程**: + +1. 医生选中已提交的申请单(行高亮) +2. 点击顶部"结束"按钮 +3. 系统校验提交状态为已提交 +4. 结束状态复选框变为已勾选 +5. 禁用该行的取消提交功能 + +【结束】**将状态从“已签名”改为“已完成”** + +UPDATE ConsultationRequest +SET ConsultationStatus = 40,Signature = <结束会诊医生姓名> ,SignatureDate=<结束会诊时间> +WHERE ConsultationID = <会诊申请单ID> and ConsultationStatus = 30 ; + +**异常处理**: + +- 未选中记录:提示"请先选择要结束的会诊申请" +- 未提交记录:提示"请先提交该会诊申请" + +#### 3. 申请单保存功能 + +**功能描述**:保存会诊申请单数据**触发条件**:点击顶部"保存"按钮**操作流程**: + +1. 系统自动生成申请单号(如为空) +2. 保存当前表单所有字段值 +3. 新增记录插入表格末尾 +4. 已有记录更新对应行数据 + + 【保存】 + + ①、写入门诊医嘱表(医嘱状态为新开,医嘱名称为"门诊会诊") + + ②、写入门诊会诊申请单表(ConsultationRequest) + + **数据校验**: + +- 必填字段:病人姓名、会诊时间、申请科室、会诊时间、会诊邀请对象、简要病史及会诊目的 +- 未选会诊对象:提示"请至少选择1位会诊专家" +- 过期时间:提示"会诊时间不能早于当前时间" + +#### 4. 会诊邀请对象选择联动 + +**触发方式**:点击科室列表项 +**数据联动**: + +1. 根据选中会诊科室过滤会诊专家列表 +2. 记忆已选专家(跨科室切换时不丢失) + +**技术要点**: + +- 使用对象存储会诊科室-会诊专家映射关系 +- 采用事件委托处理动态生成的列表项 + +### 五、数据结构说明 + +门诊会诊申请单表(ConsultationRequest) + + +| **字段名称** | **数据类型** | **长度** | **描述** | **取值范围** | +|-----------------------------| ------------ | -------- |----------------| --------------------------------------------------------- | +| **PatientID** | Text | 20 | 患者唯一标识 | 患者就诊卡号 (取值患者档案) | +| **ConsultationID** | Text | 20 | 会诊申请单唯一标识 | 系统自动生成的唯一编号,生成规则CS+年月日时分秒+4位随机数 | +| **VisitID** | BIGINT | 20 | 门诊就诊流水号(逻辑外键) | 取值于本次门诊就诊记录表的主键 | +| **OrderID** | BIGINT | 20 | 门诊医嘱表主键(一对一外键) | 门诊医嘱表 | +| **PatientName** | Text | 50 | 患者姓名 | 患者的姓名 (取值患者档案) | +| **Gender** | Text | 10 | 患者性别 | 男/女/其他 (取值患者档案) | +| **Age** | Integer | - | 患者年龄 | 取值患者档案 | +| **Department** | Text | 50 | 申请会诊的科室 | 当前科室名称 | +| **RequestingPhysician** | Text | 50 | 申请会诊的医生 | 当前医生姓名 | +| **ConsultationrequestDate** | DateTime | - | 会诊申请时间 | YYYY-MM-DD HH:MM:SS +| **ConsultationPurpose** | Text | 255 | 简要病史及会诊目的 | 文本描述,自定义编辑 | +| **ProvisionalDiagnosis** | Text | 255 | 门诊诊断 | 文本描述,自动获取医生开立的门诊诊断(主诊断) | +| **ConsultationDate** | DateTime | - | 会诊时间 | YYYY-MM-DD HH:MM:SS | +| **ConsultationStatus** | Text | 20 | 会诊状态 | 新开/已提交/已确认/已签名/已完成/已取消 | +| **ConsultationUrgency** | Text | 20 | 是否紧急 | 勾选框:一般/紧急 | +| **ConsultationOpinion** | Text | 255 | 会诊意见 | 文本描述 | +| **ConfirmingPhysician** | Text | 50 | 提交会诊的医生 | 医生姓名 | +| **ConfirmingPhysicianID** | Text | 20 | 提交会诊的医生ID | 医生唯一标识 | +| **ConfirmingDate** | DateTime | - | 提交会诊日期 | YYYY-MM-DD HH:MM:SS | +| **Signature** | Text | 50 | 结束会诊医生 | 医生姓名 | +| **SignatureDate** | DateTime | - | 结束会诊日期 | YYYY-MM-DD HH:MM:SS | +| **cancelnatureDate** | DateTime | - | 作废会诊日期 | YYYY-MM-DD HH:MM:SS | +| InvitedObject | Text | 50 | 会诊邀请对象 | | + +**诊状态用于记录会诊申请在不同阶段的状态,以下是常见的会诊状态及其说明:** + + +| **状态名称** | **状态值** | **描述** | +| ------------ | ---------- | ---------------------------------------------------------------------- | +| **新开** | 0 | 会诊申请单已保存 | +| **已提交** | 10 | 会诊申请已提交,但尚未被会诊医生确认。 | +| **已确认** | 20 | 会诊医生已确认会诊申请,并准备进行会诊。 | +| **已签名** | 30 | 会诊完成后进行签名 | +| **已完成** | 40 | 会诊已经完成,会诊意见已记录。 | +| **已取消** | 50 | 会诊申请被取消,可能由于患者情况变化或其他原因,申请医生进行作废操作。 | + +**门诊医嘱表在相关会诊操作步骤的相关事务** + +把“门诊会诊申请”当成**一种特殊医嘱**(OrderType = 'Consult')由系统**在同一事务内**自动插入 门诊医嘱表,再挂到 `ConsultationRequest` **注意:按照现有系统的门诊医嘱表进行设置相关字段的值** + + +| **节点** | **是否自动** | **说明** | +| --------------------- | ------------ | --------------------------------------------------------------------------------------------------- | +| 医生点击【保存】 | ✅ | 后台事务:先插门诊医嘱表(医嘱状态为“新开”),再插`ConsultationRequest`.Status=0 | +| 医生点击【提交】 | ✅ | 仅更新两表状态 → 门诊医嘱表的医嘱状态和`ConsultationRequest.Status=10` (已提交),不重复生成医嘱 | +| 医生点击【作废/删除】 | ✅ | 自动将门诊医嘱表的医嘱状态字段置为“作废”,级联`ConsultationRequest.Status=50` | +| 医生点击【结束】 | ✅ | 将 门诊医嘱表的医嘱状态字段置为“已完成”,同时写`ConsultationRequest.Status=40` | + +### 六、开发实现要点 + +**样式规范**: + +- **主色调**:\#1890FF(操作按钮) +- **辅助色**:\#13C2C2(打印)、\#52C41A(保存)、\#FF4D4F(结束) +- **字体规范**:14px/1.5,中文字体优先使用"PingFang SC" +- **间距系统**:16px基准,表单行间距12px +- **组件样式**: + - 按钮:4px圆角,32px高度 + - 输入框:4px圆角,1px \#D9D9D9边框 + - 表格行:选中状态\#E6F7FF背景+左侧3px蓝色边框 + +**技术要求**: + +- **浏览器兼容**:支持Chrome/Firefox/Edge最新版 +- **性能要求**:表单提交响应时间\<1秒 + +**注意事项**: + +1. 时间字段需统一处理为YYYY-MM-DD HH:mm:ss格式 +2. 申请单号生成需加锁防止重复 +3. 移动端需优化表格横向滚动体验 +4. 打印功能需特殊样式处理(隐藏操作按钮)