Adding total time and/or an ETA to the drop-off hospital on the status board would be a huge benefit for users. It would allow for better planning and coordination, especially when tracking multiple transports in progress. Dispatchers, clinicians, and leadership could more quickly assess where each unit is in their transport, anticipate arrival times, and make more informed decisions about resource allocation. It would definitely add clarity and improve overall situational awareness across the board.
Hello. Status board timing elements were added to FV CAD with version 6.9.1.0.
Status Board Timing Element (6.9.1.0+)
By Susan Schenck5 min20Add a reactionTranslationsTranslate page
Status boards may have columns added to measure the time since an event happened, until an event happens, or to measure the time difference between two events.
Instructions
Navigate to Status Boards in the Settings.
Add a ‘Custom’ column.
Configure using Raw SQL.
These functions are not available in the Condition Builder
SQL Timing Elements:
MinutesUntil(time) takes 1 time argument, returns the minutes until that time.
This will also return the minutes since a time, and display a negative number
IsInFuture(time) takes 1 time argument, returns if it's in the future or not.
TimeIsWithinXMinutes(time, integer) takes 1 time argument and 1 integer argument, returns if time argument is within the int argument minutes.
TimeIsMoreThanXMinutesAgo(time, integer) takes 1 time argument and 1 integer argument, returns if time argument is more than the int argument minutes ago.
TimeIsLessThanXMinutesAgo(time, integer) takes 1 time argument and 1 integer argument, returns if time argument is less than the int argument minutes away.
Examples:
Example #1 MinutesUntil(time)
In this example, the time since the request was created is being displayed.
Text:
'Time Since Creation ' || -MinutesUntil(DateOfService) || ' minutes ago'
**Note: adding the - in front of MinutesUntil(DateOfService) will remove the negative value and make it positive. Since the time has passed, it would have shown negative minutes.
Example #2 IsInFuture(time)
In this example, the time set for when Triage is Needed is being evaluated for being in the future vs in the past.
Text:
CASE WHEN (IsInFuture((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem))) = 1
THEN
'Time is in the future: ' || (SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed")'), ', ') FROM transferItem)
ELSE
'Time has already past'
END
Example #3 TimeIsWithinXMinutes(time, integer)
In this example, if the ‘Triage Needed’ time is within 10 minutes, then it will display yes, otherwise it will display no.
Text:
CASE WHEN
(TimeIsWithinXMinutes(strftime('%H:%M', (SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed")'), ', ') FROM transferItem), 'localtime'), 10)) = 1
THEN 'Yes'
ELSE 'No'
END
Example #4 TimeIsMoreThanXMinutesAgo(time, integer)
In this example, the Administrator has configured two timestamps, ‘Triage Needed’ & ‘Triage Completed’ and is measuring how long it has been since Triage Needed was clicked without Triage Completed.
Text:
CASE WHEN (TimeIsMoreThanXMinutesAgo((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem), 5))
AND
(SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Completed" ORDER BY DateTime DESC)'), ', ') FROM transferItem) ISNULL
THEN
'Triage Still Needed, it has been : ' || MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem))
WHEN
(SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Completed" ORDER BY DateTime DESC)'), ', ') FROM transferItem) IS NOT NULL
THEN
'Completed'
ELSE
'Not Completed'
END
Text Color:
CASE WHEN (TimeIsMoreThanXMinutesAgo((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem), 5))
AND
(SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Completed" ORDER BY DateTime DESC)'), ', ') FROM transferItem) ISNULL
THEN
RGB(0,255,64)
WHEN
strftime('%H:%M', (SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Completed" ORDER BY DateTime DESC)'), ', ') FROM transferItem), 'localtime') != ''
THEN
RGB(255,0,128)
ELSE
RGB(255,128,0)
END
Example #5 TimeIsLessThanXMinutes(time, integer)
In this example, the timestamp is marked with a future time, when that time is within 5 minutes it will start to display that to the user. Notice it will tell you when the time is passed and the color of the text is different based on the amount of time that is left as well as the background color.
Text:
CASE WHEN ((IsInFuture((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem))) = 1 AND (TimeIsWithinXMinutes((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem), 5)))
THEN
'You have ' || MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) || ' minutes to go'
WHEN (IsInFuture((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem))) = 0
THEN
'Time has Passed'
END
Text Color:
CASE WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 5
THEN RGB(0,255,255)
WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 4
THEN RGB(0,0,255)
WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 3
THEN RGB(255,255,0)
WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 2
THEN RGB(255,128,0)
WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 1
THEN RGB(149,0,0)
ELSE RGB(255,255,255)
END
Background Color:
CASE WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 5
THEN RGB(255,128,128)
WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 4
THEN RGB(255,128,128)
WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 3
THEN RGB(255,128,128)
WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 2
THEN RGB(255,128,128)
WHEN MinutesUntil((SELECT group_concat(withTransferItem(ID, '(SELECT DATETIME FROM TcEntryTimes WHERE time_name = "Triage Needed" ORDER BY DateTime DESC)'), ', ') FROM transferItem)) = 1
THEN RGB(255,255,128)
ELSE RGB(192,192,192)
END
If you need help configuring your specific use case, please reach out to our support team in the Zendesk portal. If the feature we added does not meet your team's need, please submit further details.
Thanks,
Susan