Class O2FunctionBean

java.lang.Object
   |
   +----calcs.FunctionBean
           |
           +----O2FunctionBean

horizontal rule

public abstract class O2FunctionBean
extends FunctionBean
Bean for converting between oxygen tension, haemoglobin saturation & bood oxygen content.
References:
Severinghaus, J.W., Simple, accurate equations for human blood O2 dissociation computations. J Appl Physiol 1979; 46:599-602.
Severinghaus, J.W., Determination of PO2 from saturation [reply]. J Appl Physiol 1989; 67:902.
Creation date: (24/12/1999 3:46:11)

 

Author:
: Dave Sainsbury

horizontal rule

Variable Index

 o fieldBaseExcess
BaseExcess in mmol/litre, default value = 0, (double).
 o fieldHaemoglobin
Haemoglobin concentration in g/100 ml of blood, default value = 15, (double).
 o fieldO2Content
Oxygen content in ml/100ml of blood, default value = 15, (double).
 o fieldO2Saturation
Haemoglobin saturation as a fraction, default value = 0.95, (double).
 o fieldO2Tension
Oxygen tension in mmmHg, default value = 100, (double).
 o fieldP50
P50 of blood in mmHg, default value = 26.6, (double).
 o fieldPH
pH, default value = 7.4, (double).
 o fieldSolubility
Solubility of Oxygen in blood in ml per 100 ml blood per mmHg, default value = 0.003, (double).
 o fieldTemperature
Temperature in degC, default value = 15, (double).

Constructor Index

 o O2FunctionBean()
O2functionBean constructor Creation date: (8/12/1999 0:34:54)

Method Index

 o getO2Content()
Gets the O2 content in ml/100ml blood (double).
 o getO2Saturation()
Gets the haemoglobin O2 saturation as a fraction (double).
 o getO2Tension()
Gets the O2 Tension in mmHg (double).
 o getSolubility()
Gets the solubility of Oxygen in ml per 100 ml blood per mmHg (double).
 o O2c_from_O2s_O2t_Sol_Hb()
Calculate O2 content from O2 tension, O2 saturation, O2 solubility and haemoglobin concentration.
 o O2s_from_O2t_pH_BE_T()
Calculate O2 saturation from O2 tension, pH, base excess & temperature.
 o O2s_from_O2t_pH_BE_T(double)
Calculate O2 saturation from O2 tension, pH, Base Excess & temperature.
 o O2t_from_O2c_pH_BE_T_Hb()
Calculate O2 tension in mmHg from O2 content of blood, pH, base excess, temperature and haemoglobin concentration.
 o O2t_from_O2s_pH_BE_T()
Calculate O2 tension in mmHg from haemoglobin O2 saturation, pH, base excess & temperature.
 o O2t_from_O2s_pH_BE_T(double)
Gets O2 tension from O2 saturation of blood, pH, base excess & temperature.
 o setBaseExcess(double)
Sets the base excess (double) value.
 o setHaemoglobin(double)
Sets the haemoglobin concentration in g/100ml blood (double).
 o setO2Content(double)
Sets the oxygen content in ml/100ml blood (double).
 o setO2Saturation(double)
Sets the haemoglobin oxygen saturation as fraction (double).
 o setP50(double)
Sets the p50 value in mmHg (double).
 o setPH(double)
Sets the pH (double) value.
 o setSolubility(double)
Sets the solubility property (double) value.
 o setTemperature(double)
Sets the temperature in degC (double).
 o solubilityFromTemperature(double)
Calculate oxygen solubility in blood in ml/100ml/mmHg from temperature in deg C.

Variables

 o fieldO2Content
 protected double fieldO2Content
Oxygen content in ml/100ml of blood, default value = 15, (double).

 

 o fieldO2Tension
 protected double fieldO2Tension
Oxygen tension in mmmHg, default value = 100, (double).

 

 o fieldO2Saturation
 protected double fieldO2Saturation
Haemoglobin saturation as a fraction, default value = 0.95, (double).

 

 o fieldBaseExcess
 private double fieldBaseExcess
BaseExcess in mmol/litre, default value = 0, (double).

 

 o fieldHaemoglobin
 private double fieldHaemoglobin
Haemoglobin concentration in g/100 ml of blood, default value = 15, (double).

 

 o fieldPH
 private double fieldPH
pH, default value = 7.4, (double).

 

 o fieldTemperature
 private double fieldTemperature
Temperature in degC, default value = 15, (double).

 

 o fieldSolubility
 private double fieldSolubility
Solubility of Oxygen in blood in ml per 100 ml blood per mmHg, default value = 0.003, (double).

 

 o fieldP50
 private double fieldP50
P50 of blood in mmHg, default value = 26.6, (double).

 

Constructors

 o O2FunctionBean
 public O2FunctionBean()
O2functionBean constructor Creation date: (8/12/1999 0:34:54)

 

Methods

 o getO2Content
 public double getO2Content()
Gets the O2 content in ml/100ml blood (double).

 

Returns:
O2 content
See Also:
setO2Content
 o getO2Saturation
 public double getO2Saturation()
Gets the haemoglobin O2 saturation as a fraction (double).

 

Returns:
the haemoglobin O2 saturation
See Also:
setO2Saturation
 o getO2Tension
 public double getO2Tension()
Gets the O2 Tension in mmHg (double).

 

Returns:
the O2 Tension
See Also:
setO2Tension
 o getSolubility
 public double getSolubility()
Gets the solubility of Oxygen in ml per 100 ml blood per mmHg (double).

 

Returns:
The solubility of Oxygen in blood
See Also:
setSolubility
 o O2c_from_O2s_O2t_Sol_Hb
 protected void O2c_from_O2s_O2t_Sol_Hb()
