From 474aa894fdb35ceeb449f5f7d0ae05f68bba961d Mon Sep 17 00:00:00 2001 From: xiaoming <13564692840@163.com> Date: Wed, 20 May 2026 17:35:26 +0800 Subject: [PATCH] =?UTF-8?q?bug519=20[=E9=97=A8=E8=AF=8A=E5=8C=BB=E7=94=9F?= =?UTF-8?q?=E7=AB=99-=E8=AF=8A=E6=96=AD-=E6=8A=A5=E5=8D=A1]=20=E5=B7=B2?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BC=A0=E6=9F=93=E7=97=85=E6=8A=A5=E5=8D=A1?= =?UTF-8?q?=E7=9A=84=E8=AF=8A=E6=96=AD=E5=9C=A8=E5=86=8D=E6=AC=A1=E7=82=B9?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=97=B6=E9=87=8D=E5=A4=8D=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E6=8A=A5=E5=8D=A1=E7=95=8C=E9=9D=A2=20=20Number()=E5=AF=BC?= =?UTF-8?q?=E8=87=B4conditionId=E7=B2=BE=E5=BA=A6=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=EF=BC=8CconditionId=E7=8E=B0=E5=9C=A8=E4=BC=9A=E5=9C=A8?= =?UTF-8?q?=E6=89=80=E6=9C=89=E4=BC=A0=E6=9F=93=E7=97=85=E8=AF=8A=E6=96=AD?= =?UTF-8?q?=E4=B8=AD=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/diagnosis/diagnosis.vue | 22 +++++++++++-------- .../infectiousDiseaseReportDialog.vue | 2 +- 2 files changed, 14 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 33fdbe8a..093f3beb 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue @@ -749,22 +749,26 @@ function handleInfectiousDiseaseReport() { '手足口病': '0311', }; - // 获取所有诊断名称对应的报卡编码,但跳过已有已提交报卡的诊断 - const allSelectedDiseases = form.value.diagnosisList - .filter(d => d.name && d.hasInfectiousReport !== 1) - .map(d => diseaseNameToCode[d.name] || null) - .filter(code => code); + // 获取所有命中传染病映射的诊断,但跳过已有已提交报卡的诊断 + const infectiousDiagnoses = form.value.diagnosisList + .map(d => ({ + diagnosis: d, + diseaseCode: d.name && d.hasInfectiousReport !== 1 ? diseaseNameToCode[d.name] : null + })) + .filter(item => item.diseaseCode); + + const allSelectedDiseases = infectiousDiagnoses.map(item => item.diseaseCode); if (allSelectedDiseases.length === 0) { return; } - // 优先使用主诊断(同样跳过已有报卡的) - const mainDiagnosis = form.value.diagnosisList.find(d => d.maindiseFlag === 1 && d.hasInfectiousReport !== 1); - const firstDiagnosis = form.value.diagnosisList.find(d => d.hasInfectiousReport !== 1) || form.value.diagnosisList[0]; + // 优先使用命中传染病映射的主诊断,否则使用第一条命中的传染病诊断 + const mainInfectiousDiagnosis = infectiousDiagnoses.find(item => item.diagnosis.maindiseFlag === 1)?.diagnosis; + const firstInfectiousDiagnosis = infectiousDiagnoses[0].diagnosis; const diagnosisToShow = { - ...(mainDiagnosis || firstDiagnosis), + ...(mainInfectiousDiagnosis || firstInfectiousDiagnosis), selectedDiseases: allSelectedDiseases }; diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/infectiousDiseaseReportDialog.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/infectiousDiseaseReportDialog.vue index 837f2eb1..6d41fdb9 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/infectiousDiseaseReportDialog.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/infectiousDiseaseReportDialog.vue @@ -1442,7 +1442,7 @@ async function buildSubmitData() { const submitData = { cardNo: formData.cardNo, visitId: props.patientInfo?.encounterId || formData.encounterId || null, - diagId: formData.diagnosisId ? Number(formData.diagnosisId) : null, + diagId: formData.diagnosisId || null, patId: formData.patientId || null, idType: 1, // 默认身份证 idNo: formData.idNo,