From a2cbd5e5831d987f13ad7bbc27aa4d659478805e Mon Sep 17 00:00:00 2001 From: py <2901848092@qq.com> Date: Tue, 13 Jan 2026 17:00:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=EF=BC=9A=E7=A7=91=E5=AE=A4?= =?UTF-8?q?=E9=A2=84=E7=BA=A6=E5=B7=A5=E4=BD=9C=E6=97=B6=E9=97=B4=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DoctorStationChineseMedicalAppServiceImpl.java | 14 ++++++++++++++ .../components/diagnosis/diagnosis.vue | 13 +++++++------ .../components/diagnosis/diagnosislist.vue | 2 +- .../components/prescription/prescriptionlist.vue | 4 ++-- .../doctorstation/components/tcm/tcmAdvice.vue | 13 +++++++++++++ 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationChineseMedicalAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationChineseMedicalAppServiceImpl.java index 1a1a4154..2d098227 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationChineseMedicalAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationChineseMedicalAppServiceImpl.java @@ -401,6 +401,20 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation // 删除 List deleteList = medicineList.stream() .filter(e -> DbOpType.DELETE.getCode().equals(e.getDbOpType())).collect(Collectors.toList()); + + // 校验删除的医嘱是否已经收费 + List delRequestIdList = deleteList.stream().map(AdviceSaveDto::getRequestId).collect(Collectors.toList()); + if (!delRequestIdList.isEmpty()) { + List chargeItemList = iChargeItemService.getChargeItemInfoByReqId(delRequestIdList); + if (chargeItemList != null && !chargeItemList.isEmpty()) { + for (ChargeItem ci : chargeItemList) { + if (ChargeItemStatus.BILLED.getValue().equals(ci.getStatusEnum())) { + return R.fail("已收费的项目无法删除,请刷新页面后重试"); + } + } + } + } + for (AdviceSaveDto adviceSaveDto : deleteList) { iMedicationRequestService.removeById(adviceSaveDto.getRequestId()); // 删除已经产生的药品发放信息 diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue index 41f47bef..819f66e2 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue @@ -127,8 +127,8 @@
{ if (valid) { - // if (!allowAdd.value) { - // proxy.$modal.msgWarning('请先填写病历'); - // return; - // } + const maxSortNo = form.value.diagnosisList.length > 0 + ? Math.max(...form.value.diagnosisList.map(item => item.diagSrtNo || 0)) + : 0; + form.value.diagnosisList.push({ showPopover: false, name: undefined, @@ -491,6 +491,7 @@ function handleSaveDiagnosis() { return false; } else if (!form.value.diagnosisList.some((diagnosis) => diagnosis.maindiseFlag === 1)) { proxy.$modal.msgWarning('至少添加一条主诊断'); + return false; } else { // 保存前按排序号排序 form.value.diagnosisList.sort((a, b) => (a.diagSrtNo || 0) - (b.diagSrtNo || 0)); diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosislist.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosislist.vue index dd9add1a..0e9ff966 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosislist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosislist.vue @@ -38,7 +38,7 @@ watch( queryParams.value.searchKey = newValue; getList(); }, - { immdiate: true } + { immediate: true } ); getList(); diff --git a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue index 99501a64..91251430 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue @@ -2472,8 +2472,8 @@ function setValue(row) { ? (typeof row.skinTestFlag === 'number' ? row.skinTestFlag : (row.skinTestFlag ? 1 : 0)) : 0; - prescriptionList.value[targetIndex] = { - ...prescriptionList.value[targetIndex], + prescriptionList.value[rowIndex.value] = { + ...prescriptionList.value[rowIndex.value], ...JSON.parse(JSON.stringify(row)), // 确保adviceType为数字类型,避免类型不匹配导致的显示问题 adviceType: Number(row.adviceType), diff --git a/openhis-ui-vue3/src/views/doctorstation/components/tcm/tcmAdvice.vue b/openhis-ui-vue3/src/views/doctorstation/components/tcm/tcmAdvice.vue index 1d014f9b..c57ea4c9 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/tcm/tcmAdvice.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/tcm/tcmAdvice.vue @@ -775,6 +775,19 @@ function deletePrescription(prescription) { const index = tcmPrescriptionList.value.findIndex((p) => p.id === prescription.id); if (index !== -1) { + const prescriptionData = tcmPrescriptionList.value[index]; + + if (prescriptionData.prescriptionList && prescriptionData.prescriptionList.length > 0) { + proxy.$modal.msgWarning('该处方单还有药品,请先删除所有药品后再删除处方单'); + return; + } + + const hasChargedItems = prescriptionData.prescriptionList && prescriptionData.prescriptionList.some(item => item.statusEnum === 2); + if (hasChargedItems) { + proxy.$modal.msgWarning('该处方单已收费,不能删除'); + return; + } + tcmPrescriptionList.value.splice(index, 1); } }