A method for calculating hypoxia load based on polysomnography

By detecting the pulse oxygen saturation waveform characteristics in the polysomnography and calculating low oxygen loads by event, the accuracy and stability of low oxygen load calculation in the prior art are solved, and higher detection accuracy and A wider range of applications.

CN117045243BActive Publication Date: 2025-02-07NANJING UNIV OF SCI & TECH +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311045136.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-08-18
Publication Date
2025-02-07
Estimated Expiration
2043-08-18

AI Technical Summary

Technical Problem

The existing low-oxygen load calculation methods have problems such as insufficient anti-interference performance of pulse oximetry sensors, large deviations in oxygen reduction event leakage and rectangular area estimation.

Method used

A low-oxygen load calculation method based on polysomnography is proposed. The oxygen reduction event is detected through the pulse oxygen saturation waveform characteristics, the detection threshold is set for event detection, and the low-oxygen load is calculated by event.

Benefits of technology

The accuracy of oxygen reduction event detection is improved, the probability of misjudgment and misjudgment is reduced, and the method performance is stable and is not easily affected by signal sampling accuracy and quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117045243B_ABST
    Figure CN117045243B_ABST
Patent Text Reader

Abstract

The present invention discloses a method for calculating hypoxia load based on polysomnography, including: reading pulse blood oxygen saturation signals, respiratory event labels and sleep stages, and preprocessing each signal; performing overall oxygen reduction event detection on each preprocessed signal segment, traversing pulse blood oxygen saturation signal segments, recording multiple characteristic points and characteristic values ​​of the signal in the oxygen reduction event, setting a detection threshold for detection according to the degree of change of pulse blood oxygen saturation before and after the respiratory event defined by AASM; matching PSG respiratory event labels with all detected oxygen reduction events one by one, and performing local oxygen reduction event detection for respiratory event labels that are not matched to oxygen reduction events; lowering the detection threshold, and re-performing oxygen reduction event detection in the interval between two respiratory events; and calculating the hypoxia load corresponding to each respiratory event label. The present invention starts from oxygen reduction event detection, calculates hypoxia load indicators event by event, and the calculation method is effective and feasible, with reliable performance and higher accuracy.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention belongs to the technical field of sleep respiratory medicine, and in particular to a method for calculating hypoxia load based on polysomnography (PSG). Background Art

[0002] Obstructive Sleep Apnea Hypopnea Syndrome (OSAHS) is a sleep breathing disorder characterized by intermittent upper airway collapse during sleep, manifested as snoring with apnea or hypopnea at night. Recurrent episodes of sleep apnea and hypopnea at night can cause nocturnal hypoxia, hypercapnia and sleep arousal, leading to clinical consequences such as cardiovascular and cerebrovascular diseases, cognitive dysfunction and metabolic dysfunction, and even sudden death at night in severe cases.

[0003] The Apnea Hypopnea Index (AHI) is an important indicator for diagnosing OSAHS and assessing its severity, but it only counts the average number of respiratory events (apnea and hypopnea) per hour, and does not include the duration and severity of airflow limitation and hypoxia in OSAHS patients. Therefore, its predictive value for the incidence of multi-system complications and complications of OSAHS is very limited. Foreign scholars have proposed that the percentage of total sleep time (TS90) with pulse oxygen saturation <90% is not effective in patients with persistent hypoxemia such as chronic obstructive pulmonary disease and obesity hypoventilation, and cannot be used as a specific indicator for evaluating intermittent hypoxia.

[0004] Recently, foreign scholars have proposed the Sleep Apnea Specific Hypoxic Burden (SASHB), which is defined as the ratio of the area enclosed by the oxygen drop curve related to respiratory events (apnea or hypopnea) and the baseline to the total sleep time. It is used to reflect the frequency, duration and severity of hypoxemia caused by OSAHS respiratory events, but not hypoxemia caused by other factors. In the calculation, only the airflow and pulse oxygen saturation curves need to be used, which has strong feasibility.

[0005] However, the current calculation method of hypoxic load still has some shortcomings. First, due to the weak anti-interference performance of the pulse oximetry sensor, it is easily affected by the body movement of the subject and produces erroneous measurement values, thus affecting the hypoxic load measurement results, and the existing calculation method does not eliminate the influence of erroneous values; secondly, due to the individual differences in the amplitude of the decrease in pulse oximetry, the use of the oxygen reduction event label marked by the PSG (i.e., a 3% decrease in the pulse oximetry index) as the calculation interval is prone to miss the oxygen reduction event, thus affecting the hypoxic load measurement results; thirdly, the pulse oximetry value fluctuates significantly during the oxygen reduction process, and the existing work uses the rectangular area to estimate the hypoxic load with large deviations. Summary of the invention

[0006] The purpose of the present invention is to provide a method for calculating hypoxia load based on polysomnography in view of the problems existing in the prior art.

[0007] The technical solution to achieve the purpose of the present invention is: a method for calculating hypoxia load based on polysomnography, a method for detecting oxygen depletion events based on pulse oxygen saturation waveform characteristics is proposed, and according to the morphological characteristics of oxygen depletion events and the degree of change in pulse oxygen saturation before and after respiratory events defined by the American Academy of Sleep Medicine (AASM), a detection threshold is set for event detection. A method for calculating hypoxia load by event is proposed, the hypoxia load corresponding to each respiratory event label is calculated, the sum is calculated and compared with the total sleep time to obtain the final hypoxia load index.

[0008] The method comprises the following steps:

[0009] Step 1, reading the pulse oximetry signal, respiratory event labels and sleep stages from the polysomnogram (PSG), and then preprocessing each signal, including aligning the pulse oximetry signal with the sleep stage time, processing abnormal segments in the pulse oximetry signal and removing abnormal respiratory event labels;

[0010] Step 2, performing overall oxygen depletion event detection on the preprocessed pulse oximetry signal segments respectively;

