A medication push at 14:03:00 logged as 14:03:30 because the wall clock drifted. A code event timestamped from a nurse’s wristwatch that reads three minutes fast. A screen saver that blanks the only visible timer during a procedure. None of these are rare. A browser-based fullscreen clock on a wall-mounted display solves the visibility and sleep problems cheaply. It does not solve the accuracy problem on its own. Know the difference before you mount it.

Where Does a Clinical Wall Clock Get Its Time?

The browser does not fetch time from the internet. It calls the operating system. The operating system calls whatever it was given. If the OS clock is wrong, the browser clock is wrong. There is no independent web time fetch. No hidden NTP query in JavaScript. No API that exposes whether the system clock is synced or drifting.

Most consumer operating systems sync via NTP periodically. Between syncs the system relies on a quartz crystal oscillator. Consumer hardware typically drifts 1 to 15 seconds per month. A wall clock that was correct in January can be half a minute off by March if the device has not synced. In a clinical setting, that gap matters.

How Do I Keep a Healthcare Clock Display Always On?

Two separate browser APIs control what happens on screen. They are often confused.

Fullscreen is not wake lock

The Fullscreen API expands an element to fill the display. It does nothing to keep the screen on. The Screen Wake Lock API prevents the device from dimming or locking. You need both.

Activating both APIs

Activate fullscreen with a user gesture. A tap or a click. Browsers block scripted fullscreen without one. Then request the wake lock. The wake lock releases when the tab is hidden or the device locks. On some platforms, OS power settings override the wake lock anyway.

Testing the setup

Test the full setup. Leave the display running for the length of the longest procedure you expect. Check that it does not dim at minute 47. Some operating systems kill background power requests after a set period. Consumer tablets are especially prone to this. A Raspberry Pi in kiosk mode works. So does a dedicated mini PC bolted behind the display. Both can run unattended for weeks.

What a Browser Clock Cannot Do in a Clinical Setting

A browser clock is not a calibrated medical device. The number on screen updates roughly every 16.67 milliseconds on a 60Hz display. That is the frame interval, not the accuracy. The rendering pipeline adds variable latency. Typically 16 to 50 milliseconds, depending on frame timing. The screen shows a representation of the time, not a precision measurement.

When it is sufficient

For logging medication intervals, tracking procedure duration, and coordinating staff across a room, it works.

When it is not

Do not use it for sub-second measurements. Do not use it where a certified time source is required by protocol or regulation. For anything requiring a traceable timestamp, use a dedicated time system.

Stopwatches and Countdowns for Procedures

A stopwatch must use monotonic time, not wall-clock time. performance.now() only ever increases. It is unaffected by NTP corrections, manual clock changes, or daylight saving transitions. Date.now() can jump. If a stopwatch runs on wall-clock time and the system corrects a 2-second drift mid-procedure, the elapsed time jumps by 2 seconds. That is a documentation error waiting to happen.

Building a reliable countdown

Countdown timers need the same treatment. Calculate the target end point using monotonic time. Count down from there. Large digits. High contrast. An audible alert at zero. In an exam hall or procedure room, the alert must be loud enough to cut through ambient noise. Test it in the actual room, not at a desk.

How Do I Prevent Screen Burn-In on a Clinical Wall Clock?

OLED displays degrade with static elements. A clock that shows the same colon in the same position for months will burn that colon into the screen.

Shifting and inverting

Shift the display position by a few pixels periodically. Invert colors on a schedule. Some deployments use a subtle screen saver that activates after hours and dissolves when the display is tapped.

LCD considerations

On LCD displays this is less urgent. Still worth addressing for hardware longevity.

Do Clock Settings Survive a Restart in a Hospital Setup?

Preferences save to Local Storage. 12-hour or 24-hour format. Color. Size. That storage is synchronous and holds roughly 5 to 10 megabytes per origin. It persists indefinitely unless manually cleared.

The private mode trap

In private or incognito browsing modes, Local Storage clears when the session ends. Do not configure a clinical display in private mode and expect the settings to survive a restart.

What Should I Check Before Relying on a Browser Clock for Procedures?

Check the OS time source. If the device syncs via NTP, confirm the sync interval. Windows on older versions defaulted to roughly weekly syncs. Modern versions sync more frequently. Check the actual setting on the specific device. If the network blocks NTP traffic, the clock drifts from day one. Some hospital networks do block it.

Refresh rate and wake lock

Check that the display refresh rate matches expectations. A 60Hz panel updates every 16.67 milliseconds. A 120Hz panel halves that. The clock will look smoother on the faster panel. The underlying accuracy does not change.

Check that the wake lock holds for the full duration needed. Run a test on a slow afternoon. Leave the clock visible for four hours. If the screen dims at any point, the setup is not ready for clinical use.

When the Common Advice Is Wrong for Clinical Clocks

“Just use a wall clock.” A battery-powered analog wall clock drifts more than a quartz oscillator synced weekly. It also has no seconds display. No countdown. No ability to shift position to prevent burn-in. It is not the safer option. It is just the familiar one.

“The browser clock is always accurate because it comes from the internet.” It does not. It comes from the OS. If the OS clock is wrong, everything downstream is wrong.

“Fullscreen mode keeps the screen awake.” It does not. The Screen Wake Lock API does that, and it requires an explicit request.