fix(diagnosis): 修复诊断类型字段处理逻辑
- 移除medTypeCode的默认值'11',改为undefined以避免强制设置默认类型 - 在新增诊断时不再预设诊断类型,要求用户主动选择 - 从已保存的数据中获取medTypeCode值而不是使用固定默认值 - 添加诊断类型选择验证,在保存时检查是否所有诊断都选择了类型 - 在完诊前验证诊断信息完整性,包括诊断存在性、类型选择和主诊断设置 - 优化UI显示逻辑,当诊断类型选项未加载完成时显示加载状态提示 - 调整删除按钮显示逻辑,改进弹窗确认交互体验
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -36,26 +36,23 @@
|
||||
</el-icon>
|
||||
</el-button>
|
||||
</template>
|
||||
<el-popconfirm width="200" :hide-after="10" title="确认删除此常用诊断吗" placement="top-start"
|
||||
@confirm="deleteChild(data)">
|
||||
<template #reference>
|
||||
<el-button
|
||||
style="color: #000000"
|
||||
v-if="
|
||||
node.level === 2 &&
|
||||
node.parent.data.name != '常用' &&
|
||||
node.parent.data.name != '历史'
|
||||
"
|
||||
type="text"
|
||||
size="small"
|
||||
@click.stop=""
|
||||
>
|
||||
<el-icon>
|
||||
<Minus />
|
||||
</el-icon>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
<template v-if="node.level === 2 && node.parent.data.name != '常用' && node.parent.data.name != '历史'">
|
||||
<el-popconfirm width="200" :hide-after="10" title="确认删除此常用诊断吗" placement="top-start"
|
||||
@confirm="deleteChild(data)">
|
||||
<template #reference>
|
||||
<el-button
|
||||
style="color: #000000"
|
||||
type="text"
|
||||
size="small"
|
||||
@click.stop=""
|
||||
>
|
||||
<el-icon>
|
||||
<Minus />
|
||||
</el-icon>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
</span>
|
||||
</div>
|
||||
</template>
|
||||
@@ -98,7 +95,7 @@
|
||||
<el-table-column label="诊断类型" align="center" prop="medTypeCode" width="180">
|
||||
<template #default="scope">
|
||||
<el-form-item :prop="`diagnosisList.${scope.$index}.medTypeCode`" :rules="rules.medTypeCode">
|
||||
<el-select v-model="scope.row.medTypeCode" placeholder=" " style="width: 150px">
|
||||
<el-select v-model="scope.row.medTypeCode" placeholder="请选择" style="width: 150px" v-if="diag_type && diag_type.length > 0">
|
||||
<el-option
|
||||
v-for="item in diag_type"
|
||||
:key="item.value"
|
||||
@@ -106,6 +103,7 @@
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
<span v-else style="color: #909399;">加载中...</span>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -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: '西医', // 默认为西医
|
||||
|
||||
@@ -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('操作成功');
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user