Determining reliability of ECG data using signal-to-noise ratio

文档序号:1835373 发布日期:2021-11-12 浏览:17次 中文

阅读说明:本技术 使用信噪比确定ecg数据的可靠性 (Determining reliability of ECG data using signal-to-noise ratio ) 是由 普加·拉吉夫·梅塔 于 2020-02-18 设计创作,主要内容包括:公开了用于确定心电图(ECG)数据的可靠性的技术。接收ECG数据,该ECG数据包括与检测到的患者心跳相关的波形数据。确定与波形数据中的R波相关联的峰值振幅。识别波形数据中的第一基线区域和第二基线区域。第一基线区域在R波之前,并且第二基线区域在R之后。基于峰值振幅、第一基线区域以及第二基线区域来确定信噪比(SNR)。基于所确定的SNR来确定与波形数据相关的置信度计量。在与患者相关的医学治疗中使用置信度计量。(Techniques for determining reliability of Electrocardiogram (ECG) data are disclosed. ECG data is received, the ECG data including waveform data associated with a detected heartbeat of a patient. A peak amplitude associated with an R-wave in the waveform data is determined. A first baseline region and a second baseline region in the waveform data are identified. The first baseline region precedes the R-wave and the second baseline region follows R. A signal-to-noise ratio (SNR) is determined based on the peak amplitude, the first baseline region, and the second baseline region. A confidence measure associated with the waveform data is determined based on the determined SNR. The confidence metric is used in a medical treatment associated with a patient.)

1. A computer-implemented method for determining reliability of Electrocardiogram (ECG) data, comprising:

receiving ECG data, the ECG data including waveform data related to detected heartbeats of a patient;

determining a peak amplitude associated with an R-wave in the waveform data, the R-wave being related to the heartbeat;

identifying a first baseline region in the waveform data and a second baseline region in the waveform data, wherein the first baseline region is associated with the heartbeat and precedes the R-wave and the second baseline region is associated with the heartbeat and follows the R-wave;

determining a signal-to-noise ratio (SNR) of the waveform data related to the heartbeat based on the peak amplitude, the first baseline region, and the second baseline region;

determining a confidence measure associated with the waveform data based on the determined SNR; and

using the confidence measure in a medical treatment associated with the patient.

2. The computer-implemented method of claim 1, wherein determining the SNR of the waveform data related to the heartbeat comprises: determining a ratio between the peak amplitude and an average baseline amplitude, the average baseline amplitude being associated with the first baseline region and the second baseline region.

3. The computer-implemented method of claim 2, wherein the average baseline amplitude associated with the first baseline region comprises a first average amplitude in a first portion of the first baseline region, and wherein the average baseline amplitude associated with the second baseline region comprises a second average amplitude in a second portion of the second baseline region.

4. The computer-implemented method of claim 3, wherein the SNR of the waveform data is using the formula SNR 10 log (signal)2/noise2) Wherein signal is related to the peak amplitude, and wherein noise is related to the average baseline amplitude.

5. The computer-implemented method of claim 1, wherein identifying the first baseline region in the waveform data and the second baseline region in the waveform data comprises:

identifying an R-R interval in the waveform data;

receiving a section of the R-R interval identifying the first baseline region and the second baseline region;

determining a first boundary of the first baseline region in the waveform data using the section; and

determining a second boundary of the second baseline region in the waveform data using the section.

6. The computer-implemented method of claim 5, wherein the first baseline region substantially excludes P-waves associated with the heartbeat and the second baseline region substantially excludes T-waves associated with the heartbeat.

7. The computer-implemented method of claim 5, wherein the segment of the R-R interval is preconfigured prior to receiving the ECG data of the patient.

8. The computer-implemented method of claim 1, wherein determining a confidence measure related to the waveform data based on the determined SNR comprises: determining at least one of: a per-heartbeat confidence measure associated with the heartbeat, or a per-sample confidence measure associated with a plurality of heartbeats including the heartbeat.

9. The computer-implemented method of claim 1, wherein the confidence measure associated with the waveform data is associated with a confidence of at least one of: automatic detection or automatic classification of the heartbeat.

10. The computer-implemented method of claim 1, wherein using the confidence metric in the patient-related medical treatment comprises at least one of: (i) providing instructions related to the medical treatment to the patient, (ii) providing instructions related to the medical treatment to a care provider of the patient, (iii) providing notifications related to detected heartbeats to the patient, or (iv) providing notifications related to the detected heartbeats to the care provider.

11. A computer program product for determining reliability of Electrocardiogram (ECG) data, the computer program product comprising:

a computer-readable storage medium having computer-readable program code embodied therein, the computer-readable program code executable by one or more computer processors to perform operations comprising:

receiving ECG data, the ECG data including waveform data related to detected heartbeats of a patient;

determining a peak amplitude associated with an R-wave in the waveform data, the R-wave being related to the heartbeat;

identifying a first baseline region in the waveform data and a second baseline region in the waveform data, wherein the first baseline region is associated with the heartbeat and precedes the R-wave and the second baseline region is associated with the heartbeat and follows the R-wave;

determining a signal-to-noise ratio (SNR) of the waveform data related to the heartbeat based on the peak amplitude, the first baseline region, and the second baseline region;

determining a confidence measure associated with the waveform data based on the determined SNR; and

using the confidence measure in a medical treatment associated with the patient.

12. The computer program product of claim 11, wherein determining the SNR of the waveform data related to the heartbeat comprises: determining a ratio between the peak amplitude and an average baseline amplitude, the average baseline amplitude being associated with the first baseline region and the second baseline region.

13. The computer program product of claim 11, wherein identifying the first baseline region in the waveform data and the second baseline region in the waveform data comprises:

identifying an R-R interval in the waveform data;

receiving a section of the R-R interval identifying the first baseline region and the second baseline region;

determining a first boundary of the first baseline region in the waveform data using the section; and

determining a second boundary of the second baseline region in the waveform data using the section.

14. The computer program product of claim 13, wherein the first baseline region substantially excludes P-waves associated with the heartbeat and the second baseline region substantially excludes T-waves associated with the heartbeat.

15. A system, comprising:

a processor; and

a memory storing a program that, when executed on the processor, performs operations comprising:

receiving ECG data, the ECG data including waveform data related to detected heartbeats of a patient;

determining a peak amplitude associated with an R-wave in the waveform data, the R-wave being related to the heartbeat;

identifying a first baseline region in the waveform data and a second baseline region in the waveform data, wherein the first baseline region is associated with the heartbeat and precedes the R-wave and the second baseline region is associated with the heartbeat and follows the R-wave;

determining a signal-to-noise ratio (SNR) of the waveform data related to the heartbeat based on the peak amplitude, the first baseline region, and the second baseline region;

determining a confidence measure associated with the waveform data based on the determined SNR; and

using the confidence measure in a medical treatment associated with the patient.

