Commit Graph

197 Commits

Author SHA1 Message Date
Ranyunqiao
193e4dbf38 bug 555 558 2026-05-29 09:55:14 +08:00
3af5dad895 fix(#594): 请修复 Bug #594:【住院医生工作站-临床医嘱】开立需皮试药物时系统未弹出皮试确认框,且医嘱输入行皮试字段置灰只读无法手动编辑
根因:
- **
- 住院医生工作站医嘱录入组件(`index.vue`)的 `selectAdviceBase()` 函数未检查药品的 `skinTestFlag` 字段,选择皮试药品后直接静默填充行数据,未弹出皮试确认弹窗
- 皮试列(`<el-table-column label="皮试">`)仅渲染只读文本 `{{ scope.row.skinTestFlag_enumText || '-' }}`,无任何可编辑组件
- `setValue()`、`getListInfo()`、`handleSaveSign()`、`handleSaveBatch()` 均未对 `skinTestFlag` 做类型归一化处理,导致 0/"0"/"false"/undefined 等类型混用

修复:
- **
- 文件:** `openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue`
- | # | 位置 | 变更内容 |
- |---|---|---|
- | 1 | 模板-皮试列 | `<span>` 只读文本 → 新增 `<el-checkbox v-else>` 可编辑复选框(`true-label=1`, `false-label=0`),编辑状态下医生可手动切换皮试标志 |
- | 2 | `getListInfo()` | 加载已保存医嘱时,从 `contentJson` 恢复 `skinTestFlag` 并归一化为数字类型 |
- | 3 | `selectAdviceBase()` | 选中药品后检测 `row.skinTestFlag == 1` → 弹出 `ElMessageBox.confirm` 对话框:"【皮试确认】当前药品是皮试药品,是否皮试?";[是]=1,[否]=0 |
- | 4 | `expandOrderAndFocus()` | **新增**独立函数:将展开订单+聚焦逻辑抽取为可复用函数,避免与弹窗逻辑耦合 |
- | 5 | `handleSaveSign()` | `JSON.stringify(row)` 前归一化 `skinTestFlag` 为数字类型 |
- | 6 | `handleSaveBatch()` | 批量保存时归一化 `skinTestFlag` 为数字类型 |
- | 7 | `setValue()` | 构建 `updatedRow` 时归一化 `skinTestFlag` 为数字类型 |
- 全链路覆盖(6 环验证):**
-  **录入**:选择皮试药品 → 弹窗确认(是/否)
-  **保存**:`handleSaveSign` + `handleSaveBatch` 均归一化 `skinTestFlag` 后写入 `contentJson`
-  **查询**:`getListInfo` 从 `contentJson` 恢复 `skinTestFlag`
-  **修改**:`setValue` 归一化,模板复选框可编辑
-  **删除/撤回**:原有删除逻辑 unaffected(`contentJson` 包含 `skinTestFlag`)
-  **关联模块**:不涉及其他模块(皮试字段仅在该页面交互)
2026-05-29 08:58:05 +08:00
893c0633d1 fix(#598): 请修复 Bug #598:【住院医生工作站-临床医嘱】临床医嘱列表缺少开嘱医生列,无法追溯责任医生
根因:
- **
- 住院医生工作站-临床医嘱列表(`order/index.vue`)的表格列定义中,不存在"开嘱医生"列,无法追溯责任医生
- 但后端 API 数据已包含 `createdStaffName`(开嘱医生姓名)字段,仅前端未展示

修复:
- **
- 在 `src/views/inpatientDoctor/home/components/order/index.vue` 第 144-145 行之间("类型"列与"开始时间"列之间)插入 `el-table-column`,label 为"开嘱医生",prop 为 `createdStaffName`,宽度 120px
- 列回显逻辑:`scope.row.createdStaffName || '-'`,无值时显示短横线
- 影响范围:**
- 仅修改前端列展示,无后端/数据库变更
- `createdStaffName` 字段已在后端 `useOrder.js` mock 数据和真实接口中存在
- 与"停嘱医生"列的 `stopUserName` 模式一致
2026-05-29 08:52:58 +08:00
31a1c742df fix(#581): 请修复 Bug #581:[一般] 【住院医生站-临床医嘱-手术】手术申请单缺失多项核心业务字段与强拦截逻辑,导致医疗安全制度无法落地且阻断手术室排班闭环
根因:
- Bug #请修复 Bug #581 存在的问题

修复:
- 问题 1 — 缺失 `state` 变量定义(运行时崩溃)**
- `defineExpose({ state, submit, ... })` 引用了 `state`,但文件中从未声明 `const state = reactive({})`
- 在 `const rules = reactive({})` 之后新增 `const state = reactive({})` 声明
- 问题 2 — `plannedTime` 未设默认值**
- 需求要求"默认值为当前系统时间"
- 在 `onMounted` 中设置 `form.plannedTime` 为当前时间的 `YYYY-MM-DD HH:mm` 格式
- ### 验证结果
- Lint 通过 
- Vite 生产构建成功 (无错误)
2026-05-29 02:46:45 +08:00
b36bf4e1be fix(#581): 请修复 Bug #581:[一般] 【住院医生站-临床医嘱-手术】手术申请单缺失多项核心业务字段与强拦截逻辑,导致医疗安全制度无法落地且阻断手术室排班闭环
根因:
- Bug #请修复 Bug #581 存在的问题

修复:
- 变更摘要
- ### 修改文件
- 1. `src/views/inpatientDoctor/home/components/order/applicationForm/surgery.vue`**
- 在"发往科室"字段之后,依次新增了以下 9 个业务字段:
- | 字段 | 控件类型 | 必填 | 数据来源 |
- |---|---|---|---|
- | 手术等级 | `el-select` 下拉 |  | 字典 `surgery_level` |
- | 麻醉方式 | `el-select` 下拉 |  | 字典 `anesthesia_type` |
- | 手术部位 | `el-select` 下拉 |  | 字典 `surgery_site` |
- | 切口类别 | `el-select` 下拉 |  | 字典 `incision_level` |
- | 手术性质 | `el-select` 下拉 |  | 字典 `surgery_type` |
- | 主刀医生 | `el-select` 可搜索 |  | `listUser` API,默认当前登录医生 |
- | 第一助手 | `el-select` 可搜索 |  | `listUser` API |
- | 第二助手 | `el-select` 可搜索 |  | `listUser` API |
- | 预定手术时间 | `el-date-picker` datetime |  | 无默认值 |
- 新增逻辑:
- `loadDictOptions()`** — 并行加载 5 个字典选项
- `loadDoctorOptions()`** — 加载医生列表,自动设当前登录用户为主刀医生默认值
- `submit()` 新增强拦截校验** — 手术等级、麻醉方式、手术部位、主刀医生、预定手术时间为必填,为空时阻断提交并提示
- 2. `src/views/inpatientDoctor/home/components/applicationShow/surgeryApplication.vue`**
- `labelMap` 新增 9 条标签映射,确保详情弹窗能正确显示新字段的中文标签。
- ### 全链路完整性
- 录入  前端弹窗增加输入控件
- 保存  通过 `descJson: JSON.stringify(form)` 序列化,后端无需改动
- 查询  详情展示组件新增 labelMap 映射
- 修改 ⏸ 申请单编辑功能不在本轮范围(后续迭代可复用 submit 逻辑)
- 删除  不影响
- 关联  门诊手术申请走独立 API,不共享 descJson,无需修改
- ### 验证
- `npm run lint` —  通过,无错误
2026-05-29 02:42:14 +08:00
6baac543c9 fix(#580): 请修复 Bug #580:[一般] [住院医生工作站-临床医嘱-手术] 手术申请单穿梭框组件非标:检索框溢出至卡片外部且检索机制存在“3字硬性限制”,需恢复
根因:
- Bug #请修复 Bug #580 存在的问题

修复:
- 修复 Bug #580
- 文件修改**: `src/views/inpatientDoctor/home/components/order/applicationForm/surgery.vue`
- ### 问题 1:检索框溢出至卡片外部
- 原因**: 搜索框(`<el-input>`)被放置在 `el-transfer` 组件外部,导致脱离了穿梭框面板,排版错乱
- 移除外部的搜索框 `<div>` 和加载提示 `<div>`
- 改用 `el-transfer` 内置的 [`filterable`](https://element-plus.org/zh-CN/component/transfer.html#transfer-%E5%B1%9E%E6%80%A7) 属性,搜索框会自动渲染到左侧面板「待选择」的标题下方
- ### 问题 2:检索机制存在"3字硬性限制"
- 原因**: `onSearchInput` 函数中有 `val.length >= 3` 的判断逻辑,少于 3 个字符不触发搜索
- 移除 `searchKey` ref、`searchDebounceTimer`、`onSearchInput` 函数
- 新增 `filterMethod` 函数,使用 `el-transfer` 的内置过滤机制,支持任意字符即时前端模糊匹配
- 占位提示改为 `"项目代码/名称"`
- 过滤逻辑:同时匹配项目名称(`label`)和项目 ID/代码(`key`),忽略大小写
- ### 验证
- `npm run lint` 通过 
- 模板/脚本/样式标签结构完整 
2026-05-29 02:36:11 +08:00
6e90c32736 fix(#577): 请修复 Bug #577:[一般] [住院医生工作站-检验] 检验申请单项目列表中的单价/使用单位展示异常,单位回显为字典数字ID(如 6, 16)而非中文
根因:
- JEECG/MyBatis-Plus 字典翻译插件的默认输出格式为 `{field}_dictText`(**下划线**格式),但代码中有 3 处使用了 `unitCodeDictText`(**驼峰**格式),导致字典翻译字段始终返回 `undefined`,回退显示了原始字典数字 ID(如 6、16)。

修复:
- | 文件 | 行号 | 修改前 | 修改后 |
- |---|---|---|---|
- | `laboratoryTests.vue` | 291, 415 | `item.unitCodeDictText` | `item.unitCode_dictText` (已有提交) |
- | `surgery.vue` | 202 | `item.unitCodeDictText` | `item.unitCode_dictText`  |
- | `medicalExaminations.vue` | 364 | `item.unitCodeDictText` | `item.unitCode_dictText`  |
- ### 全链路验证
- 展示**  — `el-transfer` 的 label 渲染现在能正确获取字典翻译中文名
- 搜索**  — 搜索逻辑中的单位生成也已同步修正
- 保存**  — `submit` 中的 `unitCode` 字段使用原始编码,不受影响
2026-05-29 02:16:20 +08:00
5b194948a1 fix(#577): 请修复 Bug #577:[一般] [住院医生工作站-检验] 检验申请单项目列表中的单价/使用单位展示异常,单位回显为字典数字ID(如 6, 16)而非中文
根因:
- JEECG/MyBatis-Plus 字典翻译插件的默认输出格式为 `{field}_dictText`(**下划线**格式),但 `laboratoryTests.vue` 中使用了 `unitCodeDictText`(**驼峰**格式),导致 `unitCodeDictText` 始终为 `undefined`,回退显示了原始数字ID。
- 对比证据:
- `bloodTransfusion.vue`(输血,展示正常):  `unitCode_dictText`
- `laboratoryTests.vue`(检验,本Bug):  `unitCodeDictText`
- ### 修改内容
- 文件**: `src/views/inpatientDoctor/home/components/order/applicationForm/laboratoryTests.vue`
- | 行号 | 修改前 | 修改后 |
- |------|--------|--------|
- | 291 | `item.unitCodeDictText` | `item.unitCode_dictText` |
- | 415 | `searchData.unitCodeDictText \|\| searchData.unitCode_dictText` | `searchData.unitCode_dictText` |
- 两处都修正为下划线格式 `unitCode_dictText`,与项目其他正常工作组件保持一致。
- ### 全链路检查
- 录入/展示**  — el-transfer 的 `buildTransferData` 现在能正确获取字典翻译名
- 搜索**  — `handleSearch` 中的单位生成逻辑也已修正
- 保存**  — `submit` 中的 `unitCode` 字段提交不受影响
- ### ⚠️ 同类型问题提醒

修复:
- 修改相关代码文件
2026-05-29 02:12:40 +08:00
cdd05cbe0e fix(#593): 请修复 Bug #593:【住院医生工作站-临床医嘱】长期医嘱模块缺失取消停嘱功能
根因:
- Bug #请修复 Bug #593 存在的问题

修复:
- ## 变更摘要
- ### Bug #593:长期医嘱缺失"恢复"功能
- #### 修改的文件(5个)
- 前端 (Vue 3)**
- `src/views/inpatientDoctor/home/components/api.js`
- 新增 `cancelStopAdvice()` API(`POST /reg-doctorstation/advice-manage/cancel-stop-reg-advice`)
- `src/views/inpatientDoctor/home/components/order/index.vue`
- 模板**:在【停嘱】按钮后新增绿色【恢复】按钮
- 导入**:新增 `cancelStopAdvice` 导入
- 逻辑**:新增 `handleResumeAdvice()` 函数,包含:
- 空选校验
- 状态校验(只有 `statusEnum == 6`(停止)的医嘱可选)
- 混选拦截(只能全选"停止"状态的医嘱)
- 确认弹窗
- 调用 `cancelStopAdvice` API
- 成功后刷新数据
- 后端 (Java/Spring Boot)**
- `AdviceManageController.java`
- 新增 `POST /cancel-stop-reg-advice` 端点
- `IAdviceManageAppService.java`
- 新增 `cancelStopRegAdvice()` 接口方法
- `AdviceManageAppServiceImpl.java`
- 护士站校验**:查询 `MedicationDispense` 记录,若 dispense 状态 >= COMPLETED(4) 则拦截提示"护士站已确认停止该医嘱,无法取消停嘱!"
- 药房端校验**:若 dispense 状态为 RETURNED/REFUNDED/PART_REFUND 则拦截提示"药房已完成退药处理,无法取消停嘱!"
- 执行恢复**:将 `MedicationRequest.statusEnum` 恢复为 ACTIVE(2),清空 `effectiveDoseEnd`,将待退药/停止的 dispense 记录恢复为草稿/待配药状态
- 诊疗类医嘱同理恢复 `ServiceRequest` 状态
- #### 验证结果
-  后端编译通过
-  前端 lint 通过(无新增错误)
2026-05-29 00:53:03 +08:00
3e7d27ee61 fix(#591): 请修复 Bug #591:【住院医生站-临床医嘱】长期医嘱点击停嘱未弹出时间录入弹窗
根因:
- Bug #请修复 Bug #591 存在的问题

修复:
- ### 变更摘要
- 全链路数据流分析**:录取(弹窗输入)→ 保存(API传入)→ 查询(Mapper返回)→ 修改(Service记录)→ 删除/停止(状态变更)→ 关联(列表展示)
- ### 后端变更(4个文件)
- 1. `AdviceBatchOpParam.java`** — 停嘱参数添加 `stopTime` 字段
- 新增 `@JsonFormat Date stopTime`,支持前端传入停嘱时间
- 2. `RequestBaseDto.java`** — 查询DTO添加 `stopUserName`、`stopTime` 字段
- 新增 `String stopUserName`(停嘱医生姓名)
- 新增 `Date stopTime`(停嘱时间)
- 3. `AdviceManageAppServiceImpl.java`** — 停嘱Service增强
- 优先使用前端传入的 `stopTime`,兜底用当前时间
- 通过 `SecurityUtils.getNickName()` 获取当前操作用户昵称,记录到 `updateBy`
- 药品和诊疗两个更新入口均已同步修改
- 4. `AdviceManageAppMapper.xml`** — 三个UNION ALL子查询添加字段
- 药品子查询:`T1.effective_dose_end AS stop_time` + `T1.update_by AS stop_user_name`
- 耗材子查询:`NULL AS stop_time` + `'' AS stop_user_name`
- 诊疗子查询:`T1.occurrence_end_time AS stop_time` + `T1.update_by AS stop_user_name`
- ### 前端变更(1个文件)
- `order/index.vue`**:
- 1. **停嘱时间弹窗** — 点击「停嘱」后弹出 `el-dialog`,内含 `el-date-picker`(datetime类型,默认当前时间),确定后才调用API
- 2. **表格列** — 在「皮试」列后面、「诊断」列前面新增两列:
- 「停嘱医生」`prop="stopUserName"`,宽度120px
- 「停嘱时间」`prop="stopTime"`,宽度170px
- 3. **`handleStopAdvice`** — 保留原有校验(未保存/未签发/已停止检查),校验通过后弹出时间选择弹窗而非直接调API
- 4. **`confirmStopAdvice`** — 新增确认函数,将 `stopTime` 拼入请求参数后调用 `stopAdvice` API
- ### 验证结果
-  前端 Lint 检查通过(仅1个预存的 `vue/no-dupe-keys` 警告)
-  后端 Maven 编译通过(BUILD SUCCESS)
2026-05-29 00:39:28 +08:00
ac26ac11ce fix(#589): 请修复 Bug #589:[住院医生工作站-临床医嘱] 功能缺失与增加交互:缺少出院带药医嘱类型
根因:
- Bug #请修复 Bug #589 存在的问题

修复:
- ### 修改文件(3个)
- | `index.vue` | +67/-12 | 添加出院带药类型、强制临时锁定、保存映射、数据加载识别 |
- **1. 类型添加** — `adviceTypeList` 中新增 `{ label: '出院带药', value: 7, adviceType: 7 }`
2026-05-29 00:20:31 +08:00
c399ef0853 fix(#587): 请修复 Bug #587:[住院医生工作站-临床医嘱] 重大功能缺失:新增展示医嘱时缺少开始时间字段
根因:
- Bug #请修复 Bug #587 存在的问题

修复:
- ### 变更摘要
- #### 后端(Java)— 6 个文件修改
- 1. `openhis-server-new/.../dto/RequestBaseDto.java`**
- 新增 `startTime` 字段(`Date` 类型,`yyyy-MM-dd HH:mm:ss` 格式),使医嘱列表查询能返回开始时间
- 2. `openhis-server-new/.../dto/AdviceSaveDto.java`**
- 新增 `startTime` 字段(`Date` 类型),支持每条医嘱独立传入开始时间
- 3. `openhis-server-new/.../mapper/regdoctorstation/AdviceManageAppMapper.xml`**
- 三个 UNION ALL 子查询各新增一列:
- 药品(`advice_type=1`):`T1.effective_dose_start AS start_time`
- 耗材(`advice_type=2`):`T1.req_authored_time AS start_time`
- 诊疗/手术(`advice_type=3/6`):`T1.occurrence_start_time AS start_time`
- 4. `openhis-server-new/.../appservice/impl/AdviceManageAppServiceImpl.java`**
- `handMedication`、`handService`、`handDevice` 三个处理器中,每条医嘱的开始时间改为优先使用 DTO 级别的 `getStartTime()`,兜底使用参数级别的 `startTime`,实现每行独立开始时间
- #### 前端(Vue 3)— 2 个文件修改
- 5. `src/views/inpatientDoctor/home/components/order/index.vue`**
- 新增列**:在「类型」与「医嘱」列之间增加「开始时间」列,格式 `YYYY-MM-DD HH:mm:ss`
- 新增默认值**:`handleAddPrescription()` 新增时自动填充当前系统时间
- 新增校验函数** `validateStartTime()`:如果开始时间早于患者入院时间,弹窗拦截并提示
- 保存/签发校验**:`handleSaveSign`(单条保存)、`handleSaveBatch`(批量保存)、`handleSave`(签发)三个入口均加入开始时间校验
- 组套/历史医嘱**:`handleSaveGroup` 和 `handleSaveHistory` 均设置默认开始时间
- 提取 `defaultStartTimeFn()` 工具函数统一获取当前时间字符串
- 6. `src/views/inpatientDoctor/home/components/order/OrderForm.vue`**
- 三种医嘱类型(药品 `adviceType==1`、耗材 `adviceType==2`、诊疗 `v-else`)的编辑面板首行均新增「开始时间」`el-date-picker` 日期时间选择器
- 格式:`YYYY-MM-DD HH:mm:ss`,支持手动选择与键盘输入
- ### 全链路验证
- | 环节 | 状态 |
- |---|---|
- | **录入** → 编辑面板新增日期选择器 |  |
- | **保存** → 前端→API→Service→Entity→DB,逐行传递 startTime |  |
- | **查询** → DB→Mapper XML(3个UNION ALL)→DTO→前端展示 |  |
- | **修改** → 编辑回显 startTime → 修改再保存 |  |
- | **校验** → 早于入院时间拦截弹窗 |  |
- | **编译** → Java `mvn compile` 通过 |  |
- ### 注意事项
- 后端 `NurseBillingAppService`(护士划价)也有医嘱保存逻辑,但此 Bug 聚焦于住院医生工作站,护士站划价未做批量修改,如需同步可另行处理
2026-05-29 00:02:56 +08:00
7466160008 fix(#586): 请修复 Bug #586:[住院医生工作站-手术申请] 手术申请历史列表缺少过滤筛选区
根因:
- 手术申请历史列表的查询 API `/reg-doctorstation/request-form/get-surgery` 和前端组件均未实现筛选过滤功能。
- ### 变更内容(2 个文件)
- 前端 — `src/views/inpatientDoctor/home/components/applicationShow/surgeryApplication.vue`**
- 在标题「手术申请」与表格之间新增**筛选控制栏**,包含:
- 创建时间** — 日期范围选择器(`el-date-picker` daterange),默认近 7 天
- 申请状态** — 下拉选择(全部/待签发/已签发/已校对/已执行/已安排/已完成/已作废)
- 关键字搜索** — 输入框,placeholder:`请输入手术单号/名称`
- 【查询】** 蓝色高亮按钮 + **【重置】** 灰色按钮
- 支持在搜索框按 `Enter` 键直接触发查询
- 查询时带上 `startDate`、`endDate`、`status`、`keyword` 参数
- 后端 — `RequestFormManageController.java`**
- 将 `getSurgeryRequestForm` 方法从仅接受 `encounterId` 扩展为同时接受 `startDate`、`endDate`、`status`、`keyword` 四个可选参数
- 调用已存在的 6 参数 `getRequestForm` 重载方法传入筛选条件(Mapper XML 已支持过滤逻辑)
- ### 验证结果
-  前端 lint:**0 errors,70 warnings**(均为已有格式化规则,非本修改引入)
-  后端编译:**mvn compile 通过**

修复:
- 修改相关代码文件
2026-05-28 23:47:18 +08:00
2e267b4353 feat: Bug #597 - 新增医嘱弹窗添加备注字段 + 查询返回remark 2026-05-28 11:24:59 +08:00
fbdcd815bd feat: Bug #597 - 住院医嘱增加备注字段 2026-05-28 11:00:41 +08:00
9db5ced4e3 Revert "Fix Bug #550: AI修复"
This reverts commit 16c42ca108.
2026-05-27 08:59:07 +08:00
16c42ca108 Fix Bug #550: AI修复 2026-05-27 03:00:08 +08:00
Ranyunqiao
5132de3680 bug 445 497 565 2026-05-25 15:49:49 +08:00
310847eae4 Fix Bug #571: 修复检验申请撤回时双重错误提示
根因:响应拦截器已对非200响应(code=500等)显示ElMessage错误提示,
但handleWithdraw的catch块再次调用proxy.$modal.msgError显示相同错误,
导致用户看到两个红色错误弹窗。

修复:将handleWithdraw和handleDelete的catch块改为静默处理,
与examineApplication.vue的handleRecall模式一致——响应拦截器已统一处理错误提示。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 12:37:27 +08:00
4c462e00db Fix Bug #568: 修复门诊日结页面排版混乱问题
根因:费用明细最后一行使用cols-3导致与上面cols-4行不对齐
修复:统一使用cols-4网格布局,对需要占两列的项使用span-2

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 10:56:36 +08:00
50f1013391 Fix Bug #571: 修复检验申请撤回操作模板逻辑错误
问题:已签发状态的检验申请点击撤回时触发错误提示
根因:模板中 v-if/v-else-if 链结构错误,isReportStatus 作为 canManageRow 的
else-if 分支,导致权限校验和状态判断互相干扰,撤回按钮显示逻辑异常
修复:将嵌套的 v-if/v-else-if 改为独立的 v-if 块,每个按钮的显示条件独立判断

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 10:50:24 +08:00
80cc0e4fa2 Fix Bug #571: 修复检验申请撤回操作权限问题 - 移除非权限用户的撤回按钮
问题:非申请者本人点击撤回按钮时,后端权限校验失败导致报错
原因:模板中 isIssuedStatus 分支对所有用户显示撤回按钮,但后端会校验权限
修复:移除非权限用户(canManageRow为false)的撤回按钮,只保留详情按钮

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 10:34:41 +08:00
4f6df9017a Fix Bug #571: 添加缺失的 isIssuedStatus 函数定义,修复检验申请撤回操作报错
模板中使用了 isIssuedStatus() 但脚本中未定义该函数,导致已签发状态的检验申请
在非申请者本人账号下查看时触发 ReferenceError,撤回按钮无法正常显示和操作。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 10:19:03 +08:00
bcc2f490a0 bug550\556569 2026-05-21 17:40:26 +08:00
Ranyunqiao
966e4f6544 497【住院医生工作站-检查申请】检查申请列表缺失“申请单状态”列及全流程闭环状态流转逻辑
523 [住院医生站-临床医嘱] 待保存医嘱总金额显示缺失且编辑态单位选择框变为数字控件
560 [住院医生站-检验申请] “已签发”状态的申请单在操作列缺失“详情”查看按钮
563 [住院医生站-临床医嘱-手术] 打开手术申请单弹窗时出现异常,功能无法使用
2026-05-21 17:06:09 +08:00
ed7e4bbeb3 bug469 2026-05-20 13:47:36 +08:00
1e77c0756b Fix Bug #559: 根因+修复方案摘要 2026-05-20 11:08:03 +08:00
Ranyunqiao
3e89cb7977 Merge remote-tracking branch 'origin/develop' into develop 2026-05-20 11:05:03 +08:00
Ranyunqiao
62c5674233 bug 555 558 2026-05-20 11:04:33 +08:00
41948c0bcd Fix Bug #559: 根因+修复方案摘要 2026-05-20 11:02:41 +08:00
2db79e3ac9 Fix Bug #559: 住院医生站-临床医嘱 组套功能添加医嘱后新增医嘱置顶显示
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 10:15:39 +08:00
wangjian963
232a0db810 Merge remote-tracking branch 'origin/develop' into develop 2026-05-20 09:46:29 +08:00
wangjian963
3394aa54d7 549【住院医生站-临床医嘱-检验】打开“检验申请单”弹窗获取项目列表响应极其缓慢
546 【患者管理】-【患者列表】-【新增患者】,新增患者,保存成功,但没有数据
536 [门诊手术安排]“手术申请查询”弹窗底部,分页组件与界底部元素重叠,影响操作。
2026-05-20 09:45:33 +08:00
3bf7e04a04 Fix Bug #469: 根因+修复方案摘要 2026-05-19 16:10:13 +08:00
f274ebaf5c Fix Bug #478: 住院医生工作站检验申请详情「发往科室」显示为- — 根因:getLocationInfo 未对科室ID做类型归一化,recursionFun 中 item.id == targetDepartment 在类型不一致时匹配失败;修复:新增 normalizeOrgTreeIds 统一转 String,recursionFun 改用 String(item.id) === String(targetDepartment)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 15:09:23 +08:00
Ranyunqiao
c28b322e91 bug 443 444 445 478 494 521 2026-05-19 14:22:40 +08:00
05e7d54d87 Fix Bug #552: 双击待保存医嘱编辑保存后不应自动添加空医嘱 — 根因:handleSaveSign 中自动添加空行的条件缺少 isAdding.value 判断,导致双击编辑已有待保存医嘱也会触发 handleAddPrescription()
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 14:06:33 +08:00
a91ee66368 bug446,468,541,548 2026-05-19 11:59:55 +08:00
798c5e19e2 Fix Bug #548: 发往科室字段未能正确回显 — 编辑初始化时 transferValue 变化触发 projectWithDepartment 清空 form.targetDepartment,已加 isInitializing 标志拦截
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 09:00:15 +08:00
Ranyunqiao
0e974129eb bug 514 537 538 540 543 2026-05-18 17:44:15 +08:00
ea5da8d2bc fix bug529 2026-05-18 16:02:40 +08:00
549d2529bc Fix Bug #541: 待签发医嘱双击无法打开编辑界面 — 根因:clickRowDb函数中条件row.statusEnum == 1 && !row.requestId只允许"待保存"医嘱编辑,错误排除了"待签发"医嘱;修复:改为row.statusEnum == 1,允许statusEnum=1的所有医嘱(待保存+待签发)双击进入编辑模式,保存时handleSaveSign已通过requestId/dbOpType=2正确处理更新逻辑
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 13:34:27 +08:00
3a97f5ce02 Fix Bug #540: 检查申请详情弹窗"申请单描述"区域缺少临床必要信息显示 — 根因:详情弹窗中"申请单描述"区域使用固定orderedDescFieldKeys遍历+空值过滤(v-if descJsonData[key] !== ''),导致字段值为空时整行不显示;修复:改为与检验申请一致的遍历方式,遍历descJsonData所有key并通过isFieldMatched过滤,空值显示为'-'而非隐藏
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-18 13:29:40 +08:00
f72bee6c95 Fix Bug #529: [住院医生工作站-检验申请] 点击修改打开编辑弹窗后原已选中的项目未回显
根因:时序竞态——editData watch (immediate: true) 在 applicationListAll 加载完成前触发,
匹配不到数据导致 transferValue 被置空。新增 watch 监听 applicationListAll 加载完成后重新回显。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 11:03:25 +08:00
Ranyunqiao
58e391bd2c bug 443 522 523 2026-05-18 10:16:57 +08:00
dbe9fdadc1 Fix Bug #520: [住院医生工作站-检验申请] 检验申请列表点击详情按钮界面无响应
根因:getLocationInfo() 缺少 try-catch,当 getDepartmentList() API 失败时,
未捕获的异常向上传播导致 handleViewDetail 在设置 detailDialogVisible=true 前终止,
详情弹窗永远无法打开。

修复:为 getLocationInfo() 添加 try-catch 错误处理,API 失败时降级为空数组,
确保 handleViewDetail 的后续代码(设置 currentDetail 和打开弹窗)能正常执行。
与 examineApplication.vue 的已有修复保持一致。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 09:16:13 +08:00
01da7b942a Fix Bug #523: [住院医生站-临床医嘱] 修复待保存医嘱总金额显示缺失及编辑态单位选择框类型异常
根因:setValue() 中药品分支未初始化 totalPrice;unitCode/minUnitCode 未转 String 导致 el-select 类型不匹配
修复:选药后立即计算 totalPrice;所有单位值统一 String() 转换

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 09:10:17 +08:00
bfe544cfb3 Fix Bug #537: [住院医生工作站] 清理已屏蔽的汇总发药申请组件死代码
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 00:08:53 +08:00
37963dde1d Fix Bug #528: [住院医生工作站-检查申请] 修改申请单成功后弹窗自动关闭且列表自动刷新 - 调整submit函数中emits('submitOk')与resetForm()的执行顺序,确保先通知父组件关闭弹窗再重置表单状态
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:11:23 +08:00
327b750c6e Fix Bug #478: 修复检验申请详情"发往科室"字段回显为"-"的问题
根因:testApplication.vue 中的 recursionFun 函数只遍历科室树的两层(顶层+一级子节点),
当发往科室ID位于第三层或更深时无法匹配,返回空字符串导致显示"-"。
修复:改为递归遍历整棵科室树,确保任意深度的科室节点都能正确解析为名称。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:08:29 +08:00