feat: retain last recorded patient vitals on dashboard (Option B)

This commit is contained in:
2026-09-18 12:00:50 +05:30
parent 1ebbd0e68a
commit a8075da9ee
2 changed files with 65 additions and 73 deletions
+25 -53
View File
@@ -3144,20 +3144,15 @@
const now = Date.now();
for (let i = readings.length - 1; i >= 0; i--) {
const r = readings[i];
const rAge = getTimestampAgeMs(r.timestamp);
if (rAge <= 25000) {
if (r.heart_rate != null) merged.heart_rate = r.heart_rate;
if (r.spo2 != null) merged.spo2 = r.spo2;
if (r.respiratory_rate != null) merged.respiratory_rate = r.respiratory_rate;
if (r.temperature != null) merged.temperature = r.temperature;
if (r.temperature2 != null) merged.temperature2 = r.temperature2;
if (r.temperature_diff != null) merged.temperature_diff = r.temperature_diff;
}
if (rAge <= 900000) {
if (r.systolic_bp != null) merged.systolic_bp = r.systolic_bp;
if (r.diastolic_bp != null) merged.diastolic_bp = r.diastolic_bp;
if (r.map_bp != null) merged.map_bp = r.map_bp;
}
if (r.heart_rate != null) merged.heart_rate = r.heart_rate;
if (r.spo2 != null) merged.spo2 = r.spo2;
if (r.respiratory_rate != null) merged.respiratory_rate = r.respiratory_rate;
if (r.temperature != null) merged.temperature = r.temperature;
if (r.temperature2 != null) merged.temperature2 = r.temperature2;
if (r.temperature_diff != null) merged.temperature_diff = r.temperature_diff;
if (r.systolic_bp != null) merged.systolic_bp = r.systolic_bp;
if (r.diastolic_bp != null) merged.diastolic_bp = r.diastolic_bp;
if (r.map_bp != null) merged.map_bp = r.map_bp;
if (r.patient_name) merged.patient_name = r.patient_name;
if (r.mrn || r.patient_id) merged.mrn = r.mrn || r.patient_id;
if (r.bed_id) merged.bed_id = r.bed_id;
@@ -3237,20 +3232,15 @@
const now = Date.now();
for (let i = readings.length - 1; i >= 0; i--) {
const r = readings[i];
const rAge = getTimestampAgeMs(r.timestamp);
if (rAge <= 25000) {
if (r.heart_rate != null) merged.heart_rate = r.heart_rate;
if (r.spo2 != null) merged.spo2 = r.spo2;
if (r.respiratory_rate != null) merged.respiratory_rate = r.respiratory_rate;
if (r.temperature != null) merged.temperature = r.temperature;
if (r.temperature2 != null) merged.temperature2 = r.temperature2;
if (r.temperature_diff != null) merged.temperature_diff = r.temperature_diff;
}
if (rAge <= 900000) {
if (r.systolic_bp != null) merged.systolic_bp = r.systolic_bp;
if (r.diastolic_bp != null) merged.diastolic_bp = r.diastolic_bp;
if (r.map_bp != null) merged.map_bp = r.map_bp;
}
if (r.heart_rate != null) merged.heart_rate = r.heart_rate;
if (r.spo2 != null) merged.spo2 = r.spo2;
if (r.respiratory_rate != null) merged.respiratory_rate = r.respiratory_rate;
if (r.temperature != null) merged.temperature = r.temperature;
if (r.temperature2 != null) merged.temperature2 = r.temperature2;
if (r.temperature_diff != null) merged.temperature_diff = r.temperature_diff;
if (r.systolic_bp != null) merged.systolic_bp = r.systolic_bp;
if (r.diastolic_bp != null) merged.diastolic_bp = r.diastolic_bp;
if (r.map_bp != null) merged.map_bp = r.map_bp;
if (r.patient_name) merged.patient_name = r.patient_name;
if (r.mrn || r.patient_id) merged.mrn = r.mrn || r.patient_id;
if (r.bed_id) merged.bed_id = r.bed_id;
@@ -3669,20 +3659,6 @@
if (readings.length > 0) {
const now = Date.now();
readings.forEach(r => {
const rAge = getTimestampAgeMs(r.timestamp);
if (rAge > 25000) {
r.heart_rate = null;
r.spo2 = null;
r.respiratory_rate = null;
r.temperature = null;
r.temperature2 = null;
r.temperature_diff = null;
}
if (rAge > 900000) {
r.systolic_bp = null;
r.diastolic_bp = null;
r.map_bp = null;
}
if (r.id !== lastReadingId) {
lastReadingId = r.id;
readingCount++;
@@ -3761,17 +3737,13 @@
if (devKey && connectedDevices[devKey]) {
const dev = connectedDevices[devKey];
const rAge = getTimestampAgeMs(r.timestamp);
if (rAge <= 25000) {
if ((dev.heart_rate === undefined || dev.heart_rate === null) && r.heart_rate != null) dev.heart_rate = r.heart_rate;
if ((dev.spo2 === undefined || dev.spo2 === null) && r.spo2 != null) dev.spo2 = r.spo2;
if ((dev.respiratory_rate === undefined || dev.respiratory_rate === null) && r.respiratory_rate != null) dev.respiratory_rate = r.respiratory_rate;
if ((dev.temperature === undefined || dev.temperature === null) && r.temperature != null) dev.temperature = r.temperature;
}
if (rAge <= 900000) {
if ((dev.systolic_bp === undefined || dev.systolic_bp === null) && r.systolic_bp != null) dev.systolic_bp = r.systolic_bp;
if ((dev.diastolic_bp === undefined || dev.diastolic_bp === null) && r.diastolic_bp != null) dev.diastolic_bp = r.diastolic_bp;
if ((dev.map_bp === undefined || dev.map_bp === null) && r.map_bp != null) dev.map_bp = r.map_bp;
}
if ((dev.heart_rate === undefined || dev.heart_rate === null) && r.heart_rate != null) dev.heart_rate = r.heart_rate;
if ((dev.spo2 === undefined || dev.spo2 === null) && r.spo2 != null) dev.spo2 = r.spo2;
if ((dev.respiratory_rate === undefined || dev.respiratory_rate === null) && r.respiratory_rate != null) dev.respiratory_rate = r.respiratory_rate;
if ((dev.temperature === undefined || dev.temperature === null) && r.temperature != null) dev.temperature = r.temperature;
if ((dev.systolic_bp === undefined || dev.systolic_bp === null) && r.systolic_bp != null) dev.systolic_bp = r.systolic_bp;
if ((dev.diastolic_bp === undefined || dev.diastolic_bp === null) && r.diastolic_bp != null) dev.diastolic_bp = r.diastolic_bp;
if ((dev.map_bp === undefined || dev.map_bp === null) && r.map_bp != null) dev.map_bp = r.map_bp;
if (!dev.lastSeen && r.timestamp) dev.lastSeen = new Date(r.timestamp);
}
});