16. The system of claim 15, wherein determining the SNR of the waveform data related to the heartbeat comprises: determining a ratio between the peak amplitude and an average baseline amplitude, the average baseline amplitude being associated with the first baseline region and the second baseline region.

17. The system of claim 16, wherein the SNR of the waveform data is using the formula SNR-10 × log (signal)2/noise2) Wherein signal is related to the peak amplitude, and wherein noise is related to the average baseline amplitude.

18. The system of claim 15, wherein identifying the first baseline region in the waveform data and the second baseline region in the waveform data comprises:

identifying an R-R interval in the waveform data;

receiving a section of the R-R interval identifying the first baseline region and the second baseline region;

determining a first boundary of the first baseline region in the waveform data using the section; and

determining a second boundary of the second baseline region in the waveform data using the section.

19. The system of claim 18, wherein the first baseline region substantially excludes P-waves associated with the heartbeat and the second baseline region substantially excludes T-waves associated with the heartbeat.

20. The system of claim 15, wherein using the confidence metric in the medical treatment associated with the patient comprises at least one of: (i) providing instructions related to the medical treatment to the patient, (ii) providing instructions related to the medical treatment to a care provider of the patient, (iii) providing notifications related to detected heartbeats to the patient, or (iv) providing notifications related to the detected heartbeats to the care provider.

Background

Portable monitoring devices for collecting biometric data are becoming increasingly common when diagnosing and treating medical conditions of patients. One example of such a device is Mobile Cardiac Telemetry (MCT), which may be used to record Electrocardiography (ECG) data of a patient. MCTs allow physicians to learn valuable information about the incidence and regularity and irregularity of various cardiac conditions.

However, processing ECG data can be extremely challenging. For example, ECG data may be inaccurate due to problems in collecting the data. This can lead to errors in identifying and classifying heartbeats in the ECG data. Furthermore, this can lead to problems in diagnosing irregular or potentially dangerous cardiac conditions using ECG data, and can lead to difficulties in identifying and treating these conditions.

SUMMARY

One embodiment provides a computer-implemented method for determining reliability of Electrocardiogram (ECG) data. The method includes receiving ECG data including waveform data associated with a detected heartbeat of a patient. The method also includes determining a peak amplitude associated with an R-wave in the waveform data, the R-wave being associated with the heartbeat. The method also includes identifying a first baseline region in the waveform data and a second baseline region in the waveform data. The first baseline region is associated with the heartbeat and precedes the R-wave, and the second baseline region is associated with the heartbeat and follows the R-wave. The method also includes determining a signal-to-noise ratio (SNR) of the waveform data related to the heartbeat based on the peak amplitude, the first baseline region, and the second baseline region. The method also includes determining a confidence measure associated with the waveform data based on the determined SNR. The method also includes using the confidence metric in a medical treatment associated with the patient.

Other embodiments provide a computer program product for determining the reliability of ECG data. The computer program product includes a computer-readable storage medium having computer-readable program code embodied therein, the computer-readable program code executable by one or more computer processors to perform operations. The operations include receiving ECG data including waveform data associated with a detected heartbeat of a patient. The operations also include determining a peak amplitude associated with an R-wave in the waveform data, the R-wave being associated with a heartbeat. The operations also include identifying a first baseline region in the waveform data and a second baseline region in the waveform data. The first baseline region is associated with the heartbeat and precedes the R-wave, and the second baseline region is associated with the heartbeat and follows the R-wave. The operations also include determining an SNR of the waveform data related to the heartbeat based on the peak amplitude, the first baseline region, and the second baseline region. The operations also include determining a confidence measure associated with the waveform data based on the determined SNR. The operations also include using the confidence metric in a medical treatment associated with the patient.

Other embodiments provide a system. The system includes a processor and a memory storing a program that performs operations when executed on the processor. The operations include receiving ECG data including waveform data associated with a detected heartbeat of a patient. The operations also include determining a peak amplitude associated with an R-wave in the waveform data, the R-wave being associated with a heartbeat. The operations also include identifying a first baseline region in the waveform data and a second baseline region in the waveform data. The first baseline region is associated with the heartbeat and precedes the R-wave, and the second baseline region is associated with the heartbeat and follows the R-wave. The operations also include determining an SNR of the waveform data related to the heartbeat based on the peak amplitude, the first baseline region, and the second baseline region. The operations further include determining a confidence measure associated with the waveform data based on the determined SNR. The operations also include using the confidence metric in a medical treatment associated with the patient.

Example embodiments

Electrocardiographic (ECG) data collected using Mobile Cardiac Telemetry (MCT) can be analyzed to detect heartbeats and classify the heartbeats (e.g., determine the type of heartbeat). Typically, the ECG data includes waveform data that is used to identify electrical activity associated with the patient's cardiac activity. The ECG data may be captured by the service provider, annotated for the clinician and aggregated into a patient specific report. The increasing popularity of MCT has led to the need for high performance algorithms to analyze and classify the collected data.

For example, an R-R interval in ECG data may be identified to detect a heartbeat, and ECG data related to the identified heartbeat may be analyzed to classify the heartbeat and identify potentially irregular heartbeats and heart problems. These classifications can then be used to provide alerts to patients and care providers. This may also be used to provide medical treatment to the patient.

However, the collected ECG data may not always be reliable. For example, the ECG signal may include noise, resulting in a low signal-to-noise ratio (SNR). The SNR of the samples of ECG data may be determined in different ways. In one embodiment, the amplitude of the R-wave associated with the detected heartbeat is used, along with the amplitude of the surrounding baseline region, to calculate the SNR of the detected heartbeat in the ECG data. In an embodiment, the SNR may be compared to a threshold to determine a confidence level when detecting and classifying heartbeats.

ECG data with a low SNR may be more difficult to use in diagnostic applications. For example, a physician or other care provider may have difficulty diagnosing heart problems using ECG data with a low SNR. Furthermore, automatic heartbeat detection and classification algorithms may be less accurate when analyzing ECG data with low SNR. Thus, identifying the SNR of the ECG data may allow an automated MCT system to estimate the reliability and availability of the incoming ECG data. The system may then filter out less reliable data (e.g., filter out less reliable data to obtain more reliable data), reduce the confidence in the less reliable data (e.g., reduce the weight on the less reliable data when diagnosing a cardiac abnormality), or take steps to improve the reliability of the data (e.g., provide feedback to the patient or care provider to improve the collection of ECG data).

Patient care environment

FIG. 1 illustrates an example computing environment 100 according to one embodiment described herein. As shown, the computing environment 100 may include a care provider environment 105 and a patient environment 130, each connected to each other via a network 145. The care provider environment 105 and the patient environment 130 allow the care provider 101 (e.g., a technician, nurse, doctor, etc.) to monitor biometric data generated by the patient 103.

The care provider environment 105 includes a workflow server 110, a computing device 120, a monitoring system 117, and a data repository 118. Each of the workflow server 110, the computing device 120, and the monitoring system 117 may be a physical computing system or a virtual computer instance (e.g., executing in a cloud computing platform). The care provider 101 may use the computing device 120 to access a User Interface (UI) hosted by the monitoring system 117 (e.g., via a browser application 122, a local application on the device 120, etc.).

