fix(diagnosis): 修复诊断类型字段处理逻辑
- 移除medTypeCode的默认值'11',改为undefined以避免强制设置默认类型 - 在新增诊断时不再预设诊断类型,要求用户主动选择 - 从已保存的数据中获取medTypeCode值而不是使用固定默认值 - 添加诊断类型选择验证,在保存时检查是否所有诊断都选择了类型 - 在完诊前验证诊断信息完整性,包括诊断存在性、类型选择和主诊断设置 - 优化UI显示逻辑,当诊断类型选项未加载完成时显示加载状态提示 - 调整删除按钮显示逻辑,改进弹窗确认交互体验
This commit is contained in:
@@ -143,7 +143,7 @@ function handleOpen() {
|
|||||||
ybNo: item.ybNo,
|
ybNo: item.ybNo,
|
||||||
syndromeGroupNo: item.syndromeGroupNo,
|
syndromeGroupNo: item.syndromeGroupNo,
|
||||||
verificationStatusEnum: 4,
|
verificationStatusEnum: 4,
|
||||||
medTypeCode: '11',
|
medTypeCode: item.medTypeCode || undefined, // 使用已保存的值
|
||||||
diagSrtNo: item.diagSrtNo,
|
diagSrtNo: item.diagSrtNo,
|
||||||
isExisting: true // 标记为已存在
|
isExisting: true // 标记为已存在
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@ function handleOpen() {
|
|||||||
ybNo: item.ybNo,
|
ybNo: item.ybNo,
|
||||||
syndromeGroupNo: item.syndromeGroupNo,
|
syndromeGroupNo: item.syndromeGroupNo,
|
||||||
verificationStatusEnum: item.verificationStatusEnum || 4,
|
verificationStatusEnum: item.verificationStatusEnum || 4,
|
||||||
medTypeCode: item.medTypeCode || '11',
|
medTypeCode: item.medTypeCode || undefined, // 使用已保存的值
|
||||||
diagSrtNo: item.diagSrtNo,
|
diagSrtNo: item.diagSrtNo,
|
||||||
isExisting: true // 标记为已存在
|
isExisting: true // 标记为已存在
|
||||||
},
|
},
|
||||||
@@ -227,7 +227,7 @@ function handleClickRow(row) {
|
|||||||
ybNo: row.ybNo,
|
ybNo: row.ybNo,
|
||||||
syndromeGroupNo: timestamp.value,
|
syndromeGroupNo: timestamp.value,
|
||||||
verificationStatusEnum: 4,
|
verificationStatusEnum: 4,
|
||||||
medTypeCode: '11',
|
medTypeCode: undefined, // 不设默认值
|
||||||
isExisting: false // 标记为新增
|
isExisting: false // 标记为新增
|
||||||
});
|
});
|
||||||
tcmDiagonsisList.value.push({
|
tcmDiagonsisList.value.push({
|
||||||
|
|||||||
@@ -36,16 +36,12 @@
|
|||||||
</el-icon>
|
</el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
<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"
|
<el-popconfirm width="200" :hide-after="10" title="确认删除此常用诊断吗" placement="top-start"
|
||||||
@confirm="deleteChild(data)">
|
@confirm="deleteChild(data)">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button
|
<el-button
|
||||||
style="color: #000000"
|
style="color: #000000"
|
||||||
v-if="
|
|
||||||
node.level === 2 &&
|
|
||||||
node.parent.data.name != '常用' &&
|
|
||||||
node.parent.data.name != '历史'
|
|
||||||
"
|
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click.stop=""
|
@click.stop=""
|
||||||
@@ -56,6 +52,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
|
</template>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -98,7 +95,7 @@
|
|||||||
<el-table-column label="诊断类型" align="center" prop="medTypeCode" width="180">
|
<el-table-column label="诊断类型" align="center" prop="medTypeCode" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-form-item :prop="`diagnosisList.${scope.$index}.medTypeCode`" :rules="rules.medTypeCode">
|
<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
|
<el-option
|
||||||
v-for="item in diag_type"
|
v-for="item in diag_type"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -106,6 +103,7 @@
|
|||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
<span v-else style="color: #909399;">加载中...</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -507,7 +505,7 @@ function handleAddDiagnosis() {
|
|||||||
showPopover: false,
|
showPopover: false,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
verificationStatusEnum: 4,
|
verificationStatusEnum: 4,
|
||||||
medTypeCode: 11, // Bug #151 修复:使用数字类型的字典值
|
medTypeCode: undefined, // 新增时不设默认值,让用户选择
|
||||||
diagSrtNo: maxSortNo + 1,
|
diagSrtNo: maxSortNo + 1,
|
||||||
iptDiseTypeCode: 2,
|
iptDiseTypeCode: 2,
|
||||||
diagnosisDesc: '',
|
diagnosisDesc: '',
|
||||||
@@ -578,6 +576,13 @@ function handleMaindise(value, index) {
|
|||||||
function handleSaveDiagnosis() {
|
function handleSaveDiagnosis() {
|
||||||
proxy.$refs.formRef.validate((valid) => {
|
proxy.$refs.formRef.validate((valid) => {
|
||||||
if (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) {
|
if (form.value.diagnosisList.length == 0) {
|
||||||
proxy.$modal.msgWarning('诊断不能为空');
|
proxy.$modal.msgWarning('诊断不能为空');
|
||||||
return false;
|
return false;
|
||||||
@@ -718,7 +723,7 @@ form.value.diagnosisList.push({
|
|||||||
ybNo: data.ybNo,
|
ybNo: data.ybNo,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
verificationStatusEnum: 4,
|
verificationStatusEnum: 4,
|
||||||
medTypeCode: 11, // Bug #151 修复:使用数字类型的字典值,而非字符串'初诊诊断'
|
medTypeCode: undefined, // 新增时不设默认值,让用户选择
|
||||||
diagSrtNo: maxSortNo + 1,
|
diagSrtNo: maxSortNo + 1,
|
||||||
definitionId: data.definitionId,
|
definitionId: data.definitionId,
|
||||||
classification: '西医', // 默认为西医
|
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) => {
|
completeEncounter({ encounterId, firstEnum: firstEnum.value }).then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
proxy.$modal.msgSuccess('操作成功');
|
proxy.$modal.msgSuccess('操作成功');
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ function handleClickRow(row) {
|
|||||||
ybNo: row.ybNo,
|
ybNo: row.ybNo,
|
||||||
syndromeGroupNo: timestamp.value,
|
syndromeGroupNo: timestamp.value,
|
||||||
verificationStatusEnum: 4,
|
verificationStatusEnum: 4,
|
||||||
medTypeCode: '11',
|
medTypeCode: undefined, // 不设默认值
|
||||||
});
|
});
|
||||||
tcmDiagonsisList.value.push({
|
tcmDiagonsisList.value.push({
|
||||||
conditionName: row.name,
|
conditionName: row.name,
|
||||||
|
|||||||
@@ -415,7 +415,7 @@ function handleAddDiagnosis() {
|
|||||||
showPopover: false,
|
showPopover: false,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
verificationStatusEnum: 4,
|
verificationStatusEnum: 4,
|
||||||
medTypeCode: '11',
|
medTypeCode: undefined, // 不设默认值
|
||||||
diagSrtNo: form.value.diagnosisList.length + 1,
|
diagSrtNo: form.value.diagnosisList.length + 1,
|
||||||
iptDiseTypeCode: 2,
|
iptDiseTypeCode: 2,
|
||||||
diagnosisDesc: '',
|
diagnosisDesc: '',
|
||||||
@@ -632,7 +632,7 @@ function handleNodeClick(data) {
|
|||||||
ybNo: data.ybNo,
|
ybNo: data.ybNo,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
verificationStatusEnum: 4,
|
verificationStatusEnum: 4,
|
||||||
medTypeCode: '11',
|
medTypeCode: undefined, // 不设默认值
|
||||||
diagSrtNo: form.value.diagnosisList.length + 1,
|
diagSrtNo: form.value.diagnosisList.length + 1,
|
||||||
definitionId: data.definitionId,
|
definitionId: data.definitionId,
|
||||||
diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name,
|
diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user