[0011] Step 3, matching the PSG respiratory event labels with all oxygen depletion events detected in step 2 one by one, and executing step 5 for respiratory event labels matching oxygen depletion events, otherwise executing step 4;

[0012] Step 4: for respiratory event labels that do not match oxygen depletion events, local oxygen depletion event detection is performed;

[0013] Step 5: Calculate the hypoxia load corresponding to each respiratory event label.

[0014] Furthermore, in step 1, the pulse oximetry signal, respiratory event label and sleep stage are read from the polysomnogram (PSG), and then each signal is preprocessed, including aligning the pulse oximetry signal with the sleep stage time, processing abnormal segments in the pulse oximetry signal and removing abnormal respiratory event labels, specifically including:

[0015] Step 1-1, read the pulse oximetry signal x from PSG spo2 (t) and its sampling rate f spo2 , and read the respiratory event label label(m):

[0016] label(m) = {type BE (m),start BE (m),start BE (m)},m∈[1,M] (1)

[0017] Where M represents the total number of respiratory events, type BE (m) indicates the type of the mth respiratory event, including central apnea and hypopnea, obstructive apnea and hypopnea, mixed apnea and hypopnea, and general hypopnea. BE (m),stop BE (m) represents the start time and end time of the mth respiratory event, respectively;

[0018] Read the sleep stage label sequence x that changes over time sleep (t) and its sampling rate f sleep , where x sleep The possible values ​​of (t) include the following four: 0: wakefulness; 1: non-rapid eye movement sleep stage 1, i.e. NREM1; 2: non-rapid eye movement sleep stage 2, i.e. NREM2; 3: non-rapid eye movement sleep stage 3, i.e. NREM3; 4: rapid eye movement sleep stage, i.e. REM; sleep stage x sleep (t) According to the sampling rate f of the pulse oximetry signal spo2 , resampled to the time scale of the pulse oximetry signal;

[0019] Step 1-2, preprocessing each signal read in step 1-1, specifically including:

[0020] Step 1-2-1, align the pulse oximetry signal and the sleep stage according to the header, retain the signals of the same time length, and cut off the redundant data;

[0021] Step 1-2-2, detecting and correcting abnormal segments of the pulse oximetry signal;

[0022] The abnormal fragment xabnormal (t), t∈[T1,T2], is the signal segment of the pulse oximetry signal with a pulse oximetry value of 0, where [T1,T2] represents the start time and end time of the abnormal segment;

[0023] (1) Detection of abnormal segments includes obtaining the segment start point T1, end point T2 and duration ΔT last The specific process includes:

[0024] Traverse the pulse oximetry signal x spo2 (t), when t = τ1, if x spo2 (τ1) = 0, that is, an abnormal point appears, then record T1 = τ1, and continue to traverse the pulse oxygen saturation signal x spo2 (t), until t = τ2, so that x spo2 (τ2)≠0, that is, the pulse oxygen saturation signal has returned to normal, then record T2=τ2-1, ΔT last =T2-T1+1; repeat the above operation until all abnormal fragments are detected;

[0025] (2) Correct the abnormal fragments, including:

[0026] If ΔT last ≤T A , then the abnormal segment is linearly padded, where T A is the preset threshold;

[0027]

[0028] in, Represents x spo2 (T1-1) to x spo2 The slope of the line (T2+1);

[0029] If ΔT last >T A , the respiratory events and sleep time associated with the abnormal segment are eliminated, and the value greater than T A The abnormal fragments are segmented to segment the pulse oximetry signal:

[0030]

[0031] Get the segmented pulse oximetry signal segment n∈[1,N], where N represents the number of signal segments after segmentation;

[0032] Compare the respiratory event labels with the sleep stages and remove the respiratory event labels that appear during the wakeful period:

[0033]

[0034] in, Indicates that the respiratory event label is removed, u· is a step function, T B The rejection threshold is set.

[0035] Furthermore, T B =0.2·f spo2 ·(stop BE (m)-start BE (m)), that is, respiratory events in which one-fifth of the event duration was during the wakeful period were eliminated.

[0036] Furthermore, the overall oxygen depletion event detection is performed on the pre-processed pulse blood oxygen saturation signal segments in step 2, which specifically includes the following steps:

[0037] Step 2-1, find the starting point t of the oxygen reduction event start ; Traverse the pulse oximetry signal segments When t = τ1, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point, That is, if there is a trend of decreasing pulse oxygen saturation, the current point is recorded as the starting point of an event. start =τ1, update the latter point to the left valley point t vleft =τ1+1 and the right valley point t vright =τ1+1, and go to step 2-2, otherwise continue to loop this step;

[0038] Step 2-2, continue to traverse the pulse oximetry signal segment Find the possible end point t of the oxygen depletion event stop If the oxygen reduction event ends, go to step 2-3, otherwise continue to cycle step 2-2;

[0039] Step 2-3, continue to traverse the pulse oximetry signal segment The end point position is further extended to make the entire oxygen reduction event complete.

[0040] Further, in step 2-2, continue to traverse the pulse blood oxygen saturation signal segment Find the possible end point t of the oxygen depletion event stop , specifically including:

[0041] According to the relationship between the pulse oxygen saturation value at the current point and the pulse oxygen saturation value at the next point, there are three situations:

[0042] (1) When t = τ2, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point, then Indicates that the pulse oxygen saturation has a downward trend; further judgment, if the pulse oxygen saturation value has not risen before stop = 0, that is, the pulse oxygen saturation value has been decreasing from the starting point, then the latter point is updated to the left valley point t vleft =τ2+1 and the right valley point t vright =τ2+1; on the contrary, the pulse oxygen saturation has risen, t stop ≠0, that is, the pulse oxygen saturation value has dropped again after rising; further determine whether the drop is caused by signal fluctuations. If it drops again and exceeds the previous valley point, Indicates that a new valley point has appeared, then the next point is updated to the left valley point t vleft =τ2+1 and the right valley point t vright =τ2+1, clear the rise and translation records t stop =0,t move =0, otherwise ignore this drop and regard it as signal noise; then continue to loop step 2-2.

