1. Field of the Invention
The present invention generally relates to synchronization of implantable medical devices, and in particular to synchronization of internal clocks of such implantable medical devices with external non-implanted devices.
2. Description of the Prior Art
An implantable medical device (IMD), such as a pacemaker, implantable cardioverter or implantable defibrillator, typically has functionality for communicating with an external, non-implanted, device, e.g. programmer, by means of wireless communication. For example, a clinician may use the external device to program the operational parameters of the IMD, e.g. by modifying the pacing mode of the IMD after implantation. The IMDs of today typically also can transmit data to the external device, i.e. supporting bidirectional communication. Such transmitted data could include information of various operational parameters of the IMD and/or physiological and diagnostic data collected by the IMD.
The IMDs presently in the market usually do not store collected physiological and diagnostic real-time data in a buffer before transmission. On the contrary, such physiological data is typically transmitted, in “real time”, at the same rate as it is sampled by the IMD. However, the next generation of IMDs will use radio packets and radio frequency (RF) telemetry, where a radio packet contains a relatively large quantity of data samples. As a consequence, sampled data will typically no longer be transmitted on the fly, but first temporarily buffered until a large enough quantity of data is obtained, before transmission as a radio packet to the external device. It is, however, often important for the external device to know the time instance at which the physiological data was sampled. Thus, in order to efficiently process the received physiological data, e.g. by monitoring any significant changes in the data over time, the sampled data is preferably time-stamped.
Time-stamping of physiological data by the IMD is important also for other reasons. Interferences, contact losses, etc. may disrupt the transmission of the radio packets with the data from the IMD to the external device. As a result, the IMD might have to retransmit a particular radio packet a number of times until it is correctly received and decoded by the external device. Without any time-stamping of the data, the external device cannot know the exact time when the sampling actually occurred for the incoming radio packet.
In addition, in the case where the external device receives physiological or diagnostic data both from the IMD and an external diagnostic device, the external device might want to co-process the data from the two independent data sources. For example, the external device could receive intracardic electrogram (IEGM) and/or event marker data from the IMD and surface electrocardiogram (ECG) data from a surface ECG measuring device. If the external device is to co-present the IEGM and surface ECG data on a display screen, the external device has to know the time instance at which the IEGM and ECG data was sampled. This problem is solved if the IMD and preferably also the ECG measuring device time-stamp their respective sampled data before transmission to the external device.
In order to successfully use such a time-stamping, the internal clock of the IMD has to be synchronized with the internal clock of the external device. As a consequence, a reliable and robust synchronization protocol is required for synchronizing the IMD and the external device.
United States Patent Application Publication No. 2003/0114898 discloses a telemetry system enabling RF communications between an IMD and an external device, in which the RF circuitry is normally maintained in a powered down state in order to conserve power. At synchronized wakeup intervals, one of the devices powers up its RF transmitter to request a communications session, and the other device powers up its RF transmitter to listen to the request. The wakeup timers of the two devices are synchronized by one of the devices transmitting a reference time to the other device that adjusts its timer accordingly.
United States Patent Application Publication No. 2004/0215272 teaches a technique for synchronizing the internal clocks of an IMD and an external device, with reduced reliance on periodic polling. The disclosed synchronization technique is based on that one of the devices computes a time drift. This time drift is computed using a calculated drift rate and an elapsed time since a previous synchronization occasion of the clocks. The IMD then polls the external device as a function of this time drift. By applying this technique, the IMD polls the external device at times when the external device is more likely to be receptive to the poll. Once the external device is successfully polled and communication is established, the external device can transmit a reference time to the IMD, which adjusts its internal clocks accordingly.
In the prior art synchronization protocols, as represented by the above-identified US patent applications, the device transmitting the reference time is not informed whether the receiving device actually received the reference time and adjusted its internal clock accordingly, nor whether the receiving device correctly interpreted the reference time, if received at all. Thus, there is a problem in the prior art synchronization protocols in the lack of robust and reliable feedback and hand shaking in the sense that device initiating the synchronization is not informed whether the other device was actually successfully synchronized or not.
The present invention overcomes these and other drawbacks of the prior art arrangements.
It is a general object of the present invention to provide a robust and reliable synchronization protocol based on data feedback.
It is another object of the invention to provide a synchronization of implantable medical devices (IMDs) with external communicating devices.
It is a particular object of the invention is to provide a synchronization of a clock of an IMD with an external device, allowing usage of the clock for time-stamping physiological data collected by the IMD.
The objects are achieved in accordance with the present invention for synchronization of an IMD and an external device, wherein the synchronization is initiated by a master device that is selected from one of the IMD and the external device. The master device reads, in a first time interval, a current first reference time from its internal clock or from an associated time standard clock. This first reference time is associated with the first time interval, in that it represents this first time interval. The master device inserts the first reference time in a synchronization set-up message that is wirelessly transmitted to a slave device being selected from the other of the IMD and the external device. The slave retrieves the first reference time from the message and sets or adjusts its internal clock based on the reference time. The slave further provides a second current reference time and returns it to the master device in an acknowledgement (ACK) response in a second time interval. The slave could provide the second reference time by reading it from its now adjusted internal clock or by calculating it from the first reference time. Thus, the second reference time is provided by the slave based on the first reference time. Upon reception of the ACK response, the master retrieves the included second reference time and investigates whether it is associated with the second time interval. If this is the case, the master device confirms that the slave is successfully synchronized with the master.
This investigating process is preferably implemented by the master device reading a current reference time from its internal or associated clock at the reception of the ACK response. The second reference time is then regarded as associated with the second time interval and the synchronization is successful, provided that the second reference time corresponds to the current reference time, preferably is equal to the current reference time.
This feedback in the synchronization of the invention notifies the master device that the transmitted (first) reference time actually was received by the slave device. In addition, the master device can also confirm, by the comparison of the returned (second) reference time with the reference time read from the master clock, that the slave device set its slave clock to a correct time and within a correct time interval.
If the master device did not receive any ACK response or if the second reference time in the ACK response was not associated with the second time interval, the master preferably reads a new current reference time from its associated master clock and sends a new set-up message to the slave.
If the slave device manages to set its slave clock and return the ACK response within the same time interval as the master transmitted the set-up message, the first and second reference times and the first and second time intervals will be identical. However, it might be possible that the slave is not able to respond directly after reception of the set-up message and the first reference time. In such a case, the second time interval, during which the ACK response is communicated to and received by the master, will be a subsequent time interval. As long as the second reference time provided by the slave is associated with this second time interval, the slave and master are considered synchronized, independent of whether the second time interval is the same as first time interval or a subsequent time interval.
If the slave and master clocks have different clock frequencies so the time intervals used by the master and slave differ, information of the time interval lengths are preferably communicated between the devices and used in the confirming procedure.
The synchronization procedure of the present invention can be extended to involve multiple slave devices, which all then can be synchronized with the master and, thus, with each other. In such a case, the master can transmit (unicast) a set-up message and reference time to each slave device or transmit (multicast or broadcast) a single set-up message and reference time to all slave devices.
In most typical implementations the master is the external device, e.g. in the form of a programmer or data processing system, with the slave as an IMD, or in the case of multiple slaves, the IMD(s) and any external diagnostic device(s). The synchronization of clocks of the IMD and the external device is important for successful transmission and processing of physiological data collected by the IMD and forwarded to the external device. Such physiological data can temporarily be stored in the IMD before transmission, preferably in the form of radio packets, to the external device. By time-stamping the data or the radio packets using the IMD clock synchronized with the external device, the time instance when the data was sampled is known and can be used by the external device when processing the data. This is in particular true in the case where, e.g. because of high interference levels, a particular radio packet and the data contained therein is delayed due to many re-transmissions. Time-stamping is also important when the external device receives physiological data from multiple sources, e.g. the IMD and an external diagnostic device or such a diagnostic device constituting a part of the external device. In order to successfully co-process the data together, e.g. by displaying the different data together on a screen, the relevant time relationship between the data has to been known. This solved by employing clocks synchronized according to the present invention for time-stamping physiological data in the different devices.
The invention offers the following advantages:
Provides a robust and reliable synchronization protocol with data feedback
A single device can perform the synchronization of all independent clocks in the system;
Re-synchronization of the involved devices can be performed at any time;
Enables efficient usage of RF-based transmission of data between IMDs and external devices;
Provides a possibility of time-stamping physiological data to mark the time of sampling the data;
Sampled data can be temporarily stored and subsequently transmitted at any suitable time without loss of the relative time relationship of the data;
Allows discarding physiological data that are no longer relevant; and
Co-processing and co-displaying physiological data from different devices can be performed using different synchronized clocks.
Other advantages offered by the present invention will be appreciated upon reading of the below description of the embodiments of the invention.
Throughout the drawings, the same reference characters will be used for corresponding or similar elements.
The present invention relates to a reliable and robust synchronization of an implantable medical device (IMD), in which an internal clock of the IMD is synchronized with an external communicating device. The synchronized clock can then be used by the IMD for data time-stamping, allowing an efficient processing of such time-stamped data from the IMD in the external device.
The IMD 100 preferably includes functionality for collecting and sampling physiological and diagnostic data, such as intracardic electrogram (IEGM) and/or event marker data in the case of a cardiac-associated IMD. This physiological data and also data representing operational parameters and settings of the IMD 100 might be useful for a clinician and is therefore preferably communicated to an external device 200. As a consequence, the IMD 100 typically includes a communications module to communicate with the external device 200 via a wireless link 190. This wireless transmission could generally be realized using any known non-invasive wireless technique usable in medical applications. A preferred example is radio frequency (RF) telemetry, in which radio packets carrying data are transmitted over the wireless link 190 between the IMD 100 and the external device 200.
The external device 200 of the system 1 is represented by a communicating data processing device in
The data processing device 200 might also be communicating 390 with an external diagnostic device 300, represented by an electrocardiogram (ECG) recorder in
In an embodiment of the present invention, this diagnostic device 300 constitutes a part of the data processing device 200. This combined device then includes both communications functionality (communicate with the IMD 100), data recording functionality (record diagnostic data) and data processing functionality (process or co-process data received from the IMD 100 and/or recorded itself).
In the case the data processing device 200 receives physiological data from two independent sources, i.e. the IMD 100 and the ECG recorder 300 in the FIGURE (or the IMD 100 and internal diagnostic device), the processing device 200 could be configured for co-processing this data. For example, IEGM data from the IMD 100 and surface ECG data from the ECG recorder 300 could be co-presented together on the display screen 265. In such a case, it is important that the time instance at which the respective data was sampled or collected is known. This problem is solved according to the present invention by the IMD 100 and preferably the external diagnostic device 300 time-stamping their respective collected physiological data.
In order to effectively provide a meaningful data time-stamping, the internal clock of the IMD 100 has to be synchronized with the data processing device 200. The synchronization can be initiated by either of the IMD 100 and the data processing device 200 e.g. before or during setting-up a communications session on the communications link 190, or some other time during the communications session.
Furthermore, due to a variety of factors, the internal clocks in the IMD 100 and the data processing device 200 may run at different rates. Accordingly, one internal clock drifts with respect to the other over time, and the internal clocks lose synchronicity. As a consequence, the IMD 100 and the data processing device 200 is preferably also re-synchronized e.g. at each session set-up, at some predefined time instances or periodically.
The synchronization procedure employed between the IMD 100 and the data processing device 200 may likewise be employed between the external diagnostic device 300 (ECG recorder) and the data processing device 200 or between the external diagnostic device 300 and the IMD 100, if these two devices can communicate with each other. Correspondingly, in situations where the system 1 includes more than one IMD 100, all of these IMDs 100, or at least those IMDs that collect physiological data, are preferably synchronized with the data processing device 200.
According to the present invention, the expression “master device” represents the communicating device in the synchronization system 1 that initiates the synchronization procedure by transmitting a reference time according to the invention. This master device could be the IMD 100 or an external device 200, 300, preferably the data processing device 200. Correspondingly, a “slave device” denotes, according to the present invention, the other device communicating with and to be synchronized with the master device. The slave device is then preferably the other of the IMD 100 or the external device 200, 300. Note that a master device, e.g. the data processing device 200, can synchronize multiple, i.e. at least two, slave devices, e.g. the IMD 100 and the ECG recorder 300.
The label “master device”, thus, denotes the initiating device, which can be different from one synchronization procedure to the next. For example, in a first synchronization procedure, the IMD 100 transmits a reference time over the wireless link 190 to the data processing device 200 for the purpose of initiating the synchronization procedure. Thus, the IMD 100 is the master device with the processing device 200 as slave in this first procedure. In a subsequent re-synchronization procedure, the processing device 200 could be the master and the slave is then the IMD 100.
Before describing the synchronization procedure according to the present invention, a discussion of the problems with the prior art synchronization protocols without any reliable feedback and confirming procedures first follows in connection with
Each such length (Tk) time interval Tk, Tk+1 is then associated with a given reference time tk, tk+1. For example, assume that the clock is implemented as a wrap-around counter counting up from 0 to K−1 and wrapping from K−1 to 0. The time period between the time instance where the clock counts from k−1 to k to the instance where the clock counts from k to k+1 represents such a time interval. The association between a time interval Tk, Tk+1 and a reference time tk, tk+1 means that during the time interval Tk (Tk+1) the clock is tk, (tk+1).
If the master device transmits the reference time tk rather late in the time interval Tk, it might be possible that the reference time tk is not received by the slave until in the next time interval Tk+1. The slave device, thus, adjusts its clock by setting it according to the reference time tk, whereas the clock of the master device now is tk+1. The two clocks will then run asynchronomously.
Note, though, that a simple reception acknowledgement will not solve the problem presented in
The present invention solves the synchronization problems discussed above in connection with
The synchronization procedure is initiated by the master that retrieves or reads a current reference time tk from its internal or associated block. This reference time tk is associated with the current time interval Tk. The length of the time interval Tk is preferably relatively long compared to the time it takes to communicate with the slave, in order to potentially allow both transmission of a synchronization set-up message and reception of an acknowledgement (ACK) response within a same time interval.
Thus, the reference time tk is wirelessly transmitted from the master device in the form of a synchronization set-up message to the slave device. Upon reception of this message, the slave sets or adjusts its internal or associated clock accordingly. The slave then composes an ACK response to be transmitted to the master device. This ACK response comprises the reference time tk currently displayed or represented by the slave clock. Since the slave clock has been adjusted based on the reference time tk received from the master and the reference time tk in the ACK response is retrieved from the slave clock after the adjustment, the reference time tk in the ACK response is based on the reference time tk from the master device. In an alternative implementation, in particular in the case where the slave adjusts its clock and responds rather quickly so that the reference time tk in the ACK response will represent the same time as the reference time tk in the received synchronization message, the slave can provide the reference time tk to be included in the ACK response directly from the received reference time tk, without first adjusting the clock and then retrieving the reference time tk therefrom.
In either case, once the master device receives the ACK response it confirms that the slave is synchronized with the master provided that the reference time tk included in the ACK response is associated with the time interval Tk, during which the master received the response. As is represented by the embodiment illustrated in the
In the sequence above, the ACK response from the slave will not be accepted by the master because the response is received too late, i.e. in the “wrong” time interval. The master cannot be certain in what time interval the slave set its clock, was it in the preceding time interval Tk or in the current interval Tk+1? The only safe way is to re-run the synchronization set-up. As a consequence, the master provides a second set-up message and a second reference time tk+2 associated with the current time interval Tk+2. The message is transmitted to the slave that sets its clock according to the included reference time tk+2. The slave also composes a second ACK response with the reference time tk+2 provided from the set slave clock or from the received reference time tk+2 and returns it to the master. The master confirms that the slave and master are now synchronized since the received reference time tk+2 is associated with the current reference time Tk+2.
As is illustrated in the signaling diagram of
Note that the slave does not necessarily have to return the ACK response within the same time interval as the set-up message and reference time was received from the master device. This is schematically illustrated in
The time intervals according to the present invention can represent the smallest time increment necessary for the sampling system with respect to the frequency content of the physiological signal. However, also longer time intervals than this smallest time increment could be employed. For example, assume a sampling or clock rate of 250 Hz. This means that the smallest time step is
A time interval could then be 4 ms long. In another embodiment, a longer time interval is used for synchronization purposes. A wrap-around counter clock having a clock frequency of 250 Hz and starting from the clock state 0, will four ms later be 1, is 2 eight ms later and so on. It could then be possible that a time period of 4 ms is too short for allowing the master and slave sufficient time to complete a synchronization procedure. In such a case, the time interval used for synchronization purposes could be longer than this smallest 4 ms time step, e.g. being 40 ms. This means that the reference times tk, tk+i, tk+2, . . . could then represent 0, 10, 20, . . . .
If one of the master and slave employs a time interval longer than, the smallest time step and/or if the clocks of the two devices run at different clock frequencies, information of the employed time interval length is preferably communicated before initiating the synchronization procedure or during the procedure.
In
In an alternative implementation, the slave device communicates its slave time length or slave clock frequency to the master device. The master then compensates, upon reception of the ACK response, for the different time interval lengths.
In the previous FIGURES, the time intervals of the master and slave device, though possible different, has been illustrated as fixed. The present invention is, however, not limited thereto. For example, the clock of one of the devices might have an adjustable clock frequency. As a result, the length of the time interval associated with this device might change during operation. In such a case, this device preferably informs the other device about the new interval length or compensates itself for the new length in a following (re-)synchronization procedure.
In an alternative implementation, a new time interval can start running from the time instance at which the slave clock was set based on the received reference time tk. As a result, which is illustrated in the upper portion of the FIGURE, the slave clock will lag behind the master clock with a period of time that corresponds to the period between the start of the current time interval tk as defined by the master clock until the instance when the slave set its clock. This is generally no problem for the synchronization system, since such a small time lag can often be neglected. However, if such a delay or lag is relatively constant or if it can be estimated, the master and slave can compensate for this time offset of their clocks.
As is illustrated in the lower portion of
In the discussion of the present invention above in connection with
Instead of basically running N separate synchronization procedures for the purpose of synchronizing N slaves with the master, a combined synchronization can be performed as is illustrated in
For example, a first slave responds with a correct ACK within the same time interval and is regarded as successfully synchronized. A second slave cannot respond directly after reception of the set-up message, e.g. because the slave is occupied with some other task. As a consequence, the ACK response is transmitted rather late within the time interval Tk and does not reach the master until the next time interval Tk+1. However, since the reference time tk included in the ACK response is associated with the time interval Tk and not the reception interval Tk+1, the slave cannot be regarded as synchronized. The master can then re-run a separate synchronization with this particular slave by unicasting a new set-up massage to the slave. Correspondingly, the Nth slave cannot respond until the time interval Tk+2. However, this slave includes the reference time tk+2 associated with this interval Tk+2 in its ACK response. The master can then grant successful synchronization of the slave.
The master preferably re-initiates the synchronization procedure, which is schematically illustrated by the line L1, if the synchronized is not confirmed due to that the second reference time is not associated with the second time interval.
The method then ends.
The master device can generally perform this synchronization at any time. The synchronization could, for example, be a part of the set-up procedure for a communications session between the master and the slave. Alternatively, or in addition, the synchronization can be performed during such a communications session. In a further alternative, the master could be configured for performing the synchronization at predefined time instances, e.g. periodically.
In the case of failed synchronization or in the case of a subsequent re-synchronization, which is schematically illustrated by the line L2, the synchronization protocol of the present invention is performed once more starting from step S10. The method then ends following a confirmed synchronization in step S13.
In the case of master and slave clocks implemented as wrap-around counters so that the reference times will be zero or a positive integer, the second reference time is regarded as corresponding to the current reference time in step S31 if the two reference times are equal. In other clock implementation, it might be more suitable to regard the second reference time as corresponding to the current reference time in step S31 if the second reference time fulfills the following requirement:
current reference time−α<second reference time<current reference time+α
Thus, the second reference time then corresponds to the current reference time even if not completely equal thereto as long as it is within a predefined time distance a from the second reference time.
The methods according to the present invention may be implemented as software, hardware, or a combination thereof. A computer program product implementing the methods or a part thereof comprises software or a computer program run on a general purpose or specially adapted computer, processor or microprocessor. The software includes computer program code elements or software code portions that make the computer perform the methods using at least one of the steps previously described in
A master clock 420 is provided in the master device 400 or alternatively arranged outside of the master device 400 but accessible for the master 400. This clock 420 is used by the master 400 for providing reference times and preferably also for investigating whether to confirm a slave to be synchronized with the master clock 420. Any clock implementation 420 that can represent time can be used according to the present invention. A typical implementation of the clock 420 could be a counter and preferably a wrap-around counter. The clock 420 has an intrinsic clock frequency or rate that defines a minimum time period representable by the clock 420. This minimum time period can be used by the master device 400 as a time interval in the synchronization operation according to the present invention. Alternatively, a longer time period than this minimum period is used as synchronization associated time interval.
The master 400 also includes a clock manager 430 for managing the operation of the master clock 420. The manager 430 in particular retrieves reference times from the clock 420 that will be transmitted by the I/O unit 410 to a slave device. The manager 430 preferably also retrieves a reference time from the clock 420 when the I/O unit 410 receives an ACK response from a slave. The clock manager 430 can also be employed for setting and re-setting the clock 420 based e.g. upon a received clock set command from an external unit. This external unit could be a clock reference unit that provides GPS (Global Positioning System) derived time UTC (Universal Time) time or GMT (Greenwich Mean Time) time.
A synchronization unit 470 is provided in the master device 400 and is used for investigating received ACK responses from the slaves to be synchronized with the master 400. This synchronization unit 470 checks whether the time reference in a received ACK response is associated with the time interval during which the I/O unit 410 received the ACK response. In the case that the master 400 and the slave use different time interval length, the I/O unit 410 can have received a notification of the time interval length of the slave. In such a case, the synchronization unit 470 preferably uses this information in the synchronization procedure for compensating between any interval length differences, unless already performed by the slave.
The synchronization unit 470 preferably includes a time reference comparator or comparing unit 475, or such comparing functionality could alternatively be implemented directly in the synchronization unit 470. When the I/O unit 410 receives an ACK response from a slave, the synchronization unit 470 or some other unit in the master 400 retrieves the time reference included in the ACK response and forwards it to the comparator 475. At the ACK reception, the clock manager 430 retrieves a current reference time by investigating and reading the master clock 420. This current reference time is forwarded to the comparator 475. The comparator 475 then compares the two reference times and if they correspond to each other, e.g. being equal or the absolute difference between the time references is smaller than a predefined threshold, the received time reference is regarded as associated with the time interval during which the I/O unit 410 received the time reference. As a consequence, the synchronization unit 470 and the master device 400 then confirm that the slave is synchronized with the master 400.
Once the synchronization unit 470 has confirmed successful synchronization, it may optionally inform the slave using the I/O unit 410 that the slave is now successfully synchronized.
If the synchronization is unsuccessful so that the received reference time does not correspond to the current reference time, the synchronization unit 470 could urge the clock manager 430 to retrieve a new reference time from the clock 420 which will then be transmitted by the I/O unit 410 in the form of a new synchronization set-up message.
Furthermore, if the I/O unit 410 did not successfully receive (demodulate and decode) the ACK response, it preferably returns an ACK request message to the transmitting slave device.
The units 410 to 475 of the master device 400 may be provided as hardware, software or a combination of hardware and software. The master device 400 can be an IMD or an external device communicating with an IMD, e.g. a programmer or data processing device.
The slave 500 also includes a slave clock 520 to be synchronized with the master device. Correspondingly to the master clock, any clock implementation that can represent time can be used for the slave clock 520, with a wrap-around counter as a preferred example. Note that the clock frequency of the slave clock 520 does not necessarily have to be the same as for the master clock. In such a case, time interval length information is preferably communicated between the slave 500 and the master 400.
A clock manager 530 is implemented in the slave 500 for managing the operation of the slave clock 520. The manager 530 in particular sets or adjusts the clock 520 based on the reference time received by the I/O unit 510 from the master device. The clock manager 530 furthermore provides a return reference time based on the received reference time. This return reference time could be read from the adjusted clock 520 or calculated directly from the received reference time. In either case, this return reference time is provided to the I/O unit 510 that forwards it to the master device for use in confirming the synchronization.
The units 510 to 530 of the slave device 500 may be provided as hardware, software or a combination of hardware and software. The slave device 500 can be an IMD or an external device communicating with an IMD, e.g. a programmer or data processing device.
The IMD 100 includes an I/O unit 110 for communication with the external device. This I/O unit 110 includes functionalities for processing incoming and outgoing data messages, including modulator/demodulator and coder/decoder functionality. The I/O unit 110 is further preferably connected to an antenna arrangement 112 used for transmitting and receiving radio packets to and from the external unit, respectively. However, the I/O unit 110 could also or alternatively use other forms of wireless techniques than radio packets when communicating with the external device. The I/O unit 110 could for example use an inductive antenna 116 for external wireless communication.
In a preferred embodiment of the invention, the I/O unit 110 is also connected via a lead or wire 114 to a sensor or probe used for collecting physiological data and measuring physiological parameters in the body of the patient in which the IMD 100 is implemented. This physiological data can e.g. be IEGM, ECG, electromyography (EMG), electroencephalography (EEG), electrooculography (EOG), event marker, respiration, blood pressure and/or oximetry related data. This physiological data is collected and sampled by a data processor 140 of the IMD 100 using the I/O unit 110 and the lead 114 with sensor. The physiological data is then preferably time-stamped using a time stamper or stamping unit 160. This time stamper 160 receives the required time data from a slave clock 120 implemented in the IMD 100. By time-stamping the data collected by the data processor 140, the relevant time instance at which the physiological data was sampled can later be determined by the IMD 100 itself or an external unit to which the time-stamped data subsequently is transmitted.
Once the data has been time stamped by the time stamper 160 it can be directly transmitted to an external unit using the I/O unit 110 and the RF antenna 112 or inductive antenna 116. In an alternative implementation, the data is first temporarily stored in a data storage or buffer 150 provided in the IMD 100. This is in particular advantageous in the case where the data is transmitted in radio packets. In such a case, physiological data can be stored in the storage 150 as it is collected by the data processor 140 (and optionally time stamped by the time stamper 160) until enough data is obtained to compose a radio packet. It could also be advantageous for other reasons to store the data before transmission to the external device. For example, data transmission could be performed only at certain predefined time instances when the external device is likely to be active. Alternatively, the data is only transmitted to the external device upon a request therefrom.
Instead of, or alternatively, to time-stamping the physiological data, radio packets containing the data or some other block of multiple data samples could be time stamped by the time stamper 160. This means that data are not time-stamped per data sample but per radio packet or data block.
The clock 120 of the IMD 100 that is used for time-stamping purposes is synchronized with the external device using the synchronization protocol of the invention. The IMD 100 can include a single clock 120 as is illustrated in the figure, which then will be used both for data sampling and other internal operations requiring clocking. However, the IMD 100 could alternatively include multiple clocks 120 used for different purposes, e.g. one dedicated synchronization clock used in the synchronization procedure with the external device and one or more auxiliary clocks used for other IMD operations. These other clocks could then run asynchronous with the external device and the synchronization clock. Alternatively, they can separately and internally be synchronized with the synchronization clock.
Note that in most practical implementation the IMD 100 will typical have the slave role in the synchronization. However, in some instances the IMD 100 may actually be the master with the external device as the slave. A clock manager 130 in the IMD 100 sets the IMD clock 120 upon reception of a synchronization set-up message from an external device. Furthermore, the manager 130 also provides a reference time to be returned to the external device. In the case, where the IMD 100 has the master role, the clock manager 130 retrieves the reference time to be included in the set-up message from the clock 120 and forwards it to the I/O unit 110 that transmits the message and reference time to the slave-acting external device. When receiving an ACK response from this external device, the I/O unit 110 forwards the reference time included therein, to the synchronization unit 170 of the IMD 100. This unit 170 basically operates similar to the synchronization unit of the master device described above in connection with
The units 110, 120, 130, 140, 160 and 170 of the IMD 100 may be provided as hardware, software or a combination of hardware and software. The units 110 to 170 can all be implemented together in the IMD 100. Alternatively, the IMD 100 could be segmented into a dedicated synchronization unit including the functionality of the units 120, 130 and 170, a communications module including the functionality of the units 110, 112 and 116, and a data acquisition unit including the functionality of the units 110, 114, 140, 150 and 160.
The data processing device 200 further includes a data processor 240 that is used for processing physiological and diagnostic input data from the IMD and any external diagnostic devices. This processor 240 preferably uses time-information included in the physiological data or data blocks received by the I/O unit 210 in the data processing. For example, if the IMD transmits its sampled physiological data in the form of a number of time-stamped radio packets, the data processor 240 can use this time information for compiling and organizing the received data in the order it was sampled by the IMD. This will be very important in the case a particular radio packet had to be re-transmitted several times by the IMD before it was correctly received and decoded by the I/O unit 210. In such a case, the data processor 240 can use the time data included in the radio packet to correctly insert the data into the previously received data stream. Furthermore, in the case of any missing data, because e.g. too many re-transmission so the data is no longer relevant, the data processor 240 can use the time-stamping for compensating for time gaps due to the missing data.
In the case the I/O unit 210 receives physiological data from multiple sources, e.g. the IMD and a surface ECG recorder, the data processor 240 can use the time-stamping for co-processing the different data. Thus, using the time-stamping the data processor 240 can provide time relationships between the IMD generated data and the surface ECG data.
The data processed by the processor 240 can be, at least, temporarily stored in a data storage 250 in the data processing device 200, or forwarded using the I/O unit 210 to an external storage. A clinician may later retrieve the physiological data from the storage 250 and use it for investigating the operation of the IMD and the physiological condition of the relevant patient or subject. The data stored in the storage 250 preferably still includes its time-stamping so that the clinician or the data processor 240 later can elucidate when it was actually sampled by the IMD or external diagnostic device.
In addition, or alternatively, to providing the (co-)processed data to the data storage 250, the data processor 240 can forward it to a display unit 260 that displays it on an associated display screen 265. Due to the time-stamping, the change in a measured physiological parameter can be viewed over time on the screen 265. In the case of multiple different physiological data, possibly from different sources, the display unit 260 can co-display this data on the screen 265. In such a case, the change in multiple physiological parameters over time can be viewed together on the single screen 265. For example, the screen 265 can together display an IEGM derived from IMD-based measurements and a surface ECG and possibly IMD-collected event markers.
In addition, to the units 240-265 used for data management, the data processing device 200 preferably includes a clock 220 and clock manager 230. The processing device 200 further preferably comprises a synchronization unit 270, which may be used together with the clock 220 and clock manager 230 in a synchronization procedure involving the processing device 200 and an IMD or the processing device 200 and an external diagnostic device. The operation and function of these units 220, 230 and 270 basically correspond to the corresponding units in
The units 210, 220, 230, 240, 260, 270 and 275 of the data processing device 200 may be provided as hardware, software or a combination of hardware and software. The units 210 to 270 can all be implemented together in the data processing device 200. Alternatively, the data processing device 200 could include only those units 240 to 265 used for data management in addition to the I/O unit 210. In such a case, a separate external synchronization device or programmer could participate and manage the synchronization procedure of the invention with IMDs. This dedicated synchronization device could then include the units 220, 230 and 270 in addition to an I/O unit 210.
The data processing device can be connected to or communicating with a stand-alone external diagnostic device as was discussed above. In an alternative implementation, this diagnostic data measuring or recording functionality could be included in and constituting a part of the data processing device.
Return briefly to the synchronization and data processing system 1 of
The IMD 100 can now start sampling data, e.g. using the lead and sensor inserted in the patient's heart 15. As the data is sampled, or as it is transmitted, preferably in the form of radio packets, the IMD 100 time-stamps the data and/or the radio packets using the synchronized IMD clock. The data processing device 200 can then process the received and time-stamped physiological data from the IMD 100 by e.g. presenting it on the display screen 265.
A same synchronization procedure can also be conducted involving the data processing device 200 and the ECG recorder 300, allowing a synchronization of all devices 100, 200, 300 in the system 1. In such a case, both the IMD 100 and the ECG recorder 300 preferably time-stamps their respective collected physiological data. The data processing device 200 can use the time-stamping for co-processing, e.g. co-displaying, the data from the two units 100, 300.
Note that the system 1 displayed in
Although modifications and changes may be suggested by those skilled in the art, it is the intention of the inventor to embody within the patent warranted heron all changes and modifications as reasonably and properly come within the scope of his contribution to the art.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/SE2005/000652 | 5/4/2005 | WO | 00 | 10/29/2007 |