My wife was recently reviewing some pulse oxymeter notes while working a round of anesthesia. It took us a while to trace the logic through all the symbol changes and notation shifts, and my wife's math-discomfort and my bio-discomfort made us more cautious than it turns out we needed to be. There are a number of nice review articles out there that I turned up while looking for explicit derivations, but by the time I'd found them, my working notes had gotten fairly well polished themselves. So here's my contribution to the pulse-ox noise ;). Highlights include:
- Short and sweet (with pictures)
- Symbols table
- Baby steps during math manipulation
Oxygen content
The circulatory system distributes oxygen (O₂) throughout the body. The amount of O₂ at any given point is measured by the O₂ content ([O₂]), usually given in (BTP is my acronym for body temperature and pressure). Most transported O₂ is bound to hemoglobin (Hb), but there is also free O₂ disolved directly in the plasma and cytoplasm of suspended cells.
where is the Hb's O₂ saturation and is the O₂ partial pressure. Don't worry about the coefficients and yet, we'll get back to them in a second.
The amound of dissolved O₂ is given by its partial pressure (). Partial pressures are generally given in mm of mercury (Hg) at standard temperature and pressure (STP). Because the partial pressure changes as blood flows through the body, an additional specifier may be added () to clarify the measurement location.
Full symbol | Location descriptor | |
---|---|---|
a | arterial | |
p | peripheral or pulsatile | |
t | tissue | |
v | venous |
O₂ is carried in the blood primarily through binding to hemoglobin monomers (Hb), with each monomer potentially binding a single O₂. Oxygen saturation () is the fraction of hemoglobin monomers (Hb) that have bound an oxygen molecule (O₂).
The ratio of concentrations, , is unitless. It is often expressed as a percentage. [Hb] is often given in g/dL. As with partial pressures, an additional specifier may be added () to clarify the measurement location (, , …).
Now we can take a second look at our O₂ content formula. The coefficient must convert g/dL to . Using the molecular weight of Hb and the volume of a mole of gas at STP:
where is a pure number (we're just working out the unit conversion here, not converting a particular Hg concentration). Therefore, . The powers that be seem to have used a slightly different density, since the more commonly used value is 5% higher at . Possibly someone actually measured the density of O₂ at BTP, because BTP is not STP, and O₂ is not an ideal gas.
The coefficient must convert mm Hg at STP to . Empirical experiments (?) give a value of . Now we can write out the familiar form
Reasonable levels are
[Hb] | |
98% | |
100 mm Hg at STP | |
Because the dissolved O₂ has such a tiny contribution (1.5% of the total in my example), it is often measured at STP rather than BTP. Sometimes it is dropped from the calculation entirely. We focus on the more imporant in the next section.
Oxygen saturation
The preceding discussion used to represent the concentration of HbO₂ complexes. This was useful while we were getting our bearings, but now we will replace that term with a more detailed model. Let us sort the Hb monomers into species:
- Hb: all hemoglobin monomers
- HbO₂: monomers complexed with O₂
- HHb: reduced Hb (not complexed with O₂)
- dysHb: dys-hemoglobin (cannot complex with O₂)
- MHb: methemoglobin
- HbCO: carboxyhemoglobin
These species are related as follows
Because modern two-color pulse-oximeters don't measure exactly, the related quantity that they do measure has been given a name of its own: the functional saturation ().
Rephrasing our earlier saturation, we see
To avoid confusion with , our original is sometimes referred to as the fractional saturation.
The Beer-Labmert law
So far we've been labeling and defining attributes of the blood. The point of this excercise is to understand how a pulse oximeter measures them. People have known for a while that different hemoglobin complexes (HbO₂, HHb, MHb, HbCO, …) have differnt absorbtion spectra, and they have been using this difference since the 1930's to make pulse-oximeters based on two-color transmittance measurements (see Tremper 1989).
By passing different wavelengths of light through perfused tissue, we can measure the relative quantities of the different Hb species. The basis for this analysis comes from the Beer-Lambert law.
where is the incident intensity (entering the tissue), is the tranmitted intensity (leaving the tissue), is the tissue density (concentration), is the extinction coefficient (molar absorbtivity), and is the tissue thickness. Rephrasing the math as English, this means that the intensity drops off exponentially as you pass through the tissue, and more tissue (higher or ) or more opaque tissue (higher ) mean you'll get less light out the far side. This is a very simple law, and the price of the simplicity is that it brushes all sorts of things under the rug. Still, it will help give us a basic idea of what is going on in a pulse-oximeter.
Rather than treat the the tissue as a single substance, lets use the Beer-Labmert law on a mixture of substances with concentrations , , … and extinction coefficients , , ….
We also notice that the intensities and extinction coefficients may all depend on the wavelength of light , so we should really write
Once isolated, a simple spectroscopy experiment can measure the extinction coefficient of a given species across a range of , and this has been done for all of our common Hb flavors. We need to play with the last equation to find a way to extract the unknown concentrations, which we can then use to calculate the and which we can use in turn to calculate .
Note that by increasing the number of LEDs (adding new ) we increase the number of constraints on the unknown . A traditional pulse-oximeter uses two LEDs, at 660 nm and 940 nm, to measure (related to [HbO₂] and [HHb]). More recent designs called pulse CO-oximeters use more wavelengths to allow measurement of quanties related to additional species (approaching the end goal of measuring ).
Let us deal with the fact that there is a lot of stuff absorbing light that is not arterial blood (e.g. venous blood, other tissue, bone, etc). The good thing about this stuff is that it's just sitting there or moving through in a smooth fasion. Arterial blood is the only thing that's pulsing. Here's another figure from Tremper:
During a pulse, the pressure in the finger increases and non-arterial tissue is compressed, changing and from their trough values to peak values and . Since the finger is big, the fractional change in width is very small. Assuming the change in concentration is even smaller (since most liquids are fairly incompressible), we have
where is just a placeholder to reduce clutter. is the AC amplitude (height of wiggle top of the detected light intensity due to pulsatile arterial blood), while is the DC ampltude (height of the static base of the detected light intensity due to everything else). This is actually a fairly sneaky step, because if we can also use it to drop the DC compents. Because we've assumed fixed concentrations (incompressible fluids), and there is no more DC material coming in during a pulse (by definition), the effective for the DC components does not change. Separating the DC and AC components and running through the derivative again, we have
where and are just placeholders to reduce clutter. Note that the last equation looks just like the previous one with the translation . This means that if we stick to using the AC-DC intensity ratio () we can forget about the DC contribution completely.
If the changing--but-static- thing bothers you, you can imagine insteadthat grows with , but shrinks proportially (to conserve mass). With this proportionate stretching, there is still no change in absorbtion for that component so and we can still pull the DC terms out of the integral as we just did.
Taking a ratio of these amplitudes at two different wavelengths, we get optical density ratio (R)
because (the amount of finger expansion during a pulse) obviously doesn't depend on the color light you are using. Plugging back in for ,
Assuming, for now, that there are only two species of Hb—HbO₂ and HHb—we can solve for .
So now we know [HbO₂]/[HHb] in terms of the measured quantity and the empirical values .
Plugging in to our equation for to find the functional saturation:
As a check, we can rephrase this as
which matches Mendelson 1989, Eq. 8 with the translations:
- ,
- ,
- ,
- ,
- , and
- .
And that is the first-order explaination of how a pulse-oximeter measures the functional saturation!
Reading extinction coefficients off the absorbtion figure, I get
which are comfortingly close to those given by Mendelson in Table 1. The corresponding plot (from Tremper) is:
The theoretical plot was calculated using SfO2vR-theory.py and our equation. This is why it’s a good idea to use an empirical calibration curve! The concave theoretical curve is supported by Mendelson's figure 4.
Nomenclature
- O₂
- Molecular oxygen
- []
- Concentration of in the blood
- BTP
- Body temperature and pressure
- STP
- Standard temperature and pressure
- O₂ partial pressure
- O₂ partial pressure at location
- Fractional O₂ saturation
- O₂ fractional saturation at location
- Functional O₂ saturation
- Hg
- Mercury
- Hb
- Hemoglobin monomer
- HbO₂
- Hemoglobin monomers complexed with O₂
- HHb
- Reduced hemoglobin (not complexed with O₂)
- dysHb
- Dys-hemoglobin (cannot complex with O₂)
- MHb
- Methemoglobin
- HbCO
- Carboxyhemoglobin
- Intensity of incident light at wavelength
- Intensity of transmitted light at wavelength
- Concentration of light-absorbing species
- Concentration of the th DC species at wavelength
- Concentration of the th AC species at wavelength
- Extinction coefficient of species at wavelength
- Extinction coefficient of the th DC species wavelength
- Extinction coefficient of the th DC species wavelength
- Length of tissue through which light must pass
- Diastolic finger width
- Optical density ratio
- LED
- Light emitting diode