It should be noted that although shown as a single entity, the data store 118 may represent multiple independent data stores (e.g., a relational database). Furthermore, these data stores may span multiple compute nodes. To this end, the separate data stores may be used as a single data store (e.g., through data replication techniques and through the use of load balancers). Thus, data store 118 represents any kind of data store on any number of computing systems consistent with the functionality described herein.

Further, although not shown, the data repository 118 may store data and/or service requests from various other entities (e.g., third party applications, partners and alliances, electronic medical recording systems, external monitoring devices and products, analysis engines, data integration applications, etc.). More specifically, it is contemplated that the data repository 118 and, more specifically, other elements within the care provider environment 105 can interact with any number of different data originators and recipients consistent with the functionality described herein. Thus, the computing environment 100 is provided for illustrative purposes only and is not intended to be limiting.

The workflow server 110 includes applications and data that are executed to identify and process health events corresponding to the patient 103. As shown, the workflow server 110 includes a communication module 113, processing nodes 114, and queues 115. In one embodiment, processing node 114 is software code or an application that performs predetermined tasks or actions on received data (e.g., health events). The workflow server 110 evaluates data received from the patient environment 130 using a set of interconnected processing nodes 114 and queues 115 that form the workflow. When biometric data or health events are received from the patient environment 130, the workflow may classify (or reclassify) the data to identify the type of health event, e.g., present or notify, prohibit, classify, aggregate, calculate, prioritize/categorize, etc., to the patient/care provider. For example, different types of data received from the patient environment 130 may trigger different types of health events, e.g., an irregular heartbeat may trigger a cardiac event, while a signal indicating that the electrode has detached triggers a maintenance event. In one embodiment, at least one sensor device 140 within the patient environment 130 or a monitoring application 136 installed as part of the mobile device 135 within the patient environment 130 may have performed an initial classification of the data or health event. However, the workflow server 110 may evaluate the biometric data (or maintenance data) to confirm that the initial classification is correct.

Each type of health event may take a different path through the workflow. That is, different health events may use different paths to traverse processing nodes 114 and queues 115. For example, cardiac events may be evaluated using a processing node 114 in the server 110 that is different from maintenance events. Further, the path through the workflow for the same health event may vary based on various factors, such as the severity of the health event, the age of the patient 103, other symptoms exhibited by the patient 103, medications taken by the patient 103, and so forth. For example, a high priority cardiac event may skip one or more of the processing nodes 114 or queues 115 and be immediately displayed to the care provider 101 using the monitoring system 117.

The communication module 113 allows the workflow server 110 to receive data from the patient environment 130 and send data to the care provider 101. The communication module 113 may receive data from at least one sensor device 140 identifying health events and corresponding paths through the interconnected processing nodes 114 and queues 115. The communication module 113 assists the care provider 101 in completing the workflow by using the monitoring system 117 and the computing device 120. Further, in addition to receiving data from the patient environment 130, the communication module 113 may enable the workflow server 110 to send a request or instruction to the patient environment 130, for example, asking whether the patient 103 has any symptoms or instructing the patient 103 to reattach a disconnect electrode (not shown) of the at least one sensor device 140.

In one embodiment, the path of the health event for traversing the workflow server 110 may include processing nodes 114 that process the health event without user intervention, and processing nodes 114 that require input from the care provider 101. For example, one of processing nodes 114 may filter or filter health events to determine which queue to place the event on, compare the event to one or more rules to determine an action to perform, or store the event. Alternatively, other ones of the processing nodes 114 may require the care provider 101 to perform an action or provide an instruction. For example, the monitoring system 117 may generate a User Interface (UI) of the health event that is then displayed by the browser application 122 to the care provider 101. Once the care provider 101 performs the action (e.g., confirms the classification of the event or agrees to the action suggested by the workflow server 110), the remaining operations of the workflow are performed, e.g., sending a notification to the patient 103, logging the event into the patient's 103 history, routing the event to a different care provider 101, reclassifying the health event (in the event that the care provider 101 indicates that the initial classification is incorrect), or prioritizing or categorizing the health event.

With continued reference to fig. 1, patient environment 130 includes a mobile device 135 and at least one sensor device 140. The mobile device 135 includes a monitoring application 136 that allows communication between at least one sensor device 140 and the care provider environment 105 via a network 145. The monitoring application 136 may configure at least one sensor device 140 (e.g., IoT device) to monitor biometric data of one or more patients 103 as specified by the care plan. For example, the monitoring application 136 may configure logic on a heart rate monitoring device worn by the patient to monitor the patient's heart rate. The monitoring application 136 may then send the heart rate data to the workflow server 110, which workflow server 110 determines whether a health event is triggered and, if so, executes a workflow to process the event, as described above. In another embodiment, upon detecting that the threshold condition has been met, the heart rate monitoring device may generate and send a health event to the mobile device 135, which in turn the mobile device 135 sends the health event to the workflow server 110 for processing. However, in other embodiments, some of the tasks performed by the workflow server 110 may be performed by the mobile device 135. That is, the workflow may include tasks performed by the mobile device 135 or the at least one sensor device 140, as well as tasks performed by the workflow server 110.

In one embodiment, the monitoring application 136 receives environmental data from at least one sensor device 140. Typically, the environmental data informs the monitoring application 136 of environmental conditions in an area proximate to the at least one sensor device 140 and the user (e.g., a room in which the user is located). For example, the at least one sensor device 140 may detect air quality or pollen count for a patient 103 with a respiratory illness. In another example, the at least one sensor device 140 may track the user's movements or actions in the environment, for example, the number of times the patient 103 goes to a toilet at night, or whether the patient 103 lapses over at night. This environmental data may then be used by the monitoring application 136 alone or in conjunction with biometric data to trigger health events that are processed by the workflow server 110.

In one embodiment, the monitoring application 136 may use an output device (e.g., a display or audio system) on the mobile device 135 to provide information to the patient 103. For example, when executing a workflow, one of the processing nodes 114 may ask whether the patient 103 is experiencing any symptoms. To obtain feedback from the patient 103, the monitoring application 136 may display a User Interface (UI) on the mobile device 135 that allows the patient 103 to enumerate symptoms. In addition, the monitoring application 136 may also display basic information related to the care plan or the at least one sensor device 140, such as the heart rate or weight of the patient, the status of the at least one sensor device 140, and so forth.

In one embodiment, the at least one sensor device 140 interacts with the monitoring application 136 and assists the patient 103 in reporting patient vital signs and other information to the care provider environment 105. As shown, the at least one sensor device 140 may include a body sensor 141, a weight scale 142, and a blood pressure cuff (cuff) 143. Each of the at least one sensor device 140 can capture a different vital sign of the patient 103. For example, when the body sensor 141 is applied to the body of the patient 103, the body sensor 141 captures biometric data (e.g., heart rate, ECG data, etc.) in real-time. Further, each of the at least one sensor devices 140 may be configured to electronically transmit the weight-related metric to the monitoring application 136 on the mobile device 135. The monitoring application 136 then sends the captured metrics to the workflow server 110, which workflow server 110 can use to trigger health events that are processed using the processing nodes 114 and queues 115.

