Clarity.O2SaturationTask¶
Description¶
This is a custom task for extracting
Oxygen
saturation information from clinical text. The O2SaturationTask
processes
sentences and looks for information about Oxygen saturation levels and the use
of supplemental Oxygen devices. For instance, the sentence:
Vitals were T 98 BP 163/64 HR 73 O2 95% on 55% venti mask
contains O2 95% on 55% venti mask
, meaning that the patient’s blood Oxygen
saturation level (probably measured by a
pulse oximeter)
is 95%, while receiving supplemental Oxygen via a
Venturi mask. The flow rate
through the mask is sufficient to produce a 55% Oxygen concentration in the
air that the patient breathes.
The O2SaturationTask
captures the Oxygen saturation level and other
data relevant to Oxygen delivery, flow rates, partial pressures, etc. If
sufficient clues are provided in the sentence, standard conversions are used
to estimate related quantities not explicitly stated. The complete set of
output fields and estimated quantities is listed in the Results section
below. Estimated values have field names with the suffix _est
, to
distinguish them from values extracted directly from the text.
Conversions¶
The partial pressure of Oxygen in arterial blood can be estimated from a pulse oximeter reading. From the supplemental data provided with reference [1]:
SpO2 (%) | PaO2 (mmHg) |
---|---|
80 | 44 |
81 | 45 |
82 | 46 |
83 | 47 |
84 | 49 |
85 | 50 |
86 | 52 |
87 | 53 |
88 | 55 |
89 | 57 |
90 | 60 |
91 | 62 |
92 | 65 |
93 | 69 |
94 | 73 |
95 | 79 |
96 | 86 |
97 | 96 |
98 | 112 |
99 | 145 |
The fraction of inspired Oxygen FiO2
can be estimated from knowledge of
the Oxygen delivery device and the O2 flow rate. For normal breathing in the
Earth’s atmosphere the O2 concentration is
approximately 21%.
Hence the FiO2 for these conditions is 21%, or 0.21.
For a nasal cannula, each L/min of O2 adds approximately 4% to the FiO2 value [1]. (The data in [1] covers the range of 1-6 L/min, but the 4%/L rule seems to be the standard approximation in the respiratory therapy literature for moderately higher flow nasal cannulas).
Nasal Cannula Flow Rate (L/min) | FiO2 (%) |
---|---|
1 | 24 |
2 | 28 |
3 | 32 |
4 | 36 |
5 | 40 |
6 | 44 |
7 | 48 |
8 | 52 |
9 | 56 |
10 | 60 |
For a nasopharyngeal catheter [1]:
Nasopharyngeal Catheter Flow Rate (L/min) | FiO2 (%) |
---|---|
1 | 24 |
2 | 28 |
3 | 32 |
4 | 36 |
5 | 40 |
6 | 44 |
7 | 48 |
8 | 52 |
9 | 56 |
10 | 60 |
For a simple fask mask with no reservoir:
Face Mask Flow Rate (L/min) | FiO2 (%) |
---|---|
5 | 35 |
6 | 39 |
7 | 43 |
8 | 47 |
9 | 51 |
10 | 55 |
For a face mask with reservoir (non-rebreather) [1]:
Face Mask With Reservoir Flow Rate (L/min) | FiO2 (%) |
---|---|
6 | 60 |
7 | 70 |
8 | 80 |
9 | 90 |
10 | 95 |
For a Venturi mask:
Venturi Mask Flow Rate (L/min) | FiO2 (%) |
---|---|
2 | 24 |
4 | 28 |
6 | 31 |
8 | 35 |
10 | 40 |
15 | 60 |
The O2SaturationTask
uses the data in these tables to linearly interpolate
FiO2 values for the stated devices and flow rates.
Example¶
define final O2Data:
Clarity.O2SaturationTask({
documentset: [Docs]
});
Arguments¶
Name | Type | Required | Notes |
---|---|---|---|
documentset | documentset | No | |
cohort | cohort | No |
Results¶
Name | Type | Notes |
---|---|---|
sentence | str | The input sentence after textual cleanup operations have been performed. |
text | str | That portion of sentence containing an O2 saturation statement. |
start | int | Offset into sentence of the first character of the O2 saturation statement. |
end | int | One character past the end of the O2 saturation statement. |
device | str | The Oxygen delivery device, if any. |
flow_rate | float | Device Oxygen flow rate in liters/min. |
condition | str | Relation of the O2 saturation to the stated value: ‘APPROX’, ‘LESS_THAN’, ‘LESS_THAN_OR_EQUAL’, ‘GREATER_THAN’, ‘GREATER_THAN_OR_EQUAL’, ‘EQUAL’, ‘RANGE’ |
value | float | Oxygen saturation percentage |
value2 | float | Oxygen saturation percentage, only valid for ranges |
pao2 | int | Oxygen partial pressure in mmHg, if any |
pao2_est | int | Oxygen partial pressure estimated from clues in sentence |
fio2 | int | Fraction of inspired Oxygen, expressed as a percentage |
fio2_est | int | Fraction of inspired Oxygen estimated from clues in sentence |
p_to_f_ratio | int | PaO2/FiO2 extracted from sentence, if any |
p_to_f_ratio_est | int | P/F ratio estimated from clues in sentence, if any |
Collector¶
No