diff --git a/src/Components/VitalsMonitor/HL7PatientVitalsMonitor.tsx b/src/Components/VitalsMonitor/HL7PatientVitalsMonitor.tsx
index 1b45fd80ddc..44cadd8263c 100644
--- a/src/Components/VitalsMonitor/HL7PatientVitalsMonitor.tsx
+++ b/src/Components/VitalsMonitor/HL7PatientVitalsMonitor.tsx
@@ -8,6 +8,15 @@ import { classNames } from "../../Utils/utils";
import { IVitalsComponentProps, VitalsValueBase } from "./types";
import { triggerGoal } from "../../Integrations/Plausible";
import useAuthUser from "../../Common/hooks/useAuthUser";
+import dayjs from "dayjs";
+
+const minutesAgo = (timestamp: string) => {
+ return `${dayjs().diff(dayjs(timestamp), "minute")}m ago`;
+};
+
+const isWithinMinutes = (timestamp: string, minutes: number) => {
+ return dayjs().diff(dayjs(timestamp), "minute") < minutes;
+};
export default function HL7PatientVitalsMonitor(props: IVitalsComponentProps) {
const { connect, waveformCanvas, data, isOnline } = useHL7VitalsMonitor(
@@ -30,6 +39,10 @@ export default function HL7PatientVitalsMonitor(props: IVitalsComponentProps) {
connect(props.socketUrl);
}, [props.socketUrl]);
+ const bpWithinMaxPersistence = !!(
+ (data.bp?.["date-time"] && isWithinMinutes(data.bp?.["date-time"], 30)) // Max blood pressure persistence is 30 minutes
+ );
+
return (
{props.patientAssetBed && (
@@ -97,24 +110,37 @@ export default function HL7PatientVitalsMonitor(props: IVitalsComponentProps) {
{/* Blood Pressure */}
-
+
NIBP
- {data.bp?.systolic.unit ?? "--"}
+
+ {bpWithinMaxPersistence ? data.bp?.systolic.unit ?? "--" : "--"}
+
+
+ {data.bp?.["date-time"] && minutesAgo(data.bp?.["date-time"])}
+
Sys / Dia
- {data.bp?.systolic.value ?? "--"}
+
+ {bpWithinMaxPersistence
+ ? data.bp?.systolic.value ?? "--"
+ : "--"}
+
/
- {data.bp?.diastolic.value ?? "--"}
+
+ {bpWithinMaxPersistence
+ ? data.bp?.diastolic.value ?? "--"
+ : "--"}
+
Mean
- {data.bp?.map.value ?? "--"}
+ {bpWithinMaxPersistence ? data.bp?.map.value ?? "--" : "--"}
diff --git a/src/Components/VitalsMonitor/types.ts b/src/Components/VitalsMonitor/types.ts
index 066b7a7cc78..60979a6f9b0 100644
--- a/src/Components/VitalsMonitor/types.ts
+++ b/src/Components/VitalsMonitor/types.ts
@@ -8,7 +8,7 @@ export interface VitalsDataBase {
"patient-name": string;
}
-export interface VitalsValueBase {
+export interface VitalsValueBase extends VitalsDataBase {
value: number;
unit: string;
interpretation: string;
diff --git a/src/Components/VitalsMonitor/useHL7VitalsMonitor.ts b/src/Components/VitalsMonitor/useHL7VitalsMonitor.ts
index 8b74a2d05d2..ed16cc2edfd 100644
--- a/src/Components/VitalsMonitor/useHL7VitalsMonitor.ts
+++ b/src/Components/VitalsMonitor/useHL7VitalsMonitor.ts
@@ -8,11 +8,12 @@ import useCanvas from "../../Common/hooks/useCanvas";
import {
ChannelOptions,
IVitalsComponentProps,
+ VitalsDataBase,
VitalsValueBase as VitalsValue,
} from "./types";
import { getChannel, getVitalsCanvasSizeAndDuration } from "./utils";
-interface VitalsBPValue {
+interface VitalsBPValue extends VitalsDataBase {
systolic: VitalsValue;
diastolic: VitalsValue;
map: VitalsValue;