This commit is contained in:
lxd 2025-03-18 18:28:20 +08:00
commit 4f28a5e5a2
2 changed files with 97 additions and 31 deletions

View File

@ -1691,32 +1691,97 @@ const handleSaveAllResults = async () => {
} }
} }
//
const result = await handleSummarySave()
if (!result) return
ElMessage.success('所有检查结果保存成功') ElMessage.success('所有检查结果保存成功')
// //
await refreshExamData() await refreshExamData()
//
if (summaryRef.value) {
await summaryRef.value.saveSummary()
}
} catch (error) { } catch (error) {
ElMessage.error(`保存失败: ${error.message || '请检查数据是否完整'}`) ElMessage.error(`保存失败: ${error.message || '请检查数据是否完整'}`)
} }
//
const result = await handleSummarySave()
if (!result) return
} }
// //
const handleSummarySave = async () => { const handleSummarySave = async () => {
// try {
// summaryRef
if (summaryRef.value) { if (summaryRef.value) {
//
await summaryRef.value.saveSummary() await summaryRef.value.saveSummary()
ElMessage.success('汇总数据保存成功') return true
} else { } else {
throw new Error('未找到汇总组件') //
//
let summaryContent = ''
//
if (conclusionData.value.general?.summary) {
summaryContent += '【一般检查】\n' + conclusionData.value.general.summary + '\n\n'
}
//
if (conclusionData.value.ultrasound?.finding || conclusionData.value.ultrasound?.diagnosis) {
summaryContent += '【超声】\n'
if (conclusionData.value.ultrasound.finding) {
summaryContent += '检查所见:' + conclusionData.value.ultrasound.finding + '\n'
}
if (conclusionData.value.ultrasound.diagnosis) {
summaryContent += '检查结果:' + conclusionData.value.ultrasound.diagnosis + '\n'
}
summaryContent += '\n'
}
//
if (conclusionData.value.ecg?.finding || conclusionData.value.ecg?.diagnosis) {
summaryContent += '【心电图】\n'
if (conclusionData.value.ecg.finding) {
summaryContent += '检查所见:' + conclusionData.value.ecg.finding + '\n'
}
if (conclusionData.value.ecg.diagnosis) {
summaryContent += '检查结果:' + conclusionData.value.ecg.diagnosis + '\n'
}
summaryContent += '\n'
}
//
if (conclusionData.value.blood?.summary) {
summaryContent += '【血常规】\n' + conclusionData.value.blood.summary + '\n\n'
}
// 尿
if (conclusionData.value.urine?.summary) {
summaryContent += '【尿常规】\n' + conclusionData.value.urine.summary + '\n\n'
}
//
if (conclusionData.value.biochemical?.summary) {
summaryContent += '【生化】\n' + conclusionData.value.biochemical.summary + '\n\n'
}
//
if (summaryContent.trim()) {
//
const saveData = {
medicalSn: selectedPatient.value?.medicalSn,
summaryResult: summaryContent
}
// API
await PatientApi.updatemedicalSn(saveData)
return true
}
return true // 使
}
} catch (error) {
console.error('汇总保存失败:', error)
ElMessage.error('汇总保存失败: ' + error.message)
return false
} }
} }

View File

@ -3,7 +3,7 @@
<div class="summary-header"> <div class="summary-header">
<div class="title-with-button"> <div class="title-with-button">
<h3>体检汇总</h3> <h3>体检汇总</h3>
<el-button <!-- <el-button
type="success" type="success"
circle circle
size="small" size="small"
@ -11,7 +11,7 @@
class="refresh-button" class="refresh-button"
> >
<el-icon><Refresh /></el-icon> <el-icon><Refresh /></el-icon>
</el-button> </el-button> -->
</div> </div>
</div> </div>
@ -72,9 +72,9 @@ const isReadOnly = ref(false)
// //
const checkPatientStatus = () => { const checkPatientStatus = () => {
if (props.patient && props.patient.status) { if (props.patient?.status) {
// 2 //
isReadOnly.value = props.patient.status === 2 isReadOnly.value = String(props.patient.status) === '1'
console.log('患者状态:', props.patient.status, '只读模式:', isReadOnly.value) console.log('患者状态:', props.patient.status, '只读模式:', isReadOnly.value)
} }
} }
@ -303,14 +303,7 @@ const loadPatientItems = async () => {
const formattedText = formatSummaryData() const formattedText = formatSummaryData()
console.log('格式化后的文本:', formattedText) console.log('格式化后的文本:', formattedText)
editableSummary.value = formattedText editableSummary.value = formattedText
loading.close() loading.close()
if (formattedText) {
ElMessage.success('体检汇总数据已刷新')
} else {
ElMessage.warning('未找到可用的体检汇总数据')
}
} catch (error) { } catch (error) {
console.error('加载汇总数据失败:', error) console.error('加载汇总数据失败:', error)
ElMessage.error('加载汇总数据失败: ' + error.message) ElMessage.error('加载汇总数据失败: ' + error.message)
@ -321,6 +314,10 @@ const loadPatientItems = async () => {
const saving = ref(false) const saving = ref(false)
// PatientApisummaryResult // PatientApisummaryResult
const saveSummary = async () => { const saveSummary = async () => {
if (isReadOnly.value) {
ElMessage.warning('已检查患者不可修改汇总内容')
return false
}
if (!editableSummary.value) { if (!editableSummary.value) {
ElMessage.warning('体检汇总内容为空,请检查汇总内容') ElMessage.warning('体检汇总内容为空,请检查汇总内容')
return false return false
@ -400,11 +397,15 @@ onMounted(() => {
// //
watch(() => props.patient, (newVal) => { watch(() => props.patient, (newVal) => {
if (newVal && newVal.medicalSn) { if (newVal) {
loadPatientItems() //
checkPatientStatus() checkPatientStatus()
// medicalSn
if (newVal.medicalSn) {
loadPatientItems()
} }
}, { deep: true }) }
}, { deep: true, immediate: true })
// //
defineExpose({ saveSummary }) defineExpose({ saveSummary })