Calculate O2 content from O2 tension, O2 saturation, O2 solubility and haemoglobin concentration.
fieldO2Content = fieldO2Saturation * fieldHaemoglobin *1.39 + fieldSolubility * fieldO2Tension;

 

 o O2s_from_O2t_pH_BE_T
 protected void O2s_from_O2t_pH_BE_T()
Calculate O2 saturation from O2 tension, pH, base excess & temperature. fieldO2Saturation = O2s_from_O2t_pH_BE_T(fieldO2Tension);

 

 o O2s_from_O2t_pH_BE_T
 protected double O2s_from_O2t_pH_BE_T(double O2Tension)
Calculate O2 saturation from O2 tension, pH, Base Excess & temperature.
First convert to standardised value of oxygen tension
double O2std = O2Tension * Math.pow(10, 0.48 * (fieldPH - 7.4) - 0.0013 * fieldBaseExcess - 0.024 * (fieldTemperature - 37)) * 26.6 / fieldP50;
Then enter this value in to dissociation equation
return 1 / (23400 / (O2std * O2std * O2std + 150 * O2std) + 1);

 

Parameters:
O2Tension - (double) oxygen tension in mmHg
Returns:
Haemoglobin oxygen saturation as a fraction
 o O2t_from_O2c_pH_BE_T_Hb
 public void O2t_from_O2c_pH_BE_T_Hb()
Calculate O2 tension in mmHg from O2 content of blood, pH, base excess, temperature and haemoglobin concentration.
This uses the ContentFromTension method to ensure "reversability" of content-tension calculations
The 'secant' iterative method is used. It starts with 2 estimates of tension (A&B)
From these 2 values of content (A&B) are derived
These 2 sets of values create a line.
Assuming fieldO2Content (the actual content) lies on this line

*(TensionB, ContentB)
|
|
* (TensionNext, fieldO2Content)
|
|
*(TensionA, ContentA)

(TensionNext-TensionA)/(fieldO2Content-ContentA) = (TensionB-TensionA)/(ContentB-ContentA)
TensionNext = TensionA + (TensionB-TensionA)/(ContentB-ContentA)*(fieldO2Content-ContentA)
This process is repeated until 2 subsequent estimates of tension are indistinguishable.

 

 o O2t_from_O2s_pH_BE_T
 public void O2t_from_O2s_pH_BE_T()
Calculate O2 tension in mmHg from haemoglobin O2 saturation, pH, base excess & temperature.

 

 o O2t_from_O2s_pH_BE_T
 public double O2t_from_O2s_pH_BE_T(double s)
Gets O2 tension from O2 saturation of blood, pH, base excess & temperature. RK Ellis, Determination of pO2 from saturation[letter], J.Appl.Physiol.67(2) p902, 1989
Equation:
double x = 11700 / (1 / fieldO2Saturation - 1);
double y = Math.pow((50 * 50 * 50 + x * x), 1.0 / 2.0);
double a = Math.pow(x + y, 1.0 / 3.0);
double b = Math.pow(-x + y, 1.0 / 3.0);
double O2std = (a - b);
Then convert this standardised value into an acutal value
fieldO2Tension = dO2virtual/ Math.pow(10,0.48*(fieldPH-7.4)-0.0013*fieldBaseExcess-0.024*(fieldTemperature-37));

 

Parameters:
s - (double) saturation as a fraction of 1.0
Returns:
O2 tension (double) mmHg
 o setBaseExcess
 public void setBaseExcess(double baseExcess)
Sets the base excess (double) value.

 

Parameters:
baseExcess - The new value for base excess
See Also:
getBaseExcess
 o setHaemoglobin
 public void setHaemoglobin(double haemoglobin)
Sets the haemoglobin concentration in g/100ml blood (double).

 

Parameters:
haemoglobin - The new value for heamoglobin concentration.
See Also:
getHaemoglobin
 o setO2Content
 public void setO2Content(double O2Content)
Sets the oxygen content in ml/100ml blood (double).

 

Parameters:
O2Content - The new value for oxygen content
See Also:
getO2Content
 o setO2Saturation
 public void setO2Saturation(double O2Saturation)
Sets the haemoglobin oxygen saturation as fraction (double).

 

Parameters:
O2Saturation - The new value for haemoglobin saturation
See Also:
getO2Saturation
 o setP50
 public void setP50(double p50)
Sets the p50 value in mmHg (double).

 

Parameters:
p50 - The new value for p50
 o setPH
 public void setPH(double pH)
Sets the pH (double) value.

 

Parameters:
pH - The new value for pH.
See Also:
getPH
 o setSolubility
 public void setSolubility(double solubility)
Sets the solubility property (double) value.

 

Parameters:
solubility - The new value for the property.
See Also:
getSolubility
 o setTemperature
 public void setTemperature(double temperature)
Sets the temperature in degC (double).

 

Parameters:
temperature - The new value for temperature.
See Also:
getTemperature
 o solubilityFromTemperature
 public double solubilityFromTemperature(double temperature)
Calculate oxygen solubility in blood in ml/100ml/mmHg from temperature in deg C.
Equation:
return 0.0059519-.0001266*temperature+0.0000013*temperature*temperature; Reference:
Kelman, G.R., Calculation of certain indices of cardio-pulmonary function, using a digital computer. Respir Physiol 1966; 1:341.

 

Parameters:
temperature - double in degrees Centigrade
Returns:
oxygen solubility in blood in ml/100ml/mmHg (double)
EMAIL: david.sainsbury"AT"adelaide.edu.au  Last Update:02/05/2005