Continuous pulse oximetry monitoring as a coded SpO₂ series

A pulse oximeter clipped to a finger reports oxygen saturation (SpO₂) and pulse rate for as long as it stays on. Kymolog files each value as its own coded reading, timed to the minute it was measured, and leaves the minutes the device missed empty.

LOINC 59408-5 · % · one Observation per reading · FHIR R4

Fig. 1. A pulse oximeter clip, its pulse wave and the SpO₂ series recorded from it.

Each SpO₂ value as a coded Observation

At 08:05 a pulse oximeter at bed W1-3 reports SpO₂ 96 % and a pulse of 74. Kymolog™ files each value as its own Observation, the measurement record in Fast Healthcare Interoperability Resources (FHIR). SpO₂ goes under LOINC 59408-5 in %, heart rate under 8867-4 in /min.

LOINC 59408-5 names the method, pulse oximetry, so these values stay apart from saturation measured on an arterial blood gas. Neither value carries patient details when the agent sends it; the device is assigned to a bed, and Kymolog matches the patient later, inside the install.

Continuous SpO₂ monitoring has gaps: a probe slips off a finger, or a patient unplugs to walk. Kymolog files nothing for those minutes, so the series has an empty interval where the device sent no reading, and no value is carried forward.

Example readings: an hour at one bed, gaps included

A continuous SpO₂ series and its gapsA pulse oximeter's SpO₂ readings, one a minute from 08:00 to 08:59, drawn as a trace on recording paper between 88 and 100 %. The trace runs near 96 to 98 % with a dip to 91 % around 08:34. It breaks twice where the device sent no readings: 08:21 to 08:26 (6 min) and 08:44 to 08:45 (2 min). Under the trace, one tick per Observation Kymolog filed, each coded LOINC 59408-5 with the UCUM unit %: 52 Observations for 60 minutes, and none in the gaps. The latest reading, 96 % at 08:59, is in red.no readings 08:21–08:26no readings 08:44–08:4596 % at 08:599095100%08:0008:1508:3008:4509:00OBSERVATIONS FILED, LOINC 59408-5, %0052 Observations in 60 minutes; 8 minutes with no reading, none filed
A continuous SpO₂ series and its gapsA pulse oximeter's SpO₂ readings, one a minute from 08:00 to 08:59, drawn as a trace on recording paper between 88 and 100 %. The trace runs near 96 to 98 % with a dip to 91 % around 08:34. It breaks twice where the device sent no readings: 08:21 to 08:26 (6 min) and 08:44 to 08:45 (2 min). Under the trace, one tick per Observation Kymolog filed, each coded LOINC 59408-5 with the UCUM unit %: 52 Observations for 60 minutes, and none in the gaps. The latest reading, 96 % at 08:59, is in red.no readings08:21–08:26no readings08:44–08:4596 %08:599095100%08:0008:1508:3008:4509:00OBSERVATIONS FILED, LOINC 59408-5, %0052 Observations in 60 minutes8 minutes with no reading, none filed
Figure 2 as a table
StretchReadingsObservations filed
08:00 to 08:2021, one a minute21
08:21 to 08:26none (gap)0
08:27 to 08:4317, one a minute17
08:44 to 08:45none (gap)0
08:46 to 08:5914, one a minute14
Total, 08:00 to 08:5952 of 60 minutes52
Fig. 2. An hour of SpO₂, one reading a minute. Kymolog files each reading as its own Observation, LOINC 59408-5 in %, at the time the device took it; where the device sent nothing, nothing is filed, so the 2 gaps stay visible in the record.

SpO₂ into the EHR

Every four hours on a medical ward, a nurse copies SpO₂ off the bedside display into the flowsheet, and the values in between never reach the chart. Kymolog looks up the patient from the bed: it asks the EHR who was in bed W1-3 at 08:05, then files SpO₂ and heart rate in that patient's chart.

