From 0b179fffd67c4b3d381ec74e5acf84f146b461ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E9=94=A6=E6=B6=9B?= <26050301730@qq.com> Date: Wed, 29 Oct 2025 16:50:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=8A=E6=96=AD=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/diagnosis/diagnosis.vue | 59 +++++++++++++++---- 1 file changed, 49 insertions(+), 10 deletions(-) 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 a64571c9..7d9c1246 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue @@ -99,7 +99,7 @@ > (a.diagSrtNo || 0) - (b.diagSrtNo || 0)); + emits('diagnosisSave', false); console.log(form.value.diagnosisList); } @@ -320,6 +324,11 @@ function handleImport() { // 获取患者慢性病信息 getChronicDisease({ encounterId: props.patientInfo.encounterId }).then((res) => { if (res.data && res.data.length > 0) { + // 计算现有最大排序号 + const maxSortNo = form.value.diagnosisList.length > 0 + ? Math.max(...form.value.diagnosisList.map(item => item.diagSrtNo || 0)) + : 0; + res.data.forEach((item, index) => { form.value.diagnosisList.push({ ...item, @@ -327,7 +336,7 @@ function handleImport() { medTypeCode: '140104', verificationStatusEnum: 4, definitionId: item.id, - diagSrtNo: form.value.diagnosisList.length + 1, + diagSrtNo: maxSortNo + index + 1, iptDiseTypeCode: 2, diagnosisDesc: '', diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name, @@ -335,6 +344,10 @@ function handleImport() { }, }); }); + + // 导入完成后按排序号排序 + form.value.diagnosisList.sort((a, b) => (a.diagSrtNo || 0) - (b.diagSrtNo || 0)); + emits('diagnosisSave', false); } }); } @@ -417,17 +430,26 @@ function handleAddDiagnosis() { 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, verificationStatusEnum: 4, medTypeCode: '11', - diagSrtNo: form.value.diagnosisList.length + 1, + diagSrtNo: maxSortNo + 1, iptDiseTypeCode: 2, diagnosisDesc: '', diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name, diagnosisTime: new Date().toLocaleString('zh-CN') }); + + // 添加后按排序号排序 + form.value.diagnosisList.sort((a, b) => (a.diagSrtNo || 0) - (b.diagSrtNo || 0)); + if (form.value.diagnosisList.length == 1) { form.value.diagnosisList[0].maindiseFlag = 1; } @@ -445,12 +467,17 @@ function handleAddTcmDiagonsis() { */ function handleDeleteDiagnosis(row, index) { if (row.conditionId) { - delEncounterDiagnosis(row.conditionId).then(() => { - getList(); - getTree(); + delEncounterDiagnosis({ conditionId: row.conditionId }).then((res) => { + if (res.code == 200) { + proxy.$modal.msgSuccess('删除成功'); + getList(); + getTree(); + } }); } else { form.value.diagnosisList.splice(index, 1); + // 删除后不重新计算排序号,保持用户设置的排序不变 + emits('diagnosisSave', false); } } @@ -458,7 +485,6 @@ function handleMaindise(value, index) { if (value == 1) { let flag = 0; form.value.diagnosisList.forEach((item) => { - console.log(item); if (item.maindiseFlag == 1) { flag++; } @@ -482,6 +508,9 @@ function handleSaveDiagnosis() { } else if (!form.value.diagnosisList.some((diagnosis) => diagnosis.maindiseFlag === 1)) { proxy.$modal.msgWarning('至少添加一条主诊断'); } else { + // 保存前按排序号排序 + form.value.diagnosisList.sort((a, b) => (a.diagSrtNo || 0) - (b.diagSrtNo || 0)); + saveDiagnosis({ patientId: props.patientInfo.patientId, encounterId: props.patientInfo.encounterId, @@ -491,7 +520,7 @@ function handleSaveDiagnosis() { getTree(); getList(); emits('diagnosisSave', false); - proxy.$modal.msgSuccess('诊断已保存'); + proxy.$modal.msgSuccess('诊断已保存并按排序号排序'); //食源性疾病病例数据智能采集 ---START--- isFoodDiseasesNew({ encounterId: props.patientInfo.encounterId, @@ -566,16 +595,26 @@ function handleNodeClick(data) { 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({ ybNo: data.ybNo, name: data.name, verificationStatusEnum: 4, medTypeCode: '11', - diagSrtNo: form.value.diagnosisList.length + 1, + diagSrtNo: maxSortNo + 1, definitionId: data.definitionId, diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name, diagnosisTime: new Date().toLocaleString('zh-CN') }); + + // 添加后按排序号排序 + form.value.diagnosisList.sort((a, b) => (a.diagSrtNo || 0) - (b.diagSrtNo || 0)); + if (form.value.diagnosisList.length == 1) { form.value.diagnosisList[0].maindiseFlag = 1; }