[0043] (2) When t = τ2, if the pulse oxygen saturation value at the current point is equal to the pulse oxygen saturation value at the next point, that is, Indicates that the pulse oxygen saturation has a tendency to shift; further determine the location of the shift. If the pulse oxygen saturation value has not risen before, t stop = 0, that is, the translation may occur at the bottom of the valley, then the latter point is updated to the right valley point t vright =τ2+1; On the contrary, the pulse oxygen saturation has risen, t stop ≠0, that is, the translation may occur at the peak position, then the latter point is updated to the translation point t move =τ2+1; further judge whether an oxygen reduction event is likely to end, that is, one of the following conditions is met: ① The pulse oxygen saturation of this oxygen reduction event decreases by more than 3%, and the pulse oxygen saturation value has returned to a stable level for more than 1s; ② The pulse oxygen saturation value has returned to the same level as the starting point, that is, the difference between the pulse oxygen saturation value at the starting point and the ending point is less than 1%, as shown in the following formula:

[0044]

[0045] If either of the two conditions is met, indicating that the oxygen reduction event may end, then proceed to step 2-3, otherwise continue to loop step 2-2;

[0046] (3) When t = τ2, if the pulse oxygen saturation value at the current point is less than the pulse oxygen saturation value at the next point, that is, Indicates that the pulse oxygen saturation has an upward trend, so the last point recorded is the end point t stop=τ2, and clear the translation point t move =0; further judge whether an oxygen depletion event is likely to end, that is, one of the following conditions is met: ① The pulse oxygen saturation of this oxygen depletion event decreases by more than 4%; ② The pulse oxygen saturation value has returned to the same level as the starting point, and the difference between the pulse oxygen saturation values ​​at the starting point and the ending point is equal, as shown in the following formula:

[0047]

[0048] If either of the two conditions is met, it indicates that the oxygen reduction event may end, then go to step 2-3, otherwise continue to loop step 2-2.

[0049] Further, the pulse blood oxygen saturation signal segments are continuously traversed in step 2-3 Further extend the end point position to make the entire oxygen reduction event complete, including:

[0050] Continue to traverse the pulse oximetry signal segment When t = τ3, if the pulse oxygen saturation value at the current point is less than the pulse oxygen saturation value at the next point, That is, if the pulse oxygen saturation value has an upward trend, the last point recorded is the end point t stop =τ3, and clear the translation point t move =0; if That is, if the pulse oxygen saturation value has a translation trend, the latter point is updated to the translation point t move =τ3+1; until the pulse oxygen saturation decreases Or translation beyond As, ie, t move -t stop >A, the starting point t start and end point t stop Recorded as the starting point of an oxygen reduction event HE (n) and end point stop HE (n), and re-circulate step 2-1 until the entire segment is traversed to obtain the final detection result; where A is the preset time threshold, the unit is s.

[0051] Furthermore, in step 3, if there is an oxygen depletion event that overlaps with the interval 10 seconds after the start point to the end point of the respiratory event label, the following conditions are met:

[0052] start HE (n1)∈[start BE (n2),stop BE (n2)+10s] (7)

[0053] Then the n1th oxygen depletion event is taken as the event corresponding to the n2th respiratory event label;

[0054] Among them, start BE (n2),stop BE (n2) respectively represent the start time and end time of the n2th respiratory event, start HE (n1) indicates the starting point of the n1th oxygen depletion event.

[0055] Furthermore, in step 4, for respiratory event labels that do not match oxygen depletion events, local oxygen depletion event detection is performed, specifically including:

[0056] Step 4-1, find the starting point t of the oxygen reduction event start ; Traverse the pulse oximetry signal from the starting point of the current respiratory event label to the starting point of the next respiratory event label t∈[start BE (n1),start BE (n1+1], where n1 is a respiratory event without a corresponding oxygen depletion event. When t=τ4, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point, then Indicates a trend of decreasing pulse oxygen saturation, then record the current point as the starting point of an event t start =τ4, update the latter point to the left valley point t vleft =τ4+1 and the right valley point t vright =τ4+1, and go to step 4-2, otherwise continue to loop this step;

[0057] Step 4-2, lowering the end point judgment threshold in step 2-2, that is, the threshold in the following conditions: ① the pulse oxygen saturation of this oxygen reduction event decreases by no less than 3%; ② the pulse oxygen saturation value has returned to the same level as the starting point, that is, the difference between the pulse oxygen saturation values ​​at the starting point and the ending point is no more than 1%;

[0058]

[0059] Then perform the same operation as step 2-2;

[0060] Step 4-3, after finding the possible end point, further extend the start point and end point positions to complete the entire oxygen reduction event; from the start point position, traverse the pulse blood oxygen saturation signal segments forward When t = τ5, if If the pulse oxygen saturation shows an upward trend, it is updated to the starting point t start =τ5-1, and clear the translation point t move =0; if That is, if the pulse oxygen saturation has a translation trend, the previous point is updated to the translation point t move =τ5-1, until the pulse oxygen saturation decreases Or the translation exceeds 1s, that is, t move -t start >1s, the extension of the starting point ends; then, the same extension end point operation in step 2-3 is performed;

[0061] After the operation is completed, the starting point t start and end point t stop Recorded as the starting point of an oxygen reduction event HE (n) and end point stop HE (n), and re-loop step 4-1 until all respiratory event labels that do not correspond to oxygen depletion events are traversed.

[0062] Furthermore, the calculation of the hypoxia load corresponding to each respiratory event label in step 5 specifically includes:

[0063] For the mth respiratory event, the maximum pulse oxygen saturation value within 100 seconds before the end point of the respiratory event label is used as the baseline baseline(m):

[0064]

[0065] Calculate the area (m) enclosed by the pulse oximetry signal and the baseline within the oxygen depletion event interval:

[0066]

[0067] Calculate the hypoxic load for each sleep stage and the total hypoxic load:

[0068]

[0069]

[0070]

[0071]

[0072]

[0073] Among them, SASHB NREM1 SASHB NREM2 SASHB NREM3 and SASHB REM The hypoxic load of NREM1, NREM2, NREM3 and REM stages, SASHB 总 is the total hypoxic load, Represents a logical NOT operation.

[0074] Compared with the prior art, the present invention has the following significant advantages:

[0075] 1) The hypoxic load calculation method proposed in the present invention improves the detection accuracy of oxygen depletion events by combining overall oxygen depletion event detection with local oxygen depletion event detection, realizes the one-to-one correspondence between respiratory event labels and oxygen depletion events, and effectively reduces the probability of misjudgment and omission of oxygen depletion events. 2) The hypoxic load calculation method proposed in the present invention improves the traditional oxygen depletion event detection algorithm, has stable performance, is not easily affected by the sampling accuracy and signal quality of the pulse oximetry signal, and has a wide range of applications. 3) The oxygen depletion event detection criterion proposed in the present invention, from a theoretical perspective, takes into account the actual pulse oximetry signal characteristics, is more in line with the actual signal characteristics of oxygen depletion events, and enhances the effectiveness of the algorithm in identifying oxygen depletion events.

