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,