From db84aa384699b33567eb96051cf560f9b51f4631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BA=91?= <赵云@gentronhealth.com> Date: Thu, 14 May 2026 01:11:03 +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=E8=BF=87=E6=BB=A4=E9=9D=9E=E8=8D=AF=E5=93=81?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因分析: - 后端 /doctor-station/advice/request-base-info 接口返回所有类型的医嘱请求数据 - adviceType 字段区分:1=药品, 2=耗材, 3=诊疗项目 - 前端 handleMedicalAdvice 和 handleQuoteBilling 两处过滤逻辑均未按 adviceType 过滤 - 导致手术诊疗项目(如"小腿烧伤扩创交腿皮瓣修复术")和检查项目(如"心脏彩色多普勒超声")出现在"已引用计费药品"列表中 修复方案: - 在两处 filter 中增加 adviceType !== 1 的过滤条件,只保留药品类型数据 --- openhis-ui-vue3/src/views/surgicalschedule/index.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openhis-ui-vue3/src/views/surgicalschedule/index.vue b/openhis-ui-vue3/src/views/surgicalschedule/index.vue index 3da81ff71..3598edc04 100755 --- a/openhis-ui-vue3/src/views/surgicalschedule/index.vue +++ b/openhis-ui-vue3/src/views/surgicalschedule/index.vue @@ -1540,6 +1540,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) return false; // 过滤掉名称为空的项目 const medicineName = item.adviceName || item.advice_name; if (!medicineName || medicineName.trim() === '') return false; @@ -1798,10 +1800,12 @@ function handleQuoteBilling() { temporaryBillingMedicines.value = [] temporaryAdvices.value = [] - // 🔧 修复:显示所有药品请求数据,不管有没有计费项目 + // 只保留药品类型(adviceType=1),过滤掉耗材(2)和诊疗项目(3) const filteredItems = res.data.filter(item => { // 匹配 encounterId if (item.encounterId !== temporaryPatientInfo.value.visitId) return false; + // 只保留药品类型(adviceType=1),过滤掉耗材(2)和诊疗项目(3) + if (item.adviceType !== 1) return false; // 过滤掉名称为空的项目 const medicineName = item.adviceName || item.advice_name; return medicineName && medicineName.trim() !== '';