[0076] The present invention is further described in detail below in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0077] Figure 1 The present invention is a flow chart of a method for calculating overnight hypoxia load based on polysomnographic information.

[0078] Figure 2 FIG. 4 is a graph of pulse blood oxygen saturation measurement values ​​in an abnormal segment in an example of the present invention.

[0079] Figure 3 This is a flow chart of the overall oxygen depletion event detection method of the present invention.

[0080] Figure 4 This is a characteristic point detection diagram of oxygen reduction events in an example of the present invention.

[0081] Figure 5 This is a diagram showing the effect of oxygen reduction event detection in an example of the present invention.

[0082] Figure 6 Schematic diagram of the method for calculating hypoxic load in an example of the present invention. DETAILED DESCRIPTION

[0083] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0084] It should be noted that if the embodiments of the present invention involve directional indications (such as up, down, left, right, front, back, etc.), the directional indications are only used to explain the relative position relationship, movement status, etc. between the components under a certain specific posture (as shown in the accompanying drawings). If the specific posture changes, the directional indication will also change accordingly.

[0085] In one embodiment, in combination Figure 1 , provides a method for calculating hypoxia load based on polysomnography, the method comprising the following steps:

[0086] Step 1: read the pulse oximetry signal, respiratory event label and sleep stage from the polysomnogram (PSG), and then pre-process each signal, including aligning the pulse oximetry signal with the sleep stage time, processing the abnormal segments in the pulse oximetry signal and removing the abnormal respiratory event label; specifically, including:

[0087] Step 1-1, read the pulse oximetry signal x from PSG spo2 (t) and its sampling rate f spo2 , and read the respiratory event label label(m):

[0088] label(m) = {type BE (m),start BE (m),stop BE (m)},m∈[1,M] (16)

[0089] Where M represents the total number of respiratory events, type BE (m) indicates the type of the mth respiratory event, including central apnea and hypopnea, obstructive apnea and hypopnea, mixed apnea and hypopnea, and general hypopnea. BE (m),stop BE (m) represents the start time and end time of the mth respiratory event, respectively;

[0090] Read the sleep stage label sequence x that changes over time sleep (t) and its sampling rate f sleep , where x sleep The possible values ​​of (t) include the following four: 0: wakefulness; 1: non-rapid eye movement sleep stage 1, i.e. NREM1; 2: non-rapid eye movement sleep stage 2, i.e. NREM2; 3: non-rapid eye movement sleep stage 3, i.e. NREM3; 4: rapid eye movement sleep stage, i.e. REM; sleep stage x sleep (t) According to the sampling rate f of the pulse oximetry signal spo2 , resampled to the time scale of the pulse oximetry signal;

[0091] Step 1-2, preprocessing each signal read in step 1-1, specifically including:

[0092] Step 1-2-1, align the pulse oximetry signal and the sleep stage according to the header, retain the signals of the same time length, and cut off the redundant data;

[0093] Step 1-2-2, detecting and correcting abnormal segments of the pulse oximetry signal;

[0094] The abnormal fragment x abnormal (t), t∈[T1,T2], is the signal segment in the pulse oxygen saturation signal where the pulse oxygen saturation value is 0, such as Figure 2 As shown, [T1, T2] represents the start time and end time of the abnormal segment;

[0095] (1) Detection of abnormal segments includes obtaining the segment start point T1, end point T2 and duration ΔT last The specific process includes:

[0096] Traverse the pulse oximetry signal x spo2 (t), when t = τ1, if x spo2 (τ1) = 0, that is, an abnormal point appears, then record T1 = τ1, and continue to traverse the pulse oxygen saturation signal x spo2 (t), until t = τ2, so that x spo2 τ2≠0, that is, the pulse oxygen saturation signal has returned to normal, then record T2=τ2-1, ΔT last =T2-T1+1; repeat the above operation until all abnormal fragments are detected;

[0097] (2) Correct the abnormal fragments, including:

[0098] If ΔT last ≤T A , then the abnormal segment is linearly padded, where T A is a preset threshold; preferably, T A Take 20s, which is close to the time when an oxygen depletion event occurs;

[0099]

[0100] in, Represents x spo2 T1-1 to x spo2 The slope of the line (T2+1);

