diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/addDiagnosisDialog.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/addDiagnosisDialog.vue index 50982c23..299ccfae 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/addDiagnosisDialog.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/addDiagnosisDialog.vue @@ -143,7 +143,7 @@ function handleOpen() { ybNo: item.ybNo, syndromeGroupNo: item.syndromeGroupNo, verificationStatusEnum: 4, - medTypeCode: '11', + medTypeCode: item.medTypeCode || undefined, // 使用已保存的值 diagSrtNo: item.diagSrtNo, isExisting: true // 标记为已存在 }, @@ -188,7 +188,7 @@ function handleOpen() { ybNo: item.ybNo, syndromeGroupNo: item.syndromeGroupNo, verificationStatusEnum: item.verificationStatusEnum || 4, - medTypeCode: item.medTypeCode || '11', + medTypeCode: item.medTypeCode || undefined, // 使用已保存的值 diagSrtNo: item.diagSrtNo, isExisting: true // 标记为已存在 }, @@ -227,7 +227,7 @@ function handleClickRow(row) { ybNo: row.ybNo, syndromeGroupNo: timestamp.value, verificationStatusEnum: 4, - medTypeCode: '11', + medTypeCode: undefined, // 不设默认值 isExisting: false // 标记为新增 }); tcmDiagonsisList.value.push({ 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 f6dbd040..bb1e4c03 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue @@ -36,26 +36,23 @@ - - - + @@ -98,7 +95,7 @@ @@ -507,7 +505,7 @@ function handleAddDiagnosis() { showPopover: false, name: undefined, verificationStatusEnum: 4, - medTypeCode: 11, // Bug #151 修复:使用数字类型的字典值 + medTypeCode: undefined, // 新增时不设默认值,让用户选择 diagSrtNo: maxSortNo + 1, iptDiseTypeCode: 2, diagnosisDesc: '', @@ -578,6 +576,13 @@ function handleMaindise(value, index) { function handleSaveDiagnosis() { proxy.$refs.formRef.validate((valid) => { if (valid) { + // 验证诊断类型是否已选择 + const emptyMedType = form.value.diagnosisList.find(d => !d.medTypeCode); + if (emptyMedType) { + proxy.$modal.msgWarning('请选择诊断类型'); + return false; + } + if (form.value.diagnosisList.length == 0) { proxy.$modal.msgWarning('诊断不能为空'); return false; @@ -718,7 +723,7 @@ form.value.diagnosisList.push({ ybNo: data.ybNo, name: data.name, verificationStatusEnum: 4, - medTypeCode: 11, // Bug #151 修复:使用数字类型的字典值,而非字符串'初诊诊断' + medTypeCode: undefined, // 新增时不设默认值,让用户选择 diagSrtNo: maxSortNo + 1, definitionId: data.definitionId, classification: '西医', // 默认为西医 diff --git a/openhis-ui-vue3/src/views/doctorstation/index.vue b/openhis-ui-vue3/src/views/doctorstation/index.vue index a5519d6f..af9f3b3c 100644 --- a/openhis-ui-vue3/src/views/doctorstation/index.vue +++ b/openhis-ui-vue3/src/views/doctorstation/index.vue @@ -640,7 +640,38 @@ function handleLeave(encounterId) { }); } -function handleFinish(encounterId) { +async function handleFinish(encounterId) { + // 完诊前验证诊断信息 + try { + const diagnosisRes = await getEncounterDiagnosis(encounterId); + if (diagnosisRes.code === 200) { + const diagnosisList = diagnosisRes.data || []; + + // 检查是否有诊断 + if (diagnosisList.length === 0) { + proxy.$modal.msgWarning('请先添加诊断信息'); + return; + } + + // 检查诊断类型是否为空 + const emptyMedType = diagnosisList.find(d => !d.medTypeCode); + if (emptyMedType) { + proxy.$modal.msgWarning('请选择诊断类型'); + return; + } + + // 检查是否有主诊断 + if (!diagnosisList.some(d => d.maindiseFlag === 1)) { + proxy.$modal.msgWarning('请至少设置一条主诊断'); + return; + } + } + } catch (error) { + console.error('获取诊断信息失败:', error); + proxy.$modal.msgWarning('获取诊断信息失败,请重试'); + return; + } + completeEncounter({ encounterId, firstEnum: firstEnum.value }).then((res) => { if (res.code == 200) { proxy.$modal.msgSuccess('操作成功'); diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/addDiagnosisDialog.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/addDiagnosisDialog.vue index 8b9c0b5c..90026fe0 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/addDiagnosisDialog.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/addDiagnosisDialog.vue @@ -153,7 +153,7 @@ function handleClickRow(row) { ybNo: row.ybNo, syndromeGroupNo: timestamp.value, verificationStatusEnum: 4, - medTypeCode: '11', + medTypeCode: undefined, // 不设默认值 }); tcmDiagonsisList.value.push({ conditionName: row.name, diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue index 48fd7566..5b6e1c7d 100644 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue @@ -415,7 +415,7 @@ function handleAddDiagnosis() { showPopover: false, name: undefined, verificationStatusEnum: 4, - medTypeCode: '11', + medTypeCode: undefined, // 不设默认值 diagSrtNo: form.value.diagnosisList.length + 1, iptDiseTypeCode: 2, diagnosisDesc: '', @@ -632,7 +632,7 @@ function handleNodeClick(data) { ybNo: data.ybNo, name: data.name, verificationStatusEnum: 4, - medTypeCode: '11', + medTypeCode: undefined, // 不设默认值 diagSrtNo: form.value.diagnosisList.length + 1, definitionId: data.definitionId, diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name,