In one embodiment, the at least one sensor device 140 performs an initial classification of the health event upon detecting that the observation threshold has been reached. In a particular embodiment, the mobile device 135 is configured to perform an initial classification of the health event. For example, upon detecting that ECG data collected from the patient 103 indicates unstable cardiac behavior, the body sensor 141 may classify the health event as a cardiac event. This initial classification of health events, along with associated ECG data (e.g., ECG data including predetermined lengths of time before and after the event) can be sent to the mobile device 135 (e.g., byA communications link) and the monitoring application 136 then forwards the ECG data and the health event data to the workflow server 110 over a network 145 (e.g., the internet). Alternatively, instead of classifying the data, the monitoring application 136 may forward the raw sensor data to the workflow server 110, which workflow server 110 uses one of the processing nodes 114 to identify and classify subsequently processed health events in the workflow server 110.

FIG. 2 illustrates a parallel processing computing environment 200 according to one embodiment described herein. As shown, the patient environment 130 sends biometric data and/or health events to the care provider environment 105 including a load balancer 205. The workflow servers 110A-110C each include a respective one of the event engines 215A-215C. Although not shown, each of the event engines 215A-215C includes a plurality of interconnected processing nodes and queues that form a workflow for processing health events, as discussed above. In one embodiment, the event engines 215A-215C each include the same processing nodes and queues arranged in the same manner such that any of the event engines 215A-215C can process different health events generated by at least one sensor device 140, i.e., any of the event engines 215A-215C can process cardiac events, respiratory events, maintenance events, and so forth. Based on the current workload, the load balancer 205 sends the received data or health event to one of the workflow servers 110A-110C for processing. For example, the load balancer 205 may distribute the received health events in a round-robin fashion or by monitoring Central Processing Unit (CPU) or memory usage of each respective workflow server 110A-110C.

Alternatively, the event engines 215A-215C may have different processing nodes and queues (or different arrangements of nodes and queues) such that the event engines 215A-215C are configured to process different event types. For example, the event engines 215A, 215B may have workflows that process cardiac events (and have the same processing nodes and queues), while workflows in the event engine 215C process respiratory events. The load balancer 205 may use an initial classification provided by the patient environment 130 or determine which of the event engines 215A-215C should receive the health event based on which of the at least one sensor devices 140 measured the biometric data.

Regardless of whether the event engines 215A-215C have the same arrangement or different arrangements, the computing resources may be easily adjusted in response to changing workloads. For example, if additional sensor devices (e.g., sensor device 140) are added to the patient environment 130, the system administrator may add additional ones of the workflow servers 110A-110C to handle the increased number of received health events. And vice versa. If the number of health events decreases, the administrator may remove one or more of the workflow servers 110A-110C. For example, if both event engines 215A, 215B are processing cardiac events, but the number of cardiac events has decreased, the system administrator may remove one of the workflow servers 110A, 110B. As another example, the load balancer component may monitor usage of computing resources by the workflow servers 110A-110C and may scale up or down the number of servers based on the usage of the computing resources.

With continued reference to FIG. 2, the monitoring system 117 includes a user interface manager 220(UI manager) and a user interface 225 (UI). As discussed above, the processing node 114 may require input from the care provider 101 (FIG. 1) in order to route health events through the event engines 215A-215C. To do so, the event engines 215A-215C send requests to the UI manager 220, which the UI manager 220 generates a UI 225 that can be displayed to the care provider 101. For example, the UI manager 220 may generate a UI 225 that includes an Electrocardiogram (ECG) graph corresponding to a cardiac event. Further, the UI 225 may include I/O features (e.g., buttons or drop-down menus) that may be used by the care provider to provide input or instructions to one of the event engines 215A-215C. For example, the care provider may instruct one of the event engines 215A-215C to store the cardiac event in the data store 118, send the cardiac event to one of the queues 115 (fig. 1) that is monitored (e.g., to obtain a second opinion) by another care provider, or forward the cardiac event to the care provider 101 of the patient 103. Thus, the monitoring system 117 allows the workflow server 110 to output information to the care provider 101 and to receive instructions from the care provider 101.

Event engines 215A-215C may store data in data store 118 and retrieve data from data store 118. For example, the event engine 215 may maintain a patient history by storing all received health events (or selected health events) derived based on monitoring vital signs of the patient in the repository 118. In addition, the event engines 215A-215C may use data stored in the data store 118 to process health events. For example, if one of the event engines 215A-215C receives biometric data indicative of the current weight of the patient 103, one of the event engines 215A-215C may retrieve past weight measurements of the patient 103 from the data store 118 and derive a trend graph detailing how the weight of the patient 103 has changed over time. For example, the current weight of the patient may not be sufficient to trigger a health event, but a change in the patient's weight derived over a period of time may trigger a health event. These derived trends may be used to generate derived observations (or other event (s)) as discussed below.

In one embodiment, the event engines 215A-215C prioritize the health events, which in turn determines how quickly the health events are processed by the workflow in the event engines 215A-215C, or which processing nodes and queues to use to process the health events. As discussed above, the health events may be prioritized based on the importance of the health event, the type of health event, the characteristics of the patient 103 whose biometric data generated the health event, and so on. Further, the health events may be prioritized based on additional criteria, such as institutional policy, care plan level policy, patient level policy, another policy, or some combination of the above.

FIG. 3 illustrates an event engine 215 including a workflow for processing health events according to one embodiment described herein. As described above, the health event or biometric data received from the sensors is forwarded from the load balancer 205 to the event engine 215. In particular, the data service node 114A in the workflow receives information forwarded from the load balancer 205. If the load balancer 205 forwards the health event, the data service node 114A classifies the health event based on type (e.g., cardiac, respiratory, or maintenance event). In some cases, the health event is classified prior to receipt by the data service node 114A. However, the data service node 114A may use more computationally intensive techniques to review data associated with the health event, e.g., ECG data, respiration rate, blood pressure, etc., in order to determine whether the initial classification is correct. In another example, data service node 114A may provide a more detailed classification of the health event than the initial classification. For example, the sensor device may have generated a health event because it detected an irregular heartbeat. However, data service node 114A may evaluate the heartbeat and classify the health event as a specific cardiac health event, such as a ventricular triple rhythm event or an atrioventricular block event. The data service node 114A may maintain a classification of the health event for use by downstream nodes and queues to process the health event.

Instead of receiving health events, data service node 114A may receive raw data or observations from the patient environment. That is, the raw data or observations may not have been evaluated by the sensor device worn by the patient to determine whether the data triggered a health event. For example, observed value data from sensors includes blood pressure measurements, weight measurements, ECG data, and the like. As discussed below, the event engine 215 evaluates these observations and may trigger health events that are subsequently processed in the engine 215.

