The present invention relates to the sampling and transmission of sensor data. More specifically, the present invention pertains to the sampling of blood pressure measurements and the transmission of samples as data packets over a wireless channel.
Blood pressure measurements are used by hospitals and physicians to ascertain a patient's vital statistics. However, the traditional method of measuring systemic blood pressure, such as using a mechanical cuff along with a stethoscope, can be time-consuming and inaccurate. Accordingly, digitized measurements of blood pressure have been developed to improve accuracy in measuring blood pressure. Additionally, transmission of blood pressure data through a wireless channel may alleviate the problem of requiring the physician or nurse to be physically present with the patient.
Transmission of blood pressure data through a wireless channel, however, may present problems. For example, blood pressure data transmitted over a wireless channel can sometimes require additional payload bits to facilitate transmission of the blood pressure data, which increases the amount of data sent over the wireless channel. As an example, synchronization bits may be included in the data packets to help detect incoming data packets. As another example, the channel may be very noisy, causing corruption of the blood pressure data. Accordingly, parity bits for error detection and correction may be inserted in the data packet. Thus, the sampled data along with these additional payload bits may not fit in a wireless channel having limited bandwidth.
Embodiments include a method of processing blood pressure measurements transmitted from an implantable medical device to a receiving device. In Example 1, the method includes transmitting a command to an implantable medical device including a blood pressure sensor, the command prompting the device to sense blood pressure measurements within the body. The method further includes receiving a response from the implantable medical device, where the response indicates that the device initiated the sensing of blood pressure measurements. The method further includes receiving one or more data packets from the implantable medical device. The one or more data packets include a base pressure measurement that is representative of a starting point of a blood pressure waveform. The one or more data packets also include a measurement representative of a difference between another blood pressure measurement and a previous pressure measurement. The method also includes generating a pressure waveform from the one or more data packets.
In Example 2, the method according to Example 1, wherein the command includes at least a measuring interval indicating a time interval for sampling the blood pressure waveform, a marker interval indicating a time interval for sending a marker, and a sampling rate indicating a time interval between sampling sensed blood pressure measurements of the blood pressure waveform.
In Example 3, the method according to any of Examples 1-2, further comprising: performing error correction on the one or more received packets using one or more parity bits included in each packet of the received one or more data packets, wherein the one or more parity bits included in each packet of the received one or more data packets includes at least one row parity bit and at least one column parity bit; and detecting an error when at least one bit in the one or more received packets does not correspond to the at least one row parity bit and the at least one column parity bit.
In Example 4, the method according to any of Examples 1-3, further comprising: synchronizing the one or more received packets using a marker included in the one or more received packets, the marker having a unique value non-representative of the blood pressure measurements, wherein a first packet received after the marker is received is identified as a first portion of the base pressure measurement, and a second packet received after the first packet is identified as a second portion of the base pressure measurement.
In Example 5, the method according to any of Examples 1-4, further comprising: reconstructing a blood pressure waveform from the received one or more data packets, wherein, for each data point on the blood pressure waveform, the measurement representative of a difference between the another blood pressure measurement and the base pressure measurement is added to the base pressure measurement.
In Example 6, the method according to any of Examples 1-5, wherein the measurement representative of the difference is encoded using an encoding range including a range of discrete values.
In Example 7, the method according to any of Examples 1-6, wherein the one or more data packets include at least a sync bit, a predetermined number of data bits, a row parity bit, and a column parity bit.
In Example 8, an implantable medical device configured to sample a blood pressure waveform, the device comprising: a response module configured to receive a command from a communicating device, the command including parameters for sampling a blood pressure waveform, the parameters specifying at least a sampling rate and a resolution; the response module configured to transmit a response packet to the communicating device in response to the command; a pressure measurement module configured to sense the blood pressure waveform; an ADC module configured to obtain a blood pressure sample by sampling the blood pressure waveform at the sampling rate; a resolution conversion module configured to convert the blood pressure sample to the resolution; a delta module configured to determine a difference measurement between the converted blood pressure sample and a previous blood pressure sample; an encoding module configured to encode the determined difference measurement using an encoding range including a range of discrete values; a packet module configured to generate a data packet including the difference measurement; and the packet module configured to transmit the data packet to the communicating device.
In Example 9, the device of Example 8, wherein the packet module is further configured to transmit a marker to the device in accordance with a marker interval, the marker interval included in the command, the marker having a unique value non-representative of the blood pressure measurement; the packet module is further configured to transmit a first packet after transmission of the marker, the first packet including a first portion of a base pressure measurement; and the packet module is further configured to transmit a second packet after transmission of the first packet, the second packet including a second portion of the base pressure measurement.
In Example 10, the device of any of Examples 8-9, further comprising: a parity module configured to determine a row parity bit by counting a number of ones included in the data packet; and the parity module configured to determine a column parity bit of a packet set transmitted prior to the transmission of the data packet, wherein the packet module is further configured to prepare the data packet by inserting the row parity bit and column parity bit in the data packet.
In Example 11, the device of any of Examples 8-10, wherein the encoding module is further configured to adjust the encoding range using a range of the blood pressure values of the sampled blood pressure waveform.
In Example 12, the device of any of Examples 8-11, wherein: the encoding module is further configured to determine an overflow result when the difference measurement exceeds a maximum range of the encoded range; and the packet module is further configured to transmit the overflow result in another data packet.
In Example 13, the device of any of Examples 8-12, wherein the data packet includes at least a sync bit, a number of data bits, a row parity bit, and a column parity bit.
In Example 14, a system for sampling a blood pressure waveform, the system comprising: an external device communicable with an implantable medical device, the external device including: a command module configured to transmit a command to the implantable medical device, the command including parameters for sampling a blood pressure waveform; and the implantable medical device including: a response module configured to transmit a response packet to a second device in response to the command; a pressure measurement module configured to obtain a blood pressure measurement by sampling the blood pressure waveform at a sampling rate; a resolution conversion module configured to convert the blood pressure measurement to a resolution; a delta module configured to determine a difference measurement between the converted sampled blood pressure waveform and a previous sample; an encoding module configured to encode the determined difference measurement using an encoding range including a range of discrete values; and a packet module configured to prepare the determined difference measurement as a data packet; wherein the packet module is configured to transmit the data packet to the external device.
In Example 15, the system according to Example 14, wherein: the packet module is further configured to transmit a marker to the external device in accordance with a marker interval, the marker interval included in the command, the marker having a unique value non-representative of the blood pressure measurement; the packet module is further configured to transmit a first packet after transmission of the marker, the first packet including a first portion of a base pressure measurement; and the packet module is further configured to transmit a second packet after transmission of the marker, the second packet including a second portion of the base pressure measurement.
In Example 16, the system according to any of examples 14-15, wherein the implantable device further comprises: a parity module configured to determine a row parity bit by counting a number of ones included in the data packet; the parity module is configured to determine a column parity bit of a packet set transmitted prior to the transmission of the data packet; and wherein the packet module is further configured to prepare the data packet by inserting the row parity bit and column parity bit in the data packet.
In Example 17, the system according to any of Examples 14-16, wherein the external device further includes: an error detection module configured to detect one or more errors in the data packet using at least the row parity bit and the column parity bit; and an error correction module configured to correct the one or more errors in the data packet.
In Example 18, the system according to any of Examples 14-17, wherein the encoding module is further configured to adjust the encoding range using a range of the sampled blood pressure waveform.
In Example 19, the system according to any of Examples 14-18, wherein the packet module is further configured to determine an overflow result when the determined difference exceeds a maximum range of the encoded range and transmit the overflow result in another data packet.
In Example 20, the system according to any of Examples 14-19, wherein the external device further includes: a waveform reconstruction module configured to reconstruct the blood pressure waveform by adding the encoded difference included in the data packet to a base pressure measurement.
While multiple embodiments are disclosed, still other embodiments of the present invention will become apparent to those skilled in the art from the following detailed description, which shows and describes illustrative embodiments of the invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.
While the invention is amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the invention to the particular embodiments described. On the contrary, the invention is intended to cover all modifications, equivalents, and alternatives falling within the scope of the invention as defined by the appended claims.
A patient's blood pressure may be measured via an implantable medical device (IMD). When a patient's blood pressure measurement is taken, the patient's blood pressure is sensed by the IMD and reproduced as a waveform. Accordingly, in embodiments, the blood pressure waveform may be sampled, where the samples are transmitted over a wireless channel and read at a handheld device and/or pulse generator (PG). In some embodiments, a base pressure measurement is synchronized with a marker. As an example, after a marker is sent from the IMD to the handheld device, the next two values that are sent are an upper portion of the base pressure measurement and a lower portion of the base pressure measurement. After the base pressure measurement is sent, a difference value between the pressure measurements is sent in a data packet instead of the actual pressure measurement in order to conserve bandwidth. As an example, a 10 bit data sampled at 40 Hz may not fit in a 500 bits/sec channel along with additional payload bits. Accordingly, by sending a 6-bit difference value instead of an actual pressure measurement, bandwidth may be conserved.
In the illustrative system 10 depicted, the pulse generator 14 is coupled to a lead 36 deployed in the patient's heart 18. The pulse generator 14 can be implanted subcutaneously within the body, typically at a location such as in the patient's chest or abdomen, although other implantation locations are possible. A proximal portion 38 of the lead 36 can be coupled to or formed integrally with the pulse generator 14. A distal portion 40 of the lead 36, in turn, can be implanted at a desired location within the heart 18 such as the right ventricle 22, as shown. Although the illustrative system 10 depicts only a single lead 36 inserted into the patient's heart 18, in other embodiments the system 10 may include multiple leads so as to electrically stimulate other areas of the heart 18. In some embodiments, for example, the distal portion of a second lead (not shown) may be implanted in the right atrium 20. In addition, or in lieu, another lead may be implanted in the left side of the heart 18 (e.g., in the coronary veins) to stimulate the left side of the heart 18. Other types of leads such as epicardial leads may also be utilized in addition to, or in lieu of, the lead 36 depicted in
During operation, the lead 36 is configured to convey electrical signals between the heart 18 and the pulse generator 14. For example, in those embodiments where the pulse generator 14 is a pacemaker, the lead 36 can be utilized to deliver electrical therapeutic stimulus for pacing the heart 18. In those embodiments where the pulse generator 14 is an implantable cardiac defibrillator, the lead 36 can be utilized to deliver electric shocks to the heart 18 in response to an event such as ventricular fibrillation. In some embodiments, the pulse generator 14 includes both pacing and defibrillation capabilities.
The remote IMD 16 can be configured to perform one or more designated functions, including the sensing of one or more physiologic parameters within the body. Example physiologic parameters that can be measured using the remote IMD 16 can include, but are not limited to, blood pressure, blood flow, and temperature. Various electrical, chemical, magnetic, and/or sound properties may also be sensed within the body via the remote IMD 16.
In the embodiment of
The remote IMD 16 may be implanted in other regions of the patient's vasculature, in other body lumens, or in other areas of the body, and may comprise any type of chronically implanted device adapted to deliver therapy and/or monitor biological and chemical parameters, properties, and functions. The remote IMD 16 can be tasked, either alone or with other implanted or external devices, to provide various therapies or diagnostics within the body. Although a single remote IMD 16 is depicted in
An acoustic communication link may be established to permit wireless communications between the remote IMD 16 and the handheld device 12, between the remote IMD 16 and the pulse generator 14, and/or between the remote IMD 16 and one or more other devices located inside or outside of the body. In the illustrative system 10 of
The handheld device 12 includes one or more ultrasonic transducers 48 configured to receive the ultrasound signal 46 and complete an acoustic link between the remote IMD 16 and the handheld device 12. In some cases, for example, the acoustic link established between the remote IMD 16 and the handheld device 12 can be used to wirelessly transmit sensor data, operational status information, and/or other information to the handheld device 12. An example telemetry system employing ultrasonic transducers is described in U.S. Pat. No. 7,024,248, entitled “Systems and Methods For Communicating With Implantable Devices,” which is incorporated herein by reference in its entirety for all purposes.
In some embodiments, the ultrasonic transducer(s) 48 for the handheld device 12 may transmit an ultrasound signal to the remote IMD 16 to prompt the IMD 16 to perform a desired operation. In one embodiment, for example, the handheld device 12 may transmit an acoustic wake-up command to the remote IMD 16, causing the IMD 16 to activate from an initial, low-power state for conserving power usage to an active, energized state for taking one or more sensor measurements and transmitting sensor data to the handheld device 12, to the pulse generator 14, and/or to another device located inside or outside of the body. In some embodiments, and as further discussed herein, the handheld device 12 may transmit an acoustic control signal that prompts the remote IMD 16 to wake up only a portion of the IMD 16 and transmit one or more ultrasonic pulses without activating the sensor circuitry within the IMD 16.
While the system 10 of
Although the system 10 depicted in
The physiologic sensor 58 performs functions related to the sensing of one or more physiologic parameters within the body. In certain embodiments, for example, the physiologic sensor 58 comprises a pressure sensor adapted to measure blood pressure in the body. In one embodiment, the remote IMD 16 is implanted in a pulmonary artery of the patient, and the physiologic sensor 58 is adapted to sense blood pressure within the artery. In other embodiments, the physiologic sensor 58 is adapted to generate a signal related to other sensed physiologic parameters including, but not limited to, temperature, electrical impedance, pH, blood flow, and glucose level. In certain embodiments, the remote IMD 16 may also include a therapy delivery module 70 that performs one or more therapeutic functions (e.g., cardiac pacing or drug delivery) within the body in addition to, or in lieu of, the one or more sensing functions provided by the physiologic sensor 58.
The ultrasonic transducer 42 for the remote IMD 16 may include one or more piezoelectric transducer elements configured to transmit and receive ultrasound signals. In a reception mode of operation, the ultrasonic transducer 42 can be configured to receive a control signal 72 transmitted from the handheld device 12 and/or the pulse generator 14, which is fed to the controller module 68 when the remote IMD 16 is in an active state. In a transmit mode of operation, the ultrasonic transducer 42, or another ultrasonic transducer coupled to the remote IMD 16, is configured to transmit an ultrasound signal 46, 52 to the handheld device 12, to the pulse generator 14, and/or to another device located inside or outside of the body. The transmitted ultrasound signal 46, 52 can include sensor data obtained from the physiologic sensor 58, information relating to the status or operation of the remote IMD 16 (e.g., power status, communication mode status, error correction information, etc.), as well as other information relating to the operation of the remote IMD 16.
The sensor data obtained by the physiologic sensor 58 and transmitted via the ultrasound signal 46, 52 may be encoded via on-off keying, phase-shift keying, frequency-shift keying, amplitude-shift keying, pulse code modulation, frequency modulation, amplitude modulation, or other suitable modulation techniques used in telemetry protocols. In on-off keying, for example, digitized sensor data is transmitted acoustically within a modulated carrier ultrasound signal 46, 52. The presence or absence of the carrier ultrasound signal 46, 52 is detected by the handheld device 12 or pulse generator 14 as either a binary “1” or “0,” respectively.
The signal detector 62 is configured to generate an activation trigger signal to activate the remote IMD 16 via the activation/deactivation switch component 64. The activation trigger signal is generated by the signal detector 62 when the electrical signal generated by the ultrasonic transducer 42 exceeds a specific voltage threshold.
In response to the generation of the activation trigger signal by the signal detector 62, the switch component 64 is actuated to allow current to flow from the energy storage device 56 to the controller module 68, thereby placing the remote IMD 16 in the active state. The switch component 64 can also be actuated to prevent current from flowing to the controller module 68, thereby placing the remote IMD 16 in the standby or sleep state. Further details regarding the general construction and function of acoustic switches are disclosed in U.S. Pat. No. 6,628,989, entitled “Acoustic Switch And Apparatus And Methods For Using Acoustic Switches Within The Body,” which is expressly incorporated herein by reference in its entirety for all purposes. In other embodiments, the remote IMD 16 can include an antenna or inductive coil that receives an RF or inductive signal from the handheld device 12 or pulse generator 14 to activate or deactivate the remote IMD 16 within the body.
In embodiments, the controller module 68 includes a processor 74 such as a microprocessor or microcontroller coupled to a memory unit 76 that includes operating instructions and/or software for the remote IMD 16. In alternative embodiments, the controller module 68 is implemented as a program in software. The memory unit 76 can include volatile memory and nonvolatile memory. In some embodiments, nonvolatile memory can store code that includes bootstrap functions and device recovery operations, such as microprocessor reset. The nonvolatile memory may also include calibration data and parameter data in some embodiments. The volatile memory can include diagnostic and/or microprocessor-executable code, operating parameters, status data, and/or other data.
The controller module 68 can also include an oscillator or other timing circuitry 78 which directs the timing of activities to be performed by the remote IMD 16 once awoken from its low-power or sleep state. For example, the timing circuitry 78 can be used for timing the physiologic measurements taken by the physiologic sensor 58 and to generate timing markers to be associated with those measurements. The timing circuitry 78 may also be used for modulating the ultrasound signal 46, 52.
The controller module 68, including the processor 74, can be configured as a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC)-compatible device, and/or any other hardware components or software modules for processing, analyzing, storing data, and controlling the operation of the remote IMD 16. Processor 74 executes instructions stored in the memory 76 or in other components such as, for example, the physiologic sensor(s) 58 or therapy delivery module 70 and/or other components or modules that may be present. In general, processor 74 executes instructions that cause the processor 74 to control or facilitate the functions of the remote IMD 16 and/or components of the remote IMD 16.
The one or more sensors 80 can include a biosensor that generates a signal in response to a sensed physiologic parameter, or an environmental sensor that generates a signal in response to a sensed environmental parameter. In one embodiment, for example, the sensor 80 comprises a barometric pressure sensor configured to measure barometric pressure for use in calibrating pressure data sensed by the remote IMD 16. The handheld device 12 may include one or more additional sensors such as an ECG electrode sensor, a systemic blood pressure sensor, a posture sensor, a global positioning system (GPS) sensor, an activity sensor, a temperature sensor, a timer, and/or an oximeter.
The ultrasonic transducer 48 for the handheld device 12 can be configured to both transmit and receive ultrasound signals to and from the remote IMD 16. In other embodiments, the handheld device 12 includes at least one transducer configured for receiving ultrasound signals from the remote IMD 16 and at least one transducer configured for transmitting ultrasound signals to the remote IMD 16. The ultrasonic transducer 48 generates an electrical signal proportional to the magnitude of acoustic energy received by the transducer 48, which is then conveyed to the controller module 82 as an electrical waveform. In similar fashion, the ultrasonic transducer 48 generates an ultrasound signal proportional to the magnitude of the electrical energy generated by the controller module 82.
The controller module 82 includes circuitry for activating or controlling the sensor 80 and for receiving signals from the sensor 80. In some embodiments, the controller module 82 may include an oscillator or other timing circuitry 88 for use in modulating the ultrasound signal transmitted to the remote IMD 16 and/or the pulse generator 14 via the ultrasonic transducer 48. In some embodiments, the controller module 82 further includes signal detection circuitry 92 for detecting ultrasound signals 46 received from the remote IMD 16 and/or the pulse generator 14 via the ultrasonic transducer 48.
The controller module 82 includes a processor 94 for analyzing, interpreting, and/or processing the received ultrasound signal 46, and a memory unit 96 for storing the processed information and/or commands for use internally. The memory unit 96 can include volatile memory and nonvolatile memory. In some embodiments, nonvolatile memory can store code that includes bootstrap functions and device recovery operations, such as microprocessor reset. The nonvolatile memory may also include calibration data and parameter data in some embodiments. The volatile memory can include diagnostic and/or microprocessor-executable code, operating parameters, status data, and/or other data.
The controller module 82, including the processor 94, can be configured as a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC)-compatible device, and/or any other hardware components or software modules for processing, analyzing, storing data, and controlling the operation of the handheld device 12. Processor 94 executes instructions stored in the memory unit 96 or in other components such as, for example, the sensor(s) 80, user interface 84, communications interface 100 and/or other components or modules that may be present. In general, processor 94 executes instructions that cause the processor 94 to control or facilitate the functions of the handheld device 12 and/or components of the handheld device 12.
In certain embodiments, a processor 94 can be configured to run an algorithm or routine that, in addition to decoding the sensor data from the ultrasound signal 46 and analyzing the sensor data, also analyzes the amplitude and timing characteristics of the received ultrasound signal 46 to determine one or more additional physiologic parameters within the body based on a direct measure of the signal 46 itself. In one embodiment, for example, the amplitude and timing characteristics of the ultrasound signal 46 received by the handheld device 12 can be analyzed to determine a second physiologic waveform such as respiration, which can be correlated with the pressure waveform data encoded and transmitted as part of the ultrasound signal 46. The pressure and respiration waveforms can be further analyzed together to determine precisely the end diastolic pressure occurring at end expiration.
The user interface 84 can include a screen or display panel for communicating information to a physician and/or to the patient. In certain embodiments, the user interface 84 can also be used to display other information such as any physiologic parameters sensed by the remote IMD 16 or the handheld device 12 and the power and operational status of the remote IMD 16. The user interface 84 can also display information regarding the characteristics of the ultrasound signal 46 received from the remote IMD 16, including, but not limited to the pressure of the ultrasound signal 46, the carrier frequency of the ultrasound signal 46, and the modulation format of the ultrasound signal 46 (e.g., on-off keying, phase-shift keying, frequency-shift keying, amplitude-shift keying, pulse code modulation, frequency modulation, amplitude modulation, etc.), and/or the presence of any communication errors that may have occurred in the transmission.
In some embodiments, the handheld device 12 can include a communications interface 100 for connecting the monitor 12 to the Internet, an intranet connection, to a patient management database, and/or to other wired or wireless means for downloading and/or uploading information and programs, debugging data, and upgrades. According to some embodiments, the handheld device 12 is capable of operating in two modes: a user mode that provides useful clinical information to the patient or a caregiver, and a diagnostic mode that provides information to an individual for calibrating and/or servicing the handheld device 12 or for changing one or more parameters of the remote IMD 16.
The term “module” refers broadly to a software, hardware, or firmware component (or any combination thereof). Modules are typically functional components that can generate useful data or other output using specified input(s). A module may or may not be self-contained. An application program (also called an “application”) may include one or more modules, and/or a module can include one or more application programs.
In embodiments, one or modules within system 400 may be interchanged with one or modules within system 500. The operation of each of the modules illustrated in
The sampling of a blood pressure waveform may be initiated when the hand held device 12 (
When the IMD 16 (
Upon issuing the response byte header, the packet module 514 may issue a response byte that includes one or more blood pressure samples in the form of packets. Table 3 of
Value0 (802) represents a base pressure measurement, which may be used as a starting point of the blood pressure waveform 800. Value1 (804) represents the next sampled value after Value0. Accordingly, a delta value d1 represents the difference between Value1 (804) and Value0 (802). In embodiments, the base pressure measurement Value0 (802) is an actual blood pressure measurement sampled from the blood pressure waveform 800 that is transmitted from the IMD 16 to the hand held device 12. In embodiments, after the base pressure measurement is transmitted, a delta value representative of a difference between the base pressure measurement and the next measurement is transmitted. That is, delta value d1 is transmitted instead of Value1. Subsequently, delta values representative of a difference between the previous pressure measurement and the next measurement are transmitted. By transmitting the delta value (e.g., d1) instead of the actual blood pressure measurement (e.g., Value1), bandwidth is conserved because fewer bits are used to transmit the delta value. Accordingly, delta values d1 (814) to d5 (816) may be transmitted instead of values Value1 (804)-Value5 (812) to conserve bandwidth. One aspect of a delta compression scheme is that once an un-correctable error is introduced, the data following the error is also corrupted. To minimize the impact this may cause to the data, markers can be periodically sent to give an absolute ADC value.
Below is a summary illustrating how several example delta values d1 (814) to d5 (816) may be calculated according to the blood pressure waveform illustrated in
d
1=Value1−Value0
d
2=Value2−Value1
d
3=Value3−Value2
d
4=Value4−Value3
d
5=Value5−Value4
The transmit line (XMT) 912 may include a waveform representation of one or more bits. As an example, the XMT line 912 illustrates 9 pulses corresponding to the sync bit 904, the six bit data packet 906, the parity row bit 908, and the parity column bit 910. The pressure measurement section 914 illustrates a time period for performing a blood pressure measurement. The receive line (RCV) 916 illustrates a time period for listening for a prompt to start sensing a blood pressure measurement. In additional embodiments, a blood pressure waveform may be sampled at 25 Hz. When a blood pressure waveform is sampled at 25 Hz, a sample may be taken every 40 ms with a corresponding setting period, pressure measurement period between each sampling period. Additionally, a sync bit, data packet, parity row bit, and parity column bit may be prepared between each measuring period. In embodiments, when a blood pressure waveform is sampled at 25 Hz, there may be an additional delay period in between samples.
In embodiments, when the ADC module 506 starts sampling the blood pressure waveform 800 sensed by the blood pressure module 504, the ADC module 506 converts the samples from an analog to digital (hereinafter “ADC”) value. According to some embodiments, the first ADC value produced by the ADC module 506 is the base pressure measurement. As illustrated in
In alternative embodiments, the base pressure measurement value sent in the three slot marker (e.g., marker packet, MSB packet, and LSB packet) corresponds to the measurement taken at the middle packet (MSB packet). This method allows better interpolation between the previous value from the base value and the next value after the base.
Table 4 of
Additionally, as illustrated in Table 4, the encoding format includes a marker value (0x3F). Embodiments may use any desired encoding format. In embodiments, the encoding format illustrated in Table 4 accomplishes several goals. One goal of the encoding format is to use a single unique value to represent a marker value. This marker value may be inserted into the waveform periodically to allow the hand held device 12 to verify synchronization, or regain synchronization when data is lost. Particularly, when one or more deltas are lost during transmission, the waveform will not be accurately reconstructed with subsequent deltas. Accordingly, by transmitting a marker and a corresponding base pressure measurement, the hand held device 12 would have the ability to synchronize the deltas with the marker. In embodiments, the marker is a unique value that is not represented in the normal data stream. As an example, a value of six consecutive ones (0x3F) may be used as the marker, which is different from any other encoded value represented for values −31 to 31. In embodiments, the marker may be followed by a current 12 bit ADC value (6 bits at a time in each of the subsequent time slots). A second goal of the encoding format is to increase the number of ones transmitted to reduce the risk of losing synchronization or data dropout. That is, when there is an increase in the number of ones that the hand held device 12 receives, there is less risk of the clock on the hand held device 12 becoming out of sync. Additionally, during acoustic transmission, ones may be easier to detect than zeros. Accordingly, there may be less risk of losing data by increasing the number of ones that are transmitted. Additionally, the marker may provide synchronization on the column parity values since a marker may be set up to always occur in the first packet of a six packet field.
In alternative embodiments, a retroactive signal reconstruction method may be implemented. As an example, when one or more deltas are lost but synchronization is maintained (i.e., all subsequent deltas are good up to the next marker), reconstruction may be permitted by replacing the delta following the marker with a retroactive delta value. In embodiments, the retroactive delta would be the delta between the last data point prior to the marker, and the base pressure value following the marker. In further embodiments, the delta following the retroactive delta may be the difference between the base pressure value and the second value following the base pressure value.
In some embodiments, the encoding format illustrated in Table 4 of
In other embodiments, the encoding format may be determined using a Huffman encoding method. As an example, in a Huffman encoding method, statistics on sample data is taken to determine which values are occurring the most. As an example, if the delta values from 0-3 occur more frequently, fewer bits may be used for these values. However, outside the range of 0-3, more bits are used for those values. Accordingly, by using a Huffman encoding method, bandwidth may be preserved because fewer bits are being transmitted for the values that occur the most. Embodiments may use any desired Huffman encoding method.
In additional embodiments, the encoded format in Table 4 of
To further increase the resolution (and/or range) of the pressure sensor, an optional encoding mode may be implemented in some embodiments. This compression mode (e.g., non-linear data compression), allows the device to send twice the range of pressure deltas for a given 6-bit data word. For example, if 1 mmHg resolution is used, a single delta measurement could track a pressure change from −32 mmHg to +31 mmHg in the uncompressed mode. For the non-linear data compression, the same 1 mmHg resolution can track a pressure change from −60 mmHg to +63 mmHg.
As an example, for pressure values between −16 to +15, the data is mapped 1 to 1. That is, for every value on the input, there is an identical value on the output. For pressure values between −32 to −17, and +16 to +31, a 2:1 mapping is used. That is, a value of +16 or +17 is mapped to the same value, and values +18 to +19 are mapped to the same value (but different from the +16/17 value). For pressure values between −60 to −33, and +32 to +63, a 4:1 mapping is used such that a value of +32, +33, +34, or +35 will be mapped to the same value. Likewise +36, +37, +38, or +39 will be mapped to the same value (but different from the +32/33/34/35 value).
In embodiments, the exact pressure value is dependent on the resolution selected. For example, an output value of 0x27 represents a pressure delta of +8 mmHg at 1 mmHg resolution, or +4 mmHg at ½ mmHg resolution, or +2 mmHg at ¼ mmHg resolution, or +1 mmHg at ⅛ mmHg resolution. When a value is mapped into a compressed region (either 2:1 or 4:1), the pressure sensor module (PSM) uses the lowest value when determining the base value for the next pressure measurement. Any remainder is tacked onto the next value sent so that the over all accuracy is not impacted. An example pressure stream (at 1 mmHg resolution) is shown with both uncompressed and non-linear compression modes in Table 5 of
According to some embodiments, the difference between the current pressure reading and the previous pressure reading may overflow the 6 bit range of the delta value. As an example, as illustrated in Table 4 of the
Table 7 of
After the digital value is obtained, according to some embodiments, the digital value is converted to a specified resolution. As an example, the command illustrated in Table 1 of
Table 8 of
According to some embodiments, the first value (e.g., sample #1 in Table 8) sent from the IMD 16 to the hand held device 12 is the marker (0x3F). The marker indicates to the hand held device 12 that a base value will be sent in the next two time slots (e.g., sample #'s 2 and 3 in Table 8). In some embodiments, according to the samples illustrated in Table 7 of
The fourth value (e.g., sample #4 in Table 8) may be determined by subtracting 0x4B (sample #2 in Table 5) from 0x50 (sample #4 in Table 5). Accordingly, this result is +5. Next, according to the encoding format specified in Table 4 of
According to some embodiments, two parity values may be sent as part of the data packet. The first parity value may be a row parity bit. In embodiments, this row parity bit represents an odd parity value for the data value. For example, the value 0x03 (00112) will have a parity value of “1” since there are an even number of ones in the data value. In another example, the value 0x07 (01112) will have a parity value of “0,” since there are an odd number of ones in the value. The second parity bit may represent a column parity bit from the previous 6 packet set. The first column parity bit value may be for the most significant bit column of the previous 6 packet set. The next column parity bit may be for bit #4 of the previous 6 packet set, where the LSB is bit #0, and the most significant bit MSB is bit #5.
Table 8 of
The row parity bit and column parity bit provides the hand held device 12 the ability to correct single and multiple bit errors in packets sent from the IMD 16 using a dual parity scheme. In embodiments, the error detection module 406 (
An example of a single bit error is shown in Table 9 of
In embodiments, when the error detection module 406 detects an error, the error correction module 408 can be configured to correct the detected error. Referring to the previous example, the error correction module 408 can be configured to toggle or invert bit #1 on value #3, which corrects the error. Multiple errors within the same value can also be corrected.
The ADC module 506 waits for the sampling interval to start at 1606. If the sampling interval has started, the ADC module 506 takes a blood pressure sample at 1608. If it is time to send a marker at 1610, the packet module 514 discards the current sample at 1612. Referring to Table 8 of
If the marker interval is not reached at 1610, the process proceeds to 1616 where the resolution conversion module 508 converts the sample taken by the ADC module 506 to the proper resolution as described above. If the marker was transmitted in any of the two previous packets at 518, the packet module 514 prepares the sample as the data packet 1620. As illustrated in Table 8 of
If the marker was not transmitted in any of the previous two packets at 1618, the process proceeds to 1622 where the delta module 510 determines the delta 1622 as described above with respect to Table 7 of
If the system 500 is configured to perform variable encoding, the process proceeds from 1626 to 1628 where the encoding module 512 changes the encoding format, if necessary, as described above. If the system 500 is not configured to perform variable encoding, the process proceeds from 1626 to 1630 where the packet module 514 prepares the delta value as a data packet. Additionally, the process proceeds from 1628 to 1630 when the system 500 is configured to perform variable encoding. The packet module 1614 may prepare the delta value as a data packet by inserting at least the sync bit before the delta value. After the packet module has prepared a corresponding data packet at 1614, 1620, and 1630, the process proceeds to 1632 where the parity module 516 determines the row parity bit as described above, for example, with respect to Table 8 of
If the previous packet set has been determined, the process proceeds from 1634 to 1636 where the parity module 516 determines the column parity bit as described above with respect to Table 8 of
The process may generally start at 1700 where the send data command module 402 sends the send data command illustrated in Table 1 of
When the read data module 404 receives a data packet, the process proceeds to 1706 where the error detection module 406 determines if the column parity bits for the previous packet set have been received. If the column parity bits for the previous packet set have not been received, the process proceeds to 1714 where the read data module 404 stores the data packets. If the column parity bits for the previous packets that have been received, the process proceeds from 1706 to 1708 where the detection module 406 performs error detection on the previous packet set. As an example, as illustrated in Table 8 of
Accordingly, at 1708, the error detection module 406 performs error detection on the previous packet set. The process proceeds to 1710 to determine if the error detection module 406 detected any errors. If the error detection module 406 did not detect any errors, the process proceeds to 1714 where the read data module 404 stores the data packet. If the error detection module detected errors, the process proceeds from 1710 to 1712 where the error correction module 408 performs error correction on the previous packet sets as described above with respect to Table 9 of
The process may generally start at 1800 where the waveform reconstruction module 410 retrieves the stored data packet. If the retrieved packet includes the marker at 1802, the waveform reconstruction module 410 discards the marker at 1804 and returns to 1800 to receive the next stored data packet. If the retrieved data packet at 1802 does not include the marker, the waveform reconstruction module determines at 1806 if the marker was included in any of the two previously retrieved data packets. If the marker was included in any of the two previous retrieved data packets, the process proceeds from 1806 to 1808 where the waveform reconstruction module 410 loads the retrieved packet as a base value.
As illustrated in Table 8 of
Embodiments of the present invention include various steps, which are described herein. The steps may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the steps. Alternatively, the steps may be performed by a combination of hardware, software, firmware or human representatives of the parties or entities involved in the transaction.
In embodiments, the computing device 1900 includes a bus 1901, at least one processor 1903, at least one communication port 1905, a main memory 1907, and a read only memory 1909. Processor(s) 1903 can be any known microcontroller, such as, but not limited to, a Motorola 68HC11, Intel 8051, Hitachi H8, or Texas Instruments MSP430.
Communication port(s) 1905 can be any known communications conduit such as, but not limited to, an RS-232 port for use with a modem based dialup connection, a 10/100 Ethernet port, or a Gigabit port using copper or fiber. Communication port(s) 1905 may be chosen depending on a network such as a Local Area Network (LAN), Wide Area Network (WAN), or any desired network to which the computing device 1900 connects. In alternative embodiments, the communication port(s) is configured to enable communication through any wireless communication channel such as an acoustic channel, RF channel, inductive channel, or infrared channel. The computing device 1900 may be in communication with peripheral devices such as, but not limited to, printers, speakers, cameras, microphones, or scanners.
Main memory 1907 can be Random Access Memory (RAM), or any other desired storage device(s). Read only memory 1909 (ROM) can be any suitable storage device(s) such as, but not limited to, an Erasable Programmable Read Only Memory (EPROM) chips for storing static information such as instructions for processor 1903.
In embodiments, the main memory 1907 and read only memory 1909 may each comprise of one or more units linked together physically or logically to operate as a single unit.
Bus 1901 communicatively couples processor(s) 1903 with the other memory, storage, and communication blocks. Bus 1901 can be a PCI/PCI-X or SCSI based system bus depending on the storage devices used.
Various modifications and additions can be made to the exemplary embodiments discussed without departing from the scope of the present invention. For example, while the embodiments described above refer to particular features, the scope of this invention also includes embodiments having different combinations of features and embodiments that do not include all of the described features. Accordingly, the scope of the present invention is intended to embrace all such alternatives, modifications, and variations as fall within the scope of the claims, together with all equivalents thereof.
This application claims the benefit under 35 U.S.C. §119 of U.S. Provisional Application No. 61/248,703, filed Oct. 5, 2009, entitled “Physiological Blood Pressure Waveform Compression In An Acoustic Channel,” which is incorporated herein by reference in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
61248703 | Oct 2009 | US |