SYSTEMS AND METHODS OF PATIENT DATA COMPRESSION
20170332931 · 2017-11-23
Assignee
Inventors
- Steven J. Szymkiewicz (Bethel Park, PA, US)
- Francesco Nicolo (Oakmont, PA, US)
- Gary A. Freeman (Waltham, MA)
- Timothy F. Stever (Lowell, MA, US)
- Shane S. Volpe (Saltsburg, PA, US)
Cpc classification
A61N1/025
HUMAN NECESSITIES
A61N1/365
HUMAN NECESSITIES
A61N1/3993
HUMAN NECESSITIES
G16H80/00
PHYSICS
A61B5/318
HUMAN NECESSITIES
A61N1/0456
HUMAN NECESSITIES
A61B5/349
HUMAN NECESSITIES
A61B5/7232
HUMAN NECESSITIES
A61N1/3704
HUMAN NECESSITIES
A61N1/046
HUMAN NECESSITIES
A61B5/7465
HUMAN NECESSITIES
A61B5/0205
HUMAN NECESSITIES
International classification
A61N1/365
HUMAN NECESSITIES
A61B5/00
HUMAN NECESSITIES
Abstract
A system including a medical device is provided. The medical device includes at least one sensor configured to acquire first data descriptive of a patient, first memory storing a plurality of templates, and at least one processor coupled to the at least one sensor and the first memory. The at least one processor is configured to identify a first template of the plurality of templates that is similar to the first data, to determine first difference data based on the first template and the first data, and to store the first difference data in association with the first template. The system may further include the programmable device.
Claims
1-22. (canceled)
23. A system comprising an ambulatory medical device comprising: at least one sensor configured to acquire high resolution electrocardiogram (ECG) data descriptive of a patient; at least one network interface; and at least one processor coupled to the at least one sensor and the at least one network interface and configured to transmit, via the at least one network interface on a first data stream, low resolution ECG data descriptive of the high resolution ECG data; receive, via the at least one network interface, an indication of a portion of the low resolution ECG data that is of interest; identify a portion of the high resolution ECG data that is of interest based on the indication of the portion of the low resolution ECG data that is of interest; and transmit, via the at least one network interface on a second data stream, the portion of the high resolution ECG data that is of interest.
24. The system of claim 23, wherein the portion of the low resolution ECG data that is of interest is descriptive of an arrhythmia.
25. The system of claim 23, wherein the ambulatory medical device further comprises at least one treatment electrode coupled to the at least one processor and configured to discharge one or more therapeutic shocks to a body of the patient.
26. The system of claim 23, wherein the at least one sensor is configured to acquire the high resolution ECG data at a first sampling rate and the at least one processor is further configured to record the low resolution ECG data with a second sampling rate that is lower than the first sampling rate.
27. The system of claim 23, wherein the at least one processor is further configured to: store the low resolution ECG data in a buffer at a first time; and transmit the low resolution ECG data by a second time that falls within an acceptable latency period based on the first time.
28. The system of claim 27, wherein the acceptable latency period has a duration of 10 milliseconds, 100 milliseconds, 500 milliseconds, 1 second, 5, seconds, or 10 seconds.
29. The system of claim 23, wherein the at least one processor is further configured to transmit the portion of the high resolution ECG data that is of interest in response to receiving the indication of the portion of the low resolution ECG data that is of interest.
30. The system of claim 29, wherein the at least one processor is further configured to skip high resolution ECG data other than the portion of the high resolution ECG data that is of interest.
31. The system of claim 23, further comprising a programmable device configured to: receive, on the first data stream from the ambulatory medical device, the low resolution ECG data; present the low resolution ECG data to a user; receive, from the user, input identifying the portion of the low resolution ECG data that is of interest; and transmit, to the ambulatory medical device, the indication of the portion of the low resolution ECG data that is of interest.
32. The system of claim 31, wherein the programmable device is further configured to: receive, on the second data stream from the ambulatory medical device, the portion of the high resolution ECG data that is of interest; supplement the low resolution ECG data with the portion of the high resolution ECG data that is of interest; and present, to the user, the low resolution ECG data supplemented with the portion of the high resolution ECG data that is of interest.
33. A system comprising a medical device comprising: at least one first sensor configured to acquire first electrocardiogram (ECG) data descriptive of a patient condition; at least one second sensor configured to acquire second ECG data descriptive of the patient condition; at least one network interface; and at least one processor coupled to the at least one first sensor, the at least one second sensor, and the at least one network interface and configured to calculate difference data between the first ECG data and the second ECG data; store the difference data in association with the first ECG data; compress the first ECG data and the difference data to generate compressed data; and transmit the compressed data to a programmable device distinct from the medical device.
34. The system of claim 33, further comprising the programmable device, wherein the programmable device is further configured to: receive the compressed data; decompress the compressed data to generate a copy of the first ECG data and a copy of the difference data; and reconstruct a copy of the second ECG data using the copy of the first ECG data and the copy of the difference data.
35. The system of claim 33, further comprising at least one third sensor configured to acquire heart sounds data descriptive of the patient condition, wherein the at least one processor is further configured to: downsample at least a portion of the heart sounds data; and store the heart sounds data in association with the first ECG data and the second ECG data.
36. The system of claim 33, wherein the at least one first sensor is configured to acquire third ECG data descriptive of at least one other patient condition and the at least one processor is further configured to: calculate additional difference data between the first ECG data and the third ECG data; and store the additional difference data in association with the first ECG data.
37. The system of claim 36, further comprising the programmable device, wherein the programmable device is configured to: receive the first ECG data, the difference data, and the additional difference data; reconstruct a copy of the second ECG data using the first ECG data and the difference data; and reconstruct a copy of the third ECG data using the first ECG data and the additional difference data.
38. A system comprising a medical device comprising: at least one sensor configured to acquire first and second data descriptive of a patient; at least one network interface; and at least one processor coupled to the at least one sensor and the at least one network interface and configured to: store the first data descriptive of the patient; calculate difference data between the first data and the second data; store the difference data in association with the first data; compress the first data and the difference data to generate compressed data; and transmit the compressed data to a programmable device distinct from the medical device.
39. The system of claim 38, further comprising the programmable device, wherein the programmable device is configured to: receive the compressed data; decompress the compressed data to generate a copy of the first data and a copy of the difference data; and reconstruct a copy of the second data using the copy of the first data and the copy of the difference data.
40. The system of claim 38, wherein the at least one processor is further configured to: reconstruct the second data into patched data using the first data and the difference data; calculate an amount of error based on the second data and the patched data; compress the first data and the second data to generate compressed data in response to detecting that the amount of error exceeds a threshold; and transmit the compressed data to the programmable device.
41. A system comprising a medical device comprising: at least one sensor configured to acquire first data descriptive of a patient; first memory storing a plurality of templates; and at least one processor coupled to the at least one sensor and the first memory and configured to: identify a first template of the plurality of templates that is similar to the first data; determine first difference data based on the first template and the first data; store the first difference data in association with the first template; compress the first difference data to generate compressed difference data; and transmit the compressed difference data to a programmable device distinct from the medical device.
42. The system of claim 41, further comprising the programmable device, wherein the programmable device comprises: second memory storing the plurality of templates; and one or more processors coupled to the second memory and configured to: receive the compressed difference data and an identifier of the first template from the medical device; decompress the compressed difference data to generate a copy of the first difference data; retrieve a copy of the first template from the plurality of templates stored in the second memory; and reconstruct a copy of the first data using the copy of the first template and the copy of the first difference data.
43. The system of claim 42, wherein the at least one sensor is configured to acquire second data descriptive of the patient and the at least one processor is further configured to: identify a second template of the plurality of templates that is similar to the second data; determine second difference data based on the second template and the second data; and store the second difference data in association with the second template.
Description
DESCRIPTION OF DRAWINGS
[0023] Various aspects of at least one example are discussed below with reference to the accompanying figures, which are not intended to be drawn to scale. The figures are included to provide an illustration and a further understanding of the various aspects and examples, and are incorporated in and constitute a part of this specification, but are not intended as a definition of the limits of any particular example. The drawings, together with the remainder of the specification, serve to explain principles and operations of the described and claimed aspects and examples. In the figures, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every figure.
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
DETAILED DESCRIPTION
[0039] Some aspects and examples are directed to apparatus and processes that decrease the media capacity required to transmit and/or store patient data relative to conventional techniques. Simply put, at least some of these examples encode patient data in a manner that uses fewer bits. In some examples, a medical device includes a compression component that is configured to receive patient data, encode the patient data using one or more data differencing and/or compression processes, and store and/or transmit the data to another device. In these examples, the other device, which may be a medical device or some other programmable device, receives the encoded patient data and decompresses and/or patches the patient data as needed to make the patient data useful for subsequent processing.
[0040] Examples of patient data that may be manipulated by the apparatus and processes described herein include data descriptive of patient activity, compliance, body position, pulse, body temperature, ECG signals, heart sounds, respiration, blood oxygen level, and other patient parameters. Patient data may also include patient demographic data (e.g., name, address, insurance provider, etc.), data descriptive of healthcare provider observations of the patient, and images of the patient.
[0041] Examples of the methods and systems discussed herein are not limited in application to the details of construction and the arrangement of components set forth in the following description or illustrated in the accompanying drawings. The methods and systems are capable of implementation in other examples and of being practiced or of being carried out in various ways. Examples of specific implementations are provided herein for illustrative purposes only and are not intended to be limiting. In particular, acts, components, elements and features discussed in connection with any one or more examples are not intended to be excluded from a similar role in any other examples.
[0042] Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. Any references to examples, components, elements or acts of the systems and methods herein referred to in the singular may also embrace examples including a plurality, and any references in plural to any example, component, element or act herein may also embrace examples including only a singularity. References in the singular or plural form are not intended to limit the presently disclosed systems or methods, their components, acts, or elements. The use herein of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. References to “or” may be construed as inclusive so that any terms described using “or” may indicate any of a single, more than one, and all of the described terms. In addition, in the event of inconsistent usages of terms between this document and documents incorporated herein by reference, the term usage in the incorporated references is supplementary to that of this document; for irreconcilable inconsistencies, the term usage in this document controls.
Data Compression System
[0043]
[0044] As shown in
[0045] As illustrated in
[0046] The medical device controller 114 includes at least one processor 118, a compression component 116, a cardiac event detector 126, a sensor interface 112, a therapy delivery interface 102, data storage 104, a network interface 106, a user interface 108, and a battery 132. The data storage 104 includes a compressed patient data store 138 and a template data store 140. In some examples, these components are disposed within a single physical housing, but not every example of the medical device controller 114 includes all of these components. As such, each of the components of the medical device controller 114 is recited above is provided to illustrate the types of components that may be included in particular examples. For instance, where deployed within a medical device that monitors, but does not treat, the patient 134, the medical device controller may omit components dedicated to treatment of the patient 134 (e.g., the therapy delivery interface). Other specialized uses of the medical device controller 114 will be understood in light of this disclosure.
[0047] In specific examples, the sensor interface 112 is coupled to any one or a combination of the sensors described above and is configured to communicate with the coupled sensors to receive patient data indicative of patient parameters. As shown, the sensor interface 112 is coupled to the ECG sensor 128, the motion sensor 130, and the acoustic sensor 156. The therapy delivery interface 102 may be coupled to one or more of the electrodes described above and is configured to provide therapy to the patient 134. As shown, the therapy deliver interface 102 is coupled to one or more defibrillation electrodes 120, pacing electrodes 122, and/or TENS electrodes 124. The sensor interface 112 and the therapy delivery interface 102 may implement a variety of coupling and communication techniques for facilitating the exchange of data between the medical device controller 114, the sensors and/or the electrodes.
[0048] In some examples, the cardiac event detector 126 is configured to monitor the cardiac activity of the patient 134 to identify cardiac events experienced by the patient 134 based on physiologic signals received via, for example, the ECG sensor 128 and/or the acoustic sensor 156. This monitoring is illustrated in
[0049] In some implementations, the processor 118 includes one or more processors that each are configured to perform a series of instructions that result in manipulated data and/or control the operation of the other components of the medical device controller 114. In some implementations, when executing a specific software process as provided herein (e.g.,
[0050] In one example in accordance with
[0051] In some examples, the user interface 108 includes one or more physical interface devices such as input devices, output devices, and combination input/output devices and a software stack configured to drive operation of the devices. These user interface elements may render visual, audio, and/or tactile content, including content relating to location-specific processing. Thus the user interface 108 may receive input or provide output, thereby enabling a user to interact with the medical device controller 114.
[0052] In some examples, the network interface 106 is coupled to the communications network 154 and is configured to exchange data with one or more devices over the network 154. For instance, in some examples in accord with
[0053] In various implementations, the medical device controller 114 implements an embedded operating system that supplies file system and networking support. In one example, the medical device controller 114 includes software features that provide relational database functionality, touch screen display drivers, audio generation, BLUETOOTH wireless networking, BLUETOOTH Low Energy (BLE) Beacon technology, networking security and firewalling, and data encryption services.
[0054] The network 154 may comprise any combination of local area and/or wide area networks, using both wired and wireless communication systems. In one embodiment, the network 154 uses standard communications technologies and/or protocols. Thus, the network 154 may include links using technologies such as Ethernet, IEEE 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, CDMA, digital subscriber line (DSL), etc. Similarly, the networking protocols used on the network 1006 may include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), User Datagram Protocol (UDP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP) and file transfer protocol (FTP). Data exchanged over the network 1006 may be represented using technologies and/or formats including hypertext markup language (HTML) or extensible markup language (XML). In addition, all or some of links can be encrypted using conventional encryption technologies such as secure sockets layer (SSL), transport layer security (TLS), and Internet Protocol security (IPsec).
Compression Components
[0055] The patient data compression system 100 illustrated in
[0056] In some examples, the compression component 116 is executable by the at least one processor 118 and is configured to execute any of a variety of data differencing and/or compression processes, such as any of the data differencing and compression processes described further below with reference to
[0057] Is some examples, the compression component 116 is also configured to use difference data to reconstruct patient data descriptive of a physiologic signal from a corresponding template. This reconstruction process may be referred to as patching and is described further below with reference to
[0058] In some examples, the compression component 116 is configurable to operate in a template mode and/or a compression mode. When operating in the template mode, the compression component 116 records physiologic signals 136 of the patient 134 and generates one or more templates based on the recorded signals. One example of acts the compression component 116 is configured to execute when operating in template mode is described further below with reference to
[0059] Additionally, in some examples, the compression component 116 includes a shielding component that is configured in accordance with the shielding component disclosed in U.S. Patent Application Publication No. 2016/0321418, titled CUSTOMER- OR PATIENT-BASED SELECTIVE DATA ENCRYPTION IN MEDICAL DEVICE MANAGEMENT, published Nov. 3, 2016, which is hereby incorporated herein by reference in its entirety. In some examples, the shielding component increases the security of the compressed data by selectively shielding data portions of the compressed data.
[0060] In some examples, the compression component 116 is configured to transmit differenced and/or compressed data to another device (e.g., the programmable device 142) via the network interface 106 and the network 154. The programmable device 142 includes a network interface 146, a processor 144, a compressed patient data store 148, and a compression component 150. The programmable device 142 is associated with and configured to be operated by the caregiver 152. For example, the caregiver 152 may use the programmable device 142 to review current patient data (e.g., pulse, heart sounds, height, weight, caregiver notes on the condition of the patient 134) and well as historical patient health data (e.g., trends as a function of time of pulse, blood pressure, heart rhythm).
[0061] The programmable device 142 can include various computing devices that can be placed in communication with the network 154. In some examples, the programmable device 142 is a computing device capable of receiving user input as well as transmitting and/or receiving data via the network 154. In one embodiment, the programmable device 142 is a computer system, such as a desktop or laptop computer. In another embodiment, the programmable device 142 is a device having computer functionality, such as a personal digital assistant (PDA), mobile telephone, tablet computer, smartphone or similar device.
[0062] The network interface 146, processor 144, data storage 148, compression component 150, and user interface 158 of the programmable device 142 are analogous to those described above in the context of the medical device controller 114 and need no further explanation.
Example Ambulatory Medical Device
[0063] In some examples, the medical device 110 described above with reference to
[0064] Further, such an ambulatory medical device may also be configured for use for an extended period of time. For example, the ambulatory medical device can be configured to be used by the patient for hours, days, weeks, months, or even years. In some implementations, the extended use may be substantially continuous in nature. The use of the ambulatory medical device can include continuous wear by the patient, attachment to the patient, and/or monitoring of the patient. The ambulatory medical device may carry out its monitoring in periodic or aperiodic time intervals or times. For example, the monitoring during intervals or times can be triggered by a user action or another event. For example, one or more durations between the periodic or aperiodic intervals or times can be user-configurable,
[0065]
[0066] As shown, the medical device 200 includes a garment 210, a plurality of ECG sensors 212, a plurality of therapy electrodes 214, a medical device controller 220, a connection pod 230, a patient interface pod 240, and a belt 250. The medical device controller 220 may incorporate the medical device controller 114. The plurality of ECG sensors 212 can be disposed at various positions about the patient's body. As shown, the ECG sensors 212 are electrically coupled to the medical device controller 220 through the connection pod 230. In some implementations, some of the components of the wearable medical device 200 are affixed to the garment 210 that can be worn on the patient's torso. For example, as shown in
[0067] The wearable medical device 200 may include the optional patient interface pod 240 that is coupled to the medical device controller 220. For example, the patient interface pod 240 may include patient interface elements such as a speaker, a microphone responsive to patient input, a display, an interactive touch screen responsive to patient input, and/or physical buttons for input. In some implementations, these elements are incorporated into a housing of the controller 220. The patient interface pod 240 may be wirelessly coupled with the controller 220. The patient interface pod 240 may take other forms and include additional functionality. For instance, the patient interface pod 240 may be implemented on a smartphone, tablet, or other mobile device carried by the patient. In another example, the patient interface pod 240 may be worn as a watch about the wrist of the patient, or as a band about an upper arm of the patient. In some implementations, the controller 220 may communicate certain alerts and information and/or be responsive to patient input via both the patient interface elements included in the controller 220 and the patient interface pod 240. The patient and/or caregiver can interact with a touch display or the patient interface pod 240 to control the medical device 200.
Example Automated Medical Device
[0068] In some examples, the medical device 110 described above with reference to
[0069] The AED 300 illustrated in
[0070] The AED 300 is configured to detect the cardiac rhythm of the subject using ECG and heart sounds data and provide pacing and defibrillating shocks to the subject as appropriate. This process is similar to the process described with regard to a medical device controller (such as the medical device controller 220) of the ambulatory medical device 200. The user interface 108 of the AED 300 may include a variety of components configured to communicate with the operator including, but not limited to, a display screen, a speaker, and one or more buttons. In this example, the AED 300 includes a display screen to display notifications to an operator. The notifications may provide instructions to the operator regarding the proper administration of CPR to the subject. The notifications on the display may be accompanied by audible alerts from the speaker to further assist the operator in administering CPR to the patient.
Example Compression Processes
[0071] As described above, in some examples a medical device (e.g., the medical devices 110, 200, and 300) include a compression component (e.g. the compression component 116) configured to execute data differencing and/or compression processes that make space and time efficient use of media used to store and/or transmit patient data. Use of the compression component may reduce patient data transmission and/or reception latencies, especially where the patient data is exchanged via low bandwidth connections. Example techniques and their corresponding processes as implemented by various examples of the compression component are described further below. Also described below are processes that the same or another compression component (e.g., the compression component 150) may be configured to execute to decompress and/or patch patient data to render the patient data usable by subsequent processes.
Template Switching
[0072] In some examples, the compression component 116 is configured to execute a multi-template data differencing process, such as the data differencing process 400 illustrated in
[0073]
[0074] During this fitting procedure, one or more segments of physiologic data may be collected from the patient. The physiologic data may include ECG, heart sounds, breath sounds, peripheral capillary oxygen saturation (SpO2), etc. The duration of the segments may be 5-10 seconds, or longer, e.g. 1, 2, 3, 5, 10 minutes. Multiple segments may be collected with the patient under varying degrees of physiologic stress. For instance, the patient may undergo an ECG stress test, whereby they walk or jog on a treadmill for a specified period, and the heart rates are brought from normal rates up to near the patient's limit of endurance. Multiple templates may then be created for the varying heart rates: resting rate, maximum rate, and then in some examples multiple rates in between, e.g. 1.1 times resting rate, 1.2 times resting rate, 1.3 times resting rate, 1.4 times resting rate, etc. up to 0.9 times maximum rate.
[0075] In other examples, the act 402 is executed after clinical use has started, but prior to any data differencing being performed by the compression component 116. In these examples, during the initial 1-2 minutes, 10 minutes, 1 hour, or other initial time period, the ECG or other physiologic data is acquired from the patient and stored. Then one or more templates is created for later use in data differencing and compression.
[0076] In some examples of the act 402, the compression component 116 creates templates by creating median beats. For example, a median beat may be created from one or more leads, e.g. up to 12 leads of the ECG. Median beats are utilized to minimize the impact of noise present in any given single beat. Multiple global measurements can be determined utilizing the median beats including the PR, QRS and QT duration. Median beat formation involves the identification of a “primary” beat type within a sequence of beats. This categorization identifies beats which are to be included in the median or representative beat formation. Beats which are not considered part of the “primary” class are not included in the formation of the median. In applying these criteria, beats such as occasional premature ventricular complexes can be excluded from the median beat formation. Following selection of beats, the beats can be aligned and the median beat is identified. In general, automated measurements come from a representative beat based on 3 or more seconds of the digitally-acquired ECG. Typical data rates can be in the range of 100-1000 Hz with resolution in the range of 0.5-1 microvolt per least significant bit (LSB) and 16-24 bits of dynamic range. The process begins by taking one or more leads of the ECG and creating a median complex from a primary, or dominant, normal beat. All of the beats with the primary morphology can be used for the creation of the median beat.
[0077] After medians are created for each lead, a global median can be created by aligning the individual median beat. From there, the earliest onset to the latest offset can be measured for all variables (PR, QRS and QT). In many cases, the result of using the earliest onset to the latest offset will be to have a longer QT interval measurement than the human reading. Heart rates for automated algorithms can be calculated over the entire 10-second ECG. Alternative template creation techniques may be used. One such alternative, segmented beat modulation, is described by Agostinelli, et al (“Extracting a clean ECG from a noisy recording: A new method based on segmented-beat modulation”, Computing in Cardiology Conference (CinC, 2014, ISSN: 2325-8861).
[0078] Templates generated in the act 402 may represent a signal within various domains. These domains include the time domain, the frequency domain, and the wavelet domain. Templates that represent a signal within the time domain include data fields configured to store values that represent the amplitude and timing of each signal acquired by the medical device. Templates that represent a signal within the frequency domain include data fields configured to store values that represent Fourier coefficients as may be generated by applying a Fourier transform to each signal acquired by the medical device. Templates that represent a signal within the wavelet domain include data fields configured to store data specifying a wavelet prototype function and values that represent wavelet coefficients as may be generated by applying a wavelet transform to each signal acquired by the medical device. Other templates that represent signals in other domains may be used without departing from the scope of the examples disclosed herein. For examples where the compression engine is configured to store values of transform function coefficients in the templates, the compression engine may be configured to store only a subset of the coefficients that are the most informative (e.g., a predefined number of largest coefficients, non-zero coefficients, etc.).
[0079] In act 404, the compression component 116 receives a sample of physiologic data (e.g., the sample 136) generated by the patient and acquired by the medical device. The one or more sensors used to acquire the physiologic data sample may include ECG sensors, accelerometers, thermometers, pulse oximeters, and the like. For instance, in some examples, the physiologic data sample is an ECG sample collected from a 12 lead sensor arrangement for one complete cardiac cycle.
[0080] In act 406, the compression component 116 attempts to identify a template that matches the physiologic data sample to a predefined degree. For instance, in one example of the act 406, the compression component 116 calculates measures of similarity between each template stored in the template data store 140 and the physiologic data sample (transformed, if needed, into the domain of each template). These measures of similarity may be, for example, correlation coefficients resulting from calculations of cross-correlations between the physiologic data sample and each template. In some examples, the compression component 116 compares the measures of similarity to one another and a minimum threshold. In these examples, the compression component 116 identifies a template associated with the highest correlation coefficient and, where that correlation coefficient is greater than the minimum threshold, selects the template as a reference template for the physiologic data sample. Because there are a variety of templates stored in the template data store 140 corresponding to a variety of the patient's physiologic states across a range of patient activity levels, the compression component 116 can select, in many cases, a reference template that closely matches the exact waveform morphology of the physiologic data sample. The compression component 116 can make this selection at multiple points during the course of the patient's day or over an extended period, during periods of both rest as well as varying levels of physical activity.
[0081] In act 408, the compression component 116 determines whether a reference template was identified in the act 406. If not, and no arrhythmia has been detected by the medical device (e.g. via execution of the cardiac event detector 126), the compression engine executes the act 402 with the physiologic data sample to generate and/or modify a template to correspond to the physiologic data sample. If a reference template was identified in the act 408, the compression component 116 executes act 410.
[0082] In the act 410, the compression component 116 determines difference data that represents differences between the reference template and the physiologic data sample. In act 412, the compression component 116 locally stores, in the compressed patient data store 138, and/or transmits the difference data and a reference template identifier, where there was a change in the reference template, to the compression component 150. In some examples, the compression component 116 compresses the difference data (and the reference template identifier, where present) using conventional compression techniques prior to storage and/or transmission. After completing the act 412, the compression component 116 returns to the act 404 to acquire the next physiologic data sample.
[0083]
Selective Communication
[0084] In some examples, compression components 116 and 150 decrease the latency time between acquisition of physiologic signals from the patient and receipt of patient data at a remote caregiver (e.g., the caregiver 152) when transmitting over a bandwidth limited channel by selectively storing, transmitting, and/or receiving high resolution data based on feedback received regarding low resolution data. As used herein “resolution” may refer, in addition to its ordinary meaning, to resolution in the time domain or amplitude. Higher resolution when, characterizing the instantaneous signal amplitude of the particular waveform, could be conveyed by a smaller-sized (and therefore more sensitive) LSB and larger sample word size (to keep the dynamic range the same while having a smaller LSB). Alternatively or additionally, higher resolution can be recorded by faster sampling rates to get a higher resolution reproduction of the signal in time. This high resolution data may include data that is recorded at high data rates or smaller LSB and for which conventional latency times are long (e.g., ECG data). The low resolution data may include data that is recorded at low rates, data that summarizes high resolution data, and/or data for which conventional latency times are short. By utilizing feedback received regarding the low resolution data, compression components in accordance with these examples avoid transmitting some or most of the high resolution data, thereby utilizing less bandwidth than conventional techniques that transmit all or most of the high resolution data.
[0085]
[0086] In this example, the data stream 608 includes low resolution data, and the data stream 610 includes high resolution data. In some examples, low resolution data transmitted via the data stream 608 is a lossy compressed version of the high resolution data to facilitate transmission speed. In these examples, the high resolution data 610 is compressed using a typically lossless, or at least high fidelity, compression process to increase accuracy but at the cost of delayed transmission.
[0087] In some examples, the compression component 116 transmits high resolution data and low resolution data simultaneously. However, unlike a standard dual data stream transmission with a single transmission buffer, in these examples the compression component 116 prioritizes low resolution data over high resolution data. In some examples, this prioritization is not dependent on the amount of high resolution data that is available to be transmitted. Rather, in these examples, the compression component 116 implements two distinct buffers, one for high resolution data and one for low resolution data. Further, in these examples, the compression component 116 maintains priority with the low resolution buffer until the low resolution buffer is empty or contains only data placed in the buffer recently enough to fall within an acceptable latency period. The acceptable latency period may be specified by a configurable parameter of the compression component 116. Example durations of acceptable latency periods include 10 milliseconds, 100 milliseconds, 500 milliseconds, 1 second, 5 seconds, and 10 seconds. In some examples, at the receiving side, the compression component 150 of the programmable device 142 may parse and display (via the user interface 108) information based on the high resolution data and information based on the low resolution data as both are received. In some examples, the compression component 150 implements a high resolution buffer and a low resolution buffer. The compression component 150 may prioritize the low resolution buffer over the high resolution buffer using the same methodology as the compression component 116.
[0088] It is appreciated that this data stream prioritization scheme is not limited to two levels of resolution. Other examples of the compression components 116 and 150 may implement one or more intermediate levels of resolution in addition to the high resolution data stream 610 and the low resolution data stream 608.
[0089] As shown in
[0090]
[0091] In act 706, the compression component 116 transmits low resolution data to the compression component 150 via the data stream 608. In act 708, the compression component 150 receives the low resolution data via the data stream 608. In act 710, the compression component 150 presents the low resolution data to the caregiver 152 via the user interface 158. In act 712, the compression component 150 receives feedback from the caregiver 152 identifying one or more portions of the low resolution data that are of interest. In act 716, the compression component 150 transmits the feedback to the compression component 116. In act 718, the compression component 116 receives the feedback and implements the feedback. In one example, the compression component 116 implements the feedback by queuing the high resolution data of interest (as identified in the feedback) for transmission and executing the acts 720 and 702. By queuing the high resolution data of interest, the compression component 116 skips any high resolution data in the second data structure that is not of interest. In the act 720, the compression component 116 transmits the high resolution data that is queued for transmission to the compression component 150 via the data stream 610. In act 722, the compression component 150 receives the high resolution data via the data stream 610. In the act 724, the compression component 150 supplements the presentation of the low resolution data with the high resolution data and the feedback loop repeats.
[0092] As described above, in some examples, the high resolution data is buffered into the first data structure but is not transmitted until feedback is received. Also, as described above, the compression component 116 may allocate and load a single data structure (e.g., a transmit buffer) with both high resolution data and low resolution data, but in some examples, the compression component 116 allocates and loads two separate data structures, one for each resolution of data. In examples where the high resolution data is sent only after feedback regarding the low resolution data is received and processed, the second data structure may store a pre-specified duration of high resolution data. In these examples, the compression component 116 starts transmitting select portions of high resolution data buffered in the second data structure, or all of the high resolution data buffered in the second data structure, in response to receiving the feedback regarding the low resolution data.
[0093] In some examples, no feedback from the compression component 150 is required; both resolutions of data are transmitted simultaneously, and the caregiver 152 merely waits for the latency period to pass in order to review the presentation of the high resolution data.
[0094] The processes disclosed herein each depict one particular sequence of acts in a particular example. The acts included in these processes may be performed by, or using, one or more programmable devices specially configured as discussed herein. Some acts are optional and, as such, may be omitted in accord with one or more examples. Additionally, the order of acts can be altered, or other acts can be added, without departing from the scope of the systems and methods discussed herein. Furthermore, as discussed above, in at least one example, the acts are performed on a particular, specially configured machine, namely a medical device configured according to the examples disclosed herein.
Recursive Processing
[0095] In some examples, the compression component 119 is configured to decrease the computing resources required to store and/or transmit patient data by executing a data differencing process configured to identify and transmit differences between sequential samples of physiologic signals of the patient rather than full copies of each sample.
[0096] In act 808, the compression component 116 calculates difference data descriptive of a difference between the sample.sub.t and the sample.sub.t+1. In some examples, calculating this difference data may include aligning the phase of the sample.sub.t+1 to the phase of the sample.sub.t and subtracting data values of the sample.sub.t (e.g., representative of amplitude) from corresponding data values of the sample.sub.t+1.
[0097] In act 810, the compression component 116 reconstructs the sample.sub.t+1 from the difference data and sample.sub.t. In some examples, reconstructing the sample.sub.t+1 from the difference data and sample.sub.t, includes adding the difference data to the data values of sample.sub.t and shifting the phase of the sum to the phase of the sample.sub.t+1. In act 812, the compression component 116 calculates an amount of error in the reconstructed sample.sub.t+1 by calculating a difference (e.g., cross correlation) between the sample.sub.t+1 and the reconstructed sample.sub.t+1. In one example, the amount of error calculated in the act 812 is the magnitude by which the cross correlation coefficient, when normalized to the range of [−1, 1], deviates from 1. In a more general sense, the amount of error may be any metric that indicates the degree of fit between the sample.sub.t+1 and the reconstructed sample.sub.t+1.
[0098] In act 814, the compression component 116 determines whether the calculated error exceeds a threshold. If so, the compression component 116 transmits sample.sub.t+1 to the compression component 150 in act 820. Otherwise, the compression component 116 compresses (e.g., via Huffman encoding), stores, and/or transmits the compressed difference data to the compression component 150 in act 818. In act 822, the compression component 116 replaces sample.sub.t with sample.sub.t+1 and returns to the act 806 to acquire the next sample of the physiologic signal of the patient (a new sample.sub.t+1).
[0099] In some examples, the error checking acts 810, 812, and 814 are unnecessary and omitted, and the data differencing process 800 proceeds directly from the act 808 to the act 818.
[0100]
[0101] The recursive processing technique described above yields impressive results when applied to ECG data. As one example illustrative of this technique,
Multi-Signal Compression
[0102] In some examples, the compression component 116 decreases the computing resources required to store and/or transmit patient data by executing a data differencing component configured to identify and transmit differences between two or more physiologic signals descriptive of the same patient activity. For instance, in some examples, the compression component 116 analyzes ECG data acquired from a pair of ECG sensors positioned on the front and back of a patient's thorax to ECG data acquired from a pair of ECG electrodes positioned on the left and right side of the patient's thorax.
[0103]
[0104] In act 1206, the compression component 116 calculates difference data descriptive of the difference between sample.sub.1 and sample.sub.2. In some examples, calculating this difference data may include aligning the phase of the sample.sub.2 to the phase of the sample.sub.1 and subtracting data values of the sample.sub.1 (e.g., representative of amplitude) from corresponding data values of the sample.sub.2. In some examples, the compression component 116 aligns the phase of sample.sub.1 to the phase of the sample.sub.2 by identifying peaks in the sample.sub.1 and the sample.sub.2 and aligning the samples so that the peaks overlap. It is appreciated these alignment and subtraction processes may be performed on the sample.sub.1 and the sample.sub.2 where the samples are transformed into different domains using, for example, a Fourier transform or wavelet transform. In act 1208, the compression component 116 compresses, stores, and/or transmits the sample.sub.1 and the difference data to the compression component 150.
[0105] For computational efficiency, some examples of the compression component 116 calculate an amount of phase shift using, for example, peak identification as described above and automatically shift samples acquired from the source.sub.1 by the amount. In these examples, the compression component 116 monitors a summary of the magnitude of the difference data (e.g., the size of sample.sub.1 and the difference data when compressed) and recalculates the amount of phase shift where the magnitude transgresses a configurable threshold.
[0106]
[0107] In some examples, the multi-signal compression technique may be combined with any of the techniques described above. For instance, in some examples, the sample.sub.1 and/or the difference data processed by the differencing process 1200 and the patching process 1300 may be compared to one or more templates stored in the template data store 140 and/or in the data storage 148 as described in the template switching technique. In these examples, differences between the sample.sub.1 and/or the difference data and the templates corresponding to each may be compressed and transferred in lieu of the sample.sub.1 and/or the difference data, thereby providing greater efficiencies in some situations. In some examples, sample.sub.1 and/or the difference data processed by the differencing process 1200 and the patching process 1300 may be compared to previous versions of the sample.sub.1and/or the difference data as described in the recursive processing technique. In these examples, differences between the sample.sub.1and/or the difference data and previous versions of each may be compressed and transferred in lieu of the sample.sub.1 and/or the difference data, thereby providing greater efficiencies in some situations.
[0108]
[0109] In act 1408, the compression component 116 identifies one or more ECG segments of ECG data recorded in one or more potions of the sample.sub.1. Examples of ECG segments include the QRS complex, the P wave, the T wave, the PR interval, the QT interval, the PR segment, and the ST segment. In act 1410, the compression component 116 identifies one or more audio resolutions (e.g., sampling rates and/or discrete sample sizes) associated with each identified ECG segment. These identifications may be executed by referencing a lookup table or other data structure that associates ECG segments with target audio resolutions. This data structure may reside in the data storage 104. In act 1412, the compression component 116 downsamples one or more portions of the sample.sub.3 that correspond to the one or more portions of the sample.sub.1 according to the identified audio resolutions. The downsampling executed within the act 1412 may include, for example, decreasing the number of bits used to store discrete samples within each portion of sample.sub.3 and/or decreasing the number of discrete audio samples stored within each portion of sample.sub.3. In act 1206, the compression component 116 calculates difference data descriptive of the difference between sample.sub.1 and sample.sub.2 as described above with reference to
[0110]
[0111] The processes disclosed herein each depict one particular sequence of acts in a particular example. The acts included in these processes may be performed by, or using, one or more programmable devices specially configured as discussed herein. Some acts are optional and, as such, may be omitted in accord with one or more examples. Additionally, the order of acts can be altered, or other acts can be added, without departing from the scope of the systems and methods discussed herein. Furthermore, as discussed above, in at least one example, the acts are performed on a particular, specially configured machine, namely a medical device configured according to the examples disclosed herein.
[0112] It is appreciated that the four techniques described above may be combined in various ways to advantageous effect. For example, as described above, the multi-signal compression technique may be combined with either the recursive processing technique or the template switching technique to reduce the amount of media consumed by data descriptive of the any of the samples or difference data described above. In addition, one or more of the template switching technique, the recursive processing technique, and the multi-signal compression may be combined with the selective communication technique to further decrease latency of communications between the medical device 110 and the programmable device 142. Other combinations of the techniques described herein will be apparent in light of this disclosure.
[0113] Having thus described several aspects of at least one example, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art. For instance, examples disclosed herein may also be used in other contexts. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the scope of the examples discussed herein. Accordingly, the foregoing description and drawings are by way of example only.