Arterial pressure (SNUADC)¶
Invasive arterial pressure, sampled by SNUADC at 500 Hz from the monitor's analogue output.
Stub
Imported from the time-source table; the full page is still to be written.
| Name in the dataset | SNUADC/ART |
| Type | waveform |
| Device | SNUADC |
| Stamped by | Recorder PC clock |
| Spaced by | SNUADC sample clock |
| Rate | 500 Hz |
| Unit | mmHg |
Measurement space¶
Time side (stamp-model time): the true time lies between -0.013 s and -0.0003 s from the stamp: the delay range plus the interval one value describes.
Time¶
From UTC to the stored time stamp¶
The clock path first (UTC to the clock that stamps or spaces the samples), then the signal's own path to its stored time. Each bar: the time shift or error the step introduces (pale) and what is left after the atlas's correction (solid), on a log scale; dashed when estimated or assumed.
The reference every chain starts from.
Windows time synchronisation to the hospital's time server every 8–24 h (assumed), drifting a few ppm in between. Not observable in the release: dates are shifted to 2100. No step of 0.5 s or more was found.
SNUADC samples on its own crystal; the recorder stamps each 0.2 s record from its model of that clock. In step mode the stamps drift (−63 ppm median) and are pulled back about 0.48 s whenever the drift reaches half a second; in frequent-correction mode they stay within about 10 ms. The atlas's stamp model refits the line. Drift: −63 ppm median in step mode, pulled back about every 2.08 h.
Signal lost at resets
At each step-mode reset about 18–20 ms of signal is never sampled, while every record still holds 100 samples. The stamp model adds the loss back at the end of the last record before the new grid; samples inside that record can still be up to about 20 ms late.
Monitor analogue output
The arterial pressure reaches SNUADC as the patient monitor's analogue output. Any delay inside the monitor is common to the ECG and pressure channels and has not been measured.
Stored sample time
Sample j of a record sits at its stamp + j/500 s. Stamps run −0.95 ppm against the sample count (stamp arithmetic), and the five records after each reset are written out of order; the TimeNet import puts them back in sampling order.
Timing¶
Against the working reference. Delay: from the end of the interval a value describes to its stamp. Interval: how wide that interval is.
| Form | Delay | Interval | Clock domain | Status | Evidence |
|---|---|---|---|---|---|
| stamp-model time (default) | 0.3 ms – 3 ms | 2 ms – 10 ms | SNUADC stamp-model time (the working reference) | estimated | stamp-model residual where corrections are seen (recordings with none can drift about +-0.1 s/h on the port's rate); 100 Hz files 10 ms |
| raw stamps | 10 ms – 480 ms | 2 ms | SNUADC raw record stamps | measured | sawtooth up to -480 ms (step mode corrections) |
Combine it with other signals in the synchronisation planner.
Value¶
Its value side is still to be described.
Parameters¶
| Parameter | Value | Status | From |
|---|---|---|---|
| Arterial line access rate | 1.1 per hour (8,245 in 7,507 h); occlusions 0.4 per hour | measured | Arterial line accesses in the pressure waveform |
Observations¶
| Observation | Status | Summary |
|---|---|---|
| About 20 ms of signal lost at every SNUADC reset | established | At each step-mode reset the acquisition pauses for about 20 ms inside the last record before the new timing, and that time is never sampled: 17.7 ms on the sample count (Signal lost at a SNUADC step-mode correction), once the filler sample is counted. Every record still holds 100 samples, so nothing in the file shows it. |
| All SNUADC channels share one clock | established | Every SNUADC waveform track of a case (ECG leads, ART, PLETH, CVP) has the same first stamp, the same record timing and the same corrections. They are stamped together. |
| An extra zero sample after most resets | established | Most SNUADC resets (335 of 392) contain one sample that reads 0 in every channel at once, a little after the reset. It carries no time of its own: the signal either side runs on as if it were not there. |
| Arterial timing steps cluster at line events | established | About a quarter of the steps in ECG→arterial-pressure timing fall within a minute of a line access or a cuff occlusion, against 4.5% at random times. |
| Eight recordings store whole messages twice | established | In 8 recordings 15–48% of the waveform records are byte-for-byte copies of the record before them, with the same timestamp: case 15, case 364, case 1946, case 3865, case 4857, case 5414, case 5595 and case 5619. SNUADC, Primus and BIS are affected equally, so the recorder, not a device, wrote them twice. |
| Five records out of order at every SNUADC reset | established | At each step-mode reset the five records after it are written in the wrong order: two continue the old timing and three start the new, interleaved. Read in file order, or sorted by stamp, one second of signal is scrambled. |
| 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. |
| Small positive SNUADC gaps are real data loss | established | Forward jumps of under a second in SNUADC stamps are missing data, not clock corrections: the beat interval across them fits the gap better than the samples butted together. |
| The blood pressure cuff often sits on the arterial line's arm | established | Many "lost pulse" events in the arterial pressure are an NIBP cuff inflating on the same arm: the pulse fades and pressure decays to 35–50 mmHg, then returns as the cuff cycle ends. |
| Three ART tracks carry the PLETH conversion factors | established | In case 818, case 5175 and case 5693 the SNUADC/ART track holds arterial pressure, but its header gives the PLETH conversion (0.394983 per code, offset −198.2504) instead of the ART one (0.987457 mmHg per code, offset −495.626). Converted as stored, the pressure reads about 2.5 times too low. |
| Twelve recordings sample the SNUADC waveforms at 100 Hz | established | In 12 of 6,388 recordings every SNUADC waveform (ECG II, ECG V5, PLETH, and ART or CVP where present) is stored at 100 Hz instead of 500 Hz: case 299, case 803, case 1150, case 1693, case 2362, case 2920, case 4458, case 4582, case 5066, case 6119, case 6133 and case 6375. |
| SNUADC channels are read one after another | likely | The SNUADC firmware reads its 8 channels in turn, about 0.1 ms each, so within one sample the last channel is read up to about 0.8 ms after the first. The channel order is not known. |
| SNUADC values are truncated to the count below | likely | The SNUADC firmware truncates each calibrated value instead of rounding it, so every value sits half a count low on average (about 0.5 mmHg for arterial pressure). Values clamp at counts 0 and 1023. |
| Stamp-based loaders lose samples at overlaps | likely | Loaders that place samples by their stamps onto a grid overwrite samples where stamps overlap: about 0.48 s at every SNUADC reset, and one sample about every 35 minutes from the stamp arithmetic. |
| In some recordings two unrelated streams are interleaved in one track | open | In 7 recordings 64–95% of the records alternate between two streams: each record continues the one two before it, not the one before, and the two streams do not match each other. SNUADC and BIS in case 2219, case 2379, case 2640, case 4836, case 5327 and case 5617; SNUADC in case 1939. In case 94, case 945, case 1132, case 3195 and case 5700 4–7% of SNUADC records interleave. |
| SNUADC values are 10-bit codes, though the device is documented as 12-bit | open | Every SNUADC channel in the release stores codes 0–1023 and nothing above: 10 bits, a step of 0.0098746 V. The VitalRecorder device list describes the SNUADC as a 12-bit converter. |
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). |
| 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. |
| Value resolution of every signal | 2026-10-19 | draft | How finely every waveform and numeric track in the release records its values. The SNUADC waveforms are 10-bit codes, though VitalRecorder's documentation describes the SNUADC as 12-bit; Primus waveforms use about 10 bits of 12; BIS EEG is a 16-bit grid of 0.05 µV. Numerics are 32-bit floats on decimal grids of 1, 0.1, 0.01 or 0.001, one per track; settings sit on coarser grids of 10 or 100. |
| One device delay for the PLETH across the release | 2026-10-18 | current | The stored ECG-to-PLETH delay was measured in 5,536 recordings, to the foot and to the steepest upstroke of each pulse. It has one peak (655 ms to the foot, 715 ms to the upstroke, in the median recording), no clusters by recording setup or SNUADC port, and no shift along the case order: one global device delay, 385 ms with an adopted R-to-foot finger PAT of 270 ms, fits the whole release, as Ruffolo et al. found in their own data. |
| Monitor clocks in the waveforms' spectral lines | 2026-10-17 | open | Differences of the raw converter counts show lines from the monitor's analogue outputs: 240 Hz in arterial pressure and plethysmogram, and a 30 Hz family in the plethysmogram alone. Each measures a monitor clock against SNUADC. |
| 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. |
| 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. |
| What the lab timestamp marks | 2026-10-13 | current | VitalDB's lab time is a per-specimen timestamp: not the draw, and not the result. Blood gases are stamped 3–12 minutes after the draw, central-lab panels about 8–24 minutes after it, and the result follows a turnaround the release does not record. |
| 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. |
| The SNUADC firmware | 2026-10-13 | current | The public SNUADC firmware explains the board's timing: it sends no time stamps, samples on its 16 MHz crystal, loses time rather than bunching samples after a stall, reads its channels one after another, and truncates its values. A predicted fault at the microsecond counter's wrap was not found in the data. |
| How the monitors compute their numbers | 2026-10-12 | current | Recomputing each monitor numeric from its own waveform finds a short, simple algorithm for every one (a median, an exponential average or a time mean over 3–30 s) and a delay of 2–9 s behind the newest data it uses. No value is stamped before its data exist. |
| The Primus ventilator against SNUADC, by breaths | 2026-10-12 | open | 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. |
| Arterial line accesses in the pressure waveform | 2026-10-11 | current | Flushes, zeroing and blood draws leave clear signatures in the arterial pressure. A detector finds them in the waveform alone (about one access per hour) and matches 77% of lab draws to an access within 15 minutes, against 26% for random times. |
| 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. |
| Arterial pressure as a check on the PPG correction | 2026-10-11 | current | Arterial pressure is sampled by the same converter but has no frame and no sawtooth, so every PPG slip leaves ECG→ABP unchanged. Against it, detected slips are 97–100% real and tier A leaves about 2 ms of drift mid-tooth. |
| Where the PPG sawtooth stops | 2026-10-11 | current | In some stretches no slip comes although several were due. The PPG delay there is flat, not hidden: the monitor keeps framing, and only the content's drift against the frames has stopped. |
| The PPG's 30 Hz frame clock | 2026-10-10 | current | ECG and PPG fiducials resolve to one 2 ms sample, but PPG fiducials taken on raw samples lock to a hidden 33.3 ms frame grid. Scanning for it finds the oximeter's frame clock to about 1 ppm, a fixed fingerprint of each recording setup. |
Worked examples¶
| Example | Side | Status | Summary |
|---|---|---|---|
| A cerebral autoregulation index from arterial pressure and cerebral oxygenation | time | planned | A moving correlation between mean arterial pressure and INVOS cerebral oxygenation, and how lag between the two devices changes it. |
| End-tidal to arterial CO₂, and pulse oximetry against blood gas, at the right moment | time | draft | For 4,281 blood gases, reading the monitor when the blood was drawn rather than at the lab stamp makes changes in end-tidal CO₂ track changes in arterial CO₂ far better (within-patient correlation 0.74 against 0.54), and agreement peaks exactly at the estimated draw. Oximetry shows the same timing (agreement peaks at the draw), but the 100% ceiling hides the size of the oximetry gradient for three gases in four. |
| Minutes of hypotension per patient, from the monitor and from the waveform | both | draft | Minutes with MAP below 65 mmHg in 3,476 recordings, from the monitor's numeric and from the arterial waveform's beats: the two routes to one pressure differ by several mmHg per patient, which moves half of all patients' minutes by 5 or more and a fifth of their labels, and the numeric's averaging hides short dips in every patient. |
| Pulse arrival time against blood pressure, before and after synchronisation | time | draft | In 3,270 recordings, PAT tracks systolic pressure only once each pulse is paired with its own beat: the hourly correlation moves from a mean of −0.04 to −0.21 (88% of recordings negative), reproducing Ruffolo et al. 2025 in a second dataset; paired naively, PAT is a heart-rate signal. |
| Pulse arrival time in two correction steps | time | draft | The time from the ECG R wave to the pulse at the finger, as stored, after the PLETH's sawtooth is removed, and after its device offset is removed, smoothed by maximum likelihood, with the arterial line as the reference. |
| 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. |
| Time from a vasopressor bolus to the pressure response | both | planned | How quickly arterial pressure responds to a phenylephrine or ephedrine bolus, with the charted dose times' rounding taken into account. Not feasible in VitalDB, which records bolus totals but no bolus times; kept for a dataset that does. |
Tags: stub