Data service node 114A forwards the observations to observation queue 115A and the health events to event queue 115B. The filter node 114B pulls the observations and health events stored in the queues 115A and 115B. The node 114B serves as a gatekeeper (gatekeeper) for determining where to route health events and observations for further processing. When evaluating the observations, filter node 114B may determine whether to ignore (i.e., discard) the observations or forward the observations to derived observations queue 115E. For example, filter service node 114B may ignore observations, such as a low battery signal, a start signal indicating that the sensor device has started collecting biometric data, or a stop signal indicating that the sensor device has stopped. Instead, node 114B may forward the observation (e.g., weight measurement, blood pressure measurement, ECG data, etc.) to the derived observation queue 115E. In this manner, filter service node 114B filters incoming observations to determine whether they should be further processed, e.g., to see whether a health event is triggered.

The observations forwarded by filter service node 114B are then processed by derived observation service node 114C. The node 114C uses the received observations in combination with previously received observations to create new observations or generate new health events. In other words, derived observations service 114C may aggregate previously received observations with currently received observations to compute statistics, trends, trigger health events, and so forth. Although not shown, node 114C may be communicatively coupled to a data store that stores past observations. For example, if the currently received observation is a weight measurement, derived observation service node 114C may evaluate the measurement against previous weight measurements to determine the change in weight of the patient over a predetermined period of time. This weight change may trigger a health event, which is then forwarded to data service node 114A for further processing. Even if a health event is not triggered, derived observation service node 114C may store the derived observations (e.g., weight change, mean blood pressure, heart rate trend, etc.) in a data store so that the data is available when other observations of the patient are received by event engine 215 (or other event engines 215).

In one embodiment, health events may be processed by derived observation service node 114C. For example, the sensor device may trigger a health event after determining that the patient's daily average blood pressure exceeds a threshold. Filter service node 114B may forward the health event to derived observation service node 114C, which may then use the patient's past blood pressure measurements to derive the patient's weekly or monthly average blood pressure, or a blood pressure trend graph. Based on the derived observations, node 114C may generate a new health event or decide to abort a health event if the derived observations do not satisfy the respective conditions.

In addition, the filter service node 114B also includes logic for determining whether a received health event should be discarded, forwarded to the event action queue 115D, or forwarded to the event rule evaluation queue 115C. For example, a system administrator may determine that some health events are not relevant to certain patients. Logic in filter service node 114B may identify and discard these health events to prevent them from propagating through the remainder of event engine 215. For example, a patient may have cardiac murmurs that continuously cause the sensor device to trigger a health event. The care provider may instruct the filter service node 114B to screen out (or withhold) these health events from the patient, rather than continuously processing these health events.

If the received health event has a corresponding one or more actions, filter service node 114B forwards the health event to event action queue 115D. However, if the action of the health event has not been identified, then the filter service node 114B forwards the health event to the event rule evaluation queue 115C. The rules engine service node 114D pulls the health event from the queue 115C and evaluates the health event using one or more rules. Example rules include determining whether daily weight change and mean blood pressure exceed respective thresholds. Based on this evaluation, node 114D may determine which action event engine 215 should perform, e.g., disable/ignore the event, automatically process the event, display the event to a care provider, or delay processing the event. Once the action is determined, rules engine service node 114D generates and forwards a new health event including the corresponding action to data service node 114A. Since the corresponding action is known, once the new health event reaches the filter service node 114B, the filter service node 114B forwards the event to the event action queue 115D instead of the event rule evaluation queue 115D.

The rules engine service node 114D may delay processing the health event by forwarding the event to the delay action queue 115F. Node 114D may do so when there is insufficient available computing power to perform the rule evaluation or in the event the rule evaluation has not yet been completed. That is, if all rules have not been evaluated yet and further evaluation is required before an event action is triggered, the event may be placed in queue 115F. For example, a rule may trigger a cardiac event, but the system must first look to determine whether to disable the event for the patient before taking the corresponding action. As shown, the health events stored in the delay action queue 115F are then retrieved by the filter service node 114B and may be reintroduced into the event rule evaluation queue 115C at a later time (that is, when all rules have been evaluated).

Once the corresponding action for the health event is known and the health event is stored in event action queue 115D, action engine service node 114E routes the health event to the appropriate action service, i.e., automated handler service 320, notification service 325, or monitoring service 330. The automated disposer service 320 can perform actions that do not require supervision or input by a care provider, e.g., store health events in a data store. As another example, the automated handler service 320 may assign a priority or importance to the health event before reintroducing the event into the workflow with a new priority. The automated handler service 320 may also generate new health events when, for example, the health event shows a cardiac event but the data quality is low. In response, service 320 may introduce a maintenance event for viewing the sensor connections/electrodes.

The event engine 215 uses the notification service 325 to send information to patients, caregivers, care providers, or devices related to health events. Notification service 325 may include different communication channels or technologies for communicating with the patient, such as email, chat, SMS messages, and so forth. Although fig. 3 illustrates only one notification queue 115H and notification engine service node 114G handling requests, the event engine 215 may have different queues and notification nodes for different communication technologies. For example, if a maintenance event is triggered when an electrode is unplugged from a sensor device, notification service 325 may send an email to the patient's mobile device to indicate that the patient is plugged into the electrode. Alternatively, if a respiratory event is triggered due to an elevated respiratory rate, the notification service may send an SMS message to the patient asking if she is currently performing physical activity.

The monitoring service 330 communicatively couples the event engine 215 to the monitoring system 117. When input from a care provider regarding a health event is desired, the monitoring service 330 forwards the health event to the monitoring queue 115G. The UI manager 220 in the monitoring system 117 includes a workflow manager node 305, the workflow manager node 305 pulling health events from the monitoring queue 115G and assigning them to the task queue 310A or 310B. The UI manager 220 also includes task manager nodes 315A and 315B, and the task manager nodes 315A and 315B generate UIs for health events. These UIs are then displayed to the care provider via computing devices 120A and 120B. Further, the task manager node 315 may place biometric or maintenance data associated with the health event into the UI. For example, a UI for cardiac events may display ECG and baseline graphs, while a UI for respiratory events displays respiration rate and oxygen content in blood. In this way, the UI manager 220 can generate customized UIs for different health events.

The computing device 120 may send information to the data service node 114A of the event engine 215, which information may be used to generate new health events or update current health events. For example, the care provider may instruct the event engine 215 to take some action, such as forwarding the health event to a different care provider to obtain a second opinion, reclassifying the health event, disabling or ignoring the health event, notifying the health care provider, and so forth. Based on the care provider's input, the event engine 215 again routes the health events through the nodes 114 and queues 115.