An empty bed, or two patients booked to one bed, holds the reading for review with the status preliminary. Pulse oximeter integration is set per device type, so one unit can send readings straight in while another has a nurse approve each one. Readings reach Epic, Oracle Health (Cerner), MEDITECH, athenahealth, eClinicalWorks, NextGen and Veradigm over FHIR R4 or HL7 v2, as each EHR takes them.

SpO₂ into the EHR, matched to the patient by bedA pulse oximeter, Device/ox-21, sends a reading at 08:05: SpO₂ 96 %, in red, and heart rate 74 /min. The device carries no patient. It is assigned to bed W1-3, so Kymolog asks the EHR who was in bed W1-3 at 08:05, finds Patient/p-041, and files both values in that patient's EHR flowsheet at 08:05: SpO₂ 96 % beside 97 % at 08:04, and heart rate 74 /min beside 73 /min. If nobody was in the bed at that time, or two patients were, the reading is held as preliminary in the review queue for a person to match.Pulse oximeterDevice/ox-21SpO₂ 96 %, 08:05HR 74 /minno patientBed W1-3the device isassigned hereIn bed at 08:05asked of the EHR:Patient/p-041EHR FLOWSHEET08:0408:05SpO₂ %9796HR /min7374Review queuenobody in the bed, or two:held as preliminaryfor a person to match
SpO₂ into the EHR, matched to the patient by bedA pulse oximeter, Device/ox-21, sends a reading at 08:05: SpO₂ 96 %, in red, and heart rate 74 /min. The device carries no patient. It is assigned to bed W1-3, so Kymolog asks the EHR who was in bed W1-3 at 08:05, finds Patient/p-041, and files both values in that patient's EHR flowsheet at 08:05: SpO₂ 96 % beside 97 % at 08:04, and heart rate 74 /min beside 73 /min. If nobody was in the bed at that time, or two patients were, the reading is held as preliminary in the review queue for a person to match.Pulse oximeterDevice/ox-21SpO₂ 96 %, 08:05HR 74 /minno patientBed W1-3the device isassigned hereIn bed at 08:05asked of the EHR:Patient/p-041Review queuenobody inthe bed, ortwo: heldfor reviewEHR FLOWSHEET08:0408:05SpO₂ %9796HR /min7374
Figure 3 as a table
StepWhat happensResult
1. DeviceDevice/ox-21 sends SpO₂ 96 % and heart rate 74 /min at 08:05no patient on the reading
2. Bedthe device is assigned to bed W1-3bed W1-3
3. OccupantKymolog asks the EHR who was in bed W1-3 at 08:05Patient/p-041
4. Chartboth values filed in the patient's flowsheet at 08:05SpO₂ 96 %, heart rate 74 /min
Exceptionnobody in the bed at 08:05, or two patientsheld as preliminary in the review queue
Fig. 3. The pulse oximeter is assigned to a bed, and the reading names no patient. Kymolog looks up who was in that bed at the moment of the reading and files SpO₂ (LOINC 59408-5, %) and heart rate (LOINC 8867-4, /min) in that chart; an empty or double-booked bed holds the reading for review.

Name the units where patients wear pulse oximeters and the EHR those units chart in. The demo matches a reading to a test patient by bed and files it in a test flowsheet.

Request a demo

Pulse oximetry data for research

The study copy keeps every reading, one coded record each. A record names the bed, the encounter and the oximeter, down to its unique device identifier (UDI). Pulse oximetry research that counts desaturations below a threshold needs to tell a real dip from a probe that came off. Because gaps stay empty, a minute with no reading never counts as a minute at 97 %.

Reviewers also ask which oximeter took a value and when it was assigned to the bed. Kymolog records both, so continuous pulse oximetry data from several units can be compared device by device.

Get an SpO₂ demo for your units

Tell us which units keep pulse oximeters on all the time, and their EHR. We reply within one business day with times to talk. We then file an hour of SpO₂ for one bed into a test chart, gaps included.

Request a demo