Skip to content

Draft

Not yet written up in full.

Gaps and unbroken segments in every waveform

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).

Date 2026-10-19
Status draft
Methods Data continuity
Techniques Cumulative duration curves, Null controls
Clocks Recorder PC clock, SNUADC sample clock, BIS clock, Primus clock
Devices Vital Recorder, SNUADC, Primus anaesthesia machine, BIS monitor, CardioQ
Variables ECG lead II (SNUADC), Plethysmogram (SNUADC), Arterial pressure (SNUADC), Capnogram (Primus), Airway pressure (Primus), BIS EEG

Background

Gaps that strike at random give a smooth distribution of gap lengths and of segment lengths. Any mechanism with a length of its own (a restart, a periodic break, a buffer) shows as a cliff or a step. Before choosing how to handle missing data, the question is which gaps are which.

Data

All 6,388 recordings; every waveform track (SNUADC ECG II, V5, PLETH, ART, CVP, FEM; Primus CO₂ and AWP; BIS EEG; CardioQ FLOW). A gap is any forward step in the stamps of more than 1.5 samples beyond the end of the previous record; a segment is a stretch with no gap.

Method

  • Per recording and waveform, every gap (start, length) and every segment (start, length, and whether it ends in a gap or at the edge of the recording) was cached (signal_events.py) and collected into one table.
  • Cumulative counts (number longer than x) on log–log axes, for gaps and for segments; for segments, all, interior only (a gap at both ends), and a Kaplan–Meier estimate with edge segments censored.
  • Each gap's length against the time since the previous gap in the same track (or since the start).

Results

  • A cliff at about 18 s in every device (ECG II: 1,968 gaps of 15–25 s, median 17.9 s; the same in PLETH, ART, CVP, Primus and BIS). These are the recorder's pauses (Recording pauses of about 20 s), common to every device, not losses in any one signal. Above about 30 s the curve falls smoothly to gaps of hours.
  • A step at 0.2 s in SNUADC: gaps of exactly one message.
  • SNUADC segments stop at 5 hours. No interior segment is longer than 17,991 s (5 h minus about 9 s), and many are exactly that long, each followed by an 18 s gap. These are the recorder's pauses, which recur every 5 hours on a timer of their own (Recording pauses of about 20 s); most 5-hour segments start at an earlier pause.
  • Primus and BIS segments stop at their correction cycles. Primus AWP segments never exceed about 7,980 s; most end at the AWP pause that recurs every 7,230 s (2.0 h; The Primus AWP stops for about 21 s every 7,230 s). BIS segments pile up at 7,500–8,500 s (2,584 of them), around its 8,192 s (2.3 h) correction timer (When each device's clock is corrected, in every recording).
  • BIS's short gaps are clock resynchronisations. Sub-second BIS gaps grow in proportion to the time since the previous gap: a median 30 ppm of the elapsed time (interquartile range 20–48 ppm), the BIS clock's drift against the recorder (18–55 ppm by setup; Device clock drift depends on the setup). The stamps are stepped to catch up; no samples are lost.
  • AWP has an arc of sub-second gaps whose length plus the segment before it is about 0.5 s: bursts on a 0.5 s cycle, one Primus message.
  • CardioQ is fragmented throughout: about 76 gaps per hour, median coverage 80%, with no structure beyond a smooth curve.
  • SNUADC has a band of millisecond gaps right after a 0.2 s segment: one record alone, then a small step.
  • Most segments end with the recording, not with a gap, so the censored estimate stays high; the interior and all-segment curves bracket it.
Ten log–log step curves of gap counts, most with a sharp cliff near 18 seconds and a smooth tail to hours.
Number of gaps longer than x, per waveform, log–log; dotted lines at 0.2 s, 1 s, 1 min and 1 h. Every SNUADC, Primus and BIS signal has a cliff at about 18 s (the recorder's pauses); SNUADC also steps at 0.2 s (one message). CardioQ falls smoothly from about 1 s.
Ten log–log curves of segment counts; the blue SNUADC curves drop vertically at about 18,000 seconds, Primus and BIS at about 8,000 seconds.
Number of unbroken segments longer than x, per waveform: all segments (grey), interior segments with a gap at both ends (blue), and a Kaplan–Meier estimate with edge segments censored (orange). SNUADC interior segments stop at 5 hours; Primus AWP segments near 2.0 hours and BIS segments near 2.3 hours.
Ten heat maps; each has a dark column near 18 seconds; the BIS panel has a diagonal band from 10 ms at 1,000 seconds to 0.5 s at 10,000 seconds.
Each gap's length (x) against the time since the previous gap in the same track (y), counts on a log colour scale. The column at 18 s is the recorder's pauses; BIS's diagonal band (short gaps growing with the elapsed time) is clock resynchronisation; AWP's arc is gaps plus segments of 0.5 s.

Before and after synchronisation. Measured again at every record junction, on the stamps and on each device's fitted stamp clock (6,322–6,342 recordings per signal; up to 28 per signal with broken record streams left out, Eight recordings store whole messages twice, In some recordings two unrelated streams are interleaved in one track, In 34 files the SNUADC records overlap throughout):

Signal Gaps ≥ 10 ms, as recorded → synchronised Overlaps ≥ 10 ms, as recorded → synchronised
SNUADC (ECG II) 5,621 → 8,850 14,825 → 29
BIS EEG 10,545 → 3,322 1,306 → 1,338
Primus AWP 20,260 → 15,485 7,291 → 1,679
Primus CO₂ 3,799 → 3,798 1,675 → 67

Clock corrections look like gaps or overlaps on the stamps and vanish once the clock is fitted: the SNUADC's resets and the reordered records around them (overlaps), the BIS's forward corrections of about 0.17 s (gaps), and the Primus's small whole-sample steps. The SNUADC gains about 3,200 gaps, each the 17.7 ms its reset never samples (About 20 ms of signal lost at every SNUADC reset): signal really missing, which the stamps hide. Gaps of a second or more are the same before and after: they are real. About 1,300 short BIS overlaps run against its correction direction and are kept as breaks.

Four log-log panels (SNUADC, BIS, Primus AWP, Primus CO₂) of counts against size from 1 ms to 10,000 s. Grey and blue gap lines coincide above about a second in every panel; below it the grey overlap lines for SNUADC, Primus AWP and CO₂ fall to a few dozen in blue, and the BIS's grey gap line drops by about two thirds.
Gaps (solid) and overlaps (dotted) between consecutive records, as recorded (grey) and on each device's fitted stamp clock (blue): the number at least each size. Where the lines part, a clock correction was showing as a gap or an overlap; where they coincide, the gap is real. The SNUADC's new step at 17.7 ms is the signal each reset loses. Recordings with broken record streams are left out.

Discussion

Almost none of the structure is random. The largest groups of gaps are system events (pauses, periodic breaks, resynchronisations) with lengths of their own, and the remaining smooth tail is a small share. The forward gaps seen here are only part of the picture: the stamps also step backwards far more often (Message sizes and the steps between records).

Observations it supports

Observation Status Summary
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.

Limitations

  • The gap rule looks forward only and ignores steps under 1.5 samples.
  • The 5-hour and 2.2-hour breaks are inferred from the stamps; the recorder's own logs, if they exist, would name them.

Open questions

  • Which gaps lose data? (next step). Answered per class in What each break in the stamps is: shared pauses and most SNUADC gaps beyond one message lose data; sub-message steps and BIS resynchronisations do not.

Code