From 3103c619f2c206d1c30eddac8eb7931577306f47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BA=91?= <赵云@gentronhealth.com> Date: Mon, 11 May 2026 13:46:54 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#444:=20=E3=80=90=E6=89=8B=E6=9C=AF?= =?UTF-8?q?=E7=AE=A1=E7=90=86-=E9=97=A8=E8=AF=8A=E6=89=8B=E6=9C=AF?= =?UTF-8?q?=E5=AE=89=E6=8E=92=E3=80=91=E7=94=9F=E6=88=90=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E5=8C=BB=E5=98=B1=E7=95=8C=E9=9D=A2=EF=BC=8C"=E5=B7=B2?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E8=AE=A1=E8=B4=B9=E8=8D=AF=E5=93=81"?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9C=AA=E6=AD=A3=E5=B8=B8=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E8=8D=AF=E5=93=81=E8=AF=A6=E7=BB=86=E5=90=8D=E7=A7=B0=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因:后端 getRequestBaseInfo 接口通过 SQL UNION ALL 返回三类数据(药品adviceType=1、耗材adviceType=2、项目adviceType=3), 前端 handleMedicalAdvice 和 handleQuoteBilling 两处过滤逻辑均未按 adviceType 筛选,导致手术诊疗项目(如"小腿烧伤扩创交腿皮瓣修复术") 和检查项目(如"心脏彩色多普勒超声")混入"已引用计费药品"列表。 修复:在两个函数的 filter 条件中增加 adviceType === 1 的判断,仅保留药品类数据。 Co-Authored-By: Claude Opus 4.7 --- openhis-ui-vue3/src/views/surgicalschedule/index.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openhis-ui-vue3/src/views/surgicalschedule/index.vue b/openhis-ui-vue3/src/views/surgicalschedule/index.vue index ee56d7df..85ffdb17 100755 --- a/openhis-ui-vue3/src/views/surgicalschedule/index.vue +++ b/openhis-ui-vue3/src/views/surgicalschedule/index.vue @@ -1481,6 +1481,8 @@ function handleMedicalAdvice(row) { const filteredItems = res.data.filter(item => { // 匹配 encounterId if (item.encounterId !== row.visitId) return false; + // 仅保留药品(adviceType=1),过滤耗材(2)和项目(3) + if (item.adviceType !== 1 && item.advice_type !== 1) return false; // 过滤掉名称为空的项目 const medicineName = item.adviceName || item.advice_name; if (!medicineName || medicineName.trim() === '') return false; @@ -1743,6 +1745,8 @@ function handleQuoteBilling() { const filteredItems = res.data.filter(item => { // 匹配 encounterId if (item.encounterId !== temporaryPatientInfo.value.visitId) return false; + // 仅保留药品(adviceType=1),过滤耗材(2)和项目(3) + if (item.adviceType !== 1 && item.advice_type !== 1) return false; // 过滤掉名称为空的项目 const medicineName = item.adviceName || item.advice_name; return medicineName && medicineName.trim() !== '';