# Bug #731 诸葛亮分析报告 > **文档类型**: Bug分析 > **分析时间**: 2026-06-13 00:39:06 > **分析模型**: mimo-v2.5 (LLM深度分析) --- ## 基本信息 - **Bug #**: 731 - **标题**: 【临床医嘱-转科】转科申请成功后主界面未自动刷新,且生成的医嘱名称与科室数据错误 - **模块**: 住院医生工作站 - **提出人**: 陈显精 --- Now I have a complete picture. Here's my analysis: --- ## Bug #731 分析报告 ### 一、Bug 理解 **禅道标题**:【临床医嘱-转科】转科申请成功后主界面未自动刷新,且生成的医嘱名称与科室数据错误 **重现步骤**: 1. 登录住院医生工作站,选择在科患者(如:002,当前科室:呼吸内科病房) 2. 进入"临床医嘱"页面,点击【转科】唤起申请弹窗 3. 选择"转入科室"为【临床心理科】,"转入病区"为【第二病区】,填写原因后点击【确认】 4. 弹窗关闭且提示"转科申请已提交"后,观察医嘱列表状态 5. 手动点击【刷新数据】按钮后,核对自动生成的转科医嘱 **期望结果**: 1. 提交成功后自动刷新医嘱列表 2. 医嘱名称应为"转科-临床心理科" 3. 药房/科室应为患者当前科室"呼吸内科病房" **实际结果**: 1. 未自动刷新,需手动点击"刷新数据"按钮 2. 医嘱名称仅为"转科",缺少转入科室名 3. 药房/科室显示为"信息科"(系统管理科室),完全错误 --- ### 二、根因分析 本 Bug 包含 **3 个独立问题**,根因分布在前端和后端: #### 问题1:未自动刷新 **根因**:前端 `transferOrganizationDialog.vue` 在成功提交后没有 `emit('success')`,且父组件 `order/index.vue` 没有给该对话框绑定 `@success` 处理函数。 对比已正常工作的出院对话框 `leaveHospitalDialog.vue`: - 出院对话框有 `emit('success')` 调用 - 父组件有 `@success="handleLeaveHospitalSuccess"` → `getListInfo(false)` 刷新列表 - 转科对话框两处都缺失 **涉及文件**: - `healthlink-his-ui/src/views/inpatientDoctor/home/components/order/applicationForm/transferOrganizationDialog.vue`(第149行附近 `submitApplicationForm`) - `healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue`(第673行 ``) #### 问题2:医嘱名称仅为"转科" **根因**:后端 `SpecialAdviceAppServiceImpl.saveTransferOrganizationOrders()` 中,`ServiceRequest` 的名称使用了诊疗目录定义的默认名称"转科"(来自 `CommonConstants.BusinessName.TRANSFER_ORGANIZATION = "转科"`),没有拼接转入科室名称。 **涉及文件**: - `healthlink-his-server/.../regdoctorstation/appservice/impl/SpecialAdviceAppServiceImpl.java`(`saveTransferOrganizationOrders` 方法,约第300行) #### 问题3:药房/科室显示为"信息科" **根因**:后端 `saveTransferOrganizationOrders()` 中设置了 `serviceRequest.setOrgId(activityAdviceBaseDto.getPositionId())`,其中 `activityAdviceBaseDto` 是从诊疗目录(activity definition)获取的默认数据,其 `positionId` 对应的科室是"信息科"(转科医嘱定义的默认归属科室),而非患者当前所在科室。 对比出院医嘱 `saveLeaveHospitalOrders()` 使用了 `activityAdviceBaseDto.getPositionId()` 但出院医嘱没有这个问题(因为出院后不需要药房/科室归属)。转科医嘱需要显示的是**患者当前所在的科室**(转出科室)。 前端 `patientInfo` store 中有 `inHospitalOrgId`(入科科室ID),但后端 `TransferOrganizationParam` 没有传入原科室参数。 **涉及文件**: - `healthlink-his-server/.../regdoctorstation/appservice/impl/SpecialAdviceAppServiceImpl.java`(`saveTransferOrganizationOrders` 方法) - `healthlink-his-server/.../regdoctorstation/dto/TransferOrganizationParam.java`(缺少 `originalOrganizationId` 字段) - `healthlink-his-ui/.../order/applicationForm/transferOrganizationDialog.vue`(未传入原科室参数) --- ### 三、修复方案 #### 修复1:自动刷新 **文件**:`transferOrganizationDialog.vue` ```diff // 在