Event engine 215 also includes task evaluation service node 114F. Unlike other nodes and queues in the event engine 215 that process or store the observed data or health events received from the patient environment, the task evaluation service node 114F determines whether to trigger a health event based on a care agreement or care plan. In one embodiment, the node 114F triggers a health event when the patient is not following a care protocol or plan. For example, a care protocol may require that the patient wear the sensor device for a certain amount of time during the day or measure weight daily. By monitoring the observations and health events received by the event engine 215, the task evaluation service node 114F determines whether the patient is in compliance with the care protocol. If not, the task evaluation service node 114F triggers the health event with a corresponding action to cause the event engine 215 to perform such actions as sending a notification to the patient using the notification service 325 or notifying the care provider using the monitoring service 330.

Heartbeat detection architecture

4A-4C illustrate ECG data according to one embodiment described herein. In an embodiment, fig. 4A illustrates ECG data 400 having a relatively high SNR. In an embodiment, the "signal" in the SNR may be related to the amplitude of the R-wave in the heartbeat detected in the ECG data 400. The "noise" in the SNR, which in an ideal system should be close to zero, is related to the waveform values before and after the detected heartbeat. In an embodiment, as discussed further below with respect to fig. 7, the noise excludes P-waves and T-waves (e.g., occurring before and after the R-wave of the heartbeat) in the ECG data to avoid inaccurate SNR.

As discussed further below with respect to fig. 5 and 6, the SNR of the ECG data illustrated in fig. 4A may be calculated by comparing the peak amplitude of the R-wave of the detected heartbeat with the amplitude of the surrounding baseline region. For example, the amplitude at point 404 may represent the amplitude of the R-wave of the detected heartbeat. The amplitude at point 404 may be compared to the average amplitude in region 402 occurring before the detected heartbeat and region 406 occurring after the detected heartbeat. In an embodiment, because the ECG data 400 has a relatively high SNR, the ECG data is likely to be more reliable, and an automated algorithm (e.g., a heartbeat detection and classification algorithm) that analyzes the ECG data is likely to be more reliable.

In an embodiment, fig. 4B illustrates ECG data 420, which ECG data 420 has a lower SNR than the ECG data 400 illustrated in fig. 4A. For example, the amplitude at point 424 may represent the amplitude of the R-wave of the detected heartbeat. The amplitude at point 424 may be compared to the average amplitude in region 422 occurring before the detected heartbeat and region 426 occurring after the detected heartbeat. As shown in fig. 4B, peak 424 in ECG data 420 has a relatively lower amplitude than peak 404 illustrated in fig. 4A. In addition, regions 422 and 426 include more noise. As discussed further with respect to fig. 5 and 6, this results in lower SNR and lower confidence in the ECG data 420.

In an embodiment, fig. 4C illustrates ECG data 440, which ECG data 440 has a lower SNR than the ECG data 400 illustrated in fig. 4A and the ECG data 420 illustrated in fig. 4B. For example, the amplitude at point 444 may represent the amplitude of the R-wave of the detected heartbeat. The amplitude at point 444 may be compared to the average amplitude in region 442 occurring before the detected heartbeat and region 446 occurring after the detected heartbeat. As shown in fig. 4C, peak 444 in ECG data 440 has a relatively lower amplitude than peak 404 illustrated in fig. 4A and peak 424 illustrated in fig. 4B. In addition, regions 442 and 446 include more noise. As discussed further with respect to fig. 5 and 6, this results in lower SNR and lower confidence in the ECG data 440. In an embodiment, the ECG data 440 illustrated in fig. 4C has a sufficiently low SNR, which is hardly useful in detecting and classifying heartbeats.

Fig. 5 is a flow chart illustrating determining and using SNR of ECG data according to one embodiment described herein. FIG. 6 illustrates determining SNR of ECG data according to one embodiment described herein. For ease of illustration, these figures are discussed together.

As discussed below, in one embodiment, the techniques illustrated in fig. 5-8 are performed using a monitoring application (e.g., monitoring application 136 illustrated in fig. 1) on a patient mobile device (e.g., mobile device 135 illustrated in fig. 1). Alternatively, the techniques illustrated in fig. 5-8 may be partially or completely performed on a sensor device (e.g., the body sensor 141 illustrated in fig. 1). In an embodiment, the techniques illustrated in fig. 5-8 are well suited for mobile devices and sensor devices because they require relatively low processing power and use relatively low battery power. This allows either the mobile device or the sensor device (or both) to determine the SNR and confidence measures of the ECG data, even if the device itself has relatively little processing power, and does not drain the battery life of these mobile devices. Furthermore, this helps these devices to quickly classify and diagnose before sending the data to the care provider environment or server. As another alternative, the techniques illustrated in fig. 5-8 may be partially or completely performed in a centralized care provider environment (e.g., care provider environment 105 illustrated in fig. 1) or on another centralized server.

At block 502, a monitoring application (e.g., monitoring application 136 illustrated in fig. 1) detects heartbeats in the ECG data 600. In embodiments, this may be done using any suitable automatic heartbeat detection algorithm or technique. In an embodiment, the ECG data 600 represents segments of ECG data for a patient over a period of time.

At block 504, the monitoring application filters the ECG data 600. For example, the monitoring application may apply a high-pass filter to the ECG data 600. In an embodiment, this removes baseline drift, which may lead to a false impression of higher amplitudes of peaks and baseline data.

At block 506, the monitoring application identifies peaks of R-waves of heartbeats detected in the ECG data 600. In an embodiment, this is illustrated as point 614 shown in FIG. 6. In an embodiment, the amplitude of this point 614 is the signal used to calculate the SNR, as discussed further below with respect to block 512.

At block 508, the monitoring application determines the boundaries of the baseline comparison region. This is discussed further below with respect to fig. 7. In an embodiment, the selected baseline comparison region is a region 612 occurring before the detected heartbeat, and a region 616 occurring after the selected heartbeat.

At block 510, the monitoring application calculates a noise value. In an embodiment, the noise value is an average amplitude of the signal in at least part of the baseline comparison region. For example, the noise illustrated in fig. 6 is the average amplitude of the signal in regions 612 and 616. In an embodiment, the monitoring application calculates an average of the absolute values of the amplitudes of the signals in the appropriate region. In some cases, noise can cause both upward and downward oscillations. Averaging the raw amplitude values may result in an artificially low average value, thereby masking noise. The underlying noise is reflected using the average of the absolute values of the amplitudes.

At block 512, the monitoring application determines the SNR. In an embodiment, the SNR is calculated using the following formula: SNR is 10 log (signal)2/noise2). For example, as discussed above, signal is the amplitude at point 614 (e.g., the peak of the R-wave of the detected heartbeat), and noise is the average amplitude of the ECG signal in the portions of regions 612 and 616. However, this formula is only one example of a method for calculating the SNR of the ECG data 600. Any suitable formula or technique may be used.

At block 514, the monitoring application determines a confidence measure for the ECG data 600. In an embodiment, the monitoring application uses the SNR calculated at block 512 to determine a confidence measure. This is discussed further below with respect to fig. 8.

