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