## 门诊医生站开立会诊申请单界面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. 打印功能需特殊样式处理(隐藏操作按钮)