Fig. 7 is a flow diagram illustrating determining boundaries for baseline comparisons when determining SNR of ECG data according to one embodiment described herein. In an embodiment, fig. 7 corresponds to block 508 illustrated in fig. 5. Typically, ECG data represents a recording of electrical activity of the heart over a period of time. The normal sinus rhythm in the heart includes a series of waves: p-waves, QRS complexes (e.g., Q-waves, R-waves, and S-waves), and T-waves. These waves may represent the contraction of the heart during the heartbeat. In an embodiment, the QRS complex is used to detect heartbeats. Alternatively, another portion of the ECG data may be used instead of or in addition to the QRS complex.

At block 702, the monitoring application identifies an R-R interval between the detected heartbeat and the next heartbeat in the sequence. For example, as shown in fig. 6, point 614 marks the peak of the R-wave of the detected heartbeat, while point 624 marks the peak of the R-wave of the next heartbeat in the sequence. At block 702, the interval between application identification points 614 and 624 is monitored.

At block 704, the monitoring application determines a section of the R-R interval for the baseline region. In an embodiment, as discussed above, the baseline region represents noise in the SNR of the detected heartbeat. In an embodiment, it is desirable to substantially exclude the P-waves and T-waves of the detected heartbeat from these regions. In a typical sinus rhythm, the P wave occurs before the QRS complex. The P-wave represents the depolarization of the atria that causes contraction of the atria. The T wave appears after the QRS complex. The T wave represents the repolarization of the ventricles. For example, as shown in fig. 6, the P wave 613 precedes the QRS complex, whose peak is labeled 614. Then, a T wave 615 follows the QRS complex. The inclusion of P-waves 613 or T-waves 615 in baseline regions 612 and 616 may reduce the accuracy of SNR calculations. Thus, baseline regions 612 and 616 substantially exclude P-waves and T-waves.

In an embodiment, at block 704, the monitoring application identifies a segment of the R-R interval for the baseline region to exclude P-waves and T-waves. For example, the monitoring application may identify a region between the T-wave of one heartbeat and the P-wave of the next heartbeat as a baseline region. As shown in fig. 6, the ECG data 600 represents three heartbeats. The first heartbeat includes a P-wave 603, an R-wave peak 604, and a T-wave 605. The next heartbeat includes a P wave 613, an R wave peak 614, and a T wave 615. The last heartbeat includes a P wave 623, an R wave peak 624, and a T wave 625. The monitoring application selects a baseline region 612 between the T-wave 605 of the first heartbeat and the P-wave 613 of the middle heartbeat. The monitoring application selects a baseline region 616 between the T-wave 615 of the middle heartbeat and the P-wave 623 of the last heartbeat.

In an embodiment, at block 704, the monitoring application excludes P-waves and T-waves by assigning segments of the R-R interval to the waves and excluding the segments. In an embodiment, the sections are determined empirically and preconfigured. For example, it can be empirically determined that T waves occupy 50% of the R-R interval in normal sinus rhythm, while P waves occupy 35% of the R-R interval. These segments of the R-R interval may then be excluded from the baseline region for SNR calculation.

Alternatively, the segments of the R-R interval used to determine the baseline region may be dynamically determined. For example, a monitoring application may analyze patient-specific ECG data to determine P-wave and T-wave durations for the patient. This may be particularly applicable if: the monitoring application is implemented in a central server (e.g., the care provider environment 105 illustrated in fig. 1) that may have access to more data for a particular patient (or a particular category of patients) and may have greater processing power than the mobile device or the sensor device.

At block 706, the monitoring application determines the boundary of the leading baseline region. For example, as shown in fig. 6, at block 706, the monitoring application determines the boundary of baseline region 612 (prior to R-wave peak 614). As discussed with respect to block 704, the monitoring application determines a zone in the R-R interval (e.g., between 604 and 614 in fig. 6) that is likely to be occupied by the T-wave 605 and the P-wave 603. This section is used to identify the boundary of baseline region 612; the portion of the ECG data forming the T wave 605 is excluded, as is the portion of the ECG data forming the P wave 613. The area between these waves forms the boundary of the baseline region 612.

At block 708, the monitoring application determines the boundaries of the post-baseline region. For example, as shown in fig. 6, at block 708, the monitoring application determines the boundary of the baseline region 616 (after the R-wave peak 614). As discussed with respect to block 704, the monitoring application determines a segment of the R-R interval (e.g., between 614 and 624 in fig. 6) that is likely to be occupied by the T-wave 615 and the P-wave 623. This section is used to identify the boundary of the baseline region 616; the portion of the ECG data that forms the T-wave 615 is excluded, as is the portion of the ECG data that forms the P-wave 623. The area therebetween forms the boundary of the baseline area 616.

In an embodiment, only a portion of each baseline region 612 and 616 is used to calculate the noise value. For example, in one embodiment, baseline region 612 is applicable to both SNR calculations for heartbeats having an R-wave peak 614 and a previous heartbeat having an R-wave peak 604 (e.g., baseline region 612 is a postbaseline for heartbeats 604 and a postbaseline for heartbeats 614). Thus, a portion of region 612 is used for SNR calculations associated with R-wave peak 614 and a portion is used for SNR calculations associated with R-wave peak 604. In an embodiment, baseline region 612 is bisected, with half of the region being averaged and used to determine the SNR calculated noise associated with R-wave peak 614, and the other half being averaged and used to determine the SNR calculated noise associated with R-wave peak 604.

Fig. 8 is a flow diagram illustrating determining a confidence measure using SNR of ECG data according to one embodiment described herein. In an embodiment, FIG. 8 relates to block 514 shown in FIG. 5. At block 802, the monitoring application identifies sample intervals of ECG data. For example, the monitoring application may select a 10 second segment of ECG data. Alternatively, shorter or longer samples may be used.

At block 804, the monitoring application sets a confidence threshold for the sample. In an embodiment, the monitoring application may use two thresholds; a per-heartbeat threshold and a per-sample threshold. These thresholds may be related to SNR values used to determine confidence in the ECG data. For example, the per-heartbeat threshold may include an SNR value to determine a confidence level for ECG data for a particular heartbeat. The per-heartbeat threshold may include a single value (e.g., a minimum threshold) or multiple values (e.g., a minimum, average, and high confidence threshold).

As another example, the per-sample threshold may include an SNR value to determine a confidence level for a given sample of ECG data. In this example, the per-sample threshold may act similar to the per-beat threshold for multiple beats in the ECG sample (e.g., by averaging SNRs for the multiple beats in the sample, or by considering a minimum or maximum SNR for the multiple beats in the sample). The per-heartbeat and per-sample thresholds discussed above are merely examples, and any suitable threshold may be used. Further, although fig. 8 illustrates per-heartbeat and per-sample thresholds, only one of these thresholds (or an alternative threshold) is used in embodiments.

