Recorder PC clock¶
The Windows clock of the PC running Vital Recorder. It stamps every record, and every other clock is linked to it, directly or through others.
| Type | software |
| Nominal | Windows system time, kept by network time synchronisation |
| Kept by | Vital Recorder |
Description¶
Vital Recorder stamps each record on arrival with this clock, and every device link is measured against it. Its own link to UTC cannot be observed in the release, because dates are shifted to the year 2100, so that link is an explicit assumption: a few ppm of drift, corrected by Windows time synchronisation every 8–24 h.
It does not step visibly: across all 6,388 files no simultaneous jump of every device of 0.5 s or more was found, and it never steps backwards.
Every device drift in the atlas is measured against this clock, so its own drift and corrections are inside every one of them. Within a recording the BIS and SNUADC drifts vary from interval to interval, but in opposite directions (r = −0.54), which a PC excursion would not produce (When each device's clock is corrected, in every recording).
The recording itself pauses for about 18 s on a 5-hour timer that does not start with the recording (Recording pauses of about 20 s); whether that timer belongs to the PC or to Vital Recorder is not known.
Route to UTC¶
The route the atlas trusts most (1 link; it is the link to UTC that every clock shares):
Plan. The only link the release cannot show. What is known: no step of 0.5 s or more in any file. To go further needs evidence from outside the release: the recorder PCs' time-synchronisation logs or settings from the hospital, or recordings with a known external time (a dated event, a GPS-stamped device).
Links to other clocks¶
| Link | Clock | Against | Modes | Rate | Corrected every | Status |
|---|---|---|---|---|---|---|
| BIS against the recorder PC | BIS clock | Recorder PC clock | all | 25 ppm (p10–p90 12 to 50; 5th–95th 7.3–51.1 ppm; census fit of 4,728 recordings median 21.1 ppm) | 8,192 s (2 h 16.5 min), ± 20 s in 95% of intervals | measured |
| CardioQ against the recorder PC | CardioQ clock | Recorder PC clock | all | — | at most about 300 s; about 40 re-anchors per case | measured |
| Hospital records clock against the recorder PC | Hospital records clock | Recorder PC clock | all | — | — | assumed |
| Primus against the recorder PC | Primus clock | Recorder PC clock | all | 104 ppm (p10–p90 28 to 184; 178 recordings; whole-recording lines give +87 ppm median in 1,060 (p10–p90 −49 to +229)) | about 7,230 s (2.0 h; p90 twice that) | measured |
| Recorder PC against UTC | Recorder PC clock | UTC | all | 0.1–10 ppm (assumed) | 8–24 h (assumed) | assumed |
| SNUADC (frequent-correction mode) against the recorder PC | SNUADC sample clock | Recorder PC clock | frequent | −0.954 ppm (n = 6321; census of 6,321 files (17 October): median −0.9535 ppm; 89.5% of recording hours within 0.05 ppm of −0.954; 747 files (12%) between −0.90 and −0.55 ppm) | — | measured |
| SNUADC (step mode) against the recorder PC | SNUADC sample clock | Recorder PC clock | step | −63 ppm (p10–p90 −79 to −44; 5th–95th −80.3 to −36.9 ppm; medians of −46 to −74 ppm by serial port) | 2.08 h (5th–95th 1.65–3.57 h between resets; per-recording means p10–p90 1.68–3.07 h) | measured |
Variables stamped by this clock¶
Recording Start Time, BIS EEG, CardioQ pressure and flow, EV1000 mean arterial pressure, FMS rapid infuser, Invos regional oxygen saturation, Airway pressure (Primus), Capnogram (Primus), Primus ETCO₂, PIP and RR, Infusion pump rates and volumes, Arterial pressure (SNUADC), ECG lead II (SNUADC), Plethysmogram (SNUADC), Solar8000 ART and CVP numerics, Solar8000 heart rate, Non-invasive blood pressure, Solar8000 pulse rate (PLETH_HR), SpO₂, Vigilance continuous cardiac output, Vigileo SV, CO and SVV
Parameters¶
| Parameter | Value | Status | From |
|---|---|---|---|
| Largest recorder PC clock step | no step of 0.5 s or more in 6,388 files (19,006 h) | measured | Recorder PC clock steps and recording pauses |
| Recording pause | 19.6 s (p10–p90 15.7 to 29.8; 2,025 pauses in 1,846 files (29%)) | measured | Recorder PC clock steps and recording pauses |
Observations¶
| Observation | Status | Summary |
|---|---|---|
| Device clock drift depends on the setup | established | The drift of the SNUADC's and the BIS's timestamps against the recorder PC is largely set by the setup: knowing a recording's PC key (the serial ports of its four core devices) puts the SNUADC's drift within 3 ppm of its setup's median in 97% of cases and the BIS's in 83%, against 34% and 17% for the release's median. On the whole release's correction intervals the same test gives 71% and 60% (Identifying the recording setup of every case). |
| Every case starts at 2100-01-01 00:00 UTC | established | The release shifts each case to the same start, removing the date and the time of day. Within a case all times keep their spacing. |
| Recording pauses of about 20 s | established | In 29% of files every device jumps forward together, by a median 19.6 s: the recorder paused. Data are missing there, and the stamps show it honestly. The pauses run on a 5-hour timer: consecutive pauses in a recording are 5 h apart (plus the pause) in 86% of cases, and the first comes at any time after the recording starts. |
| SNUADC sends no time; the recorder stamps by count | established | The SNUADC board streams samples with no time stamps. Every SNUADC time in VitalDB is the recorder's model of the board's clock: the sample count at the nominal rate, pulled back when it drifts too far. |
| The EMR clock's offset cannot be separated from documentation lag | established | Both routes between the EMR clock and the recorder run through the case start, so any EMR clock offset cancels. Without a time from outside the release it is confounded with how late entries are made. |
Studies¶
| Study | Date | Status | Summary |
|---|---|---|---|
| Gaps and unbroken segments in every waveform | 2026-10-19 | draft | Every gap and every unbroken segment in the 6,388 recordings, per waveform. The curves are not smooth: a cliff at about 18 s in every device marks the recorder's pauses, SNUADC segments stop at 5 hours, Primus segments at about 2.0 hours and BIS segments at about 2.3 hours (each device's correction cycle), and BIS's short gaps grow with the time since the last one (clock resynchronisations, not lost data). |
| When each device's clock is corrected, in every recording | 2026-10-19 | draft | From the steps between records in all 6,388 recordings: the BIS is corrected every 8,192 s and the Primus every 7,230 s, on their own timers (the first correction comes at any time after the device starts); the SNUADC is reset when 0.49 s of drift has built up. With the full rerun of the correction fit, it gives each device's drift against the recorder PC in 4,728 BIS and 2,728 SNUADC recordings, and shows that the Primus's 20–23 s AWP pauses belong to its correction cycle. Every rate here is relative to the recorder PC, whose own clock drifts and is corrected. |
| The Primus stamp step at each airway-pressure pause | 2026-10-19 | current | Measured directly at 2,491 pauses in 1,021 recordings: where CO₂ carries on through the AWP pause (74%), the Primus stamps barely step (median −1 ms, p10–p90 −164 to +187 ms, close to the no-pause controls); where CO₂ stops too (26%), they step by up to seconds. No step undoes the drift built up since the last pause. |
| Message sizes and the steps between records | 2026-10-19 | draft | Every record in every waveform: SNUADC writes messages of 100 samples (0.2 s), Primus 30 (0.48 s), BIS 16 (0.125 s), CardioQ no fixed size. Backward steps outnumber gaps by about a hundred to one and come from a few recordings with duplicated or interleaved records. Primus gaps are whole lost messages; most SNUADC and BIS gaps are not. |
| The SNUADC clock through the Solar8000 numerics, whole release | 2026-10-19 | current | On the SNUADC's own sample count, the delay from the waveform to the PC-stamped Solar8000 heart rate and mean arterial pressure ramps at the SNUADC's drift against the PC, measured without its stamps or resets. In recordings with whole reset intervals it agrees with them (−63 ppm; median difference +1.5 ppm, 581 recordings). It is too noisy per recording, and in recordings under about 4 h its rate is biased toward zero, so it cannot yet speak for recordings without resets. |
| What each break in the stamps is | 2026-10-19 | draft | Every step between waveform records in the release, sorted by mechanism: written twice, a SNUADC clock reset, interleaved streams, a pause shared by every device, whole messages, less than a message, or a fraction of a message beyond whole ones. A continuity test with controls shows which classes lose data: shared pauses and most longer SNUADC gaps do; steps under one message, and SNUADC's lone one-message steps, mostly do not. |
| How often each device is corrected | 2026-10-17 | current | The devices re-synchronise in different ways: SNUADC when its drift reaches about half a second, BIS on a fixed 8,192 s timer, and the Primus by small steps about every two hours that do not keep up with its drift (+104 ppm, measured later by breath matching). |
| SNUADC against the PC-stamped heart rate | 2026-10-17 | current | The Solar8000 heart rate is stamped by the recorder on arrival, so the delay from the ECG to it, on the ECG's raw sample count, ramps at the SNUADC clock's rate: −65.3 ppm, against −66.7 ppm from the stamp model. Two independent routes agree. |
| Paced ECG as an independent clock | 2026-10-17 | current | Fixed-rate pacing gives a clock the recording chain cannot touch. Timing paced beats on three timelines shows that each SNUADC step-mode correction loses about 18 ms of signal, and that nothing else breaks the sample stream. |
| Recorder PC clock steps and recording pauses | 2026-10-17 | current | A step of the recorder PC clock would move every device's stamps at once. Searching all 6,388 files for such simultaneous jumps found none of 0.5 s or more; what moves everything together is recording pauses. |
| Records out of order at SNUADC resets, and where the lost time goes | 2026-10-17 | current | At every SNUADC reset the five records after it are written out of order: two continue the old timing and three start the new. Put back in order, the waveform runs on with no samples missing; the 18–20 ms lost at each reset goes missing inside the last old-timing record, and an extra zero sample follows. |
| SNUADC stamp arithmetic | 2026-10-17 | current | Between corrections the SNUADC block stamps run −0.95 ppm against the sample count: each 0.2 s increment is about 0.19 µs short. This, not clock drift, is the "about −1 ppm" seen in frequent-correction mode. |
| The vitaldb package's loading conventions | 2026-10-17 | current | The vitaldb Python package sets time zero from the tracks loaded, places waveform blocks by rounding their stamps up to a sample, and lets overlapping blocks overwrite each other. Each choice moves or loses samples. |
| Time zeros and loaded subsets | 2026-10-16 | current | A VitalDB time "from the start" depends on which tracks were loaded: loading a subset moves the zero to that subset's first record, seconds or hours later. The arrhythmia database's annotations count from the full file's zero. |
| Closing loops in the timing graph | 2026-10-13 | current | Where two independent routes reach the same clock, the offsets around the loop must sum to zero. Three measured loops close within their noise; the BIS loop closes up to a constant latency; the proposed EMR loop is not a loop at all. |
| Rare devices against SNUADC | 2026-10-13 | current | CardioQ, EV1000, Vigileo and Vigilance each get a link to the SNUADC timeline: beat matching for the CardioQ, mean arterial pressure alignment for the EV1000 and Vigileo, and a long-window fit for Vigilance's averaged heart rate. |
| Recovering the time of day | 2026-10-12 | current | The release shifts every case to start at 2100-01-01 00:00 UTC, removing the date and the time of day. The time of day (Korean local time) can be recovered to the minute from the admission date and the seconds of the EMR times. |
| Anaesthesia record times are rounded up | 2026-10-12 | current | Anaesthesia start and end entered on a 5-minute mark sit 90–290 s later, against device markers, than entries typed to the minute. Rounding up to the next 5 minutes fits every one of 11 markers better than rounding to the nearest or down. |
| The stamp sawtooth model for SNUADC and BIS | 2026-10-12 | current | Fitting each track's record stamps against its sample count as a drift with corrections (a sawtooth) puts SNUADC and BIS on one timeline without any artefact. Checked against shared bursts, the EEG–ECG timing error falls from about 790 ms on the recorded stamps to 33 ms with one constant per SNUADC mode in the pilot, and 42 ms over the whole release. |
| Clock corrections in every file | 2026-10-11 | current | A scan of all 6,388 files for the jumps where the recorder re-synchronises a device's stamps. Each device type has its own correction signature; only SNUADC and BIS correct clearly enough to measure their drift. |
| Physical units, shared drift and time order | 2026-10-11 | current | Device drift rates cluster into units: about 8 SNUADC boards and 8–18 BIS monitors. Part of the drift is shared by both devices of a case and changes between cases: the recorder PC's own rate. Case order carries no time information. |
References¶
- Lee H-C, Park Y, Yoon SB, Yang SM, Park D, Jung C-W. VitalDB, a high-fidelity multi-parameter vital signs database in surgical patients. Sci Data. 2022;9:279. ↗
- Mills D, Martin J, Burbank J, Kasch W. Network Time Protocol Version 4: Protocol and Algorithms Specification. RFC 5905. RFC Editor; 2010. ↗