Skip to content

Open

Work in progress: results may change.

The Primus ventilator against SNUADC, by breaths

Each breath shows in the Primus airway pressure and, through the chest, in SNUADC's central venous pressure. Tracking that lag puts the Primus on the SNUADC timeline to about 55 ms over the whole release, with a line per stretch between its AWP pauses (49 ms in the pilot). At scale it measures the Primus drifting a median +104 ppm against the recorder PC between its AWP pauses, with steps at the pauses that do not reset it.

Date 2026-10-12
Status open
Methods One event, two clocks
Techniques Windowed cross-correlation, Null controls
Clocks Primus clock, SNUADC sample clock
Devices Primus anaesthesia machine, SNUADC
Variables Airway pressure (Primus), Capnogram (Primus), Arterial pressure (SNUADC)

Background

The Primus shares no artefact with SNUADC, but ventilation reaches the circulation: each breath moves central venous and arterial pressure. Ventilation is very regular, so a plain cross-correlation matches one breath away almost as well as at the right lag.

Data

20 of the longest benchmark cases with CVP, airway pressure and ECG; a 0/60/115/170 ppm sweep on 150 cases.

Method

SNUADC times were corrected with the stamp model. Breath-onset-triggered averages of airway pressure and CVP in 10-minute windows gave the lag. Breath identity was then confirmed by breath matching: the size of each breath's CVP response against the peak airway pressure of breath i + k, which varies enough from breath to breath to pick the right k. Injected errors of one or two breaths tested it.

Results

  • The Primus clock drifts uncorrected between its stamp gaps: the AWP→CVP lag ramps within each stretch at a median +92 ppm (IQR 34–153), and 72% of lag steps fall at Primus stamp jumps.
  • Breath-triggered averages give the lag to 59 ms median per window (p90 269 ms, including whole-breath mis-assignments after resets).
  • Breath matching confirms the breath identity in 53% of good windows and recovers injected ±1–2-breath errors 91–96% of the time when confident. With confirmed identity the lag fits per-stretch lines to 49 ms (p90 165 ms).
  • The drift is 31–200 ppm (median +141) and not constant within a case. A sweep of assumed drifts is inconclusive: 170 ppm fits no better than 115.
  • At scale (19 October). The same lag, on the SNUADC stamp model, in 1,061 recordings with CVP (Pulse pressure variation gated by ventilator breaths): the Primus sits a median 1.8 s off the SNUADC (p10–p90 0.6 to 5.1 s), and a line through each whole recording gives +87 ppm (p10–p90 −49 to +229). Fitted with one slope and one offset per stretch between AWP pauses, in 178 recordings with pauses (tools/primus_drift_probe.py): the drift within stretches is a median +104 ppm (p10–p90 +28 to +184), and the per-stretch offsets halve the residual (195 to 99 ms). The steps at the 390 pauses (median −29 ms, p10–p90 −685 to +494 ms) are unrelated to the drift built up in the stretch before (correlation 0.0): the pauses move the stamps but do not reset the drift.
  • Accuracy over the whole release (19 October; tools/primus_sync_accuracy.py). Each 10-minute window predicted from all the others (a slope and an offset in each stretch between AWP pauses): a median error of 55 ms (p90 187 ms, p95 284 ms) in 1,067 recordings with CVP, against 74 ms (p90 259 ms) with one slope per recording (tools/primus_pause_aware.py). The arterial mean pressure as a second reference is noisier (83 ms; p90 343 ms, 1,384 recordings), sometimes a breath out; where both exist (462) their drifts differ by a median 49 ppm. An injected shift of 0.25 s and drift of 100 ppm (196 recordings) come back as 0.252 s and 99.6 ppm (medians, one slope per recording).
Six panels over 9 hours. Left column: sawtooth lines for SNUADC and BIS and a rising line for the Primus spanning about 3.5 seconds; burst lags ramping between minus 0.6 and minus 1.2 seconds; breath lags rising from minus 2 to plus 2 seconds. Right column: the same quantities flat near zero.
One recording (case 1216, 8.7 hours), before synchronisation (left) and after (right), on the same scales. Top: each clock's time minus the synchronised time. The SNUADC's stamps drift and are pulled back by half a second about every two hours; the BIS's stamps sit about 0.8 s off and are pushed forward every 8,192 s; the Primus drifts about 4 s over the recording and steps at its airway-pressure pauses (dotted lines). After synchronisation the typical error left is about 3 ms (SNUADC), 42 ms (BIS) and 55 ms (Primus, whole-release medians; bands). Middle: the same electrocautery and muscle bursts seen in the ECG and the EEG, as recorded and on the synchronised times, a check independent of the correction. Bottom: the airway-to-central-venous pressure lag of the breath cycle, as recorded and, after, as the error left when each 10-minute window is predicted from all the others.
Parameter Value Status From
Primus drift against the recorder PC, from breath matching 104 ppm (p10–p90 28 to 184; 178 recordings; whole-recording lines give +87 ppm median in 1,060 (p10–p90 −49 to +229)) measured The Primus ventilator against SNUADC, by breaths

Discussion

The SNUADC stamp model places the SNUADC on the recorder PC's timeline, so the lag's slope is the Primus drift against the PC: about +104 ppm, close to the 115 ppm assumed earlier from this pilot. The Primus's own small corrections (How often each device is corrected) imply only 1–11 ppm, so they do not track the drift. The measured lag includes the physiological airway-to-CVP delay, which is constant within a recording and does not affect the slope.

Limitations

A 20-case pilot. The offset includes the physiological airway-to-CVP delay.

Open questions

  • What sets the steps at the AWP pauses (unexplained phenomenon). Partly answered by The Primus stamp step at each airway-pressure pause (2,491 pauses): where CO₂ carries on through the AWP pause the stamps barely step (median −1 ms, p10–p90 −164 to +187 ms); the large steps, up to seconds, come where CO₂ stops too (26% of pauses). None undoes the drift built up. Open: what the stamps re-anchor to when both waveforms stop.
  • Separating the airway-to-CVP delay (next step). The physiological delay from airway pressure to CVP is inside the measured offset and has not been separated.

Worked examples

Example Side Status Summary
Pulse pressure variation gated by ventilator breaths time draft Pulse pressure variation per ventilator breath, in 3,448 recordings: the ventilator's clock sits a median 1.8 s off the arterial line's, which moves half of all breaths' values by a point or more and scatters where in the breath the pulse pressure peaks; a recording's median PPV hardly changes.

Code

Figures

Fourteen small scatter plots of lag in ms against hours, with filled and open dots and red dashed vertical lines.
Lag of the Primus ventilator against SNUADC, from CVP after breath matching, in 14 cases. The lag ramps by about 50–200 ppm and steps at Primus stamp jumps (red dashed lines). case 1936 and case 3549 show offset plateaus near 8 s; in case 3549 and case 2172 red crosses mark values before the fix.