At block 806, the monitoring application determines a per-beat confidence level for a given beat in the ECG data samples. For example, the per-heartbeat thresholds may include a minimum threshold, an average confidence threshold, and a high confidence threshold. If the SNR for a particular heartbeat is below a minimum threshold, the monitoring application assigns a minimal or zero confidence to the ECG data for that heartbeat. Any detection and classification associated with the heartbeat may be evicted or excluded from any diagnostic application.

If the SNR of a heartbeat is above the minimum value but below the average threshold, the monitoring application may assign a low confidence value to the ECG data for that heartbeat. This may be considered in a diagnostic application (e.g., an automated diagnostic application) or when providing data to the patient and care provider (e.g., providing a confidence level to the care provider). If the SNR of a heartbeat is above the average threshold but below the high threshold, the monitoring application may assign an average confidence value to the ECG data for that heartbeat. And if the SNR of a heartbeat is above a high threshold, the monitoring application may assign a high confidence value to the ECG data for that heartbeat. These may be considered again in the diagnostic application or when providing data to the patient and care provider. These thresholds are merely examples, and any number of suitable thresholds may be used.

Further, the monitoring application may consider additional information in determining the per-heartbeat confidence level. For example, the monitoring application may consider the patient's heart rate, classification of heartbeats, and other factors. In an embodiment, the confidence level of the ECG data for a heartbeat may depend on both SNR and other factors (including the type of heartbeat detected).

At block 808, the monitoring application determines a per-sample confidence for a given ECG data sample. In one embodiment, the monitoring application may determine a per-sample confidence similar to the per-heartbeat confidence discussed above for block 806. For example, the monitoring application may average the SNRs of multiple heartbeats and compare them to thresholds (e.g., minimum, mean confidence, and high confidence thresholds, as discussed above) for the ECG samples. As another example, the monitoring application may consider a minimum SNR, or a maximum SNR, for a plurality of heartbeats in a sample.

Alternatively, the monitoring application may use per-beat confidence for multiple beats in the sample, as opposed to SNR. For example, the monitoring application may find the lowest confidence level for any heartbeat within a sample and assign that lowest per-heartbeat level as the confidence for the entire sample. As another example, the monitoring application may average the per-heartbeat confidence levels, or may assign the highest confidence level to the entire sample.

Further, the monitoring application may consider additional information in determining the per-sample confidence. For example, the monitoring application may consider the patient's heart rate, classification of heartbeats, and other factors. In an embodiment, the confidence level in the ECG samples may depend on both SNR and other factors, including the type of heartbeat detected.

In an embodiment, a confidence measure of detected and classified heartbeats is used to notify and treat the patient. For example, automatic heartbeat detection and classification may identify cardiac irregularities. Devices in a computing environment (e.g., computing environment 100 illustrated in fig. 1) may then be used to treat cardiac irregularities in a patient. For example, a particular medical treatment for cardiac irregularity (e.g., a medication or patient behavior) may be suggested to the patient using the patient's mobile device (e.g., mobile device 135 illustrated in fig. 1). As another example, the categorized data may be used to generate reports for a physician treating a patient. Alternatively, a report may be generated for the patient himself. Further, a patient care plan may be generated or modified based on the classified heartbeats. For example, a patient care plan may be generated for the patient based on the classification. The patient care plan may provide medical treatment options (e.g., medications, educational content, behavioral changes, etc.) for the patient based on the classification. Furthermore, the existing care plan for the patient may be modified.

Further, alerts or outputs may be generated for the patient, care provider, or other interested party. For example, a graphical user interface on a device operated by the patient (e.g., mobile device 135 or a computer as illustrated in fig. 1) may be used to provide an alert to the patient. Alternatively, the alert may be provided to the care provider of the patient using a graphical user interface on a device operated by the care provider (e.g., a mobile device or computing device 120 as illustrated in fig. 1).

All medical treatments and notifications may take into account the confidence level of the ECG data. For example, cardiac irregularities identified using low confidence ECG data may be stored and provided to a patient care provider at a later time, while cardiac irregularities identified using higher confidence ECG data may be provided to the care provider immediately, or may quickly trigger patient medical treatment (e.g., notify patient to sit, notify care provider, or take medication). In addition, ECG data with lower confidence may not be considered in deciding on medical treatment, or given lower weight.

In an embodiment, one or more techniques disclosed herein may improve identification of critical heartbeats in ECG data. For example, ECG data for a patient experiencing a severe cardiac event may deviate significantly from ECG data for a normal sinus rhythm. In previous solutions, automatic heartbeat detection and classification systems may misinterpret such deviations as unreliable ECG data or collect errors, and may exclude the data as unreliable data. By using one or more of the techniques disclosed herein, however, the monitoring application may determine that the SNR of the ECG data associated with irregular heartbeats is high, and thus there is a high confidence in the reliability of the ECG data. The monitoring application may then determine that a deviation from normal sinus rhythm is likely to imply a serious cardiac problem, rather than unreliable data. This allows immediate medical treatment of the patient and urgent notification to the care provider while avoiding false positives from irregular ECG data.

In the foregoing, reference is made to the embodiments presented in the present disclosure. However, the scope of the present disclosure is not limited to the specific embodiments described. Rather, any combination of the described features and elements, whether related to different embodiments or not, is contemplated for implementing and practicing the contemplated embodiments. Moreover, although embodiments disclosed herein may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment does not limit the scope of the disclosure. Accordingly, the foregoing aspects, features, embodiments and advantages are merely illustrative and are not considered elements of or limitations on the appended claims except where explicitly recited in a claim(s).

As will be appreciated by one skilled in the art, the embodiments disclosed herein may be embodied as a system, method or computer program product. Accordingly, aspects may take the form of: an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," module "or" system. Furthermore, aspects may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied in the medium.

Any combination of one or more computer-readable media may be utilized. The computer readable medium may be a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a Read-only memory (ROM), an Erasable programmable Read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc Read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium is any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).

Aspects of the present disclosure are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments presented in the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational blocks to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented method such that the instructions which execute on the computer or other programmable apparatus provide methods for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

Drawings

So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective embodiments.

FIG. 1 illustrates an example computing environment in accordance with one embodiment described herein.

FIG. 2 illustrates a parallel processing computing environment according to one embodiment described herein.

FIG. 3 illustrates an event engine including a workflow for processing health events according to one embodiment described herein.

Fig. 4A-4C illustrate Electrocardiogram (ECG) data according to one embodiment described herein.

FIG. 5 is a flow diagram illustrating determining and using a signal-to-noise ratio of ECG data according to one embodiment described herein.

Fig. 6 illustrates determining a signal-to-noise ratio (SNR) of ECG data according to one embodiment described herein.

Fig. 7 is a flow diagram illustrating determining boundaries for baseline comparisons when determining SNR of ECG data according to one embodiment described herein.

Fig. 8 is a flow diagram illustrating the determination of a confidence metric using SNR of ECG data according to one embodiment described herein.

To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation.

Detailed Description

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:评估治疗睡眠呼吸暂停的刺激功效和用于改进OSA疗法的舌肌张力感测系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!