智能判断

This commit is contained in:
Euni4U 2025-04-10 13:12:25 +08:00
parent 7ab3e2e68d
commit 2aa41fec67

View File

@ -981,57 +981,6 @@ const processItemData = (item) => {
itemStatus: item.itemStatus || '0',
sectionID: item.sectionID
}
// (BMI)
if (item.itemName && item.itemName.includes('体质指数') && item.itemName.includes('BMI') && item.itemResult) {
// BMI
const bmiValue = parseFloat(item.itemResult)
if (!isNaN(bmiValue)) {
// BMI<18.518.5BMI<2424BMI<2828BMI
if (bmiValue < 18.5) {
processedItem.note = '↓'
processedItem.risk = '体重过低'
processedItem.status = 'danger'
} else if (bmiValue >= 18.5 && bmiValue < 24) {
processedItem.note = '-'
processedItem.risk = '正常'
processedItem.status = ''
} else if (bmiValue >= 24 && bmiValue < 28) {
processedItem.note = '↑'
processedItem.risk = '超重'
processedItem.status = 'danger'
} else if (bmiValue >= 28) {
processedItem.note = '↑↑'
processedItem.risk = '肥胖'
processedItem.status = 'danger'
}
}
}
//
if (item.itemName && item.itemName.includes('血压') && item.itemResult) {
// systolic/diastolic 125/90
const bpMatch = item.itemResult.match(/(\d+)\/(\d+)/)
if (bpMatch) {
const systolic = parseInt(bpMatch[1]) //
const diastolic = parseInt(bpMatch[2]) //
if (!isNaN(systolic) && !isNaN(diastolic)) {
// : <130 <85
if (systolic >= 130 || diastolic >= 85) {
processedItem.note = '↑'
processedItem.risk = '血压偏高'
processedItem.status = 'danger'
} else {
processedItem.note = '-'
processedItem.risk = '正常'
processedItem.status = ''
}
}
}
}
return processedItem
}
//
@ -1614,6 +1563,9 @@ const handleSync = async () => {
//
await loadPatientData(currentSelectedPatient)
// BMI
processAutoFields()
loading.close()
ElMessage.success(`同步成功`)
@ -1628,6 +1580,36 @@ const handleSync = async () => {
}
}
// BMI
const processAutoFields = () => {
if (!selectedPatient.value?.medicalSn) return
//
const allItems = Object.values(examItems.value).flat()
// BMI
const bmiItem = allItems.find(item =>
item.name && item.name.includes('体质指数') && item.name.includes('BMI') &&
item.value
)
if (bmiItem) {
console.log('处理BMI值...')
handleBmiResult(bmiItem)
}
//
const bpItem = allItems.find(item =>
item.name && item.name.includes('血压') &&
item.value
)
if (bpItem) {
console.log('处理血压值...')
handleBloodPressureResult(bpItem)
}
}
const handleRefresh = async (e) => {
//
if (e) e.preventDefault()
@ -2804,6 +2786,11 @@ const truncateMedicalSn = (sn) => {
// 10
return sn.length > 10 ? sn.substring(0, 8) + '...' : sn;
}
//
onBeforeUnmount(() => {
clearPatientCache()
})
</script>
<style scoped>