This application claims the benefit of U.S. Provisional Application No. 60/873,264 to Keacher et al. entitled “TELEMETRY MODULE FOR A MEDICAL DEVICE PROGRAMMER,” and filed on Dec. 6, 2006, and U.S. Provisional Application No. 60/873,190 to Goetz et al. entitled “MEDICAL DEVICE PROGRAMMING SAFETY,” and filed on Dec. 6, 2006. The entire content of each of these provisional applications is incorporated herein by reference.
TECHNICAL FIELDThe invention relates to medical devices, and more particularly, to a medical device programming system.
BACKGROUNDClinicians and patients typically communicate with an implantable medial device (IMD) using a clinician programmer (CP) and patient programmer, i.e., patient therapy manager (PTM), respectively. For example, a clinician may use a CP to perform advanced IMD setup and diagnostics, while the PTM may be configured to provide a less feature-rich interface for the patient to interact with the IMD. For example, while both the CP and PTM may be used to program an IMD and receive diagnostic information from the IMD, the PTM is generally only able to make limited programming modifications, and receive limited diagnostic information that is relevant to the patient, e.g., battery status. Both the CP and the PTM have traditionally communicated directly with the IMD for programming the IMD.
CPs and PTMs are computing devices. Traditionally, these computing devices have been special-purpose devices, i.e., dedicated to tasks associated with programming or otherwise communicating with IMDs. For example, these computing devices generally run custom operating systems, with only software supporting CP or PTM functionality loaded thereon. Further, these computing devices are typically limited in their input/output capabilities, e.g., to communicate with IMDs and, in some cases, each other.
SUMMARYIn general, the invention is directed towards a small telemetry device with a limited user interface for programming an implantable medical device (IMD). In one embodiment, the user interface comprises a safe mode button. In some embodiments, another programming device with a more complex user interface, such as a consumer electronic device including the appropriate programming application or a clinician programmer (CP), may communicate with the IMD via the telemetry device.
In some embodiments, the telemetry device includes a relatively limited number of programming functions. Thus, it may be desirable to have access to another, more complex programming device with richer programming features, such as a dedicated medical device programmer, a consumer electronic device, or another computing device. The telemetry device may be useful for situations in which the dedicated medical device programmer, consumer electronic device or other computing device does not have the capability to communicate directly with the IMD. The telemetry device may be configured to communicate according to a plurality of protocols. For example, the telemetry device may be configured to communicate according to a first protocol, which may be the same as the communication protocol used by the IMD, as well as a second protocol, which may be the same as the communication protocol used by the dedicated medical device programmer, a consumer electronic device, or another computing device. In this way, the telemetry device may be an intermediate telemetry link between the IMD and another computing device.
In other embodiments, the telemetry device may also be configured to communicate according to a third protocol, which may be the same protocol used by another IMD or another programming device (e.g., another consumer electronic device or dedicated medical device programmer). The telemetry device may be configured to support any suitable number of communication protocols for any suitable number of devices.
In one embodiment, the relatively small telemetry device is sized to fit in a pocket in a patient's clothing. For example, the telemetry device may be the approximate size of a key fob for an automobile keyless entry system. In this way, the telemetry device may provide a discreet way to communicate with an implanted medical device.
In one embodiment, the invention is directed toward a system comprising an IMD configured to transmit and receive information according to a first communication protocol, a telemetry device configured to program the IMD, and a consumer electronic device configured to program the IMD. The telemetry device comprises a first housing, a first transceiver disposed within the first housing and configured to transmit and receive information according to the first communication protocol, and a second transceiver disposed within the first housing and configured to transmit and receive information according to a second communication protocol. The consumer electronic device comprises a second housing separate from the first housing and is configured to transmit and receive information according to the second communication protocol. The consumer electronic device is configured to communicate with the IMD via the telemetry device, and the telemetry device includes fewer programming features than the consumer electronic device.
In another embodiment, the invention is directed toward a method comprising receiving an input from a user via a user interface on a consumer electronic device, the user input indicating a desired programming change to be implemented into an IMD, generating a programming signal based on the user input, and transmitting the programming signal to a telemetry device via a first transmission signal according to a first communication protocol. The telemetry device comprises a first transceiver configured to receive the programming signal from the consumer electronic device and a second transceiver configured to transmit the programming signal to the IMD according to a second communication protocol. The telemetry device is configured to program the IMD independently of the consumer electronic device.
In yet another embodiment, the invention is directed toward a method comprising positioning a telemetry device within an operative distance of a consumer electronic device and positioning the telemetry device within an operative distance of an implantable medical device implanted within a patient, the telemetry device comprising a first transceiver configured to transmit and receive information from a medical device programmer according to a first communication protocol, a second transceiver configured to communicate with the implantable medical device according to a second communication protocol, and a user interface to receive an input from a user. The method further comprising inputting a desired programming change for the implantable medical device into the consumer electronic device, wherein the telemetry device delivers a programming signal to implement the desired programming change to the implantable medical device.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
BRIEF DESCRIPTION OF DRAWINGSFIG. 1 is a schematic perspective view of a therapy system including an implantable medical device (IMD).
FIG. 2 is a schematic block diagram illustrating various components of an electrical stimulator and an implantable lead.
FIG. 3 illustrates a system in which a telemetry device may be used to communicate with an IMD.
FIG. 4 is a conceptual diagram of an embodiment of a telemetry device, which is shown to be a key fob.
FIG. 5 is a conceptual diagram of another embodiment of a telemetry device, which is shown to be aligned for connection to a docking station.
FIG. 6 is a schematic block diagram illustrating various components of a telemetry device.
FIG. 7 illustrates one embodiment of a system in which a telemetry device includes a watchdog module to provide an intermediate security link between a consumer electronic device andIMD12.
DETAILED DESCRIPTIONFIG. 1 is a schematic perspective view oftherapy system10, which includes implantable medical device (IMD)12. In the illustrated embodiment, IMD12 is an electrical stimulator. However, in other embodiments, IMD12 may be any type of IMD or an external medical device. For example, IMD12 may be an implantable or external fluid delivery device, a pacemaker, a defibrillator, a trial stimulator or any other type of medical device. Examples of fluid delivery devices that may be used include fluid delivery pumps or reservoirs configured to deliver pharmaceutical agents, insulin, pain relieving agents, gene therapy agents or the like to a tissue site withinpatient16. Accordingly, althoughtherapy system10 and IMD12 are referenced throughout the remainder of the disclosure for purposes of illustration,therapy system10 andIMD12, in accordance with the invention, may be adapted for use in a variety of applications.
IMD12 is coupled tostimulation lead14 and provides a programmable stimulation signal (e.g., in the form of electrical pulses or substantially continuous-time signals) to targetstimulation site18 viastimulation lead14. More particularly, the programmable stimulation signal is delivered to targetstimulation site18 via one or more stimulation electrodes carried bylead14. In some embodiments,lead14 may also carry one or more sense electrodes to permit IMD12 to sense electrical signals fromtarget stimulation site18. Stimulation delivery and sensing may occur via the same electrodes, in some embodiments.Proximal end14A oflead14 may be both electrically and mechanically coupled toconnector13 ofIMD12 either directly or indirectly (e.g., via a lead extension). In particular, conductors disposed in the lead body oflead14 may electrically connect stimulation electrodes (and sense electrodes, if present) adjacent todistal end14B oflead14 toIMD12.
IMD12 may be subcutaneously implanted in the body of a patient16 (e.g., in a chest cavity, lower back, lower abdomen, or buttocks of patient16). In the example ofFIG. 1, IMD12 is a neurostimulator that is implanted inpatient16 proximate to targetstimulation site18. IMD12 may also be referred to as a signal generator, and in the embodiment shown inFIG. 1, IMD12 may also be referred to as a neurostimulator. The configuration ofIMD12 andlead14 shown inFIG. 1 is merely exemplary. For example, in some embodiments, IMD12 may be coupled to two or more leads, e.g., for bilateral or multi-lateral stimulation.
In the embodiment oftherapy system10 shown inFIG. 1,target stimulation site18 is proximate to the S3 sacral nerve, and lead14 has been introduced into the S3sacral foramen22 ofsacrum24 to access the S3 sacral nerve. Stimulation of the S3 sacral nerve may help treat pelvic floor disorders, urinary control disorders, fecal control disorders, interstitial cystitis, sexual dysfunction, and pelvic pain.
Therapy system10 may additionally or alternatively be used to provide stimulation therapy to other nerves or tissue sites of a patient. In other embodiments,target stimulation site18 may be a location proximate to any of the other sacral nerves inpatient16 or any other suitable nerve, organ, muscle, muscle group or another suitable tissue site inpatient16, which may be selected based on, for example, the symptoms or medical condition of a particular patient. For example,therapy system10 may be used to deliver neurostimulation therapy to a pudendal nerve, a perineal nerve or other areas of the nervous system, in which cases, lead14 would be implanted and substantially fixed proximate to the respective nerve. As further examples, lead14 may be positioned for temporary or chronic spinal cord stimulation for the treatment of pain, for peripheral neuropathy or post-operative pain mitigation, ilioinguinal nerve stimulation, intercostal nerve stimulation, gastric stimulation for the treatment of gastric mobility disorders and obesity, muscle stimulation (e.g., functional electrical stimulation (FES) of muscles), for mitigation of other peripheral and localized pain (e.g., leg pain or back pain), or for deep brain stimulation to treat movement disorders and other neurological disorders.Therapy system10 may also be used in cardiac applications.
FIG. 2 is a block diagram illustrating various components ofIMD12 andimplantable lead14.IMD12 includestherapy delivery module40,processor42,memory44,telemetry module46, andpower source47. In some embodiments,IMD12 may also include a sensing circuit (not shown inFIG. 2) to sense a physiological parameter (e.g., electrical activity, blood pressure or temperature) ofpatient16. Implantable lead14 includes elongatedlead body48 extending betweenproximal end48A anddistal end48B. Leadbody48 may be a cylindrical or may be a paddle-shaped (i.e., a “paddle” lead).Electrodes50A,50B,50C, and50D (collectively “electrodes50”) are disposed onlead body48 adjacent todistal end48B oflead body48.
In some embodiments, electrodes50 may be ring electrodes. In other embodiments, electrodes50 may be segmented or partial ring electrodes, each of which extends along an arc less than 360 degrees (e.g., 90-120 degrees) around the periphery oflead body48. In embodiments in which lead14 is a paddle lead, electrodes50 may extend along one side oflead body48. The configuration, type, and number of electrodes50 illustrated inFIG. 2 are merely exemplary.
Electrodes50 extending around a portion of the circumference oflead body48 or along one side of a paddle lead may be useful for providing an electrical stimulation field in a particular direction/targeting a particular therapy deliver site. For example, in applications involving electrical stimulation of a nerve proximate to patient16's scalp (e.g., an occipital nerve), electrodes50 may be disposed alonglead body48 such that the electrodes face toward the target nerve, or otherwise away from the skin ofpatient16. This may be an efficient use of stimulation because electrical stimulation of the skin ofpatient16 may not provide any or may provide minimal therapy topatient16. In addition, the use of segmented or partial ring electrodes50 may also reduce the overall power delivered to electrodes50 byIMD12 because of the efficient delivery of stimulation to targetstimulation site18 by eliminating or minimizing the delivery of stimulation to unwanted or unnecessary regions withinpatient16.
In embodiments in which electrodes50 extend around a portion of the circumference oflead body48 or along one side of a paddle lead, lead14 may include one ormore orientation markers45 proximate toproximal end48A oflead body48 that indicate the relative location of electrodes50.Orientation marker45 may be a printed marking onlead body48, an indentation inlead body48, a radiographic marker, or another type of marker that is visible or otherwise detectable (e.g., detectable by a radiographic device) by a clinician.Orientation marker45 may help a clinician properly orientlead14 such that electrodes50 face the desired direction withinpatient16. For example,orientation marker45 may also extend around the same portion of the circumference oflead body48 or along the side of the paddle lead as electrodes50. In this way,orientation marker45 faces the same direction as electrodes, thus indicating the orientation of electrodes50 to the clinician. When the clinician implants lead14 inpatient16,orientation marker45 may remain visible to the clinician.
IMD12 delivers stimulation therapy via electrodes50 oflead14. In particular, electrodes50 are electrically coupled to atherapy delivery module40 ofIMD12 via conductors withinlead body48. In one embodiment, an implantable signal generator or other stimulation circuitry withintherapy delivery module40 delivers electrical signals (e.g., pulses or substantially continuous-time signals, such as sinusoidal signals) to target stimulation site18 (FIG. 1) via at least some of electrodes50 under the control of aprocessor42. The electrical signals may be delivered fromtherapy delivery module40 to selected electrodes50 via a switch matrix controlled byprocessor42. The stimulation energy generated bytherapy delivery module40 may be formulated as neurostimulation energy, e.g., for treatment of any of a variety of neurological disorders, or disorders influenced by patient neurological response. As described above, in other embodiments,therapy delivery module40 may deliver therapy to other tissue sites within the body ofpatient16.
Thetherapy delivery module40 andprocessor42 may be coupled topower source47.Power source47 may take the form of a small, rechargeable or non-rechargeable battery, or an inductive power interface that transcutaneously receives inductively coupled energy. In the case of a rechargeable battery,power source47 similarly may include an inductive power interface for transcutaneous transfer of recharge power.
Processor42 may include a microprocessor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), discrete logic circuitry, or the like.Processor42 controls the implantable signal generator withintherapy delivery module40 to deliver neurostimulation therapy according to selected stimulation parameters. Specifically,processor42 controlstherapy delivery module40 to deliver electrical signals with selected amplitudes, pulse widths (if applicable), and rates specified by the programs. In addition,processor42 may also controltherapy delivery module40 to deliver the neurostimulation signals via selected subsets of electrodes50 with selected polarities. For example, electrodes50 may be combined in various bipolar or multi-polar combinations to deliver stimulation energy to selected sites, such as nerve sites adjacent the spinal column, pelvic floor nerve sites, or cranial nerve sites.
Processor42 may also controltherapy delivery module40 to deliver each signal according to a different program, thereby interleaving programs to simultaneously treat different symptoms or provide a combined therapeutic effect. For example, in addition to treatment of one symptom such as sexual dysfunction,IMD12 may be configured to deliver neurostimulation therapy to treat other symptoms such as pain or incontinence.
Memory44 ofIMD12 may include any volatile or non-volatile media, such as a random access memory (RAM), read only memory (ROM), non-volatile RAM (NVRAM), electrically erasable programmable ROM (EEPROM), flash memory, and the like. In some embodiments,memory44 ofIMD12 may store multiple sets of stimulation parameters that are available to be selected for delivery of neurostimulation therapy. For example,memory44 may store stimulation parameters transmitted bytelemetry device62, consumerelectronic device64, and/or clinician programmer (CP)66 (FIG. 3).Memory44 also stores program instructions that, when executed byprocessor42,cause IMD12 to deliver neurostimulation therapy. Accordingly, computer-readable media storing instructions may be provided to causeprocessor42 to provide functionality as described herein.
As discussed below, the program instruction that dictates the stimulation therapy parameters ofIMD12 may be changed via an external programming device, such as a telemetry device62 (FIG. 3), a programmer66 (e.g.,CP26 orpatient programmer28 ofFIG. 1) or a consumer electronic device64 (FIG. 3) running an application that providesIMD12 programming capabilities. Stimulation parameters include, but are not limited to, a voltage or current amplitude of the electrical signals, pulse widths (if applicable) of the electrical signals, the rate of delivery of the electrical signals or a particular program, which may include particular electrode configuration (e.g., a pattern and/or locations of anodes and cathodes of the electrodes50). Programs that control delivery of other therapies byIMD12 may include other therapy parameters. For example, a program that controls delivery of a drug or other therapeutic agent may include a titration rate or information controlling the timing (e.g., frequency) of bolus deliveries.
Processor42controls telemetry module46 ofIMD12 to exchange information with an external programmer, such as telemetry device62 (which is external to and separate from IMD12), consumerelectronic device64 viatelemetry module46 and/or programmer66 (FIG. 3), by wireless telemetry. In addition, in some embodiments,telemetry module46 ofIMD12 supports wireless communication with one or more wireless sensors that sense physiological signals or a patient condition (e.g., a patient activity level or posture) and transmit the signals toIMD12. The wireless sensors may be implanted withinpatient16 or external topatient16.
FIG. 3 illustratessystem60 in whichtelemetry device62 may be used to communicate withIMD12. As will be described in further detail below,telemetry device62 is configured to communicate directly withIMD12, and may directly program or otherwise modify therapy parameters ofIMD12 and/or provide a telemetry bridge for another programming device, such as consumerelectronic device64 ormedical device programmer66.Programmer66 may be a CP, patient programmer or another programmer suitable for programmingIMD12. Thus, while aCP66 is primarily referred to throughout the description ofFIG. 3, in other embodiments,programmer66 may be any other programming device.CP66 may be a dedicated hardware device with dedicated software for programming ofIMD12. Alternatively,CP66 may be an off-the-shelf computing device running an application that enablesCP66 toprogram IMD12. In another embodiment,telemetry device62 may also be configured to provide a telemetry bridge for another programming device, such as a patient therapy manager (PTM), in addition toCP66.
To help better meet the needs of patients,telemetry device62 may be a relatively small device used to program the therapy delivered byIMD12 via direct and/or indirect manipulation oftelemetry device62.Telemetry device62 is in a separate housing fromIMD12, consumerelectronic device64, andCP66. Thus,telemetry device62 is a self-contained telemetry device that is separate fromIMD12, consumerelectronic device64 andCP66.
Telemetry device62 provides many roles withinsystem60. In each aspect, however,telemetry device62 is configured to communicate directly withIMD12, and particularly,telemetry module46 withinIMD12.Telemetry device62 is configured to bridgeIMD12 with a programming application on a separate device, whether the device is consumerelectronic device64,CP66, or another computing device. In this way,telemetry device62 may provide an intermediary telemetry interface forIMD12 and another device.
Telemetry device62 is configured to transmit and receive information according to at least two different telemetry protocols (i.e., communication protocols), and typically includes two or more transceivers configured to support each of the telemetry protocols. One telemetry protocol is configured to transmit and receive information fromIMD12, while at least one other telemetry protocol is configured to transmit and receive information from at least one other device, such as consumerelectronic device64 orCP66. Examples of communication protocols include, but are not limited to, radio frequency (RF) communication protocols, such as RF communication according to the 802.11 or Bluetooth specification sets, infrared (Ir) communication, e.g., according to the IrDA standard, or other standard or proprietary telemetry protocols.
Telemetry device62 may also include a signal processor to translate one telemetry protocol into another telemetry protocol in order to translate communication signals fromIMD12 to a protocol understood by consumerelectronic device64 and/orCP66. For example,telemetry device62 may include a general purpose processor with signal processing software capable of translating communication signals from one protocol to another.
In one embodiment,telemetry device62 is configured to interact with more than one IMD. For example,telemetry device62 may be configured to communicate via one telemetry protocol for interacting with an electrical stimulator and another telemetry protocol for interacting with a fluid delivery device, such as a drug pump.
In some embodiments,telemetry device62 does not include any direct programming functionality, but rather only serves to link a programming device (e.g., consumerelectronic device64 or CP66) withIMD12. In other embodiments,telemetry device62 includes a minimal set of programming features, but is configured to interface with a separate “feature-rich” programming device with substantially more programming features thantelemetry device62. Such a feature-rich device may be, for example, consumerelectronic device64,CP66, a PTM, and/or a custom hardware device. For example,telemetry device62 may interface with a PTM to allowpatient16 to control more advanced functions typically included on a traditional PTM.
As previously discussed,telemetry device62 may include functionality that enablestelemetry device62 to directly programIMD12. That is, in some embodiments,telemetry device62 includes a user interface that enables a user to input a desired programming change or otherwise indicate program parameters forIMD12.Telemetry device62 may then deliver the desired programming change toIMD12. The programming functionality oftelemetry device62 enablespatient16 to usetelemetry device62 as a PTM forIMD12 in addition to or instead of another PTM. The user interface may include one or more buttons that may be activated to change one or more parameters of the therapy delivered byIMD12. As described above, the therapy parameters may include, but are not limited to, amplitudes of the electrical signals, pulse widths (if applicable) of the electrical signals, the rate of delivery of the electrical signals or a particular program in the case of electrical stimulation therapy, and drug dosage or frequency of drug delivery in the case of a drug delivery therapy.
Given the relatively small size oftelemetry device62 as compared tomany CPs66 or existing PTMs, the user interface oftelemetry device62 may only allow a small subset of programming options becausetelemetry device62 may only be able to support a small subset of programming options. In addition, the user interface oftelemetry device62 may provide fewer features (e.g., buttons or displays) than consumerelectronic device64 orprogrammer66. For example, as discussed below in reference toFIG. 4,telemetry device62 may include an “on/off” button to turn stimulation therapy on or off (which, as discussed in further detail below, is typically a safe mode, rather than turningtherapy 100% off) and/or “increment/decrement” buttons in order to increase or decrease a stimulation frequency or amplitude.
Telemetry device62 may interact withIMD12 using telemetry protocols known in the art, such as a RF telemetry protocol. Some telemetry protocols may be optimized iftelemetry device62 is placed within a certain distance ofIMD12. For example, when using a RF telemetry protocol to communicate withIMD12,telemetry device62 may be placed within about 2 centimeters (cm) to about 125 cm, such as about 13 cm, ofIMD12 during programming activities.Telemetry device62 may be easily placed at an appropriate location during programming ofIMD12 because of its relatively small size.
FIG. 4 is a schematic plan view of one embodiment oftelemetry device62, in whichtelemetry device62 is a key fob including akey ring100 that is configured to receive one ormore keys102. In other embodiments,telemetry device62 may be attached to the clothing ofpatient16, attached to a strap secured to patient16 (e.g.,telemetry device62 may be a pendent on a necklace), or placed in a pocket ofpatient16 during programming activities. In the embodiment shown inFIG. 4,telemetry device62 has limited functionality for programmingIMD12. In particular,telemetry device62 includes onbutton104, offbutton106,increment button108,decrement button110, and light emitting diode (LED)112. Eachbutton104,106,108, and110 includes a visual indication of a function. For example, theincrement button108 has a printed graphic (+) indicating the increment functionality ofbutton108.Buttons104,106,108, and110 andLED112 are electrically coupled to circuitry withintelemetry device housing114, which also defines openings forbuttons104,106,108, and110 andLED112 to extend to an outer surface.Telemetry device housing114 may be formed of any suitable material, such as a relatively hard plastic or polymer.
Buttons104,106,108, and110 may be push buttons, soft-keys, voice activated commands, activated by physical interactions, magnetically triggered, activated upon password authentication push buttons, contacts defined by a touch screen, or any other suitable user interface. In some embodiments, buttons oftelemetry device62 may be reprogrammable. That is, usingbuttons104,106,108, and110 as an example,buttons104,106,108, and110 may be reprogrammed to provide different programming functionalities as the needs ofpatient16 changes or ifIMD12 changes.Buttons104,106,108, and110 may be reprogrammed, for example, by CP66 (FIG. 3) or another computing device.
Buttons104,106,108, and110, as well as any other buttons provided ontelemetry device62 may be designed to help reduce accidental activation of a programming function. For example, thebuttons104,106,108, and110 may be recessed from an outermost surface of thehousing114. Alternatively or additionally,patient16 may be required to hold a button for a predetermined amount of time in order to activate the button, and/or there may be a hold function that prevents the buttons from being activated unless the hold function is deactivated. For example, the hold function may be activated and deactivated via manipulation of a slider bar (not shown) or manipulation of a specified combination of buttons.
Activation of the “off”button106 may not turn the therapy delivered byIMD12 completely off and, instead, may change the therapy delivered byIMD12 to a safe mode setting. The safe mode setting may or may not be equivalent to turning the therapy delivered byIMD12 off. For some therapies and patients, turning off the therapy delivered byIMD12 may not be safe or comfortable. A safe mode setting that defines a set of parameters that is known to provide a safe and comfortable therapy to patient16 fromIMD12 may provide a better alternative than completely turning the therapy delivered byIMD12 off. The safe mode setting may define a minimal amount of therapy that provides comfortable and safe therapy topatient16.
In the example of an implanted neurostimulator, the safe mode forpatient16 may be a specific combination of therapy parameters that yield a safe and comfortable therapy setting. In some embodiments, the safe mode is a preconfigured setting or a rollback to a last or last-known safe and comfortable therapy state. In one embodiment, the safe mode for an implanted neurostimulator may be to set the stimulation amplitude to zero volts. This would effectively turn off the stimulation and remove any undesirable side effects of the therapy. In some cases, eliminating the stimulation may provide discomfort topatient16 if, for example,IMD12 is used to treat pain. In such a case, the safe mode may set forth a therapy program including a relatively low current or voltage amplitude in order to provide a minimal degree of pain relief topatient16. For an implantable drug delivery device, the safe mode setting may involve a user-predefined rate (e.g., set by a clinician) which takes into account the possibilities of drug concentration change, tube-set, and/or other variables.
In some embodiments, the safe mode may be defined by allowingpatient16, a clinician, a caregiver, or another qualified individual to save one or more safe therapy configurations that providepatient16 with safe and comfortable therapy.Patient16, a clinician, a caregiver, or another qualified individual may have the ability to rollback to any of the safe mode configurations forIMD12 as desired. In one embodiment, the user interface provided ontelemetry device62 may only include means for programmingIMD12 to enter a defined safe mode. The safe mode settings may be saved withintelemetry device62, which may include any volatile or non-volatile media, such as a RAM, ROM, NVRAM, EEPROM, flash memory, and the like to store the safe mode settings forIMD12. Alternatively, the settings for the safe mode ofIMD12 may be stored inIMD12, andtelemetry device62 may provide instructions toIMD12 to access and implement the stored safe mode setting, rather than sending the actual safe mode settings themselves.
The increment/decrement function activated bybuttons108 and110, respectively, are optionally included ontelemetry device62 and may increment or decrement the amplitude of the therapy that is currently being delivered fromIMD12 topatient16. In the example of neurostimulation, the increment/decrement function may modify the amplitude of the electrical signal delivered fromIMD12. In the example of drug delivery, the increment/decrement function may modify the dosage delivered during a bolus. Additionally,telemetry device62 may include a button to administer a bolus of a drug by IMD12 (ifIMD12 is a fluid delivery device). The increment/decrement function may be limited to patient-specific adjustment ranges defined by a clinician (e.g., viaCP66 ofFIG. 3) in order to ensure that the therapy delivered byIMD12 stays within a safe, clinician-approved range.
Telemetry device62 may include analert LED112 or other suitable alert feature. In some embodiments,IMD12 may send an alert signal totelemetry device62 to activateLED112 in order to indicate to a user that a problem may be present. The alert signal may, for example, signify a low battery, a sensed physiological event, or another problem. For example, in the embodiment of a drug delivery device,IMD12 may active the alert feature ontelemetry device62 in response to detecting a low level of drug remaining. Activation of the alert feature ontelemetry device62 may alertpatient16 to contact a clinician or take other precautions. In one embodiment, a more detailed description of the issue causing the activation of the alert feature is forwarded to another external programming device (e.g., consumer electronic device64). The external programming device may then forward the alert to a remote device in a remote location, such as a clinician office.
LED112 (or another LED) may also provide confirmation to a user that an operation has been carried out or that an input viabuttons104,106,108, and110 or another user interface has been received. For example, whenbutton108 is depressed bypatient16, and a programming signal is sent toIMD12 to increment a therapy parameter,LED112 may be activated in order to provide positive feedback to the patient regarding the successfully sent programming signal.Telemetry device62 may include more than oneLED112.
Regardless of whethertelemetry device62 is configured to directly programIMD12,telemetry device62 may be configured to communicate with other programming devices, such as consumerelectronic device64 andCP66 to provide a telemetry link betweenIMD12 and the other programming devices.
Additionally, as illustrated inFIG. 5,telemetry device62 may configured to communicate withdisplay120.Display120 may be capable of connecting totelemetry device62 via aUSB link121, which is aligned to be received inUSB port123 ofdisplay120, or other suitable means. In this manner,display120 is a docking station fortelemetry device62. In embodiments in whichtelemetry device62 has a display, and embodiments in which telemetry device does not have a display,display120 may provide a larger user interface for interacting withtelemetry device62 or may merely be a passive display fortelemetry device62. Alarger display120 may be beneficial to patients with visual and/or tactile impairments.
In embodiments in which display120 is more than a passive display fortelemetry device62,display120 may optionally include a user interface, such as a touch screen and/or additional buttons, as well as processing capabilities. In embodiments in which display120 provides a larger user interface for interacting withtelemetry device62,display120 may givepatient16, a clinician or other medical professional access to advanced features that are not available via direct manipulation oftelemetry device62. Thus,display120 may be a feature-rich programming interface fortelemetry device62.Patient16 may have the option of leavingdisplay120 at home or carrying it with him or her. In some embodiments in whichtelemetry device62 includes a rechargeable battery,display120 may recharge power source80 (FIG. 6).
Returning now toFIG. 2, in embodiments in whichtelemetry device62 communicates with consumerelectronic device64, consumerelectronic device64 may function as a PTM that includes richer features thantelemetry device62. In one embodiment, consumerelectronic device64 is a mobile phone. In other embodiments, consumerelectronic device64 may be another type of consumer electronic device, which typically serves another purpose besides that of a medical device programmer. For example, consumerelectronic device64 may be a personal digital assistant, a portable digital music player, a laptop computer, and the like.
Consumerelectronic device64 may not be configured to transmit and receive information according to the same telemetry protocol asIMD12, and thus, may not be configured to communicate directly withIMD12. In addition, because consumerelectronic device64 is typically a readily available, off-the-shelf device, consumerelectronic device64 may be relatively difficult to modify to include the telemetry circuitry necessary to communicate withIMD12.Telemetry device62 includes a transceiver, such as a Blue Tooth transceiver, that is configured to communicate with a broad range of consumerelectronic devices64 andCPs66, as well as a transceiver that is configured to communicate directly withIMD12. Thus, consumerelectronic device64 orCP66 may link toIMD12 viatelemetry device62 in order to programIMD12 or to upload or download information from and toIMD12. Information may be transmitted fromIMD12 totelemetry device62, which may then transmit the information to consumerelectronic device64 orCP66. As another example, information may be transmitted from consumerelectronic device64 orCP66 totelemetry device62, which may then transmit the information toIMD12.
Patient16, a clinician, caregiver, and/or other qualified individuals may usetelemetry device62 in order to communicate withIMD12. For example,patient16 may have mobile phone that includes software for programmingIMD12.Patient16 may then usetelemetry device62 to link the mobile phone withIMD12 because the mobile phone may not include the appropriate telemetry module for communicating withIMD12.
Consumerelectronic device64 may allowpatient16 toprogram IMD12 in a subtle, non-obvious manner that may allowpatient16 more privacy than a traditional programmer. In some embodiments, consumerelectronic device64 may run a Java applet or other appropriate application that allows consumerelectronic device64 to perform programming functions. Consumerelectronic device64 may perform the same or similar functions as a PTM with a more traditional appearance. For example,patient16 may use consumerelectronic device64 to start, stop, or adjust therapy and/or select a program from a library of stored therapy programs. In embodiments in whichIMD12 is an electrical stimulator, consumerelectronic device64 may permitpatient16 to adjust stimulation parameters such as duration, amplitude, pulse width, and pulse rate within an adjustment range specified by a clinician (e.g., via a CP).
Using consumerelectronic device64 programmed by a Java applet or other appropriate application may better allow PTMs to use cutting-edge technology. Consumerelectronic devices64 such as mobile phones are typically redesigned and updated faster than traditional PTMs. Accordingly, implementing an IMD programming application into a consumer electronic device, such as a mobile phone, enables a PTM to operate according to the latest hardware, innovative processing capabilities, ornamental product designs, and so forth. Once established, the Java applet may be easily modified to keep up with current technology. It may be easier to modify a Java applet than an entire PTM. Furthermore, use of atelemetry device62 may simplify development of PTMs because of the ability to use off-the-shelf devices that are running a particular programming application.
Consumerelectronic device64 may providepatient16 with an interface for control of the therapy delivered byIMD12. More specifically, consumerelectronic device64 may interface withtelemetry device62 toprogram IMD12. Consumerelectronic device64 may be programmed, using a Java applet or other appropriate means, to communicate withtelemetry device62 according to one communication protocol, whiletelemetry device62 is configured to communicate withIMD12 according to another communication protocol in order to transmit the information from consumerelectronic device64 toIMD12. In this manner,telemetry device62 acts as an intermediate telemetry link between consumerelectronic device64 andIMD12.
Consumerelectronic device64 may include a display and input keys that allowpatient16 to interact withtelemetry device62 andIMD12. The Java applet or other appropriate application running on consumerelectronic device64 may temporarily borrow a display and input keys of consumerelectronic device64 for use in programming applications. The user interface of consumerelectronic device64 may providepatient16 with a user interface similar to that of traditional PTMs. For example, like traditional therapy managers, the user interface on consumerelectronic device64 used for programmingIMD12 may include one or more menus and soft keys. In one embodiment, changes to the therapy delivered byIMD12 made via the user interface oftelemetry device62 may be visible on the display of consumerelectronic device64.
Alternatively, in embodiments in whichtelemetry device62 also includes some functionality (e.g., as shown and described with reference toFIG. 4),telemetry device62 may borrow the display from consumerelectronic device64 to provide a more sophisticated user interface for the patient. For example, the patient may view the display of the consumerelectronic device64 to, for example, see the available therapy programs that may be programmed intoIMD12 viatelemetry device62, but the patient may still interact with buttons ontelemetry device62 to select the specific programs. The buttons ontelemetry device62 may correspond to the visual interface provided on the display of consumerelectronic device64, and as the patient engages a button ontelemetry device62, the display of consumerelectronic device64 may reflect the action taken by the patient.
In some embodiments, consumerelectronic device64 may also include applications and a user interface to access more sophisticated programming options stored withintelemetry device62, but otherwise not accessible bytelemetry device62.
Consumerelectronic device64 may communicate withtelemetry device62 via a wired or wireless connection. In one embodiment,telemetry device62 plugs into a USB port of consumerelectronic device64. In other embodiments, consumerelectronic device64 andtelemetry device62 may communicate with each other using any of a variety of local wireless communication techniques, such as RF communication according to the 802.11 or Bluetooth specification sets, infrared communication, e.g., according to the IrDA standard, or other standard or proprietary telemetry protocols.
Using a wireless connection betweentelemetry device62 and consumerelectronic device64 may allow consumerelectronic device64 to be located at a distance away fromtelemetry device62 when programmingIMD12. For example, a Bluetooth connection may allow signals to be transferred betweentelemetry device62 and consumerelectronic device64 as long as the devices are located within approximately 500 centimeters (cm) of each other. This may allowpatient16 to placetelemetry device62 on or near his or her body and hold consumerelectronic device64 in his or her hand without the need to hold consumerelectronic device64 proximate totelemetry device62. This may allowpatient16 to use consumerelectronic device64 toprogram IMD12 more discreetly. For example,telemetry device62 may be located in a clothing pocket ofpatient16 or around a neck of patient16 (e.g., as a necklace) during programming ofIMD12 via consumerelectronic device64. If consumerelectronic device64 is a mobile telephone, the discreetly locatedtelemetry device62 may give the impression thatpatient16 is making a telephone call via consumerelectronic device64 or using other consumer electronic features of consumerelectronic device64 rather than programmingIMD12. Additionally, this may allow a parent, caregiver, or other qualified individual located nearpatient16 to use consumerelectronic device64 toprogram IMD12 without the need to place consumerelectronic device64 proximate totelemetry device62 orIMD12.
Because of the relatively small size oftelemetry device62 and the ability oftelemetry device62 to be discreetly held relatively close toIMD12,telemetry device62 may also help reduce the power that is necessary forIMD12 to communicate with an external programming device.Telemetry device62 may be actively or passively held relatively close toIMD12 in order to decrease the distance for telemetry betweenIMD12 andtelemetry device62, thereby reducing the amount of power that is necessary to obtain telemetry transcription. Reducing the amount of power that is consumed by the power source withinIMD12 for transmitting and receiving information may help extend the useful life ofIMD12.Telemetry device62 may support relatively long distance communication with a consumerelectronic device64 orCP66 because there is less of a concern about power consumption withtelemetry device62 as compared toIMD12, which is not as easily accessible. The power source withintelemetry device62 may more easily be renewed than that ofIMD12.
CP66 is a device that a clinician or other medical professionals may use to communicate withIMD12.CP66 may perform advanced device setup and diagnostics in addition to performing the programming functions of consumerelectronic device64. In this manner,CP66 may be more feature-rich than consumerelectronic device64 ortelemetry device62.CP66 may communicate withIMD12 directly and/or indirectly. For example,CP66 may indirectly communicate withIMD12 viatelemetry device62. Additionally or alternatively,CP66 may indirectly communicate withIMD12 by communicating with consumerelectronic device64 which in turn communicates withtelemetry device62. As yet another alternative, CP may include an internal telemetry module that is configured to directly transmit and receive information according to the telemetry protocol forIMD12.
Telemetry device62 may be useful for situations in whichCP66 may not include telemetry circuitry that is configured to interact and communicate directly withIMD12.CP66 may be a general purpose device, such as a computer, that does not include the specific transceiver necessary for communicating withIMD12.
CP66 may be a computing device that permits a clinician to program therapy forpatient16, e.g., using input keys and a display. For example, usingCP66, the clinician may specify parameters for use in delivery of therapy viaIMD12. Therapy parameters may be downloaded toIMD12 fromCP66. Optionally, operational or physiological data stored byIMD12 may be uploaded toCP66. In this manner, a clinician or other medical professional may periodically interrogateIMD12 to evaluate efficacy and, if necessary, modify the therapy parameters.
CP66 may communicate directly withIMD12 using telemetry techniques known in the art, such as, for example, RF telemetry techniques.CP66 andtelemetry device62 may communicate via cables or a wireless communication link, as shown inFIG. 3.CP66 andtelemetry device62 may, for example, communicate via wireless communication using RF telemetry techniques known in the art.CP66 andtelemetry device62 also may communicate with each other using any of a variety of local wireless communication techniques, such as RF communication according to the 802.11 or Bluetooth specification sets, infrared communication, e.g., according to the IrDA standard, or other standard or proprietary telemetry protocols.
However,CP66 andtelemetry device62 need not communicate wirelessly. For example, in other embodiments,CP66 andtelemetry device62 may communicate via a wired connection, such as via a serial communication cable, or via exchange of removable media, such as magnetic or optical disks, or memory cards or sticks. Further,CP66 may communicate withtelemetry device62 via remote telemetry techniques known in the art, communicating via a local area network (LAN), wide area network (WAN), public switched telephone network (PSTN), or cellular telephone network, for example. Additionally,CP66 may communicate with consumerelectronic device64 using any of the wired or wireless techniques described with respect to communication betweenCP66 andtelemetry device62.
Telemetry device62 provides a relatively small and/or discreet programming device to a patient as compared to many existing PTMs. The relatively small size oftelemetry device62 may provide social advantages and may better serve patient needs as compared some existing, larger PTMs. Some patients with IMDs have indicated a desire for relatively small PTMs, such as PTMs that may be easily hidden from view. Additionally, due to social stigmas associated with medical devices and the PTMs that interface with them, some patients have indicated a desire for PTMs that may be used discreetly.Telemetry device62 enables a PTM to be used discreetly becausetelemetry device62 enables a consumerelectronic device64, such as a mobile phone or a PDA, to be used as a PTM. In embodiments in whichtelemetry device62 includes some programming functionality, the relatively small size oftelemetry device62 enablestelemetry device62 to be used discreetly as a PTM. Additionally, small PTMs may be easier for patients to carry with them.
Additionally, many patients with IMDs use PTMs to access a small subset of the functions allowed by traditional PTMs. A simplified PTM that allows a patient to turn the therapy on, off, up, or down (e.g., adjust the stimulation amplitude) may meet the programming needs of many patients with IMDs, and provides a simpler programming interface for a patient than many existing PTMs.Telemetry device62, which is typically smaller than a conventional patient programmer, may provide these patients with a small, simple programming device.
In some embodiments,telemetry device62 may be a pocket-sized device that it is capable of being easily placed in a pocket of the patient's clothing. For example,telemetry device62 may be approximately the same size as a key fob used to lock and unlock an automobile (e.g., as shown inFIG. 4).Telemetry device62 may be less than approximately12 centimeters (cm) long, less than approximately 8 cm wide, and less than approximately 3 cm high (i.e., thick). In one embodiment, telemetry device may be less than approximately 8 centimeters (cm) long, less than approximately 4 cm wide, and less than approximately 1 cm high (i.e., thick). In another embodiment, telemetry device may be approximately 2 centimeters (cm) long, approximately 2 cm wide, and approximately 1 cm high (i.e., thick). As will be described in further detail below, the minimum size oftelemetry device62 may be determined based on the size of the antenna and the telemetry techniques used.
In some embodiments, consumerelectronic device64 orCP66 may also be linked to a remote device via a cabled or wireless network. For example, a consumerelectronic device64 may transmit information received fromIMD12 viatelemetry device62 to a remote server via a wireless telephone or internet communication network. The remote server may be, for example, a remote clinician computer, and may be located, for example, in another room or another remote location (e.g., in another city).
FIG. 6 is a schematic block diagram illustrating various components oftelemetry device62, which are disposed within housing114 (also shown inFIG. 4).Telemetry device62 may includetelemetry transceiver70 for communicating withIMD12 andprogrammer transceiver72 for communicating with consumerelectronic device64 and/orCP66.Telemetry device62 also includesantenna74,processor76,memory78, andpower source80. In some embodiments,telemetry device62 may not includememory78.
As described previously,telemetry transceiver70 may communicate withIMD12 using telemetry protocols known in the art, such as RF telemetry techniques, andprogrammer transceiver72 may communicate with consumerelectronic device64 and/orCP66 using any appropriate wired or wireless means.Programmer transceiver70 may also communicate with another device (e.g., consumerelectronic device64 or CP66) using known communication protocols.
Antenna74 may be used to receive signals fromtelemetry device62 and/orCP66 and may optionally receive signals fromIMD12. Alternatively, a second antenna may be used to receive signals fromIMD12. Iftelemetry device62 includes two antennas, each antenna may operate at a different bandwidth or orientation in order to minimize interference between the antennas. The size oftelemetry device62 may be determined by the size ofantenna74 and the telemetry techniques used to communicate withIMD12. The size ofantenna74 may be minimized to minimize the size oftelemetry device62 while maintaining telemetry function.
Processor76 may include a microprocessor, a controller, a DSP, an ASIC, an FPGA, discrete logic circuitry, or the like.Processor76 controls communication betweentelemetry device62 andIMD12 and may also control communication betweentelemetry device62 and consumerelectronic device64 and/orCP66.Processor76 may also be used to “translate” signals received via telemetry protocol used byIMD12 to a signal to the telemetry protocol used by consumerelectronic device64 and/orCP66, or vice versa.Processor76 is also configured to execute software that may be stored withinmemory78 oftelemetry device62. The software may include, for example,IMD12 programming applications. Additionally,processor76 may transfer information to and frommemory78.
Memory78 may include any volatile or non-volatile media, such as a RAM, ROM, NVRAM, EEPROM, flash memory, and the like.Memory78 may store data received fromIMD12. For example,memory78 may store data relating to the status and/or programming history ofIMD12 or physiological parameter values determined by sensors coupled toIMD12. Data may be stored inmemory78 until consumerelectronic device64 orCP66 requests to receive the data fromtelemetry device62. In addition,processor76 may extract information from the data received fromIMD12, such as to provide an alert function forIMD12. For example,processor76 may buffer data received fromIMD12 and upon finding, for example, that the power level ofIMD12 is below a certain threshold or a physiological parameter ofpatient16 measured byIMD12 is past a permissible threshold (i.e., whether an alert condition is present),telemetry device62 may provide an alert (e.g., viaLED112 or by transmitting a signal to consumerelectronic device64 or CP66).
Telemetry device62 also includespower source80, which may be a battery. In embodiments in whichbattery80 is rechargeable,telemetry device62 may include a recharge interface, such as a USB port, that may be connected to a power source for recharging oftelemetry device62.
As discussed above,telemetry device62 may be configured to communicate with more than one type of IMD. While in some embodiments, asingle telemetry device62 may be used to communicate with multiple IMDs, in other embodimentsmultiple telemetry devices62 may be used, where each of the multiple telemetry devices is configured to communicate with a different IMD. Each telemetry device may be configured to operate according to a different telemetry protocol, or may provide different programming features.
FIG. 7 illustrates one embodiment of a system in whichtelemetry device62 includeswatchdog module132 to provide an intermediate security link between consumerelectronic device64 andIMD12. Consumerelectronic device64 may run a common desktop operating system and thus may be prone to computer viruses or other security threats. Risks associated with use of consumerelectronic device64 include possible conflicts for resources (e.g., memory, processing capacity, and the like) with other programs within consumerelectronic device64, effects of computer viruses, other corruption of applications or other disruptions of the expected operation of consumerelectronic device64. For example, disruptions caused by a virus or other corruption could result in transmission of repeated, spurious or erroneous commands toIMD12. Such commands may result in unintended, and possibly harmful, changes to the therapy delivered topatient16. The use of a watchdog module may facilitate safer use of consumerelectronic device64 as a programmer. The watchdog module may also provide an added layer of security whentelemetry device62 is communicating with a dedicated programming device, such asprogrammer66.
In the illustrated embodiment, the security system compriseswatchdog module132 oftelemetry device62 andwatchdog increment module138 of consumerelectronic device64.Telemetry device62 and consumerelectronic device64 furthercomprise application modules136 and142 andoperating system modules134 and140, respectively.Application modules136 and142 may contain software applications that may be run ontelemetry device62 and consumerelectronic device64 andoperating system modules134 and140 may contain software defining the operation systems (e.g., Windows Vista or a custom operating system) whichtelemetry device62 and consumerelectronic device64, respectively, use to run the software applications.Application modules136 and142,operating system modules134 and140,system watchdog module132, and systemwatchdog increment module138 may each comprise software that may be executed by a processor, which may be may include a microprocessor, a controller, a DSP, an ASIC, an FPGA, discrete logic circuitry, or the like. A separate processor may provide be associated with each of the eachmodules132,134,136 oftelemetry device62 or two or more of themodules132,134,136 may be implemented controlled by a common processor. The software may be stored within separate or common memory of the intermediate device. The memory may include any volatile or non-volatile media, such as a RAM, ROM, NVRAM, EEPROM, flash memory, and the like. Similarly, a separate processor may be associated with each of themodules138,140,142 of consumerelectronic device64 or two or more of the modules may be controlled by a common processor.
System watchdog module132 oftelemetry device62 may indirectly verify that information transmitted from consumerelectronic device64 totelemetry device62, e.g., a programming command forIMD12, is valid without analyzing the logical validity of the content of the information. For example,system watchdog module132 may comprise a software task that runs ontelemetry device62 to monitor the behavior of consumerelectronic device64. More specifically, in one embodiment,system watchdog module132 expects to periodically receive a defined signal, such as elements of a signature, or a particular programming command from consumerelectronic device64 at predetermined intervals. In this manner, telemetry device62 (the more secure device) monitors consumer electronic device64 (the less secure device). The signature or other signal transmitted from consumerelectronic device64 totelemetry device62 may be, for example, a series of sequential numbers or a predefined pattern of numbers.Watchdog module132 may monitor the behavior of consumerelectronic device64 during a programming session (e.g., while consumerelectronic device64 is sending commands to telemetry device62) or during a down time, when no programming instructions are being sent from consumerelectronic device64 toIMD12 viatelemetry device12.
As another example, in one embodiment,system watchdog module132 may expect to receive a signature or other signal from consumerelectronic device64. If the signature or other signal is not received from consumerelectronic device64 within a predetermined time limit,watchdog module132 may instructIMD12 to enter a safe mode. In this way, signals from consumerelectronic device64 towatchdog module132 may be considered a “stay alive” signal that maintainstelemetry device62 in an active state to act as a link between consumerelectronic device64 andIMD12.
Watchdog increment module138 on consumerelectronic device64 may deliver the defined signature from consumerelectronic device64 totelemetry device62 at predetermined time intervals. Described in further detail below, thewatchdog increment module138 may be reset by rebooting consumerelectronic device64 or by any other suitable means.
Watchdog module132 may maintain a timer, and reset the timer in response to receiving each element of the signature. Expiration of the watchdog timer may involve either counting up to or down from a predetermined value related to the time intervals at which the consumer electronic device sends the signature. The signature may include a completion indicator that notifiestelemetry device62 when consumerelectronic device64 has successfully completed sending instructions totelemetry device62. In other embodiments, the completion indicator may be sent separately from the signature to notifytelemetry device62 when consumerelectronic device64 has successfully completed sending instructions totelemetry device62.
If for any reason, the transmission of the defined signature from consumerelectronic device64 totelemetry device62 or fromIMD12 totelemetry device62 is interrupted during a particular time period, e.g., during a programming session, as indicated by expiration of the timer maintained by watchdog module132 (e.g., between the start of the transmission of the defined signature and the transmission of the completion indicator),telemetry device62 may stop forwarding instructions from consumerelectronic device64 and change the therapy delivered byIMD12 to the safe mode until the watchdog is reset. In one embodiment, the interruption in the transmission of the defined signature is indicated by expiration of the timer maintained by watchdog module132 (e.g., between the start of the transmission of the defined signature and the transmission of the completion indicator). More specifically, iftelemetry device62 does not receive the next element in the sequence of the signature before the timer expires,telemetry device62 may change the therapy delivered byIMD12 to the safe mode.
For example, iftelemetry device62 does not receive any signals fromwatchdog increment module138 of consumerelectronic device64 before the timer elapses, which may indicate that the consumerelectronic device64 has become central processing unit (CPU) bound (e.g., consumerelectronic device64 is prevented from successfully performing an operation),telemetry device62 may change the therapy delivered byIMD12 to the safe mode. As another example,telemetry device62 may also change the therapy delivered byIMD12 to the safe mode if an incorrect element in the sequence of the signature is received. For example, iftelemetry device62 receives an element of the signature multiple times, which may indicate that consumerelectronic device64 in stuck in an infinite loop,telemetry device62 may change the therapy delivered byIMD12 to the safe mode.
As described in further detail below, the watchdog may be reset by rebooting consumerelectronic device64 or by any other suitable means. Expiration of the watchdog timer may involve either counting up to or down from a predetermined value related to the period time intervals at which the clinician programmer sends the signature.Watchdog increment module138 on consumerelectronic device64 may deliver the defined signature from consumerelectronic device64 totelemetry device62 at predetermined time intervals.
To ensure that thewatchdog increment module138 is not incremented unless all other critical tasks for sending valid information totelemetry device62 have been run to completion, the task that increments the watchdog, i.e., the watchdog increment task, may be the lowest priority critical task running on consumerelectronic device64. In some embodiments, the watchdog increment task is the lowest priority task running on consumerelectronic device64 overall. The watchdog increment task may be set as a low priority task to help prevent the defined signature from continuing to be transmitted if consumerelectronic device64 has become CPU bound or encountered any other problem that may inhibit transmission of commands totelemetry device62. Additionally,watchdog increment module138 may monitor other operations of consumerelectronic device64 to help ensure that no process inadvertently permanently disables the watchdog increment task and/or enables the watchdog increment task under inappropriate conditions. This monitoring may be coupled to the watchdog increment task and performed as a low priority task.
For example, if an application task is stuck in an infinite loop that is mistakenly sending the same telemetry message totelemetry device62, the watchdog increment task on consumerelectronic device64 would never run. After a predefined amount of time during whichwatchdog module132 oftelemetry device62 does not receive an element of the defined signature fromwatchdog increment module138 of consumerelectronic device64,watchdog module132 may instructtelemetry device62 toprogram IMD12 to go into the safe mode and may refuse further commands from consumerelectronic device64 untilwatchdog increment module138 is reset.
As mentioned previously,watchdog increment module138 may be reset by rebooting consumerelectronic device64. Additionally, if consumerelectronic device64 recovers from a problem, it may automatically resetwatchdog increment module138 and send a reset indication message totelemetry device62. Alternatively, after transmission of the defined signature has been interrupted,telemetry device62 may send a reset command to consumerelectronic device64 to attempt to resetwatchdog increment module138. If successful, consumerelectronic device64 may send a reset indication message totelemetry device62. As an additional alternative, consumerelectronic device64 and/ortelemetry device62 may include a button or other means that may be activated by a user to reset the watchdog function.
Various embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.