[0101] If ΔT last >T A , the respiratory events and sleep time associated with the abnormal segment are eliminated, and the value greater than TA The abnormal fragments are segmented to segment the pulse oximetry signal:

[0102]

[0103] Get the segmented pulse oximetry signal segment n∈[1,N], where N represents the number of segmented signal segments; after processing, there will be no abnormal segments in a single pulse oximetry signal segment;

[0104] Compare the respiratory event labels with the sleep stages and remove the respiratory event labels that appear during the wakeful period:

[0105]

[0106] in, Indicates that the respiratory event label is removed, u· is a step function, T B The rejection threshold is set.

[0107] Here preferably, T B =0.2·f spo2 ·(stop BE (m)-start BE (m), i.e., respiratory events in which one-fifth of the event duration was during the wakeful period were eliminated.

[0108] Step 2: Perform overall oxygen depletion event detection on the pre-processed pulse blood oxygen saturation signal segments. The detection process is as follows: Figure 3 According to the morphological characteristics of oxygen depletion events, the detection method traverses the pulse oximetry signal segments. Record multiple characteristic points and characteristic values ​​of the pulse oximetry signal during oxygen depletion events, such as Figure 4 As shown, including the starting point t start , end point t stop , left valley point t vleft , right valley point t vright , translation point t move and the maximum oxygen depletion value Δx low , and set the detection threshold for detection based on the change in pulse oxygen saturation before and after the respiratory event defined by AASM. The specific process includes:

[0109] Step 2-1, find the starting point t of the oxygen reduction event start ; Traverse the pulse oximetry signal segments When t = τ1, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point, That is, if there is a trend of decreasing pulse oxygen saturation, the current point is recorded as the starting point of an event. start =τ1, update the latter point to the left valley point t vleft =τ1+1 and the right valley point t vright =τ1+1, and go to step 2-2, otherwise continue to loop this step;

[0110] Step 2-2, continue to traverse the pulse oximetry signal segment Find the possible end point t of the oxygen depletion event stop If the oxygen reduction event ends, then go to step 2-3, otherwise continue to loop step 2-2; specifically including:

[0111] According to the relationship between the pulse oxygen saturation value at the current point and the pulse oxygen saturation value at the next point, there are three situations:

[0112] (1) When t = τ2, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point, then Indicates that the pulse oxygen saturation has a downward trend; further judgment, if the pulse oxygen saturation value has not risen before stop = 0, that is, the pulse oxygen saturation value has been decreasing from the starting point, then the latter point is updated to the left valley point t vleft =τ2+1 and the right valley point t vright =τ2+1; on the contrary, the pulse oxygen saturation has risen, t stop ≠0, that is, the pulse oxygen saturation value has dropped again after rising; further determine whether the drop is caused by signal fluctuations. If it drops again and exceeds the previous valley point, Indicates that a new valley point has appeared, then the next point is updated to the left valley point t vleft =τ2+1 and the right valley point t vright =τ2+1, clear the rise and translation records t stop =0,t move =0, otherwise ignore this drop and regard it as signal noise; then continue to loop step 2-2.

[0113] (2) When t = τ2, if the pulse oxygen saturation value at the current point is equal to the pulse oxygen saturation value at the next point, that is, Indicates that the pulse oxygen saturation has a tendency to shift; further determine the location of the shift. If the pulse oxygen saturation value has not risen before, t stop = 0, that is, the translation may occur at the bottom of the valley, then the latter point is updated to the right valley point t vright =τ2+1; On the contrary, the pulse oxygen saturation has risen, t stop≠0, that is, the translation may occur at the peak position, then the latter point is updated to the translation point t move =τ2+1; further judge whether an oxygen reduction event is likely to end, that is, one of the following conditions is met: ① The pulse oxygen saturation of this oxygen reduction event decreases by more than 3%, and the pulse oxygen saturation value has returned to a stable level for more than 1s; ② The pulse oxygen saturation value has returned to the same level as the starting point, that is, the difference between the pulse oxygen saturation value at the starting point and the ending point is less than 1%, as shown in the following formula:

[0114]

[0115] If either of the two conditions is met, indicating that the oxygen reduction event may end, then proceed to step 2-3, otherwise continue to loop step 2-2;

[0116] (3) When t = τ2, if the pulse oxygen saturation value at the current point is less than the pulse oxygen saturation value at the next point, that is, Indicates that the pulse oxygen saturation has an upward trend, so the last point recorded is the end point t stop =τ2, and clear the translation point t move =0; further judge whether an oxygen depletion event is likely to end, that is, one of the following conditions is met: ① The pulse oxygen saturation of this oxygen depletion event decreases by more than 4%; ② The pulse oxygen saturation value has returned to the same level as the starting point, and the difference between the pulse oxygen saturation values ​​at the starting point and the ending point is equal, as shown in the following formula:

[0117]

[0118] If either of the two conditions is met, it indicates that the oxygen reduction event may end, then go to step 2-3, otherwise continue to loop step 2-2.

[0119] Step 2-3, continue to traverse the pulse oximetry signal segment Further extend the end point position to make the entire oxygen reduction event as complete as possible. Specifically include:

[0120] Continue to traverse the pulse oximetry signal segment When t = τ3, if the pulse oxygen saturation value at the current point is less than the pulse oxygen saturation value at the next point, That is, if the pulse oxygen saturation value has an upward trend, the last point recorded is the end point t stop =τ3, and clear the translation point t move =0; if That is, if the pulse oxygen saturation value has a translation trend, the latter point is updated to the translation point t move =τ3+1; until the pulse oxygen saturation decreases Or translation beyond As, ie, t move-t stop >As, the starting point t start and end point t stop Recorded as the starting point of an oxygen reduction event HE (n) and end point stop HE (n), and re-circulate step 2-1 until the entire segment is traversed to obtain the final detection result. The algorithm detection effect is as follows Figure 5 As shown; A is the preset time threshold, in seconds.

[0121] Here preferably, A is 1.

[0122] Step 3, matching the PSG respiratory event labels with all oxygen depletion events detected in step 2 one by one, and executing step 5 for respiratory event labels matching oxygen depletion events, otherwise executing step 4;

[0123] Here, if there is an oxygen depletion event that overlaps with the 10-second interval from the start point to the end point of the respiratory event label, the following conditions are met:

[0124] start HE (n1)∈[start BE (n2),stop BE (n2)+10s] (22)

[0125] Then the n1th oxygen depletion event is taken as the event corresponding to the n2th respiratory event label;

[0126] Among them, start BE (n2),stop BE (n2) respectively represent the start time and end time of the n2th respiratory event, start HE (n1) indicates the starting point of the n1th oxygen reduction event

[0127] Step 4: For respiratory event labels that do not match oxygen depletion events, local oxygen depletion event detection is performed. Similar to step 2, after lowering the detection threshold, oxygen depletion event detection is performed again within the interval between two respiratory events, and multiple feature points and feature values ​​of the pulse blood oxygen saturation signal in the oxygen depletion event are recorded, including the starting point t start , end point t stop , left valley point t vleft , right valley point t vright , translation point t move and the maximum oxygen depletion value Δx low , the detection is mainly divided into three steps:

[0128] Step 4-1, find the starting point t of the oxygen reduction event startTraverse the pulse oximetry signal from the starting point of the current respiratory event label to the starting point of the next respiratory event label t∈[start BE (n1),tstart BE (n1+1)], where n1 is a respiratory event without a corresponding oxygen depletion event. When t=τ4, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point That is, if there is a trend of decreasing pulse oxygen saturation, the current point is recorded as the starting point of an event. start =τ4, update the latter point to the left valley point t vleft =τ4+1 and the right valley point t vright =τ4+1, and go to step 4-2, otherwise continue to loop this step.

[0129] Step 4-2, lower the end point judgment threshold in step 2-2, that is, meet one of the following conditions: ① The pulse oxygen saturation of this oxygen reduction event decreases by no less than 3%; ② The pulse oxygen saturation value has returned to the same level as the starting point, that is, the difference between the pulse oxygen saturation value at the starting point and the end point is no more than 1%,

[0130]

[0131] Then perform the same operation as step 2-2.

[0132] Step 4-3, after finding the possible end point, further extend the start point and end point positions to make the entire oxygen reduction event as complete as possible. From the start point position, traverse the pulse blood oxygen saturation signal segments forward When t = τ5, if If the pulse oxygen saturation shows an upward trend, it is updated to the starting point t start =τ5-1, and clear the translation point t move =0; if That is, if the pulse oxygen saturation has a translation trend, the previous point is updated to the translation point t move =τ5-1. Until the pulse oxygen saturation decreases Or the translation exceeds 1s, that is, t move -t start >1s, the starting point extension ends. Then, perform the same extension end point operation in step 2-3. After the operation is completed, the starting point t start and end point t stop Recorded as the starting point of an oxygen reduction event HE (n) and end point stop HE (n), and re-loop step 4-1 until all respiratory event labels that do not correspond to oxygen depletion events are traversed.

[0133] Step 5, calculating the hypoxia load corresponding to each respiratory event label, specifically including:

[0134] For the mth respiratory event, the maximum pulse oxygen saturation value within 100 seconds before the end point of the respiratory event label is used as the baseline baseline(m):

[0135]

[0136] like Figure 6 As shown, calculate the area (m) enclosed by the pulse oxygen saturation signal and the baseline within the oxygen depletion event interval:

[0137]

[0138] Finally, the areas of each sleep stage are summed and divided by the sleep time to obtain the hypoxia load of each sleep stage and the total hypoxia load, as shown in the following formula, where Represents a logical NOT operation:

[0139]

[0140]

[0141]

[0142]

[0143]

[0144] In one embodiment, the present invention is further verified in combination with specific examples.

[0145] In this embodiment, the algorithm of the present invention was used to calculate the hypoxic load of 9 subjects, and the calculation results are shown in Table 1.

[0146] Table 1 Calculation results of hypoxia load in each sleep stage

[0147]

[0148] As can be seen from the above table, the calculation results of the algorithm of the present invention have a strong correlation with the AHI results recorded by PSG, which shows that the calculation results of the algorithm of the present invention are accurate, effective and feasible for calculating the hypoxic load index throughout the night, and the performance is reliable.

[0149] In summary, compared with the traditional hypoxic load calculation method, the present invention starts from the oxygen reduction event detection and calculates the hypoxic load index event by event. The calculation method is effective and feasible, the performance is reliable, and the accuracy is higher.

[0150] The above shows and describes the basic principles, main features and advantages of the present invention. Those skilled in the art should understand that the present invention is not limited by the above embodiments, and the above embodiments and descriptions are only for explaining the principles of the present invention. Without departing from the spirit and scope of the present invention, any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims

1. A method for calculating hypoxia load based on polysomnography, characterized in that: The method comprises the following steps: Step 1, reading the pulse oximetry signal, respiratory event labels and sleep stages from the polysomnogram (PSG), and then preprocessing each signal, including aligning the pulse oximetry signal with the sleep stage time, processing abnormal segments in the pulse oximetry signal and removing abnormal respiratory event labels; Step 2, respectively performing overall oxygen depletion event detection on the pre-processed pulse blood oxygen saturation signal segments; specifically comprising the following steps: Step 2-1, find the starting point t of the oxygen reduction event start ; Traverse the pulse oximetry signal segments When t = τ1, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point, That is, if there is a trend of decreasing pulse oxygen saturation, the current point is recorded as the starting point of an event. start =τ1, update the latter point to the left valley point t vleft =τ1+1 and the right valley point t vright =τ1+1, and go to step 2-2, otherwise continue to loop this step; Step 2-2, continue to traverse the pulse oximetry signal segment Find the possible end point t of the oxygen depletion event stop If the oxygen reduction event ends, go to step 2-3, otherwise continue to cycle step 2-2; Step 2-3, continue to traverse the pulse oximetry signal segment Further extend the end point position to make the entire oxygen reduction event complete; Step 3, matching the PSG respiratory event labels with all oxygen depletion events detected in step 2 one by one, and executing step 5 for respiratory event labels matching oxygen depletion events, otherwise executing step 4; Step 4: for respiratory event labels that do not match oxygen depletion events, local oxygen depletion event detection is performed; specifically, the following steps are performed: Step 4-1, find the starting point t of the oxygen reduction event start ; Traverse the pulse oximetry signal from the starting point of the current respiratory event label to the starting point of the next respiratory event label t∈[start BE (n1),start BE (n1+1)], where n1 is a respiratory event without a corresponding oxygen depletion event. When t=τ4, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point, then Indicates a trend of decreasing pulse oxygen saturation, then record the current point as the starting point of an event t start =τ4, update the latter point to the left valley point t vleft =τ4+1 and the right valley point t vright =τ4+1, and go to step 4-2, otherwise continue to loop this step; Step 4-2, lowering the end point judgment threshold in step 2-2, that is, the threshold in the following conditions: ① the pulse oxygen saturation of this oxygen reduction event decreases by no less than 3%; ② the pulse oxygen saturation value has returned to the same level as the starting point, that is, the difference between the pulse oxygen saturation values ​​at the starting point and the ending point is no more than 1%; Then perform the same operation as step 2-2; Step 4-3, after finding the possible end point, further extend the start point and end point positions to complete the entire oxygen reduction event; from the start point position, traverse the pulse blood oxygen saturation signal segments forward When t = τ5, if If the pulse oxygen saturation shows an upward trend, it is updated to the starting point t start =τ5-1, and clear the translation point t move =0; if That is, if the pulse oxygen saturation has a translation trend, the previous point is updated to the translation point t move =τ5-1, until the pulse oxygen saturation decreases Or the translation exceeds 1s, that is, t move -t start >1s, the extension of the starting point ends; then, the same extension end point operation in step 2-3 is performed; After the operation is completed, the starting point t start and end point t stop Recorded as the starting point of an oxygen reduction event HE (n) and end point stop HE (n), and re-loop step 4-1 until all respiratory event labels that do not match oxygen depletion events are traversed. Step 5: Calculate the hypoxia load corresponding to each respiratory event label.

2. The method for calculating hypoxia load based on polysomnography according to claim 1, characterized in that: Step 1 reads the pulse oximetry signal, respiratory event label and sleep stage from the polysomnogram (PSG), and then pre-processes each signal, including aligning the pulse oximetry signal with the sleep stage time, processing abnormal segments in the pulse oximetry signal and removing abnormal respiratory event labels, specifically including: Step 1-1, read the pulse oximetry signal x from PSG spo2 (t) and its sampling rate f spo2 , and read the respiratory event label label(m): label(m)={type BE (m),start BE (m),stop BE (m)},m∈[1,M] (2) Where M represents the total number of respiratory events, type BE (m) indicates the type of the mth respiratory event, including central apnea and hypopnea, obstructive apnea and hypopnea, mixed apnea and hypopnea, and general hypopnea. BE (m),stop BE (m) represents the start time and end time of the mth respiratory event, respectively; Read the sleep stage label sequence x that changes over time sleep (t) and its sampling rate f sleep , where x sleep The values ​​of (t) include the following four types: 0: wakefulness; 1: non-rapid eye movement sleep stage 1, i.e. NREM1; 2: non-rapid eye movement sleep stage 2, i.e. NREM2; 3: non-rapid eye movement sleep stage 3, i.e. NREM3; 4: rapid eye movement sleep stage, i.e. REM; sleep stage x sleep (t) According to the sampling rate f of the pulse oximetry signal spo2 , resampled to the time scale of the pulse oximetry signal; Step 1-2, preprocessing each signal read in step 1-1, specifically including: Step 1-2-1, align the pulse oximetry signal and the sleep stage according to the header, retain the signals of the same time length, and cut off the redundant data; Step 1-2-2, detecting and correcting abnormal segments of the pulse oximetry signal; The abnormal fragment x abnormal (t), t∈[T1,T2], is the signal segment of the pulse oximetry signal with a pulse oximetry value of 0, where [T1,T2] represents the start time and end time of the abnormal segment; (1) Detection of abnormal segments includes obtaining the segment start point T1, end point T2 and duration ΔT last The specific process includes: Traverse the pulse oximetry signal x spo2 (t), when t = τ1, if x spo2 (τ1) = 0, that is, an abnormal point appears, then record T1 = τ1, and continue to traverse the pulse oxygen saturation signal x spo2 (t), until t = τ2, so that x spo2 (τ2)≠0, that is, the pulse oxygen saturation signal has returned to normal, then record T2=τ2-1, ΔT last =T2-T1+1; repeat the above operation until all abnormal fragments are detected; (2) Correct the abnormal fragments, including: If ΔT last ≤T A , then the abnormal segment is linearly padded, where T A is the preset threshold; in, Represents x spo2 (T1-1) to x spo2 The slope of the line (T2+1); If ΔT last >T A , the respiratory events and sleep time associated with the abnormal segment are eliminated, and the value greater than T A The abnormal fragments are segmented to segment the pulse oximetry signal: Get the segmented pulse oximetry signal segment n∈[1,N], where N represents the number of signal segments after segmentation; Compare the respiratory event labels with the sleep stages and remove the respiratory event labels that appear during the wakeful period: in, Indicates that the respiratory event label is removed, u(·) is a step function, T B The rejection threshold is set.

3. The method for calculating hypoxia load based on polysomnography according to claim 2, characterized in that: T B =0.2·f spo2 ·(stop BE (m)-start BE (m)), that is, respiratory events in which one-fifth of the event duration was during the wakeful period were eliminated.

4. The method for calculating hypoxia load based on polysomnography according to claim 3, characterized in that: Continue to traverse the pulse oximetry signal segments in step 2-2 Find the possible end point t of the oxygen depletion event stop , specifically including: According to the relationship between the pulse oxygen saturation value at the current point and the pulse oxygen saturation value at the next point, there are three situations: (1) When t = τ2, if the pulse oxygen saturation value at the current point is greater than the pulse oxygen saturation value at the next point, then Indicates that the pulse oxygen saturation has a downward trend; further judgment, if the pulse oxygen saturation value has not risen before stop = 0, that is, the pulse oxygen saturation value has been decreasing from the starting point, then the latter point is updated to the left valley point t vleft =τ2+1 and the right valley point t vright =τ2+1; On the contrary, the pulse oxygen saturation has risen, t stop ≠0, that is, the pulse oxygen saturation value has dropped again after rising; further determine whether the drop is caused by signal fluctuations. If it drops again and exceeds the previous valley point, Indicates that a new valley point has appeared, then the next point is updated to the left valley point t vleft =τ2+1 and the right valley point t vright =τ2+1, clear the rise and translation records t stop =0,t move =0, otherwise ignore this drop and regard it as signal noise; then continue to loop step 2-2; (2) When t = τ2, if the pulse oxygen saturation value at the current point is equal to the pulse oxygen saturation value at the next point, that is, Indicates that the pulse oxygen saturation has a tendency to shift; further determine the location of the shift. If the pulse oxygen saturation value has not risen before, t stop = 0, that is, the translation may occur at the bottom of the valley, then the latter point is updated to the right valley point t vright =τ2+1; On the contrary, the pulse oxygen saturation has risen, t stop ≠0, that is, the translation may occur at the peak position, then the latter point is updated to the translation point t move =τ2+1; further judge whether an oxygen reduction event is likely to end, that is, one of the following conditions is met: ① The pulse oxygen saturation of this oxygen reduction event decreases by more than 3%, and the pulse oxygen saturation value has returned to a stable level for more than 1s; ② The pulse oxygen saturation value has returned to the same level as the starting point, that is, the difference between the pulse oxygen saturation values ​​at the starting point and the ending point is less than 1%. The two situations are shown in the following formula: If either of the two conditions is met, indicating that the oxygen reduction event may end, then proceed to step 2-3, otherwise continue to loop step 2-2; (3) When t = τ2, if the pulse oxygen saturation value at the current point is less than the pulse oxygen saturation value at the next point, that is, Indicates that the pulse oxygen saturation has an upward trend, so the last point recorded is the end point t stop =τ2, and clear the translation point t move =0; further judge whether an oxygen depletion event is likely to end, that is, one of the following conditions is met: ① The pulse oxygen saturation of this oxygen depletion event decreases by more than 4%; ② The pulse oxygen saturation value has returned to the same level as the starting point, and the difference between the pulse oxygen saturation values ​​at the starting point and the ending point is equal, as shown in the following formula: If either of the two conditions is met, it indicates that the oxygen reduction event may end, then go to step 2-3, otherwise continue to loop step 2-2.

5. The method for calculating hypoxia load based on polysomnography according to claim 4, characterized in that: Continue to traverse the pulse oximetry signal segments as described in step 2-3 Further extend the end point position to make the entire oxygen reduction event complete, including: Continue to traverse the pulse oximetry signal segment When t = τ3, if the pulse oxygen saturation value at the current point is less than the pulse oxygen saturation value at the next point, That is, if the pulse oxygen saturation value has an upward trend, the last point recorded is the end point t stop =τ3, and clear the translation point t move =0; if That is, if the pulse oxygen saturation value has a translation trend, the latter point is updated to the translation point t move =τ3+1; until the pulse oxygen saturation decreases Or translation beyond As, ie, t move -t stop >A, the starting point t start and end point t stop Recorded as the starting point of an oxygen reduction event HE (n) and end point stop HE (n), and re-circulate step 2-1 until the entire segment is traversed to obtain the final detection result; where A is the preset time threshold, the unit is s.

6. The method for calculating hypoxia load based on polysomnography according to claim 5, characterized in that: In step 3, if there is an oxygen depletion event that overlaps with the 10-second interval from the start point to the end point of the respiratory event label, the following conditions are met: start HE (s1)∈[start BE (n2),stop BE (n2)+10s] (8) Then the n1th oxygen depletion event is taken as the event corresponding to the n2th respiratory event label; Among them, start BE (n2),stop BE (n2) respectively represent the start time and end time of the n2th respiratory event, start HE (n1) indicates the starting point of the n1th oxygen depletion event.

7. The method for calculating hypoxia load based on polysomnography according to claim 6, characterized in that: The calculation of the hypoxia load corresponding to each respiratory event label in step 5 specifically includes: For the mth respiratory event, the maximum pulse oxygen saturation value within 100s before the end point of the respiratory event label is used as the baseline baseline(m): Calculate the area (m) enclosed by the pulse oximetry signal and the baseline within the oxygen depletion event interval: Calculate the hypoxic load for each sleep stage and the total hypoxic load: Among them, SASHB NREM1 SASHB NREM2 SASHB NREM3 and SASHB REM The hypoxic load of NREM1, NREM2, NREM3 and REM stages, SASHB 总 is the total hypoxic load, Represents a logical NOT operation.

Citation Information

Patent Citations

  • Oxyhemoglobin saturation signal analysis method and device, computer equipment and storage medium

    CN111035395A

  • System and method for endo-phenotyping and risk stratfying obstructive sleep apnea

    US20230087299A1