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 e6b683115..8f76450c1 100755 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue @@ -94,7 +94,7 @@ > 保存诊断 - + 中医诊断 + + + + + + { newList.push({ - name: item.name + '-' + (res.data.symptom[index]?.name || ''), + name: item.name, ybNo: item.ybNo, medTypeCode: item.medTypeCode, + diagnosisSystem: '中医', + tcmSyndromeCode: res.data.symptom[index]?.ybNo || '', + tcmSyndromeName: res.data.symptom[index]?.name || '', diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name, diagnosisTime: new Date().toLocaleString('zh-CN') }); @@ -595,6 +661,7 @@ function addDiagnosisItem() { name: undefined, verificationStatusEnum: 4, medTypeCode: undefined, + diagnosisSystem: '西医', diagSrtNo: form.value.diagnosisList.length + 1, iptDiseTypeCode: 2, diagnosisDesc: '', @@ -675,6 +742,44 @@ function handleMaindise(value, index) { } } +/** + * 诊断体系变化处理 + */ +function handleDiagnosisSystemChange(row, value) { + // 当切换到西医时,清空中医证候 + if (value === '西医') { + row.tcmSyndromeCode = ''; + row.tcmSyndromeName = ''; + } + // 当切换到中医时,加载中医证候选项 + if (value === '中医') { + loadTcmSyndromeOptions(); + } +} + +/** + * 加载中医证候选项 + */ +function loadTcmSyndromeOptions() { + getTcmSyndrome().then((res) => { + if (res.code == 200 && res.data && res.data.records) { + tcmSyndromeOptions.value = res.data.records.map((item) => ({ + value: item.ybNo, + label: item.name, + })); + } + }); +} + +/** + * 中医证候变化处理 + */ +function handleTcmSyndromeChange(row, value) { + // 找到对应的证候名称 + const syndrome = tcmSyndromeOptions.value.find(item => item.value === value); + row.tcmSyndromeName = syndrome ? syndrome.label : ''; +} + /** * 保存诊断 */ @@ -713,6 +818,15 @@ function handleSaveDiagnosis() { return; } + // 中医诊断完整性校验 + const incompleteTcmDiagnosis = form.value.diagnosisList.find( + (diagnosis) => diagnosis.diagnosisSystem === '中医' && !diagnosis.tcmSyndromeCode + ); + if (incompleteTcmDiagnosis) { + proxy.$modal.msgWarning('中医诊断不完整,请录入对应的证候!'); + return; + } + // 设置保存标志,避免触发watch监听器 isSaving.value = true; @@ -817,6 +931,7 @@ function handleNodeClick(data) { name: data.name, verificationStatusEnum: 4, medTypeCode: undefined, + diagnosisSystem: '西医', diagSrtNo: form.value.diagnosisList.length + 1, definitionId: data.definitionId, diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name,