fix(#566): 请修复 Bug #566:[一般] [住院护士站-三测单] 体征数据已录入成功,但在“体温单”图表区中未渲染显示数据点
根因: - Bug #请修复 Bug #566 存在的问题 修复: - 调整 `confirmCharge` 中 `vitalSignsCode` 的入队顺序: - 原顺序: 体温 → 血压(001,002) → 心率(014) → 脉搏(002) → 呼吸(001) → 其他 - 新顺序: 体温 → 心率(014) → 脉搏(002) → 呼吸(001) → 血压(001,002) → 其他 - 脉搏(`002`)排在舒张压(`002`)之前,呼吸(`001`)排在收缩压(`001`)之前,`find()` 优先匹配到正确的体征数据。 - 2. `src/action/nurseStation/temperatureSheet/drawfn.js`** - 问题**: 旧数据兼容层中 `some()` 检查会阻止添加映射编码。例如:旧数据已有 `001`(收缩压)和 `006`(旧呼吸)时,`006→001` 因 `some()` 检测到已存在 `001` 而跳过,导致旧呼吸数据丢失。 - 移除 `some()` 检查,始终添加映射条目 - 用 `unshift()` 替代 `push()`,将映射后的脉搏(`002`)、呼吸(`001`)条目插入 `rowBOS` 头部,确保 `find()` 优先匹配它们而非同编码的血压条目
This commit is contained in:
@@ -166,14 +166,18 @@ export function getData(allData) {
|
||||
const OLD_CODE_MAP = { '004': '014', '005': '002', '006': '001' };
|
||||
rowsData.forEach(row => {
|
||||
if (row.rowBOS) {
|
||||
const extraItems = [];
|
||||
const prependItems = [];
|
||||
row.rowBOS.forEach(item => {
|
||||
const newCode = OLD_CODE_MAP[item.typeCode];
|
||||
if (newCode && !row.rowBOS.some(i => i.date === item.date && i.times === item.times && i.typeCode === newCode)) {
|
||||
extraItems.push({ ...item, typeCode: newCode });
|
||||
// 始终添加映射条目,用 unshift 插入数组头部
|
||||
// 这样 getType 的 find() 优先匹配映射后的编码(如脉冲、呼吸)
|
||||
// 即使存在同编码的旧条目(如血压舒张压用 002、收缩压用 001),
|
||||
// 映射后的脉搏(002)和呼吸(001)条目排在前面,确保图表正确渲染
|
||||
if (newCode) {
|
||||
prependItems.push({ ...item, typeCode: newCode });
|
||||
}
|
||||
});
|
||||
row.rowBOS.push(...extraItems);
|
||||
row.rowBOS.unshift(...prependItems);
|
||||
}
|
||||
});
|
||||
const infoData = allData.grParamBOS;
|
||||
|
||||
@@ -999,22 +999,24 @@ function confirmCharge() {
|
||||
vitalSignsCode.push('003');
|
||||
vitalSignsValues.push(params.temperature);
|
||||
}
|
||||
if (params.systolicPressure && params.diastolicPressure) {
|
||||
vitalSignsCode.push('001', '002');
|
||||
vitalSignsValues.push(params.systolicPressure, params.diastolicPressure);
|
||||
}
|
||||
if (params.heartRate) {
|
||||
vitalSignsCode.push('014');
|
||||
vitalSignsValues.push(params.heartRate);
|
||||
}
|
||||
// 脉搏(002)排血压舒张压(002)之前,确保图表getType('002')优先匹配脉搏
|
||||
if (params.pulseRate) {
|
||||
vitalSignsCode.push('002');
|
||||
vitalSignsValues.push(params.pulseRate);
|
||||
}
|
||||
// 呼吸(001)排血压收缩压(001)之前,确保图表getType('001')优先匹配呼吸
|
||||
if (params.respirationRate) {
|
||||
vitalSignsCode.push('001');
|
||||
vitalSignsValues.push(params.respirationRate);
|
||||
}
|
||||
if (params.systolicPressure && params.diastolicPressure) {
|
||||
vitalSignsCode.push('001', '002');
|
||||
vitalSignsValues.push(params.systolicPressure, params.diastolicPressure);
|
||||
}
|
||||
if (params.bloodOxygen) {
|
||||
vitalSignsCode.push('021');
|
||||
vitalSignsValues.push(params.bloodOxygen);
|
||||
|
||||
Reference in New Issue
Block a user