Dropout Detection in Continuous Analyte Monitoring Data During Data Excursions
20210164964 · 2021-06-03
Assignee
Inventors
Cpc classification
G16Z99/00
PHYSICS
A61B5/14532
HUMAN NECESSITIES
G16H10/60
PHYSICS
International classification
A61B5/145
HUMAN NECESSITIES
G16H10/60
PHYSICS
Abstract
Methods, devices, and systems are provided for identifying dropouts in analyte monitoring system sensor data including segmenting sensor data into a plurality of time series wherein each time series is associated with a different instance of a repeating event, selecting a first time series to analyze for dropouts from the plurality of time series; comparing the selected first time series to a second time series among the plurality of time series, determining whether the selected first time series includes a portion that is more than a predefined threshold lower than a corresponding portion of the second time series, and displaying, on a computer system display, an indication that the selected first time series includes a dropout if the selected first time series includes a portion that is more than the predefined threshold lower than the corresponding portion of the second time series.
Claims
1. A method, comprising: receiving sensor data from an analyte sensor configured to be positioned at least in part in contact with a fluid under a skin layer, the sensor data corresponding to a monitored analyte level of the fluid; segmenting the sensor data into a plurality of time segments, the plurality of time segments including a first segment comprising a first instance, and a second segment comprising a second instance; applying a time dilation and correlation operation to the sensor data of the first segment to obtain a time dilated and correlated first segment, wherein the time dilation and correlation operation comprises: performing a first one of a time dilation operation or a correlation operation to the sensor data of the first segment, the time dilation operation comprising dilating the sensor data of the first segment to obtain the time dilated first segment, wherein the sensor data of the time dilated first segment over a first period of time corresponds to the sensor data of the second segment over a second period of time, and the correlation operation comprising correlating the sensor data of the first segment over the first period of time to the sensor data of the second segment over the second period of time to obtain the correlated first segment; applying a second one of the time dilation operation or the correlation operation to the time dilated first segment or the correlated first segment to obtain the time dilated and correlated first segment; and determining that the first segment includes a dropout when the time dilated and correlated first segment over the first period of time differs by more than a threshold from the sensor data of the second segment over the second period of time.
2. The method of claim 1, further comprising: providing an indication on a display that the first segment includes the dropout.
3. The method of claim 1, further comprising: marking the segmented sensor data based on the determined dropout.
4. The method of claim 1, further comprising at least one of: correcting the received sensor data based on the determined dropout; or correcting future sensor data based on the determined dropout.
5. The method of claim 1, further comprising: dynamically varying the threshold used for determining that the sensor data of the time dilated first segment over the first period of time differs from the sensor data of the second segment over the second period of time.
6. The method of claim 5, wherein the dynamically varying threshold varies according to a noise quality of the analyte sensor.
7. The method of claim 1, wherein the first instance and the second instance correspond to a periodic event, wherein the periodic event is a meal, and further comprising receiving a user input for a time marker of at least the first instance or the second instance.
8. The method of claim 1, wherein applying the time dilation operation to the first segment comprises determining a set of time dilation parameters, and applying the set of time dilation parameters to the first segment to obtain the time dilated first segment; and wherein determining that the sensor data of the time dilated first segment over the first period of time differs by more than the threshold from the sensor data of the second segment comprises determining a ratio for the sensor data of the time dilated first segment and the sensor data of the second segment.
9. The method of claim 1, wherein the first segment is a most recent segment of the plurality of time segments.
10. The method of claim 1, wherein the first period of time and the second period of time are of different lengths.
11. The method of claim 1, wherein the sensor data from the analyte sensor is received continuously.
12. A system, comprising: an analyte sensor configured to be positioned at least in part in contact with a fluid under a skin layer to generate sensor data corresponding to a monitored analyte level of the fluid; and a receiving device comprising one or more processors and a memory storing instructions which, when executed by the one or more processors, cause the system to: receive sensor data from the analyte sensor; segment the sensor data into a plurality of time segments, the plurality of time segments including a first segment comprising a first instance, and a second segment comprising a second instance; apply a time dilation and correlation operation to the sensor data of the first segment to obtain a time dilated and correlated first segment, wherein the time dilation and correlation operation comprises: performing a first one of a time dilation operation or a correlation operation to the sensor data of the first segment, the time dilation operation comprising dilating the sensor data of the first segment to obtain the time dilated first segment, wherein the sensor data of the time dilated first segment over a first period of time corresponds to the sensor data of the second segment over a second period of time, and the correlation operation comprising correlating the sensor data of the first segment over the first period of time to the sensor data of the second segment over the second period of time to obtain the correlated first segment; applying a second one of the time dilation operation or the correlation operation to the time dilated first segment or the correlated first segment to obtain the time dilated and correlated first segment; and determine that the first segment includes a dropout when the time dilated and correlated first segment over the first period of time differs by more than a threshold from the sensor data of the second segment over the second period of time.
13. The system of claim 12, wherein the memory storing instructions which, when executed by the one or more processors, cause the system to: provide an indication on a display that the first segment includes the dropout.
14. The system of claim 12, wherein the memory storing instructions which, when executed by the one or more processors, cause the system to: mark the segmented sensor data based on the determined dropout.
15. The system of claim 12, wherein the memory storing instructions which, when executed by the one or more processors, cause the system to at least one of: correct the received sensor data based on the determined dropout; or correct future sensor data based on the determined dropout.
16. The system of claim 12, where the threshold used to determine that the sensor data of the time dilated first segment over the first period of time differs from the sensor data of the second segment over the second period of time is dynamically varied.
17. The system of claim 16, wherein the dynamically varying threshold varies according to a noise quality of the analyte sensor.
18. The system of claim 12, wherein the first instance and the second instance correspond to a periodic event, wherein the periodic event is a meal, and wherein the memory further stores instructions which, when executed by the one or more processors, cause the one or more processors to receive a user input for a time marker of at least the first instance or the second instance.
19. The system of claim 12, wherein the one or more processors apply the time dilation operation to the first segment by at least determining a set of time dilation parameters, and applying the set of time dilation parameters to the first segment to obtain the time dilated first segment; and wherein the one or more processors determine that the sensor data of the time dilated first segment over the first period of time differs by more than the threshold from the sensor data of the second segment by at least determining a ratio for the sensor data of the time dilated first segment and the sensor data of the second segment.
20. The system of claim 12, wherein the first segment is a most recent segment of the plurality of time segments.
21. The system of claim 12, wherein the first period of time and the second period of time are of different lengths.
22. The system of claim 12, wherein the sensor data from the analyte sensor is received continuously.
23. The system of claim 12, wherein the memory further stores instructions which, when executed by the one or more processors, cause the system to replace the sensor data of the time dilated first segment which differs by more than the threshold from the sensor data of the second segment over the second period of time with a predetermined value.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0007]
[0008]
[0009]
[0010]
[0011]
DETAILED DESCRIPTION
[0012] The present invention provides systems, methods, and apparatus to identify dropouts in sensor data from an analyte monitoring system, such as, for example, any type of in vivo monitoring system that uses a sensor disposed with at least a portion subcutaneously to measure and store sensor data representative of analyte concentration levels automatically over time. Analyte monitoring systems may include CGMs which are programmed to transmit sensor data according to a predetermined transmission schedule, continuously, or at regular time intervals to a processor/display unit and systems that transfer stored sensor data in one or more batches in response to a request from a processor/display unit, i.e., not according to a predetermined transmission schedule. Without requiring a patient to wear two or more analyte sensors, the present invention is operable to identify dropouts in data from a single analyte sensor. According to some embodiments of the present invention, data representative of a patient's monitored analyte concentration level (herein referred to as “sensor data”) previously captured over a period of time (e.g., two weeks) is segmented into time series representative of sensor data reflecting the effects of a meal or other repeating event that causes data “excursions” from a stable analyte concentration level. Several time series representing repeating events, for example, a meal, or an activity occurring at a fixed time of day, may be identified for comparative analysis. In some embodiments, event time markers, either manually input into the system or automatically determined from meal start estimates (without user intervention), may be used to identify the beginning and end of a time series. Once two or more time series have been identified as corresponding to different instances of the same repeating event, the corresponding time series can be analyzed to detect dropouts. In some embodiments of the present invention, corresponding time series are compared to identify low analyte level differences that represent dropouts. However, since a patient's analyte levels do not follow an identical pattern each day and since excursion events such as meals are longer or shorter on different days, data modulation algorithms or techniques may be employed to normalize data (time series normalized data) or otherwise process or transform data to match it to other time series data for comparison. Harmonizing sets of un-harmonized sensor data time series to each other enables similar data sets that are not exactly identical to be compared to each other. Time series modulation algorithms or techniques may employ one or more of time series curve smoothing, dynamic range matching, and time dilation, to aid in the comparison of the corresponding time series.
[0013] The invention may be applied to any analyte concentration level determination system that may exhibit or at least be suspected of exhibiting, or that may be susceptible to, dropouts. Embodiments of the invention are described primarily with respect to continuous glucose monitoring devices and systems but the present invention may be applied to other analytes and analyte characteristics, as well as data from measurement systems that transmit sensor data from a sensor unit to another unit such as a processing or display unit in response to a request from the other unit. For example, other analytes that may be monitored include, but are not limited to, acetyl choline, amylase, bilirubin, cholesterol, chorionic gonadotropin, creatine kinase (e.g., CK-MB), creatine, DNA, fructosamine, glutamine, growth hormones, hormones, ketones, lactate, peroxide, prostate-specific antigen, prothrombin, RNA, thyroid stimulating hormone, and troponin. The concentration of drugs, such as, for example, antibiotics (e.g., gentamicin, vancomycin, and the like), digitoxin, digoxin, drugs of abuse, theophylline, and warfarin, may also be monitored. In those embodiments that monitor more than one analyte, the analytes may be monitored at the same or different times. The present invention also provides numerous additional embodiments.
[0014] Embodiments of the present invention may include a programmed computer system adapted to receive and store data from an analyte monitoring system. The computer system may include one or more processors for executing instructions or programs that implement the methods described herein. The computer system may include memory and persistent storage devices to store and manipulate the instructions and sensor data received from the analyte monitoring system. The computer system may also include communications facilities (e.g., wireless and/or wired) to enable transfer of the sensor data from the analyte monitoring system to the computer. The computer system may include a display and/or output devices for identifying dropouts in the sensor data to a user. The computer system may include input devices and various other components (e.g., power supply, operating system, clock, etc.) that are typically found in a conventional computer system. In some embodiments, the computer system may be integral to the analyte monitoring system. For example, the computer system may be embodied as a handheld or portable receiver unit within the analyte monitoring system.
[0015] The various methods described herein for performing one or more processes also described herein may be embodied as computer programs (e.g., computer executable instructions and data structures) developed using an object oriented programming language that allows the modeling of complex systems with modular objects to create abstractions that are representative of real world, physical objects and their interrelationships. However, any practicable programming language and/or techniques may be used. The software for performing the inventive processes, which may be stored in a memory or storage device of the computer system described herein, may be developed by a person of ordinary skill in the art based upon the present disclosure and may include one or more computer program products. The computer program products may be stored on a computer readable medium such as a server memory, a computer network, the Internet, and/or a computer storage device.
[0016] Turning to
[0017] According to embodiments of the present invention, the sensor data may be segmented by the computer system into daily plots that are overlaid to reveal the patient's behavior patterns as shown in the graph 200 of
[0018] In some embodiments, the plots of the sensor data may be, for example, sliding-average smoothed to remove “noise” and to facilitate easier comparison of the plots. In an unweighted sliding-average smoothing, each data point of the plot is replaced with the average of “m” adjacent points, where “m” is a positive integer referred to as the “smoothing width” or “smoothing window” in the case of a data plot over time as here. In some embodiments, various different smoothing windows (e.g., 15 minutes, 20 minutes, 30 minutes, etc.) may be tried by the computer system to find acceptable smoothening results while not significantly distorting features associated with true glucose excursions. For example, the smallest smoothing window that removes most of the jagged points on the curve without changing the overall shape of the curve may be selected. In some embodiments, other methods of smoothing may be used.
[0019] Once the overlaid daily plots are smoothed, they may be segmented into time series that correspond to repeating events (e.g., meals). A window of time may be defined where two or more time series of sensor data (e.g., x1, x2, x3, . . . , xN) from the same patient is to be compared. For example, the start of the time window for a repeating event that occurred on the last day of the sensor data may be determined using the latest meal marker (e.g., breakfast, lunch, dinner). This meal marker may be input by the user or determined by a meal start estimator. Details describing obtaining a meal marker from a meal start estimator may be found in U.S. Patent Application No. 61/582,209, filed Dec. 30, 2011, entitled “Method and Apparatus for Determining Medication Dose Information,” which is hereby incorporated by reference. The end of the time window for a repeating event that occurred on the last day of the sensor data may be the latest available data from the sensor, or a time at which a new meal marker has been identified/provided. The start of the time window for a repeating event that occurred on previous days may be determined by meal markers from the appropriate prior days of the same type (e.g., breakfast matched with breakfast, or generic meal matched to the nearest time-of-day as provided by the analyte monitoring system's clock). Thus, using the smoothed, overlaid sensor data, the computer system may be programmed to identify two or more corresponding time series of sensor data that represent excursions resulting from the same repeating event occurring on different days.
[0020] Assuming the computer system identifies N pre-smoothed time series, there will be N−1 time series to compare against the x1 time series. Because patients' analyte levels do not follow an identical pattern day to day, and since each breakfast, lunch, or dinner may last longer or shorter than prior days' breakfast, lunch, or dinner, it may be helpful to perform some time dilation (or time stretching) functions on the sensor data to facilitate comparison between two different time series. Therefore, for each of the N−1 comparisons (e.g., x1 vs. x2; x1 vs. x3; . . . x1 vs. xN−1), the computer system may perform the following steps. [0021] a. Set y1 equal to the x1 time series and define y2 to be the next time series to compare against (e.g., x2, x3, . . . , or xN−1). [0022] b. Define a finite set of time dilation (T.sub.d) parameters. [0023] For example: T.sub.d={5/10, 6/10, 7/10, 8/10, 9/10, 1, 10/9, 10/8, 10/7, 10/6, 10/5} [0024] Where a T.sub.d range of a factor of two is selected as sufficient to cover the anticipated time span of variation between different excursions. Other values may be used. [0025] c. For each T.sub.d value: [0026] i. Stretch or compress y2 by the T.sub.d value. [0027] For example, for T.sub.d=5/10=1/2, the time series y2 is compressed to be half as short as the original. For T.sub.d=10/5=2, the time series y2 is stretched to be twice as long as the original. [0028] ii. Compute y2′, where the values are interpolated such that the time series y2′ has the same sample time as y1. A linear interpolation method or any other practicable method of interpolation may be used. [0029] iii. Compute the cross correlation between y1 and y2′. [0030] iv. Repeat by using the next T.sub.d value in the set. [0031] d. Find the T.sub.d value that results in the highest cross-correlation between y1 and y2′. The T.sub.d value that results in the highest cross-correlation between y1 and y2′ is the best time dilation adjustment. [0032] e. Pairing from the start of y1 and y2′, and the subsequent samples, compute values at each time sample k: [0033] r1(k)=y1(k)/y2′(k), [0034] b1(k)=median({r1(k−T.sub.w), . . . , r1(k+T.sub.w)}) [0035] n1(k)=r1(k)/b1(k) [0036] where T.sub.w represents a time window large enough to enable the calculation of the patient's baseline glucose levels relative to each time instance k; and where n represents a baseline-normalized ratio between two sensor glucose values. [0037] f. Any time period within the x1 time series with an n1 value below a predetermined threshold, n_low, may be identified as a dropout. The threshold n_low may be equal to a fixed amount, such as 0.95 for example, or in some embodiments, a variable amount based on an initial value (e.g., 0.95) that increases as a function of the latest sensor noise quality. Other values may be used. [0038] g. Repeat the process by replacing y2=x2 with the next time series (e.g., set y2 equal to x3, x4, . . . , xN−1).
[0039] In another embodiment, curve smoothing, dynamic range matching, and time dilation are used to enable comparison of corresponding pre-smoothed time series. The addition of dynamic range matching scales the analyte concentration amplitudes to make comparison easier. For each of the N−1 comparisons (e.g., x1 vs. x2; x1 vs. x3; . . . x1 vs. xN−1), the computer system may perform the following steps. [0040] a. Set y1 equal to the x1 time series and define y2 to be the next time series to compare against (e.g., x2, x3, . . . , or xN−1). [0041] b. Determine the dynamic range of y1 time series by estimating upper (y1u), lower (y1l), and average (y1a) values. [0042] For example: sort all y1 values, and determine the 5.sup.th and 95.sup.th percentile values. Set y1u to the 95.sup.th percentile value in y1, and set y1l to the 5.sup.th percentile value in y1. Set y1a to the 50.sup.th percentile value in y1. Other values may be used. [0043] c. Calculate the dynamic range of y2 time series using the same method. [0044] d. Adjust the dynamic range of y2 time series to match that of y1. [0045] For example, compute y2″:=y1a+[[y2−y2a] [y1u−y1l]/[y2u−y2l]] [0046] e. Define a finite set of time dilation (Ta) parameters. [0047] For example: T.sub.d={5/10, 6/10, 7/10, 8/10, 9/10, 1, 10/9, 10/8, 10/7, 10/6, 10/5} [0048] f. For each T.sub.d value: [0049] i. Stretch or compress y2″ by the T.sub.d value. [0050] For example, for T.sub.d=5/10=1/2, the time series y2″ is compressed to be half as short as its original. For T.sub.d=10/5=2, the time series y2″ is stretched to be twice as long as its original. Other values may be used. [0051] ii. Compute y2′, where the values are interpolated such that the time series y2′ has the same sample time as y1. A linear interpolation method or any other practicable method of interpolation may be used. [0052] iii. Compute the cross correlation between y1 and y2′. [0053] iv. Repeat by using the next Ta value in the set. [0054] g. Find the Ta value that results in the highest cross-correlation between y1 and y2′. The Ta value that results in the highest cross-correlation between y1 and y2′ is the best time dilation adjustment. [0055] h. Pairing from the start of y1 and y2′, and the subsequent samples, compute values at each time sample [0056] k: r1(k)=y1(k)/y2′(k), [0057] b1(k)=median({r1(k−T.sub.w), . . . , r1(k+T.sub.w)}) [0058] n1(k)=r1(k)/b1(k) [0059] i. Any time period within the x1 time series with an n1 value below a predetermined threshold, n_low, may be identified as a dropout. The threshold n_low may be equal to a fixed amount, such as 0.95 for example, or in some embodiments, a variable amount based on an initial value (e.g., 0.95) that increases as a function of the latest sensor noise quality. Other values may be used. [0060] j. Repeat the process by replacing y2=x2 with the next time series (e.g., set y2 equal to x3, x4, . . . , xN−1).
[0061] In some other embodiments, the process is similar to the two embodiments described above until the point in which a dropout is identified. Instead of identifying a dropout segment whenever any one of the comparator time series (x2, x3, . . . , xN−1) results in an n1 value below a predetermined threshold, a dropout segment is identified whenever any one of the comparator time series results in an n1 value below a predetermined threshold n_low and no other n1 at the same time period is higher than n_high where, for example, n_high equals approximately 1.2. Other values may be used.
[0062] The above processes compare a most recent time series against all available corresponding time series to identify periods within the most recent time series that are dropouts.
[0063] Analysis of
[0064]
[0065]
[0066] From the graph 400B in
[0067] Turning now to
[0068] Once one of the time series is selected to be analyzed for dropouts (508), the selected time series may be compared to at least one of the other time series (510). In some embodiments, time dilation and dynamic range matching techniques as described above may be performed on the time series used for comparison to aid in correlating the two time series and to compensate for different lengths of time and different magnitudes of the associated events. The computer system determines whether the selected time series includes a portion that is more than a predefined threshold lower than a corresponding portion of the time series used for comparison (512). The predefined threshold may be selected as described above. If there is a portion of the selected time series that is lower than the comparison time series by more than the threshold amount (e.g., a negative glucose level difference larger than x amount), the computer system displays an indication that the selected time series includes a dropout. In some embodiments, the sensor data that represents the dropout may be removed, set to a zero value, or otherwise marked as invalid data. In some embodiments, the dropout sensor data may be replaced with interpolated data.
[0069] Various other modifications and alterations in the structure and method of operation of the embodiments of the present disclosure will be apparent to those skilled in the art without departing from the scope and spirit of the present disclosure. Although the present disclosure has been described in connection with certain embodiments, it should be understood that the present disclosure as claimed should not be unduly limited to such embodiments. It is intended that the following claims define the scope of the present disclosure and that structures and methods within the scope of these claims and their equivalents be covered thereby.