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,