Skip to content

Commit 78ec037

Browse files
added missing data for rppg and mdpnp (#1737)
1 parent ac19928 commit 78ec037

File tree

2 files changed

+43
-16
lines changed

2 files changed

+43
-16
lines changed

health-and-life-sciences-ai-suite/multi_modal_patient_monitoring/services/ui/src/redux/middleware/sseMiddleware.ts

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,41 @@ export const sseMiddleware: Middleware = (store) => {
4949
let parsedData: any = {};
5050

5151
if (workloadType === 'rppg') {
52-
// rPPG sends: HR, RR, SpO2, waveform
53-
parsedData = {
54-
HR: payload.HR ?? payload.heart_rate,
55-
RR: payload.RR ?? payload.respiratory_rate ?? payload.value,
56-
SpO2: payload.SpO2 ?? payload.spo2,
57-
};
58-
59-
// Extract waveform if present
60-
if (payload.waveform && Array.isArray(payload.waveform)) {
61-
parsedData.waveform = payload.waveform;
52+
// rPPG can send both waveform and numeric vitals
53+
if (eventType === 'numeric') {
54+
const metric = payload.metric;
55+
56+
if (metric === 'HEART_RATE_AVG' || metric === 'HEART_RATE') {
57+
parsedData.HR = payload.value;
58+
} else if (metric === 'RESP_RATE_AVG' || metric === 'RESP_RATE') {
59+
parsedData.RR = payload.value;
60+
} else if (metric === 'SPO2' || metric === 'SPO2_AVG' || metric === 'OXYGEN_SATURATION') {
61+
parsedData.SpO2 = payload.value;
62+
}
63+
64+
console.log('[SSE] ✓ Parsed rPPG numeric:', {
65+
metric,
66+
value: payload.value,
67+
vitals: { HR: parsedData.HR, RR: parsedData.RR, SpO2: parsedData.SpO2 },
68+
});
69+
} else {
70+
// Waveform / aggregated payload
71+
parsedData = {
72+
HR: payload.HR ?? payload.heart_rate,
73+
RR: payload.RR ?? payload.respiratory_rate ?? payload.value,
74+
SpO2: payload.SpO2 ?? payload.spo2,
75+
};
76+
77+
// Extract waveform if present
78+
if (payload.waveform && Array.isArray(payload.waveform)) {
79+
parsedData.waveform = payload.waveform;
80+
}
81+
82+
console.log('[SSE] ✓ Parsed rPPG (waveform/aggregate):', {
83+
vitals: { HR: parsedData.HR, RR: parsedData.RR, SpO2: parsedData.SpO2 },
84+
waveformLength: parsedData.waveform?.length
85+
});
6286
}
63-
64-
console.log('[SSE] ✓ Parsed rPPG:', {
65-
vitals: { HR: parsedData.HR, RR: parsedData.RR, SpO2: parsedData.SpO2 },
66-
waveformLength: parsedData.waveform?.length
67-
});
6887

6988
} else if (workloadType === 'ai-ecg') {
7089
console.log('[SSE] 🔬 AI-ECG raw payload:', JSON.stringify(payload, null, 2));
@@ -115,6 +134,10 @@ export const sseMiddleware: Middleware = (store) => {
115134
parsedData.BP_DIA = payload.value;
116135
console.log('[SSE] ✓ MDPNP BP_DIA:', payload.value);
117136
}
137+
else if (metric === 'MDC_PRESS_BLD_ART_ABP_SYS') {
138+
parsedData.BP_SYS = payload.value;
139+
console.log('[SSE] ✓ MDPNP BP_SYS:', payload.value);
140+
}
118141
}
119142
else if (eventType === 'waveform') {
120143
// Extract waveform based on device type
@@ -139,7 +162,7 @@ export const sseMiddleware: Middleware = (store) => {
139162
}
140163

141164
console.log('[SSE] ✓ Parsed MDPNP:', {
142-
vitals: { HR: parsedData.HR, CO2_ET: parsedData.CO2_ET, BP_DIA: parsedData.BP_DIA },
165+
vitals: { HR: parsedData.HR, CO2_ET: parsedData.CO2_ET, BP_SYS: parsedData.BP_SYS, BP_DIA: parsedData.BP_DIA },
143166
waveformType: parsedData.waveformType,
144167
waveformLength: parsedData.waveform?.length
145168
});

health-and-life-sciences-ai-suite/multi_modal_patient_monitoring/services/ui/src/redux/slices/servicesSlice.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ const servicesSlice = createSlice({
132132
state.workloads[workloadId].latestData.CO2_ET = data.CO2_ET;
133133
console.log(`[Redux] ✓ MDPNP CO2_ET: ${data.CO2_ET}`);
134134
}
135+
if (data.BP_SYS !== undefined) {
136+
state.workloads[workloadId].latestData.BP_SYS = data.BP_SYS;
137+
console.log(`[Redux] ✓ MDPNP BP_SYS: ${data.BP_SYS}`);
138+
}
135139
if (data.BP_DIA !== undefined) {
136140
state.workloads[workloadId].latestData.BP_DIA = data.BP_DIA;
137141
console.log(`[Redux] ✓ MDPNP BP_DIA: ${data.BP_DIA}`);

0 commit comments

Comments
 (0)