US20080140161A1 - Medical device programming safety - Google Patents

Medical device programming safety Download PDF

Info

Publication number
US20080140161A1
US20080140161A1 US11/940,573 US94057307A US2008140161A1 US 20080140161 A1 US20080140161 A1 US 20080140161A1 US 94057307 A US94057307 A US 94057307A US 2008140161 A1 US2008140161 A1 US 2008140161A1
Authority
US
United States
Prior art keywords
programming instructions
programming
content
instructions
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US11/940,573
Other versions
US7848819B2 (en
Inventor
Steven M. Goetz
Donald R. Johnson
Touby A. Drew
Andrew H. Houchins
Jeffrey T. Keacher
Theodore J. Stone
Earle T. Roberts
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Medtronic Inc
Original Assignee
Medtronic Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Medtronic Inc filed Critical Medtronic Inc
Priority to US11/940,573 priority Critical patent/US7848819B2/en
Assigned to MEDTRONIC, INC. reassignment MEDTRONIC, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GOETZ, STEVEN M., DREW, TOUBY A., JOHNSON, DONALD R., ROBERTS, EARLE T., STONE, THEODORE J., HOUCHINS, ANDREW H., KEACHER, JEFFREY T.
Publication of US20080140161A1 publication Critical patent/US20080140161A1/en
Application granted granted Critical
Publication of US7848819B2 publication Critical patent/US7848819B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H20/00ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
    • G16H20/30ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to physical therapies or activities, e.g. physiotherapy, acupressure or exercising
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61NELECTROTHERAPY; MAGNETOTHERAPY; RADIATION THERAPY; ULTRASOUND THERAPY
    • A61N1/00Electrotherapy; Circuits therefor
    • A61N1/18Applying electric currents by contact electrodes
    • A61N1/32Applying electric currents by contact electrodes alternating or intermittent currents
    • A61N1/36Applying electric currents by contact electrodes alternating or intermittent currents for stimulation
    • A61N1/372Arrangements in connection with the implantation of stimulators
    • A61N1/37211Means for communicating with stimulators
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/67ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61NELECTROTHERAPY; MAGNETOTHERAPY; RADIATION THERAPY; ULTRASOUND THERAPY
    • A61N1/00Electrotherapy; Circuits therefor
    • A61N1/18Applying electric currents by contact electrodes
    • A61N1/32Applying electric currents by contact electrodes alternating or intermittent currents
    • A61N1/36Applying electric currents by contact electrodes alternating or intermittent currents for stimulation
    • A61N1/372Arrangements in connection with the implantation of stimulators
    • A61N1/37211Means for communicating with stimulators
    • A61N1/37217Means for communicating with stimulators characterised by the communication link, e.g. acoustic or tactile
    • A61N1/37223Circuits for electromagnetic coupling
    • A61N1/37229Shape or location of the implanted or external antenna
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61NELECTROTHERAPY; MAGNETOTHERAPY; RADIATION THERAPY; ULTRASOUND THERAPY
    • A61N1/00Electrotherapy; Circuits therefor
    • A61N1/18Applying electric currents by contact electrodes
    • A61N1/32Applying electric currents by contact electrodes alternating or intermittent currents
    • A61N1/36Applying electric currents by contact electrodes alternating or intermittent currents for stimulation
    • A61N1/372Arrangements in connection with the implantation of stimulators
    • A61N1/37211Means for communicating with stimulators
    • A61N1/37235Aspects of the external programmer
    • A61N1/37247User interfaces, e.g. input or presentation means
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61NELECTROTHERAPY; MAGNETOTHERAPY; RADIATION THERAPY; ULTRASOUND THERAPY
    • A61N1/00Electrotherapy; Circuits therefor
    • A61N1/18Applying electric currents by contact electrodes
    • A61N1/32Applying electric currents by contact electrodes alternating or intermittent currents
    • A61N1/36Applying electric currents by contact electrodes alternating or intermittent currents for stimulation
    • A61N1/372Arrangements in connection with the implantation of stimulators
    • A61N1/37211Means for communicating with stimulators
    • A61N1/37252Details of algorithms or data aspects of communication system, e.g. handshaking, transmitting specific data or segmenting data
    • A61N1/37254Pacemaker or defibrillator security, e.g. to prevent or inhibit programming alterations by hackers or unauthorised individuals
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61NELECTROTHERAPY; MAGNETOTHERAPY; RADIATION THERAPY; ULTRASOUND THERAPY
    • A61N1/00Electrotherapy; Circuits therefor
    • A61N1/18Applying electric currents by contact electrodes
    • A61N1/32Applying electric currents by contact electrodes alternating or intermittent currents
    • A61N1/36Applying electric currents by contact electrodes alternating or intermittent currents for stimulation
    • A61N1/372Arrangements in connection with the implantation of stimulators
    • A61N1/37211Means for communicating with stimulators
    • A61N1/37252Details of algorithms or data aspects of communication system, e.g. handshaking, transmitting specific data or segmenting data
    • A61N1/3727Details of algorithms or data aspects of communication system, e.g. handshaking, transmitting specific data or segmenting data characterised by the modulation technique
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61NELECTROTHERAPY; MAGNETOTHERAPY; RADIATION THERAPY; ULTRASOUND THERAPY
    • A61N1/00Electrotherapy; Circuits therefor
    • A61N1/18Applying electric currents by contact electrodes
    • A61N1/32Applying electric currents by contact electrodes alternating or intermittent currents
    • A61N1/36Applying electric currents by contact electrodes alternating or intermittent currents for stimulation
    • A61N1/372Arrangements in connection with the implantation of stimulators
    • A61N1/37211Means for communicating with stimulators
    • A61N1/37252Details of algorithms or data aspects of communication system, e.g. handshaking, transmitting specific data or segmenting data
    • A61N1/37282Details of algorithms or data aspects of communication system, e.g. handshaking, transmitting specific data or segmenting data characterised by communication with experts in remote locations using a network

Definitions

  • the invention relates to medical devices and, more particularly, to medical device programming.
  • a clinician may use a CP to perform advanced IMD setup and diagnostics, while the PTM typically provides a less feature-rich interface for the patient to interact with the IMD.
  • the CP and PTM may be used to “program” an IMD and receive diagnostic information from the IMD, the PTM may 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.
  • these computing devices have been special-purpose devices, i.e., dedicated to tasks associated with programming or otherwise communicating with IMDs.
  • these computing devices generally run custom operating systems, and only have software supporting CP or PTM functionality loaded thereon.
  • these computing devices are typically limited in their input/output capabilities, e.g., to communication with IMDs and, in some cases, each other.
  • the invention is directed to techniques that facilitate use of an off-the-shelf, general purpose computer as a CP.
  • CP software could be run on computers that already exist in a clinic for other functions, such as interfacing with a clinic network to access electronic medical records, scheduling, or billing systems.
  • the general purpose computer may be a desktop, laptop, or tablet computer running a commercial operating system, such as Windows XP or Windows Vista, made commercially available by Microsoft Corporation of Redmond, Wash.
  • Using an off-the-shelf, general purpose computer as a CP may reduce the amount of computer hardware needed in the clinic, which, from the perspective of the clinic, may save space and money.
  • Techniques according to the invention may facilitate safer use of an off-the-shelf, general purpose computer as a CP.
  • Some embodiments include a watchdog module that is serviced by the general purpose CP, a mediator module that monitors programming instructions from the general purpose CP, and/or a safe mode that may be manually activated by a user or automatically activated based on signals detected via the watchdog and/or the system mediator.
  • a system comprises a dedicated, special purpose intermediate device in the communication path between the general purpose computer and the IMD. This intermediate device may employ any of these techniques to provide a layer of security and safety between the off-the-shelf components and the implanted device.
  • the intermediate device may be a dedicated, special purpose PTM.
  • the intermediate device may include a watchdog module that is serviced by the CP. Failure of the CP to service the watchdog module may indicate a disruption in some aspect of the CP operation or another situation that compromises the integrity of signals from the CP to the IMD. In response to the failure of the CP to service the watchdog, the intermediate device may take an action, such as placing the IMD in a known safe mode, which may include stopping delivery of therapy or reverting to last known therapy parameters that yielded acceptable results.
  • the safe mode may be device, clinician, therapy and/or patient specific. The safe mode may be configurable during device or application setup and may depend upon the patient needs and/or the type of therapy delivered by the IMD.
  • the intermediate device may analyze programming instructions received from the CP prior to communicating the instructions to the IMD. Based on the analysis, the intermediate device may determine whether the instructions are logically valid. If the instructions are not logically valid, the intermediate device may not provide the instructions to the IMD, and may also place the IMD in a known safe mode.
  • the intermediate device may in some embodiments include a safe mode button or another mechanism for indicating a safe mode is desired. If a user, such as the patient, determines that the therapy provided by IMD is inappropriate for any reason, including improper instructions from the CP, the user may press the safe mode button. In response to the user pressing the safe mode button, the intermediate device may place the IMD in a known safe mode.
  • the safe mode may be customizable and may be device, clinician, therapy and/or patient specific.
  • the CP software and functionality may reside in the intermediate device, and may be accessed by a user using the general purpose CP computer as a user interface.
  • the intermediate device may act as a server, and the CP as a client.
  • the general purpose CP computer may provide access to the CP functionality on the intermediate device via a web browser. Because the CP software is run on the controlled computing environment provided by the dedicated, special purpose intermediate device, rather than the uncontrolled computing environment of the general purpose CP computer, it is less prone to the problems associated with a general purpose computer.
  • an implantable medical device may additionally or alternatively include a watchdog module, mediator module, and/or a user interface for entering a safe mode.
  • CP software and functionality may reside in the intermediate device, and may be accessed by a user using the general purpose CP computer as a user interface.
  • the invention is directed towards a method comprising receiving programming instructions for a medical device from a computing device, analyzing a content of the programming instructions, determining whether the content of the programming instructions is logically valid, and transmitting the programming instructions to the medical device if the content of the programming instructions is logically valid.
  • the invention is directed towards a system comprising a computing device and a mediator module.
  • the mediator module receives programming instructions for a medical device from the computing device, analyzes a content of the programming instructions, determines whether the content of the programming instructions is logically valid based on the analysis, and transmits the programming instructions to the medical device if the content of the programming instructions is logically valid.
  • the invention is directed towards a computer-readable medium comprising instructions.
  • the instructions cause a processor to receive programming instructions for a medical device from a computing device, analyze a content of the programming instructions, determine whether the content of the programming instructions is logically valid, and transmit the programming instructions to the medical device if the content of the programming instructions is logically valid.
  • the invention is directed towards a method comprising presenting information from an applications module of an intermediate computing device to a user via a user input terminal, where the user input terminal is separate from the intermediate computing device, and where the information includes a plurality of instructions for a implantable medical device, receiving input from the user indicating a selected instruction from the plurality of instructions, and transmitting the selected instruction to the implantable medical device.
  • the invention is directed towards a system comprising a user input terminal comprising a display, and an intermediate computing device that is separate from the user input terminal and comprises an applications module.
  • the intermediate computing device presents information from the applications module to a user via the display of the user input terminal, where the information includes a plurality of instructions for a implantable medical device.
  • the intermediate coupling device is configured to receive an indication of an input from the user indicating a selected instruction from the plurality of instructions, and transmit the selected instruction to the implantable medical device.
  • the invention is directed towards a method comprising accessing an applications module within an intermediate device via a user terminal, the applications module comprising a plurality of programming instructions for programming an implantable medical device, and providing input to indicate a selected programming instruction from the plurality of programming via a user interface of the user terminal.
  • the intermediate device communicates the selected programming instruction to the implantable medical device.
  • FIG. 1 is a schematic perspective view of a therapy system including an implantable medical device.
  • FIG. 2 is a schematic block diagram illustrating example components of the implantable medical device of FIG. 1 and an implantable lead.
  • FIG. 3 illustrates one embodiment of a system that includes an intermediate device as an intermediate security link between a clinician programmer and an implantable medical device, where the intermediate device includes a watchdog module.
  • FIG. 4 illustrates an embodiment of a system in which an intermediate device includes a system mediator to verify and validate programming instructions received from a clinician programmer.
  • FIG. 5 illustrates an embodiment in which the clinician programmer acts as a user input terminal that accesses clinician programming function on an intermediate device.
  • FIG. 1 is a schematic perspective view of therapy system 10 , which includes implantable medical device 12 (IMD 12 ) with a connection port 13 and implantable medical lead 14 coupled to IMD 12 .
  • IMD 12 is an electrical stimulator.
  • IMD 12 may be any type of implantable medical device.
  • IMD 12 may be a drug delivery device or patient monitor including one or more sensors. Accordingly, although therapy system 10 and IMD 12 are referenced throughout the remainder of the disclosure for purposes of illustration, therapy system 10 and IMD 12 , in accordance with the invention, may be adapted for use in a variety of applications, such as delivery of therapeutic substances or patient monitoring via one or more sensors.
  • IMD 12 is coupled to stimulation lead 14 and provides a programmable stimulation signal (e.g., in the form of electrical pulses or substantially continuous-time signals) to target site 18 via stimulation lead 14 . More particularly, the programmable stimulation signal is delivered to target site 18 via one or more stimulation electrodes carried by lead 14 . In some embodiments, lead 14 may also carry one or more sense electrodes to permit IMD 12 to sense electrical signals from target stimulation site 18 . IMD 12 may be subcutaneously implanted in the body of a patient 16 (e.g., in a chest cavity, lower back, lower abdomen, or buttocks, or on or within a cranium of patient 16 ), where the implant site typically depends on the target site 18 for the therapy delivery. In the example of FIG.
  • IMD 12 is an electrical stimulator that is implanted in patient 16 proximate to target stimulation site 18 .
  • IMD 12 may be referred to as a signal generator, and in the embodiment shown in FIG. 1 , IMD 12 may also be referred to as a neurostimulator.
  • IMD 12 may be coupled to two or more leads, e.g., for bilateral or multi-lateral stimulation.
  • Proximal end 14 A of lead 14 may be both electrically and mechanically coupled to connector 13 of IMD 12 either directly or indirectly (e.g., via a lead extension).
  • conductors disposed in the lead body may electrically connect stimulation electrodes (and sense electrodes, if present) adjacent to distal end 14 B of lead 14 to IMD 12 .
  • target site 18 is proximate to the S3 sacral nerve, and lead 14 has been introduced into the S3 sacral foramen 22 of sacrum 24 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 system 10 , however, is useful in other applications.
  • target site 18 may be a location proximate to any of the other nerves or tissues in body 16 , which may be selected based on, for example, a therapy program selected for a particular patient.
  • therapy system 10 may be used to deliver stimulation or therapeutic substances to the spinal cord or an occipital nerve for treatment of pain, the brain, or other areas of the nervous system, in which case, lead 14 or a catheter would be implanted proximate to the respective nerve.
  • lead 14 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.
  • FES functional electrical stimulation
  • Therapy system 10 also may include a clinician programmer 26 and an intermediate device 28 .
  • Intermediate device 28 is a device that patient 16 may use to interact with IMD 12 , and may be, for example, a patient therapy manager (PTM), i.e., a patient programming device.
  • PTM patient therapy manager
  • intermediate device 28 may be a telemetry device as described in commonly-assigned U.S. patent application Ser. No. ______ by Keacher et al., entitled, “TELEMETRY DEVICE FOR A MEDICAL DEVICE PROGRAMMER” (attorney docket number 1023-607US01/P-26050.01), which was filed on the same date as the present application, and is incorporated herein by reference in its entirety.
  • intermediate device 28 may be a telemetry device comprising a housing, a first transceiver disposed within the housing and configured to transmit and receive information from an implantable medical device according to a first communication protocol, a second transceiver disposed within the housing and configured to transmit and receive information from a medical device programmer according to a second communication protocol, a user interface configured to receive input from a user, and a processor disposed within the housing and configured to generate a programming signal in accordance with the input from the user, where the first transceiver transmits the programming signal to the implantable medical device.
  • the telemetry device may take a variety of forms, such as a key fob or the like, and may provide a limited user interface for programming relative to conventional clinician, or even patient, programming devices.
  • Intermediate device 28 is typically a custom computing device with limited input/output capabilities and custom software that communicates with IMD 12 .
  • intermediate device 28 may also be used as an intermediate security link between the IMD 12 and clinician programmer 26 . As will be discussed in further detail below, this intermediate security link provides a layer of security and safety between clinician programmer 26 and IMD 12 .
  • Clinician programmer 26 is a device that a clinician or other medical professionals may use to communicate with IMD 12 .
  • Clinician programmer 26 may perform advanced device setup and diagnostics and may optionally perform the programming functions of intermediate device 28 as well.
  • Clinician programmer 26 communicates with IMD 12 via intermediate device 28 , which provides as an intermediate security link between clinician programmer 26 and IMD 12 . In this manner, clinician programmer 26 communicates directly with intermediate device 28 , and intermediate device 28 communicates directly with IMD 12 .
  • clinician programmers have been capable of communicating directly with IMD 12 .
  • clinician programmer 26 may be an off-the-shelf personal computer (PC).
  • PC personal computer
  • Clinician programmer 26 may be a computing device that permits a clinician to program therapy for patient 16 , e.g., using input keys and a display. For example, using clinician programmer 26 , the clinician may specify parameters for use in delivery of therapy via IMD 12 . Clinician programmer 26 communicates with intermediate device 28 which in turn communicates with IMD 12 . In this manner, therapy parameters or other programming instructions may be downloaded to IMD 12 from clinician programmer 26 . Optionally, operational or physiological data stored by IMD 12 may be uploaded to clinician programmer 26 via intermediate device 28 . In this manner, a clinician or other medical professional may periodically interrogate IMD 12 to evaluate efficacy of the therapy delivered by IMD 12 , and, if necessary, modify the therapy parameters.
  • IMD 12 may also be interrogated via clinician programmer by way of intermediate device 28 to retrieve information stored within a memory of IMD 12 , such as physiological parameter measurements taken by IMD 12 or a sensor coupled to IMD 12 or IMD 12 diagnostic data (e.g., electrode impedance measurements or a power level).
  • diagnostic data e.g., electrode impedance measurements or a power level.
  • Intermediate device 28 may be a handheld computing device and may include a display and input keys to allow patient 16 to interact with intermediate device 28 and IMD 12 .
  • Intermediate device 28 may provide patient 16 with an interface for control of the therapy delivered by IMD 12 , e.g., may be a patient programming device or PTM.
  • patient 16 may use intermediate device 28 to start, stop, or adjust therapy.
  • intermediate device 28 may permit patient 16 to adjust stimulation parameters such as duration, amplitude, pulse width, and pulse rate within an adjustment range specified by a clinician via clinician programmer 26 or select from a library of stored stimulation therapy programs.
  • Clinician programmer 26 and intermediate device 28 may communicate via cables, or a wireless communication link as shown in FIG. 1 .
  • clinician programmer 26 and intermediate device 28 may communicate with each other using any of a variety of local wireless communication techniques, such as radio frequency (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 communication protocols.
  • RF radio frequency
  • clinician programmer 26 and intermediate device 28 may communicate via a wired connection, such as via a serial communication or USB cable.
  • clinician programmer 26 may communicate with intermediate device 28 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.
  • Intermediate device 28 and IMD 12 may communicate via a wireless communication link using RF telemetry techniques and standard or proprietary telemetry protocols, as is known in the art.
  • FIG. 2 is a block diagram illustrating various components of IMD 12 and implantable lead 14 .
  • IMD 12 includes therapy delivery module 40 , processor 42 , memory 44 , telemetry module 46 , and power source 47 .
  • IMD 12 may also include a sensing circuit (not shown in FIG. 2 ).
  • Implantable lead 14 includes elongated lead body 48 extending between proximal end 48 A and distal end 48 B. Lead body 48 may be a cylindrical or may be a paddle-shaped (i.e., a “paddle” lead). Electrodes 50 A, 50 B, 50 C, and 50 D (collectively “electrodes 50 ”) are disposed on lead body 48 adjacent to distal end 48 B of lead body 48 .
  • electrodes 50 may be ring electrodes. In other embodiments, electrodes 50 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 of lead body 48 . In embodiments in which lead 14 is a paddle lead, electrodes 50 may extend along one side of lead body 48 .
  • the configuration, type, and number of electrodes 50 illustrated in FIG. 2 are merely exemplary.
  • Electrodes 50 extending around a portion of the circumference of lead body 48 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 delivery site.
  • electrodes 50 may be disposed along lead body 48 such that the electrodes face toward the target nerve, or otherwise away from the scalp of patient 16 . This may be an efficient use of stimulation because electrical stimulation of the scalp may not provide any or may provide minimal therapy to patient 16 .
  • the use of segmented or partial ring electrodes 50 may reduce the overall power delivered to electrodes 50 by IMD 12 because of the efficient delivery of stimulation to the target stimulation site by eliminating or minimizing the delivery of stimulation to unwanted or unnecessary regions within patient 16 .
  • lead 14 may include one or more orientation markers 45 proximate to proximal end 14 A that indicate the relative location of electrodes 50 .
  • Orientation marker 45 may be a printed marking on lead body 48 , an indentation in lead body 48 , 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 marker 45 may help a clinician properly orient lead 14 such that electrodes 50 face the desired direction within patient 16 .
  • orientation marker 45 may also extend around the same portion of the circumference of lead body 48 or along the side of the paddle lead as electrodes 50 . In this way, orientation marker 45 faces the same direction as electrodes, thus indicating the orientation of electrodes 50 to the clinician. When the clinician implants lead 14 in patient 16 , orientation marker 45 may remain visible to the clinician.
  • IMD 12 delivers stimulation therapy via electrodes 50 of lead 14 .
  • electrodes 50 are electrically coupled to a therapy delivery module 40 of IMD 12 via conductors within lead body 48 .
  • an implantable signal generator or other stimulation circuitry within therapy delivery module 40 delivers electrical signals (e.g., pulses or substantially continuous-time signals, such as sinusoidal signals) to target stimulation site 18 ( FIG. 1 ) via at least some of electrodes 50 under the control of processor 42 .
  • the implantable signal generator, as well as processor 42 may be coupled to power source 47 .
  • Power source 47 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 source 47 similarly may include an inductive power interface for transcutaneous transfer of recharge power.
  • the stimulation energy generated by therapy delivery module 40 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.
  • the electrical signals may be delivered from therapy delivery module 40 to electrodes 50 via a switch matrix and conductors carried by lead 14 and electrically coupled to respective electrodes 50 .
  • the coupling via switch matrix may be controlled by processor 42 .
  • Processor 42 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.
  • Processor 42 controls the signal generator within therapy delivery module 40 to deliver neurostimulation therapy according to selected stimulation parameters.
  • processor 42 controls therapy delivery module 40 to deliver electrical signals with selected amplitudes, pulse widths (if applicable), and rates specified by the programs.
  • processor 42 may also control therapy delivery module 40 to deliver the neurostimulation signals via selected subsets of electrodes 50 with selected polarities, e.g., through control of the switch matrix.
  • electrodes 50 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.
  • Processor 42 may also control therapy delivery module 40 to deliver each signal according to a different program, thereby interleaving programs to simultaneously treat different symptoms or provide a combined therapeutic effect.
  • Memory 44 of IMD 12 may include any volatile or non-volatile media, such as a random access memory (RAM), read only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read only memory (EEPROM), flash memory, and the like.
  • memory 44 of IMD 12 may store multiple sets of stimulation parameters, e.g., programs, that are available to be selected by clinician programmer 26 (via intermediate device 28 ) or intermediate device 28 ( FIG. 1 ) for delivery of neurostimulation therapy. Further the programs may be loaded or modified in memory 44 by clinician programmer 26 (via intermediate device 28 ) or intermediate device 28 .
  • Memory 44 also stores program instructions that, when executed by processor 42 , cause IMD 12 to deliver neurostimulation therapy. Accordingly, computer-readable media storing instructions may be provided to cause processor 42 to provide functionality as described herein.
  • Processor 42 controls telemetry module 46 to exchange information with intermediate device 28 for the aforementioned purposes by wireless telemetry.
  • processor 42 may control telemetry module 46 to communicate indirectly with clinician programmer 26 through intermediate device 26 , which enables IMD 12 to receive programming instructions or to load, modify or select a program stored within memory 44 based on indirect communication from clinician programmer 26 via intermediate device 28 .
  • IMD 12 may receive instructions from clinician programmer 26 or intermediate device 28 requesting diagnostic information, such as diagnostic information about the performance of IMD 12 (e.g., remaining battery life or electrode impedance) or patient data stored within a memory of IMD 12 (e.g., physiological parameter measurements).
  • FIG. 3 illustrates one embodiment of a system in which intermediate device 28 provides an intermediate security link between clinician programmer 26 and IMD 12 .
  • a computing device includes software coupled with a processor (e.g., a microprocessor).
  • the software coupled with the processor may comprise instructions defining an operating environment that presents a graphical user interface to a user.
  • clinician programmers have been custom computing devices dedicated to programming implantable medical devices. More specifically, a clinician programmer has traditionally been a dedicated hardware device with dedicated software for programming of the implantable medical device. Although the software used for programming implantable medical devices is typically unique to the type of medical device being programmed, the hardware used is often very similar to that which already exists for other purposes within the medical industry (e.g., devices in an examination or operating room).
  • clinician programmer 26 may be a computing device that already exists for other functions (e.g., within a hospital or physician's office or outside of the medical industry). In this manner, customized software may be run on standard, non-dedicated computing devices (e.g., desktop personal computers, laptops, and/or tablet computers). Allowing clinician programmer 26 to use computing devices that already exist for other functions (i.e., other than dedicated medical device programmers) may save space within a clinician's office and may be a more efficient use of resources, e.g., money.
  • An intermediate security link between clinician programmer 26 and IMD 12 may help reduce the risks of using a standard, non-dedicated computing device as the hardware component of clinician programmer 26 .
  • a standard, non-dedicated computing device e.g., a desktop, laptop, or tablet
  • a commercial operating system e.g., Windows XP or Vista made available by Microsoft Corporation of Redmond, Wash.
  • a safe mode may be defined for IMD 12 and IMD 12 may revert to the safe mode in certain circumstances.
  • the safe mode is a set of parameters that is known to provide a safe and comfortable therapy to patient 16 from IMD 12 .
  • the safe mode for an implanted neurostimulator may be to set the stimulation amplitude to 0 volts. This would effectively turn off the stimulation and remove any undesirable side effects of the therapy.
  • the safe mode for patient 16 may be a specific combination of therapy parameters that yield a safe and comfortable therapy setting.
  • the safe mode is a preconfigured setting or a rollback to a last or last-known safe and comfortable therapy state.
  • the safe mode setting may involve a user-predefined rate which takes into account the possibilities of drug concentration change, tube-set, and/or other variables.
  • the safe mode may be defined by allowing patient 16 , a clinician, a caregiver, or another qualified individual to save one or more safe therapy configurations that provide patient 16 with safe and comfortable therapy.
  • IMD 12 may determine the therapy parameters of the safe mode, such as by implementing an algorithm that configures the safe mode based on a last known therapy program, which includes one or more therapy parameters, that yielded safe and comfortable therapy to patient 16 .
  • Patient 16 , a clinician, a caregiver, or another qualified individual may have the ability to rollback to any of the safe mode configurations for IMD 12 as desired.
  • patient 16 may provide input indicating a desire to revert IMD 12 to a safe mode, where the input may be provided via safe mode button 60 ( FIGS. 1 and 3 ) of intermediate device 28 .
  • the safe mode may be patient, therapy, and/or clinician specific.
  • one safe mode configuration may be used for all patients who receive a certain type of treatment.
  • the safe mode for a drug delivery device may involve suspending drug delivery.
  • the patient may be alerted when IMD 12 enters safe mode and may be instructed to take oral medications until therapy is restored.
  • a clinician may use a specific safe mode for all patients.
  • the safe mode may be set to fifty percent of a last-known therapy.
  • the safe mode may be specific to the individual patient 16 and customizable based on the needs and symptoms of patient 16 .
  • a safe mode button 60 may be included on intermediate device 28 to provide immediate programming of IMD 12 to a defined safe mode.
  • the safe mode settings may be saved within safe mode module 61 of intermediate device 28 , 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 for IMD 12 .
  • the settings for the safe mode of IMD 12 may be stored in IMD 12 , and intermediate device 28 may provide instructions to IMD 12 to access and implement the stored safe mode setting, rather than sending the actual safe mode settings themselves.
  • a universal safe mode command may be used to program IMD 12 to enter the safe mode.
  • a universal safe mode command may be compatible with at least two different types of IMDs designed and/or manufactured by a particular manufacturer. For example, all electrical stimulators produced by Medtronic, Inc. of Minneapolis, Minn. may be programmed to enter a safe mode in response to receiving the universal command.
  • the universal command may be compatible with two or more IMDs that were designed and/or manufactured by different manufacturers.
  • the universal command may be understood by IMDs designed and/or manufactured by any manufacturer that chooses to comply with a protocol for communicating the universal command.
  • the universal command may use government regulated standard communication bands and/or protocols (e.g., MICS or MEDS bands).
  • a universal command may be particularly useful in emergency situations in which an emergency room clinician or other medical professional may have no or little information about IMD 12 .
  • a universal safe mode command may allow the clinician to activate the safe mode using a universal programmer programmed with the universal safe mode command if the patient's programmer is not present and the clinician does not have access to a clinician programmer 26 that is specifically configured to communicate with IMD 12 .
  • Safe mode button 60 may suspend processing of commands sent from clinician programmer 26 to intermediate device 28 pending a reset action by patient 16 or a clinician via intermediate device 28 .
  • Safe mode button 60 may serve as a viable mechanism to mitigate hazards associated with unintended programming coming from clinician programmer 26 by allowing patient 16 to restore IMD 12 to a known safe mode state.
  • Safe mode button 60 is not limited to a physical button, and may be activated by any user input media.
  • safe mode button 60 may be a push button, soft-key, voice-activated command, activated by physical interaction, magnetically triggered, or activated upon password authentication.
  • Safe mode button 60 may be implemented alone or in combination with other safety features (e.g., a watchdog ( FIG. 3 ), system mediator 80 ( FIG. 4 ), or a remote user interface ( FIG. 5 ).
  • safe mode may also be activated automatically, e.g., by a watchdog or system mediator 80 , rather than being manually activated via safe mode button 60 .
  • IMD 12 may automatically revert to safe mode under certain conditions. For example, if IMD 12 is expecting a stay-alive and/or end command from a patient programmer and does not receive the command after a period of time, IMD 12 may program itself to go into safe mode. This may prevent IMD 12 from being left in an unsafe state if the communication between the patient programmer and IMD 12 is interrupted during programming of IMD 12 .
  • One embodiment of the intermediate security link between clinician programmer 26 and IMD 12 includes a system watchdog, as illustrated in FIG. 3 .
  • the system watchdog comprises system watchdog module 62 of intermediate device 28 and watchdog increment module 68 of clinician programmer 26 .
  • Intermediate device 28 and clinician programmer 26 further comprise application modules 66 and 72 and operating system modules 64 and 70 , respectively.
  • Application modules 66 and 72 may contain software applications that may be run on intermediate device 28 and clinician programmer 26 and operating system modules 64 and 70 may contain software defining the operation systems (e.g., Windows Vista or a custom operating system) which intermediate device 28 and clinician programmer 26 , respectively, use to run the software applications.
  • Application modules 66 and 72 , operating system modules 64 and 70 , system watchdog module 62 , and system watchdog increment module 68 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 be associated with each of the modules 62 , 64 , 66 of intermediate device 28 or two or more of the modules 62 , 64 , 66 may be 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.
  • a separate processor may be associated with each of the modules 68 , 70 , 72 of clinician programmer 26 or two or more of the modules may be controlled by a common processor.
  • System watchdog module 62 of intermediate device 28 may indirectly verify that information transmitted from clinician programmer 26 to intermediate device 28 , e.g., a programming command for IMD 12 , is valid without analyzing the logical validity of the content of the information.
  • system watchdog module 62 may comprise a software task that runs on intermediate device 28 to monitor the behavior of clinician programmer 26 . More specifically, in one embodiment, system watchdog module 62 expects to periodically receive a defined signal, such as elements of a signature, from clinician programmer 26 at predetermined intervals during a programming session (e.g., while clinician programmer 26 is sending commands to intermediate device 28 ). In this manner, intermediate device 28 (the more secure device) monitors clinician programmer 26 (the less secure device).
  • the signature or other signal transmitted from clinician programmer 26 to intermediate device 28 may be, for example, a series of sequential numbers or a predefined pattern of numbers.
  • Watchdog increment module 68 on clinician programmer 26 may deliver the defined signature from clinician programmer 26 to intermediate device 28 at predetermined time intervals. Described in further detail below, the watchdog increment module 68 may be reset by rebooting clinician programmer 26 or by any other suitable means.
  • Watchdog module 62 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 clinician programmer sends the signature.
  • the signature may include a completion indicator that notifies intermediate device 28 when clinician programmer 26 has successfully completed sending instructions to intermediate device 28 . In other embodiments, the completion indicator may be sent separately from the signature to notify intermediate device 28 when clinician programmer 26 has successfully completed sending instructions to intermediate device 28 .
  • intermediate device 28 may stop forwarding instructions from clinician programmer 26 and change the therapy delivered by IMD 12 to the safe mode until the watchdog is reset.
  • the interruption in the transmission of the defined signature is indicated by expiration of the timer maintained by watchdog module 62 (e.g., between the start of the transmission of the defined signature and the transmission of the completion indicator). More specifically, if intermediate device 28 does not receive the next element in the sequence of the signature before the timer expires, intermediate device 28 may change the therapy delivered by IMD 12 to the safe mode.
  • intermediate device 28 may change the therapy delivered by IMD 12 to the safe mode.
  • intermediate device 28 may also change the therapy delivered by IMD 12 to the safe mode if an incorrect element in the sequence of the signature is received. For example, if intermediate device 28 receives an element of the signature multiple times, which may indicate that clinician programmer 26 in stuck in an infinite loop, intermediate device 28 may change the therapy delivered by IMD 12 to the safe mode.
  • the task that increments the watchdog may be the lowest priority critical task running on clinician programmer 26 .
  • the watchdog increment task is the lowest priority task running on clinician programmer 26 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 clinician programmer 26 has become CPU bound or encountered any other problem that may inhibit transmission of commands to intermediate device 28 .
  • watchdog increment module 68 may monitor other operations of clinician programmer 26 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.
  • watchdog module 62 may instruct intermediate device 28 to program IMD 12 to go into the safe mode and may refuse further commands from clinician programmer 26 until watchdog increment module 68 is reset.
  • watchdog increment module 68 may be reset by rebooting clinician programmer 26 . Additionally, if clinician programmer 26 recovers from a problem, it may automatically reset watchdog increment module 68 and send a reset indication message to intermediate device 28 . Alternatively, after transmission of the defined signature has been interrupted, intermediate device 28 may send a reset command to clinician programmer 26 to attempt to reset watchdog increment module 68 . If successful, clinician programmer 26 may send a reset indication message to intermediate device 28 . As an additional alternative, clinician programmer 26 and/or intermediate device 28 may include a button or other means that may be activated by a user to reset the watchdog function.
  • intermediate device 28 includes a system mediator module 80 to verify and validate information received from clinician programmer 26 .
  • System mediator 80 may be provided in addition to or as an alternative to the watchdog module 62 described with respect to FIG. 3 .
  • Intermediate device 28 and clinician programmer 26 may include application modules 66 and 72 and operating system modules 64 and 70 , respectively.
  • Application modules 66 and 72 and operating system modules 64 and 70 may each comprise software that may be executed by a processor.
  • Application modules 66 and 72 may contain software applications that may be run on intermediate device 28 and clinician programmer 26 and operating system modules 64 and 70 may contain software defining the operation systems (e.g., Windows Vista or a custom operating system) which intermediate device 28 and clinician programmer 26 use to run the software applications.
  • intermediate device 28 may also include a safe mode button 50 and safe mode setting module 61 (shown in FIG. 3 ) to store the safe mode settings of IMD 12 or instructions for programming IMD 12 to enter into a safe mode.
  • System mediator 80 may be a dedicated task on intermediate device 28 that provides a secure link between clinician programmer 26 and IMD 12 by verifying and validating the content of programming instructions being transmitted from clinician programmer 26 to intermediate device 28 .
  • System mediator 80 may be an application layer filter that is able to discern between logically valid programming instructions and erroneous programming instructions. In this manner, system mediator 80 provides as an intermediate security link between intermediate device 28 and clinician programmer 26 .
  • System mediator 80 of intermediate device 28 may be able to distinguish the difference between logically valid information and logically invalid information received from clinician programmer 26 . For example, if clinician programmer 26 tries to program IMD 12 with extreme combinations of parameters that are obviously not part of intended therapy (e.g., far removed from the last known therapy parameter that yielded safe therapy delivery to patient 16 ), intermediate device 28 will recognize these invalid parameters and will not send the programming instructions to IMD 12 or may require confirmation via user interaction with the PTM before sending them.
  • System mediator 80 may do reasonability and/or consistency checks, such as determining if too little or too much time has passed between commands, evaluating sequence numbering, comparing therapy parameter values to device and/or patient specific acceptable ranges, comparing dosage values set forth by the programming instructions to labeling instructions for a medication, identifying a mismatch of commands to the device (e.g., stimulation instructions sent to a drug delivery device), recognizing an invalid pattern of commands (e.g., a repeated loop), evaluating the environmental context of the commands (e.g., signal strength), identifying contradictions to previously sent commands (e.g., drug reservoir is empty after refilling drug reservoir), and/or any number of other checks, to judge the validity of information sent from clinician programmer 26 and act upon invalid commands in an appropriate manner.
  • reasonability and/or consistency checks such as determining if too little or too much time has passed between commands, evaluating sequence numbering, comparing therapy parameter values to device and/or patient specific acceptable ranges, comparing dosage values set forth by the programming instructions to labeling instructions for a medication
  • system mediator 80 may receive a first programming command and decide to wait to receive one or more additional programming commands before determining the validity of the first command. For example, system mediator 80 may determine that the first programming command is only valid if followed by a certain type of programming command and may wait to determine the validity of the first command until a second command is received. This may also be useful in addressing interruptions in the transmission of programming commands from clinician programmer 26 to intermediate device 28 . For example, if system mediator 80 expects to receive more programming commands in a programming sequence from clinician programmer 26 , system mediator 80 may wait to determine the validity of each of the programming commands until all of the commands in the sequence have been received by system mediator 80 . In such manner, interruptions in the transmission of programming commands from clinician programmer 26 to intermediate device 28 may not result in interruptions in the transmission of programming commands from intermediate device 28 to IMD 12 .
  • system mediator 80 may cause IMD 12 to revert to a safe mode and/or system mediator 80 may refuse commands from clinician programmer 26 until clinician programmer 26 is reset.
  • Clinician programmer 26 may be reset, for example, by rebooting and/or activation of a reset button that initiates the reset. Additionally or alternatively, clinician programmer 26 may automatically reset upon recovering from a problem and/or intermediate device 28 may attempt to initiate the reset of clinician programmer 26 by sending a reset signal to clinician programmer 26 . In some embodiments, clinician programmer 26 sends a reset indication message to intermediate device 28 that notifies intermediate device 28 when clinician programmer 26 has been reset.
  • Clinician programmer 26 may not format programming instructions sent to intermediate device 28 in the same format that the programming instructions are sent from intermediate device 28 to IMD 12 .
  • clinician programmer 26 may send an instruction to intermediate device 28 that indicates a desired outcome for IMD 12 , and the request command may be approved or denied by system mediator 80 .
  • the request command may be in a more general format than the commands sent from intermediate device 28 to IMD 12 and may indicate a batching of telemetry commands.
  • System mediator 80 or a processor of intermediate device 28 may then “translate” the instructions from clinician programmer 26 into a format that IMD 12 will understand and accept.
  • the same message format may be used for messages sent from clinician programmer 26 to intermediate device 28 and message sent from intermediate device 28 to IMD 12 .
  • System mediator 80 may require patient 16 to validate certain requests sent to intermediate device 28 from clinician programmer 26 using a user interface provided on intermediate device 28 .
  • system mediator 80 may prompt patient 16 to validate a request via a command window on intermediate device 28 , and patient 16 may be required to press a validation button before intermediate device 28 allows the request to be transmitted to IMD 12 .
  • Validation from patient 16 may be useful if clinician programmer 26 is requesting changes to parameters that are significantly different than the parameters typically set for IMD 12 . For example, if clinician programmer 26 requests changes to therapy parameters that will cause IMD 12 to deliver therapy significantly different from the therapy that IMD 12 typically delivers to patient 16 , validation from patient 16 may be useful.
  • System mediator 80 may implement a software algorithm to keep track of normal versus abnormal therapy for a given patient 16 .
  • System mediator 80 may also keep track of device-specific ranges of acceptable therapy parameter values, patient-specific ranges of acceptable therapy parameter values drug labeling instructions, and/or other therapy information.
  • intermediate device 28 may request additional verification from patient 16 .
  • IMD 12 may include system mediator 80 in addition to or instead of intermediate device 28 .
  • the functionality of system mediator 80 may be split between both IMD 12 and intermediate device 28 , while in other embodiments, system mediator 80 is positioned exclusively within IMD 12 .
  • intermediate device 28 may merely transmit information from clinician programmer 26 to IMD 12 without checking the logical validity of the content of the information.
  • intermediate device 28 may still include watchdog module 62 to determine whether the programming command from clinician programmer 26 is valid without analyzing the logical validity of the content of the information.
  • IMD 12 may receive programming instructions from a computing device (e.g., intermediate device 28 , a patient programming device, and/or a clinician programming device), analyze the programming instructions, determine whether the content of the instructions is logically valid based on the analysis, and control a therapy delivered from the implantable medical device based on the determination, i.e., if the content of the instructions is logically valid.
  • a computing device e.g., intermediate device 28 , a patient programming device, and/or a clinician programming device
  • clinician programmer 26 functions as a user input terminal for accessing control functions stored within intermediate device 28 .
  • clinician programmer 26 provides a remote interface for intermediate device 28 .
  • the remote user interface and intermediate device 28 may be linked using any suitable means, such as a cable, USB connection, wireless network or via an internet network.
  • substantially all control functions for clinician programmer 26 may be stored within intermediate device 28 , which provides an intermediate security link between clinician programmer 26 and IMD 12 .
  • the remote user interface may be implemented alone or in combination with safe mode button 60 , other safe mode implementations, a watchdog module 62 ( FIG. 3 ), and/or system mediator module 80 ( FIG. 4 ).
  • Applications module 66 of intermediate device 28 may include a plurality of instructions for IMD 12 .
  • the instructions may include both programming instructions to program one or more therapy parameters into IMD 12 or instruct IMD 12 to deliver therapy according to another program and diagnostic instructions, which may be requests for receiving information stored within memory 44 of IMD 12 .
  • the instructions may be presented to a user via the user input terminal, and the user may provide input indicating one or more of the instructions to deliver to IMD 12 .
  • the user input is provided via a user interface (e.g., a touch screen, buttons, keyboard, etc.) of the user input terminal and transmitted to the intermediate computing device (e.g., via a wired or wireless signal).
  • the user input is provided via a user interface of intermediate device 28 .
  • clinician programmer 26 may act as a user input terminal that access control functions within applications module 66 of intermediate device 28 .
  • the control functions that clinician programmer 26 may access within intermediate device 28 may include, for example, one or more selectable input therapy parameters for programming IMD 12 .
  • the input therapy parameters define an electrode pattern (i.e., the pattern of anodes and cathodes), stimulation amplitude, frequency, and so forth with which IMD 12 delivers electrical stimulation therapy to patient 16 .
  • the input therapy parameters may define a concentration of a fluid that the fluid delivery device delivers to patient 16 , frequency of fluid delivery, size of a bolus, and so forth.
  • the remote user interface may provide a patient, clinician or other medical professional access to advanced features that are not available via direct manipulation of intermediate device 28 .
  • patient 16 may access patient programming type features through direct interaction with intermediate device 28 .
  • Clinician programming type features may be stored on intermediate device 28 , such as in applications module 66 , but may only be accessible through the remote user interface used by clinician programmer 26 .
  • Clinician programming type features may include advanced device setup and diagnostic capabilities.
  • patient programming type features may optionally be accessed via clinician programmer 26 and may include basic programming capabilities. In this manner, intermediate device 28 may provide direct access to a subset of programming capabilities accessible via clinician programmer 26 .
  • patient programming type features and clinician programming type features may both only be accessible using a remote user interface.
  • programming functions for IMD 12 may not be accessed through direct manipulation of intermediate device 28 .
  • intermediate device 28 may contain control functions for programming IMD 12 and may allow patient 16 , a clinician, and/or other qualified individuals to access the control functions through one or more remote user interfaces.
  • clinician programmer 26 provides a display for presenting information from application module 66 , which runs on intermediate device 28 .
  • Application module 66 of intermediate device 28 may include the programming applications traditionally implemented by clinician programmer 26 (e.g., control functions for clinician programmer 26 ).
  • the programming applications for clinician programmer 26 stored in applications module 66 may include the control functions typically available for clinician programmer 26 described above.
  • the programming applications stored within intermediate device 28 may include, for example, programming instructions to programming therapy parameters of IMD 12 , download patient data (e.g., physiological parameter values recorded by IMD 12 , such as blood pressure, electrical activity, core body temperature, ECG data, etc.) from IMD 12 , download IMD 12 diagnostic information from IMD 12 , and so forth.
  • patient data e.g., physiological parameter values recorded by IMD 12 , such as blood pressure, electrical activity, core body temperature, ECG data, etc.
  • a user may interface with clinician programmer applications that are stored within applications module 66 of intermediate device 28 with the aid of the display of clinician programmer 26 .
  • Information that is communicated from intermediate device 28 to clinician programmer 26 may pertain to graphics and/or other indicators that may be displayed on clinician programmer 26 .
  • clinician programmer 26 functions as a user input terminal that is configured to receive input from a user.
  • Information communicated from clinician programmer 26 to intermediate device 28 may pertain to inputs selected by a user via clinician programmer 26 .
  • a user such as a clinician or other medical professional, may provide input via a touch screen, keyboard, buttons, a peripheral pointing device or other appropriate input means available on clinician programmer 26 .
  • clinician programmer 26 merely provides a display for presenting information from intermediate device 28 , and a user provides input via a user interface on intermediate device 28 .
  • the user interface of intermediate device 28 may include, for example, a touch screen, keyboard, buttons, a peripheral pointing device or other appropriate input means.
  • a user interface (including a display) provided on intermediate device 28 may be mirrored to a separate computing device, such as clinician programmer 26 , which, as described above, may include an undedicated personal computer. Mirroring the user interface, e.g., the display, provided by intermediate device 28 to the separate computing device provides patient 16 , a clinician, and/or another qualified individual with the option to use the separate computing device as a user interface for intermediate device 28 .
  • patient 16 may use a separate computing device with a larger screen than intermediate device 28 as a user interface for the intermediate device. This may be beneficial to patients with visual and/or tactile impairments or to implement interfaces that would be too complex when used on the intermediate device display.
  • intermediate device 28 includes web server module 92 and clinician programmer 26 includes web browser module 94 to facilitate communication between intermediate device 28 and clinician programmer 26 .
  • Intermediate device 28 and clinician programmer 26 comprise application modules 66 and 72 and operating system modules 64 and 70 , respectively.
  • Application modules 66 and 72 , operating system modules 64 and 70 , web server module 92 , and web browser module 94 may each comprise software that may be executed by a processor.
  • Application module 72 of clinician programmer 26 may comprise non-programming applications that run on clinician programmer 26 . All programming functions of clinician programmer 26 may be confined to web browser module 94 of clinician programmer 26 .
  • intermediate device 28 includes a safe mode button 60 that is coupled to a safe mode setting module that stores the safe mode settings for IMD 12 , or alternatively, the settings may be stored within IMD 12 .
  • Web server module 92 may include software, hardware or a combination of software and hardware, that is configured to accept requests from web browser module 94 , which may also include a combination of software, hardware or a combination of software and hardware.
  • a user may input a request to access programming applications via web browser module 94 of clinician programmer 26 .
  • the user may input a request that indicates a specific therapy parameter for implementation by IMD 12 (i.e., the user may request a programming instruction be sent to IMD 12 ) via web browser module 94 .
  • the inputs may be provided to web browser module 94 via a user interface of clinician programmer 26 .
  • the requests provided to web server module 92 may substantially conform to the hypertext transfer protocol (HTTP).
  • HTTP hypertext transfer protocol
  • web server module 92 may respond to web browser module 94 , such as by providing information that defines a graphical display to present on a display of clinician programmer 26 via web browser module 94 .
  • the graphical display may provide an interface with which the user may provide further requests to web server module 92 .
  • web server module 92 provide confirmation to web browser module 94 that a programming instruction was successfully or unsuccessfully transmitted to IMD 12 .
  • clinician programmer 26 acts as a user terminal that provides access to a client server.
  • Information that is communicated from intermediate device 28 to clinician programmer 26 may be limited to graphics and other indicators that may be displayed on clinician programmer 26 .
  • Information communicated from clinician programmer 26 to intermediate device 28 may be limited to display output and inputs selected by a user via clinician programmer 26 (e.g., via a touch screen, mouse, and/or keyboard).
  • intermediate device 28 may function as a client server that may be accessed by clinician programmer 26 .
  • the interface between clinician programmer 26 and intermediate device 28 may be similar to terminal server programs, such as Virtual Network Computing, Windows Remote Desktop®, and Unix/Linux X terminal sessions.
  • clinician programmer 26 may include a display that presents a graphical user interface that remotely controls features of intermediate device 28 .
  • a user may remotely access applications module 66 of intermediate device 28 via clinician programmer 28 .
  • inputs e.g., via a keyboard or a peripheral pointing device, such as a mouse
  • the remote access may be gained through any suitable connection between intermediate device 28 and clinician programmer 26 , such as a cabled connection, via wireless communication, USB connection, a LAN, WAN, via an internet connection, and so forth.
  • intermediate device 28 may request information from the user to verify the identity of the user.
  • the user may be provided with a user name and password that the user may input to intermediate device 28 in order to gain remote access to programming features of applications module 66 of intermediate device 28 .

Abstract

Techniques for increasing the safety of medical device programming using general purpose hardware, such as a general purpose personal computer, are described. Some embodiments include a watchdog module that is serviced by the general purpose hardware, a mediator module that monitors programming instructions from the general purpose hardware, and/or a safe mode input that may be activated by a user. In some embodiments, a system comprises an implantable medical device, an intermediate device, a computing device that communicates with the implantable medical device via the intermediate device. The intermediate device may provide any one or more of the safety measures described above. In some embodiments, the intermediate device is dedicated hardware, and critical programming functions are provided by the intermediate device, rather than the general purpose hardware. In some embodiments, an implantable medical device provides one or more of the above-discussed safety features, rather than a separate intermediate device.

Description

  • This application claims the benefit of U.S. Provisional Application No. 60/873,190 to Goetz et al., entitled “MEDICAL DEVICE PROGRAMMING SAFETY,” and filed on Dec. 6, 2006 and U.S. Provisional Application No. 60/873,264 to Keacher et al., entitled “TELEMETRY MODULE FOR A MEDICAL DEVICE PROGRAMMER,” filed on Dec. 6, 2006. The entire content of each of these provisional applications is incorporated herein by reference.
  • TECHNICAL FIELD
  • The invention relates to medical devices and, more particularly, to medical device programming.
  • BACKGROUND
  • Clinicians 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. A clinician may use a CP to perform advanced IMD setup and diagnostics, while the PTM typically provides 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 may 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, and only have software supporting CP or PTM functionality loaded thereon. Further, these computing devices are typically limited in their input/output capabilities, e.g., to communication with IMDs and, in some cases, each other.
  • SUMMARY
  • In general, the invention is directed to techniques that facilitate use of an off-the-shelf, general purpose computer as a CP. For example, CP software could be run on computers that already exist in a clinic for other functions, such as interfacing with a clinic network to access electronic medical records, scheduling, or billing systems. The general purpose computer may be a desktop, laptop, or tablet computer running a commercial operating system, such as Windows XP or Windows Vista, made commercially available by Microsoft Corporation of Redmond, Wash. Using an off-the-shelf, general purpose computer as a CP may reduce the amount of computer hardware needed in the clinic, which, from the perspective of the clinic, may save space and money.
  • However, there are safety and regulatory concerns associated with using an off-the-shelf, general purpose computer as a CP. Dedicated, special purpose CPs are relatively safe and secure, because of their custom operating system, limited communication capabilities, and the lack of conflicting software applications. On the other hand, off-the-shelf computing devices in clinics are typically networked and run common desktop operating systems, and thus are prone to computer viruses or other security threats. Risks associated with use of a general purpose, off-the-shelf computing device as a CP include possible conflicts for resources with other programs within the desktop, effects of viruses or other corruption of the desktop applications, or other disruptions of the expected operation of the desktop.
  • These risks are a concern with respect to use of the computer for other clinic functions. These risks become an exponentially more serious concern when communicating with an IMD. For example, disruptions caused by a virus or other corruption could result in transmission of repeated, spurious or erroneous commands to the IMD. Such commands may result in unintended, and possibly harmful, changes to the therapy delivered to the patient. Additionally, such disruptions may interrupt the flow of information from the IMD to the computing device used for programming. For example, if the therapy delivered by the IMD is altered or suspended awaiting an action from the IMD (e.g., performing a measurement and transferring the measurement data to the computing device), disruption of the flow of information may prevent the planned restoration of proper therapy.
  • Techniques according to the invention may facilitate safer use of an off-the-shelf, general purpose computer as a CP. Some embodiments include a watchdog module that is serviced by the general purpose CP, a mediator module that monitors programming instructions from the general purpose CP, and/or a safe mode that may be manually activated by a user or automatically activated based on signals detected via the watchdog and/or the system mediator. In some embodiments, a system comprises a dedicated, special purpose intermediate device in the communication path between the general purpose computer and the IMD. This intermediate device may employ any of these techniques to provide a layer of security and safety between the off-the-shelf components and the implanted device. In some embodiments, the intermediate device may be a dedicated, special purpose PTM.
  • For example, in some embodiments, the intermediate device may include a watchdog module that is serviced by the CP. Failure of the CP to service the watchdog module may indicate a disruption in some aspect of the CP operation or another situation that compromises the integrity of signals from the CP to the IMD. In response to the failure of the CP to service the watchdog, the intermediate device may take an action, such as placing the IMD in a known safe mode, which may include stopping delivery of therapy or reverting to last known therapy parameters that yielded acceptable results. The safe mode may be device, clinician, therapy and/or patient specific. The safe mode may be configurable during device or application setup and may depend upon the patient needs and/or the type of therapy delivered by the IMD.
  • As another example, the intermediate device may analyze programming instructions received from the CP prior to communicating the instructions to the IMD. Based on the analysis, the intermediate device may determine whether the instructions are logically valid. If the instructions are not logically valid, the intermediate device may not provide the instructions to the IMD, and may also place the IMD in a known safe mode.
  • Further, the intermediate device may in some embodiments include a safe mode button or another mechanism for indicating a safe mode is desired. If a user, such as the patient, determines that the therapy provided by IMD is inappropriate for any reason, including improper instructions from the CP, the user may press the safe mode button. In response to the user pressing the safe mode button, the intermediate device may place the IMD in a known safe mode. The safe mode may be customizable and may be device, clinician, therapy and/or patient specific.
  • Additionally or alternatively, in some embodiments, the CP software and functionality may reside in the intermediate device, and may be accessed by a user using the general purpose CP computer as a user interface. In such embodiments, the intermediate device may act as a server, and the CP as a client. The general purpose CP computer may provide access to the CP functionality on the intermediate device via a web browser. Because the CP software is run on the controlled computing environment provided by the dedicated, special purpose intermediate device, rather than the uncontrolled computing environment of the general purpose CP computer, it is less prone to the problems associated with a general purpose computer.
  • Moreover, although primarily described herein with respect to embodiments in which an intermediate device provides the safety functionality, the invention is not so limited. In other embodiments, an implantable medical device may additionally or alternatively include a watchdog module, mediator module, and/or a user interface for entering a safe mode. Further, in some embodiments, CP software and functionality may reside in the intermediate device, and may be accessed by a user using the general purpose CP computer as a user interface.
  • In one embodiment, the invention is directed towards a method comprising receiving programming instructions for a medical device from a computing device, analyzing a content of the programming instructions, determining whether the content of the programming instructions is logically valid, and transmitting the programming instructions to the medical device if the content of the programming instructions is logically valid.
  • In another embodiment, the invention is directed towards a system comprising a computing device and a mediator module. The mediator module receives programming instructions for a medical device from the computing device, analyzes a content of the programming instructions, determines whether the content of the programming instructions is logically valid based on the analysis, and transmits the programming instructions to the medical device if the content of the programming instructions is logically valid.
  • In another embodiment, the invention is directed towards a computer-readable medium comprising instructions. The instructions cause a processor to receive programming instructions for a medical device from a computing device, analyze a content of the programming instructions, determine whether the content of the programming instructions is logically valid, and transmit the programming instructions to the medical device if the content of the programming instructions is logically valid.
  • In another embodiment, the invention is directed towards a method comprising presenting information from an applications module of an intermediate computing device to a user via a user input terminal, where the user input terminal is separate from the intermediate computing device, and where the information includes a plurality of instructions for a implantable medical device, receiving input from the user indicating a selected instruction from the plurality of instructions, and transmitting the selected instruction to the implantable medical device.
  • In another embodiment, the invention is directed towards a system comprising a user input terminal comprising a display, and an intermediate computing device that is separate from the user input terminal and comprises an applications module. The intermediate computing device presents information from the applications module to a user via the display of the user input terminal, where the information includes a plurality of instructions for a implantable medical device. The intermediate coupling device is configured to receive an indication of an input from the user indicating a selected instruction from the plurality of instructions, and transmit the selected instruction to the implantable medical device.
  • In another embodiment, the invention is directed towards a method comprising accessing an applications module within an intermediate device via a user terminal, the applications module comprising a plurality of programming instructions for programming an implantable medical device, and providing input to indicate a selected programming instruction from the plurality of programming via a user interface of the user terminal. The intermediate device communicates the selected programming instruction 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 DRAWINGS
  • FIG. 1 is a schematic perspective view of a therapy system including an implantable medical device.
  • FIG. 2 is a schematic block diagram illustrating example components of the implantable medical device of FIG. 1 and an implantable lead.
  • FIG. 3 illustrates one embodiment of a system that includes an intermediate device as an intermediate security link between a clinician programmer and an implantable medical device, where the intermediate device includes a watchdog module.
  • FIG. 4 illustrates an embodiment of a system in which an intermediate device includes a system mediator to verify and validate programming instructions received from a clinician programmer.
  • FIG. 5 illustrates an embodiment in which the clinician programmer acts as a user input terminal that accesses clinician programming function on an intermediate device.
  • DETAILED DESCRIPTION
  • FIG. 1 is a schematic perspective view of therapy system 10, which includes implantable medical device 12 (IMD 12) with a connection port 13 and implantable medical lead 14 coupled to IMD 12. In the illustrated embodiment, IMD 12 is an electrical stimulator. However, in other embodiments, IMD 12 may be any type of implantable medical device. For example, IMD 12 may be a drug delivery device or patient monitor including one or more sensors. Accordingly, although therapy system 10 and IMD 12 are referenced throughout the remainder of the disclosure for purposes of illustration, therapy system 10 and IMD 12, in accordance with the invention, may be adapted for use in a variety of applications, such as delivery of therapeutic substances or patient monitoring via one or more sensors.
  • IMD 12 is coupled to stimulation lead 14 and provides a programmable stimulation signal (e.g., in the form of electrical pulses or substantially continuous-time signals) to target site 18 via stimulation lead 14. More particularly, the programmable stimulation signal is delivered to target site 18 via one or more stimulation electrodes carried by lead 14. In some embodiments, lead 14 may also carry one or more sense electrodes to permit IMD 12 to sense electrical signals from target stimulation site 18. IMD 12 may be subcutaneously implanted in the body of a patient 16 (e.g., in a chest cavity, lower back, lower abdomen, or buttocks, or on or within a cranium of patient 16), where the implant site typically depends on the target site 18 for the therapy delivery. In the example of FIG. 1, IMD 12 is an electrical stimulator that is implanted in patient 16 proximate to target stimulation site 18. IMD 12 may be referred to as a signal generator, and in the embodiment shown in FIG. 1, IMD 12 may also be referred to as a neurostimulator. In some embodiments, IMD 12 may be coupled to two or more leads, e.g., for bilateral or multi-lateral stimulation.
  • Proximal end 14A of lead 14 may be both electrically and mechanically coupled to connector 13 of IMD 12 either directly or indirectly (e.g., via a lead extension). In particular, conductors disposed in the lead body may electrically connect stimulation electrodes (and sense electrodes, if present) adjacent to distal end 14B of lead 14 to IMD 12.
  • In the embodiment of therapy system 10 shown in FIG. 1, target site 18 is proximate to the S3 sacral nerve, and lead 14 has been introduced into the S3 sacral foramen 22 of sacrum 24 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 system 10, however, is useful in other applications. Thus, in alternate embodiments, target site 18 may be a location proximate to any of the other nerves or tissues in body 16, which may be selected based on, for example, a therapy program selected for a particular patient.
  • For example, in other embodiments, therapy system 10 may be used to deliver stimulation or therapeutic substances to the spinal cord or an occipital nerve for treatment of pain, the brain, or other areas of the nervous system, in which case, lead 14 or a catheter would be implanted proximate to the respective nerve. As further examples, lead 14 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 system 10 also may include a clinician programmer 26 and an intermediate device 28. Intermediate device 28 is a device that patient 16 may use to interact with IMD 12, and may be, for example, a patient therapy manager (PTM), i.e., a patient programming device. In one embodiment, intermediate device 28 may be a telemetry device as described in commonly-assigned U.S. patent application Ser. No. ______ by Keacher et al., entitled, “TELEMETRY DEVICE FOR A MEDICAL DEVICE PROGRAMMER” (attorney docket number 1023-607US01/P-26050.01), which was filed on the same date as the present application, and is incorporated herein by reference in its entirety. For example, intermediate device 28 may be a telemetry device comprising a housing, a first transceiver disposed within the housing and configured to transmit and receive information from an implantable medical device according to a first communication protocol, a second transceiver disposed within the housing and configured to transmit and receive information from a medical device programmer according to a second communication protocol, a user interface configured to receive input from a user, and a processor disposed within the housing and configured to generate a programming signal in accordance with the input from the user, where the first transceiver transmits the programming signal to the implantable medical device. The telemetry device may take a variety of forms, such as a key fob or the like, and may provide a limited user interface for programming relative to conventional clinician, or even patient, programming devices.
  • A clinician, caregiver, and/or other qualified individuals may use intermediate device 28 in addition to or instead of patient 16. Intermediate device 28 is typically a custom computing device with limited input/output capabilities and custom software that communicates with IMD 12. According to the present invention, intermediate device 28 may also be used as an intermediate security link between the IMD 12 and clinician programmer 26. As will be discussed in further detail below, this intermediate security link provides a layer of security and safety between clinician programmer 26 and IMD 12.
  • Clinician programmer 26 is a device that a clinician or other medical professionals may use to communicate with IMD 12. Clinician programmer 26 may perform advanced device setup and diagnostics and may optionally perform the programming functions of intermediate device 28 as well. Clinician programmer 26 communicates with IMD 12 via intermediate device 28, which provides as an intermediate security link between clinician programmer 26 and IMD 12. In this manner, clinician programmer 26 communicates directly with intermediate device 28, and intermediate device 28 communicates directly with IMD 12. Traditionally, clinician programmers have been capable of communicating directly with IMD 12. However, using intermediate device 28 as an intermediate security link between clinician programmer 26 and IMD 12 may be beneficial when clinician programmer 26 is not a custom computing device dedicated to programming IMD 12, but rather is, e.g., a general purpose computing device that may, e.g., be used to perform tasks unrelated to IMD 12. For example, clinician programmer 26 may be an off-the-shelf personal computer (PC).
  • Clinician programmer 26 may be a computing device that permits a clinician to program therapy for patient 16, e.g., using input keys and a display. For example, using clinician programmer 26, the clinician may specify parameters for use in delivery of therapy via IMD 12. Clinician programmer 26 communicates with intermediate device 28 which in turn communicates with IMD 12. In this manner, therapy parameters or other programming instructions may be downloaded to IMD 12 from clinician programmer 26. Optionally, operational or physiological data stored by IMD 12 may be uploaded to clinician programmer 26 via intermediate device 28. In this manner, a clinician or other medical professional may periodically interrogate IMD 12 to evaluate efficacy of the therapy delivered by IMD 12, and, if necessary, modify the therapy parameters. IMD 12 may also be interrogated via clinician programmer by way of intermediate device 28 to retrieve information stored within a memory of IMD 12, such as physiological parameter measurements taken by IMD 12 or a sensor coupled to IMD 12 or IMD 12 diagnostic data (e.g., electrode impedance measurements or a power level).
  • Intermediate device 28 may be a handheld computing device and may include a display and input keys to allow patient 16 to interact with intermediate device 28 and IMD 12. Intermediate device 28 may provide patient 16 with an interface for control of the therapy delivered by IMD 12, e.g., may be a patient programming device or PTM. For example, patient 16 may use intermediate device 28 to start, stop, or adjust therapy. In embodiments in which IMD 12 is an electrical stimulator, intermediate device 28 may permit patient 16 to adjust stimulation parameters such as duration, amplitude, pulse width, and pulse rate within an adjustment range specified by a clinician via clinician programmer 26 or select from a library of stored stimulation therapy programs.
  • Clinician programmer 26 and intermediate device 28 may communicate via cables, or a wireless communication link as shown in FIG. 1. For example, clinician programmer 26 and intermediate device 28 may communicate with each other using any of a variety of local wireless communication techniques, such as radio frequency (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 communication protocols. Additionally or alternatively, clinician programmer 26 and intermediate device 28 may communicate via a wired connection, such as via a serial communication or USB cable. Further, clinician programmer 26 may communicate with intermediate device 28 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. Intermediate device 28 and IMD 12 may communicate via a wireless communication link using RF telemetry techniques and standard or proprietary telemetry protocols, as is known in the art.
  • FIG. 2 is a block diagram illustrating various components of IMD 12 and implantable lead 14. IMD 12 includes therapy delivery module 40, processor 42, memory 44, telemetry module 46, and power source 47. In some embodiments, IMD 12 may also include a sensing circuit (not shown in FIG. 2). Implantable lead 14 includes elongated lead body 48 extending between proximal end 48A and distal end 48B. Lead body 48 may be a cylindrical or may be a paddle-shaped (i.e., a “paddle” lead). Electrodes 50A, 50B, 50C, and 50D (collectively “electrodes 50”) are disposed on lead body 48 adjacent to distal end 48B of lead body 48.
  • In some embodiments, electrodes 50 may be ring electrodes. In other embodiments, electrodes 50 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 of lead body 48. In embodiments in which lead 14 is a paddle lead, electrodes 50 may extend along one side of lead body 48. The configuration, type, and number of electrodes 50 illustrated in FIG. 2 are merely exemplary.
  • Electrodes 50 extending around a portion of the circumference of lead body 48 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 delivery site. For example, in applications involving electrical stimulation of a nerve proximate to the scalp of patient 16 (e.g., an occipital nerve), electrodes 50 may be disposed along lead body 48 such that the electrodes face toward the target nerve, or otherwise away from the scalp of patient 16. This may be an efficient use of stimulation because electrical stimulation of the scalp may not provide any or may provide minimal therapy to patient 16. In addition, the use of segmented or partial ring electrodes 50 may reduce the overall power delivered to electrodes 50 by IMD 12 because of the efficient delivery of stimulation to the target stimulation site by eliminating or minimizing the delivery of stimulation to unwanted or unnecessary regions within patient 16.
  • In embodiments in which electrodes 50 extend around a portion of the circumference of lead body 48 or along one side of a paddle lead, lead 14 may include one or more orientation markers 45 proximate to proximal end 14A that indicate the relative location of electrodes 50. Orientation marker 45 may be a printed marking on lead body 48, an indentation in lead body 48, 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 marker 45 may help a clinician properly orient lead 14 such that electrodes 50 face the desired direction within patient 16. For example, orientation marker 45 may also extend around the same portion of the circumference of lead body 48 or along the side of the paddle lead as electrodes 50. In this way, orientation marker 45 faces the same direction as electrodes, thus indicating the orientation of electrodes 50 to the clinician. When the clinician implants lead 14 in patient 16, orientation marker 45 may remain visible to the clinician.
  • IMD 12 delivers stimulation therapy via electrodes 50 of lead 14. In particular, electrodes 50 are electrically coupled to a therapy delivery module 40 of IMD 12 via conductors within lead body 48. In one embodiment, an implantable signal generator or other stimulation circuitry within therapy delivery module 40 delivers electrical signals (e.g., pulses or substantially continuous-time signals, such as sinusoidal signals) to target stimulation site 18 (FIG. 1) via at least some of electrodes 50 under the control of processor 42. The implantable signal generator, as well as processor 42, may be coupled to power source 47. Power source 47 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 source 47 similarly may include an inductive power interface for transcutaneous transfer of recharge power.
  • The stimulation energy generated by therapy delivery module 40 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. The electrical signals may be delivered from therapy delivery module 40 to electrodes 50 via a switch matrix and conductors carried by lead 14 and electrically coupled to respective electrodes 50. The coupling via switch matrix may be controlled by processor 42.
  • Processor 42 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. Processor 42 controls the signal generator within therapy delivery module 40 to deliver neurostimulation therapy according to selected stimulation parameters. Specifically, processor 42 controls therapy delivery module 40 to deliver electrical signals with selected amplitudes, pulse widths (if applicable), and rates specified by the programs. In addition, processor 42 may also control therapy delivery module 40 to deliver the neurostimulation signals via selected subsets of electrodes 50 with selected polarities, e.g., through control of the switch matrix. For example, electrodes 50 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. Processor 42 may also control therapy delivery module 40 to deliver each signal according to a different program, thereby interleaving programs to simultaneously treat different symptoms or provide a combined therapeutic effect.
  • Memory 44 of IMD 12 may include any volatile or non-volatile media, such as a random access memory (RAM), read only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read only memory (EEPROM), flash memory, and the like. In some embodiments, memory 44 of IMD 12 may store multiple sets of stimulation parameters, e.g., programs, that are available to be selected by clinician programmer 26 (via intermediate device 28) or intermediate device 28 (FIG. 1) for delivery of neurostimulation therapy. Further the programs may be loaded or modified in memory 44 by clinician programmer 26 (via intermediate device 28) or intermediate device 28. Memory 44 also stores program instructions that, when executed by processor 42, cause IMD 12 to deliver neurostimulation therapy. Accordingly, computer-readable media storing instructions may be provided to cause processor 42 to provide functionality as described herein.
  • Processor 42 controls telemetry module 46 to exchange information with intermediate device 28 for the aforementioned purposes by wireless telemetry. For example, processor 42 may control telemetry module 46 to communicate indirectly with clinician programmer 26 through intermediate device 26, which enables IMD 12 to receive programming instructions or to load, modify or select a program stored within memory 44 based on indirect communication from clinician programmer 26 via intermediate device 28. In addition, IMD 12 may receive instructions from clinician programmer 26 or intermediate device 28 requesting diagnostic information, such as diagnostic information about the performance of IMD 12 (e.g., remaining battery life or electrode impedance) or patient data stored within a memory of IMD 12 (e.g., physiological parameter measurements).
  • FIG. 3 illustrates one embodiment of a system in which intermediate device 28 provides an intermediate security link between clinician programmer 26 and IMD 12. As the medical industry becomes more technology oriented, computing devices tend to have an increasingly important role. In general, a computing device includes software coupled with a processor (e.g., a microprocessor). In some embodiments, the software coupled with the processor may comprise instructions defining an operating environment that presents a graphical user interface to a user.
  • Traditionally, clinician programmers have been custom computing devices dedicated to programming implantable medical devices. More specifically, a clinician programmer has traditionally been a dedicated hardware device with dedicated software for programming of the implantable medical device. Although the software used for programming implantable medical devices is typically unique to the type of medical device being programmed, the hardware used is often very similar to that which already exists for other purposes within the medical industry (e.g., devices in an examination or operating room).
  • According to the invention, clinician programmer 26 may be a computing device that already exists for other functions (e.g., within a hospital or physician's office or outside of the medical industry). In this manner, customized software may be run on standard, non-dedicated computing devices (e.g., desktop personal computers, laptops, and/or tablet computers). Allowing clinician programmer 26 to use computing devices that already exist for other functions (i.e., other than dedicated medical device programmers) may save space within a clinician's office and may be a more efficient use of resources, e.g., money.
  • However, modern computing devices used in the medical industry, such as computers, are typically networked and run common desktop operating systems. These computing devices are prone to computer viruses and other security threats. An intermediate security link between clinician programmer 26 and IMD 12 may help reduce the risks of using a standard, non-dedicated computing device as the hardware component of clinician programmer 26. The use of a standard, non-dedicated computing device (e.g., a desktop, laptop, or tablet) running a commercial operating system (e.g., Windows XP or Vista made available by Microsoft Corporation of Redmond, Wash.) may introduce hazards and risks into the integrity of the communication between IMD 12 and clinician programmer 26. These risks include possible conflicts for resources with other programs within the computing device, effects of viruses or other corruption of the computing device applications, or other disruptions of the expected operation of the computing device. The worst case effect of these disruptions may be transmission of repeated, spurious, or erroneous commands to IMD 12, which may result in unintended changes to the therapy delivered to patient 16 by IMD 12.
  • To help reduce the risk of unintended changes to the therapy delivered by IMD 12, a safe mode may be defined for IMD 12 and IMD 12 may revert to the safe mode in certain circumstances. The safe mode is a set of parameters that is known to provide a safe and comfortable therapy to patient 16 from IMD 12. For example, the safe mode for an implanted neurostimulator may be to set the stimulation amplitude to 0 volts. This would effectively turn off the stimulation and remove any undesirable side effects of the therapy.
  • For some therapies and patients, however, turning off the therapy may not be safe or comfortable. In the example of an implanted neurostimulator, the safe mode for patient 16 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. For an implantable drug delivery device, the safe mode setting may involve a user-predefined rate 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 allowing patient 16, a clinician, a caregiver, or another qualified individual to save one or more safe therapy configurations that provide patient 16 with safe and comfortable therapy. In other embodiments, IMD 12 may determine the therapy parameters of the safe mode, such as by implementing an algorithm that configures the safe mode based on a last known therapy program, which includes one or more therapy parameters, that yielded safe and comfortable therapy to patient 16. Patient 16, a clinician, a caregiver, or another qualified individual may have the ability to rollback to any of the safe mode configurations for IMD 12 as desired. For example, as described in further detail below, patient 16 may provide input indicating a desire to revert IMD 12 to a safe mode, where the input may be provided via safe mode button 60 (FIGS. 1 and 3) of intermediate device 28.
  • The safe mode may be patient, therapy, and/or clinician specific. In some embodiments, one safe mode configuration may be used for all patients who receive a certain type of treatment. For example, the safe mode for a drug delivery device may involve suspending drug delivery. In this embodiment, the patient may be alerted when IMD 12 enters safe mode and may be instructed to take oral medications until therapy is restored. In other embodiments, a clinician may use a specific safe mode for all patients. For example, the safe mode may be set to fifty percent of a last-known therapy. In yet other embodiments, the safe mode may be specific to the individual patient 16 and customizable based on the needs and symptoms of patient 16.
  • A safe mode button 60 (also shown in FIG. 1) may be included on intermediate device 28 to provide immediate programming of IMD 12 to a defined safe mode. The safe mode settings may be saved within safe mode module 61 of intermediate device 28, 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 for IMD 12. Alternatively, the settings for the safe mode of IMD 12 may be stored in IMD 12, and intermediate device 28 may provide instructions to IMD 12 to access and implement the stored safe mode setting, rather than sending the actual safe mode settings themselves.
  • If the safe mode configuration is stored within IMD 12, a universal safe mode command may be used to program IMD 12 to enter the safe mode. A universal safe mode command may be compatible with at least two different types of IMDs designed and/or manufactured by a particular manufacturer. For example, all electrical stimulators produced by Medtronic, Inc. of Minneapolis, Minn. may be programmed to enter a safe mode in response to receiving the universal command. In other embodiments, the universal command may be compatible with two or more IMDs that were designed and/or manufactured by different manufacturers. For example, the universal command may be understood by IMDs designed and/or manufactured by any manufacturer that chooses to comply with a protocol for communicating the universal command. In some embodiments, the universal command may use government regulated standard communication bands and/or protocols (e.g., MICS or MEDS bands).
  • A universal command may be particularly useful in emergency situations in which an emergency room clinician or other medical professional may have no or little information about IMD 12. A universal safe mode command may allow the clinician to activate the safe mode using a universal programmer programmed with the universal safe mode command if the patient's programmer is not present and the clinician does not have access to a clinician programmer 26 that is specifically configured to communicate with IMD 12.
  • Activation of safe mode button 60 may suspend processing of commands sent from clinician programmer 26 to intermediate device 28 pending a reset action by patient 16 or a clinician via intermediate device 28. Safe mode button 60 may serve as a viable mechanism to mitigate hazards associated with unintended programming coming from clinician programmer 26 by allowing patient 16 to restore IMD 12 to a known safe mode state. Safe mode button 60 is not limited to a physical button, and may be activated by any user input media. For example, safe mode button 60 may be a push button, soft-key, voice-activated command, activated by physical interaction, magnetically triggered, or activated upon password authentication. Safe mode button 60 may be implemented alone or in combination with other safety features (e.g., a watchdog (FIG. 3), system mediator 80 (FIG. 4), or a remote user interface (FIG. 5). In some embodiments, safe mode may also be activated automatically, e.g., by a watchdog or system mediator 80, rather than being manually activated via safe mode button 60.
  • In embodiments in which IMD 12 stores the safe mode setting, IMD 12 may automatically revert to safe mode under certain conditions. For example, if IMD 12 is expecting a stay-alive and/or end command from a patient programmer and does not receive the command after a period of time, IMD 12 may program itself to go into safe mode. This may prevent IMD 12 from being left in an unsafe state if the communication between the patient programmer and IMD 12 is interrupted during programming of IMD 12.
  • One embodiment of the intermediate security link between clinician programmer 26 and IMD 12 includes a system watchdog, as illustrated in FIG. 3. In the illustrated embodiment, the system watchdog comprises system watchdog module 62 of intermediate device 28 and watchdog increment module 68 of clinician programmer 26. Intermediate device 28 and clinician programmer 26 further comprise application modules 66 and 72 and operating system modules 64 and 70, respectively. Application modules 66 and 72 may contain software applications that may be run on intermediate device 28 and clinician programmer 26 and operating system modules 64 and 70 may contain software defining the operation systems (e.g., Windows Vista or a custom operating system) which intermediate device 28 and clinician programmer 26, respectively, use to run the software applications. Application modules 66 and 72, operating system modules 64 and 70, system watchdog module 62, and system watchdog increment module 68 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 be associated with each of the modules 62, 64, 66 of intermediate device 28 or two or more of the modules 62, 64, 66 may be 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 the modules 68, 70, 72 of clinician programmer 26 or two or more of the modules may be controlled by a common processor.
  • System watchdog module 62 of intermediate device 28 may indirectly verify that information transmitted from clinician programmer 26 to intermediate device 28, e.g., a programming command for IMD 12, is valid without analyzing the logical validity of the content of the information. For example, system watchdog module 62 may comprise a software task that runs on intermediate device 28 to monitor the behavior of clinician programmer 26. More specifically, in one embodiment, system watchdog module 62 expects to periodically receive a defined signal, such as elements of a signature, from clinician programmer 26 at predetermined intervals during a programming session (e.g., while clinician programmer 26 is sending commands to intermediate device 28). In this manner, intermediate device 28 (the more secure device) monitors clinician programmer 26 (the less secure device). The signature or other signal transmitted from clinician programmer 26 to intermediate device 28 may be, for example, a series of sequential numbers or a predefined pattern of numbers.
  • Watchdog increment module 68 on clinician programmer 26 may deliver the defined signature from clinician programmer 26 to intermediate device 28 at predetermined time intervals. Described in further detail below, the watchdog increment module 68 may be reset by rebooting clinician programmer 26 or by any other suitable means.
  • Watchdog module 62 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 clinician programmer sends the signature. The signature may include a completion indicator that notifies intermediate device 28 when clinician programmer 26 has successfully completed sending instructions to intermediate device 28. In other embodiments, the completion indicator may be sent separately from the signature to notify intermediate device 28 when clinician programmer 26 has successfully completed sending instructions to intermediate device 28.
  • If for any reason, the transmission of the defined signature from clinician programmer 26 to intermediate device 28 is interrupted during a programming session, intermediate device 28 may stop forwarding instructions from clinician programmer 26 and change the therapy delivered by IMD 12 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 module 62 (e.g., between the start of the transmission of the defined signature and the transmission of the completion indicator). More specifically, if intermediate device 28 does not receive the next element in the sequence of the signature before the timer expires, intermediate device 28 may change the therapy delivered by IMD 12 to the safe mode.
  • For example, if intermediate device 28 does not receive any signals from watchdog increment module 68 of clinician programmer 26 before the timer elapses, which may indicate that the clinician programmer 26 has become CPU bound (e.g., clinician programmer 26 is prevented from successfully performing an operation due to the programming application receiving insufficient processing resources as a result of another unrelated application monopolizing them), intermediate device 28 may change the therapy delivered by IMD 12 to the safe mode. As another example, intermediate device 28 may also change the therapy delivered by IMD 12 to the safe mode if an incorrect element in the sequence of the signature is received. For example, if intermediate device 28 receives an element of the signature multiple times, which may indicate that clinician programmer 26 in stuck in an infinite loop, intermediate device 28 may change the therapy delivered by IMD 12 to the safe mode.
  • To ensure that the watchdog is not incremented unless all other critical tasks for sending valid information to intermediate device 28 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 clinician programmer 26. In some embodiments, the watchdog increment task is the lowest priority task running on clinician programmer 26 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 clinician programmer 26 has become CPU bound or encountered any other problem that may inhibit transmission of commands to intermediate device 28. Additionally, watchdog increment module 68 may monitor other operations of clinician programmer 26 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 to intermediate device 28, the watchdog increment task on clinician programmer 26 would never run. After a predefined amount of time during which watchdog module 62 of intermediate device 28 does not receive an element of the defined signature from watchdog increment module 68 of clinician programmer 26, watchdog module 62 may instruct intermediate device 28 to program IMD 12 to go into the safe mode and may refuse further commands from clinician programmer 26 until watchdog increment module 68 is reset.
  • As mentioned previously, watchdog increment module 68 may be reset by rebooting clinician programmer 26. Additionally, if clinician programmer 26 recovers from a problem, it may automatically reset watchdog increment module 68 and send a reset indication message to intermediate device 28. Alternatively, after transmission of the defined signature has been interrupted, intermediate device 28 may send a reset command to clinician programmer 26 to attempt to reset watchdog increment module 68. If successful, clinician programmer 26 may send a reset indication message to intermediate device 28. As an additional alternative, clinician programmer 26 and/or intermediate device 28 may include a button or other means that may be activated by a user to reset the watchdog function.
  • In another embodiment, as illustrated in FIG. 4, intermediate device 28 includes a system mediator module 80 to verify and validate information received from clinician programmer 26. System mediator 80 may be provided in addition to or as an alternative to the watchdog module 62 described with respect to FIG. 3. Intermediate device 28 and clinician programmer 26 may include application modules 66 and 72 and operating system modules 64 and 70, respectively. Application modules 66 and 72 and operating system modules 64 and 70 may each comprise software that may be executed by a processor. Application modules 66 and 72 may contain software applications that may be run on intermediate device 28 and clinician programmer 26 and operating system modules 64 and 70 may contain software defining the operation systems (e.g., Windows Vista or a custom operating system) which intermediate device 28 and clinician programmer 26 use to run the software applications. In addition, intermediate device 28 may also include a safe mode button 50 and safe mode setting module 61 (shown in FIG. 3) to store the safe mode settings of IMD 12 or instructions for programming IMD 12 to enter into a safe mode.
  • System mediator 80 may be a dedicated task on intermediate device 28 that provides a secure link between clinician programmer 26 and IMD 12 by verifying and validating the content of programming instructions being transmitted from clinician programmer 26 to intermediate device 28. System mediator 80 may be an application layer filter that is able to discern between logically valid programming instructions and erroneous programming instructions. In this manner, system mediator 80 provides as an intermediate security link between intermediate device 28 and clinician programmer 26.
  • System mediator 80 of intermediate device 28 may be able to distinguish the difference between logically valid information and logically invalid information received from clinician programmer 26. For example, if clinician programmer 26 tries to program IMD 12 with extreme combinations of parameters that are obviously not part of intended therapy (e.g., far removed from the last known therapy parameter that yielded safe therapy delivery to patient 16), intermediate device 28 will recognize these invalid parameters and will not send the programming instructions to IMD 12 or may require confirmation via user interaction with the PTM before sending them. System mediator 80 may do reasonability and/or consistency checks, such as determining if too little or too much time has passed between commands, evaluating sequence numbering, comparing therapy parameter values to device and/or patient specific acceptable ranges, comparing dosage values set forth by the programming instructions to labeling instructions for a medication, identifying a mismatch of commands to the device (e.g., stimulation instructions sent to a drug delivery device), recognizing an invalid pattern of commands (e.g., a repeated loop), evaluating the environmental context of the commands (e.g., signal strength), identifying contradictions to previously sent commands (e.g., drug reservoir is empty after refilling drug reservoir), and/or any number of other checks, to judge the validity of information sent from clinician programmer 26 and act upon invalid commands in an appropriate manner.
  • In some embodiments, system mediator 80 may receive a first programming command and decide to wait to receive one or more additional programming commands before determining the validity of the first command. For example, system mediator 80 may determine that the first programming command is only valid if followed by a certain type of programming command and may wait to determine the validity of the first command until a second command is received. This may also be useful in addressing interruptions in the transmission of programming commands from clinician programmer 26 to intermediate device 28. For example, if system mediator 80 expects to receive more programming commands in a programming sequence from clinician programmer 26, system mediator 80 may wait to determine the validity of each of the programming commands until all of the commands in the sequence have been received by system mediator 80. In such manner, interruptions in the transmission of programming commands from clinician programmer 26 to intermediate device 28 may not result in interruptions in the transmission of programming commands from intermediate device 28 to IMD 12.
  • In response to determining that the content of the programming instructions/commands from clinician programmer 26 are invalid, system mediator 80 may cause IMD 12 to revert to a safe mode and/or system mediator 80 may refuse commands from clinician programmer 26 until clinician programmer 26 is reset.
  • Clinician programmer 26 may be reset, for example, by rebooting and/or activation of a reset button that initiates the reset. Additionally or alternatively, clinician programmer 26 may automatically reset upon recovering from a problem and/or intermediate device 28 may attempt to initiate the reset of clinician programmer 26 by sending a reset signal to clinician programmer 26. In some embodiments, clinician programmer 26 sends a reset indication message to intermediate device 28 that notifies intermediate device 28 when clinician programmer 26 has been reset.
  • Clinician programmer 26 may not format programming instructions sent to intermediate device 28 in the same format that the programming instructions are sent from intermediate device 28 to IMD 12. For example, clinician programmer 26 may send an instruction to intermediate device 28 that indicates a desired outcome for IMD 12, and the request command may be approved or denied by system mediator 80. The request command may be in a more general format than the commands sent from intermediate device 28 to IMD 12 and may indicate a batching of telemetry commands. System mediator 80 or a processor of intermediate device 28 may then “translate” the instructions from clinician programmer 26 into a format that IMD 12 will understand and accept. In other embodiments, the same message format may be used for messages sent from clinician programmer 26 to intermediate device 28 and message sent from intermediate device 28 to IMD 12.
  • System mediator 80 may require patient 16 to validate certain requests sent to intermediate device 28 from clinician programmer 26 using a user interface provided on intermediate device 28. For example, system mediator 80 may prompt patient 16 to validate a request via a command window on intermediate device 28, and patient 16 may be required to press a validation button before intermediate device 28 allows the request to be transmitted to IMD 12. Validation from patient 16 may be useful if clinician programmer 26 is requesting changes to parameters that are significantly different than the parameters typically set for IMD 12. For example, if clinician programmer 26 requests changes to therapy parameters that will cause IMD 12 to deliver therapy significantly different from the therapy that IMD 12 typically delivers to patient 16, validation from patient 16 may be useful. System mediator 80 may implement a software algorithm to keep track of normal versus abnormal therapy for a given patient 16. System mediator 80 may also keep track of device-specific ranges of acceptable therapy parameter values, patient-specific ranges of acceptable therapy parameter values drug labeling instructions, and/or other therapy information. In the event that abnormal therapy is being requested, intermediate device 28 may request additional verification from patient 16.
  • IMD 12 may include system mediator 80 in addition to or instead of intermediate device 28. For example, in some embodiments, the functionality of system mediator 80 may be split between both IMD 12 and intermediate device 28, while in other embodiments, system mediator 80 is positioned exclusively within IMD 12. In such an embodiment, intermediate device 28 may merely transmit information from clinician programmer 26 to IMD 12 without checking the logical validity of the content of the information. However, intermediate device 28 may still include watchdog module 62 to determine whether the programming command from clinician programmer 26 is valid without analyzing the logical validity of the content of the information.
  • Similarly, regardless of whether the functions of system mediator 80 may be performed by intermediate device 28 or IMD 12, the upper and lower bounds for reasonable checks of the therapy parameters of the programming instructions and the bounds or other thresholds for determining whether the programming instructions include therapy parameters for normal or abnormal therapy may be stored in intermediate device 28 and/or IMD 12. For example, in some embodiments IMD 12 may receive programming instructions from a computing device (e.g., intermediate device 28, a patient programming device, and/or a clinician programming device), analyze the programming instructions, determine whether the content of the instructions is logically valid based on the analysis, and control a therapy delivered from the implantable medical device based on the determination, i.e., if the content of the instructions is logically valid.
  • In another embodiment, as illustrated in FIG. 5, clinician programmer 26 functions as a user input terminal for accessing control functions stored within intermediate device 28. In this manner, clinician programmer 26 provides a remote interface for intermediate device 28. The remote user interface and intermediate device 28 may be linked using any suitable means, such as a cable, USB connection, wireless network or via an internet network. In one embodiment, substantially all control functions for clinician programmer 26 may be stored within intermediate device 28, which provides an intermediate security link between clinician programmer 26 and IMD 12. The remote user interface may be implemented alone or in combination with safe mode button 60, other safe mode implementations, a watchdog module 62 (FIG. 3), and/or system mediator module 80 (FIG. 4).
  • Applications module 66 of intermediate device 28 may include a plurality of instructions for IMD 12. The instructions may include both programming instructions to program one or more therapy parameters into IMD 12 or instruct IMD 12 to deliver therapy according to another program and diagnostic instructions, which may be requests for receiving information stored within memory 44 of IMD 12. The instructions may be presented to a user via the user input terminal, and the user may provide input indicating one or more of the instructions to deliver to IMD 12. In some embodiments, the user input is provided via a user interface (e.g., a touch screen, buttons, keyboard, etc.) of the user input terminal and transmitted to the intermediate computing device (e.g., via a wired or wireless signal). In other embodiments, the user input is provided via a user interface of intermediate device 28.
  • As previously described, in some embodiments, clinician programmer 26 may act as a user input terminal that access control functions within applications module 66 of intermediate device 28. The control functions that clinician programmer 26 may access within intermediate device 28 may include, for example, one or more selectable input therapy parameters for programming IMD 12. In the case of an electrical stimulator, the input therapy parameters define an electrode pattern (i.e., the pattern of anodes and cathodes), stimulation amplitude, frequency, and so forth with which IMD 12 delivers electrical stimulation therapy to patient 16. In the case of a fluid delivery device, the input therapy parameters may define a concentration of a fluid that the fluid delivery device delivers to patient 16, frequency of fluid delivery, size of a bolus, and so forth.
  • In embodiments in which intermediate device 28 couples to a remote user interface, the remote user interface may provide a patient, clinician or other medical professional access to advanced features that are not available via direct manipulation of intermediate device 28. For example, patient 16 may access patient programming type features through direct interaction with intermediate device 28. Clinician programming type features may be stored on intermediate device 28, such as in applications module 66, but may only be accessible through the remote user interface used by clinician programmer 26. Clinician programming type features may include advanced device setup and diagnostic capabilities. Additionally, patient programming type features may optionally be accessed via clinician programmer 26 and may include basic programming capabilities. In this manner, intermediate device 28 may provide direct access to a subset of programming capabilities accessible via clinician programmer 26.
  • In another embodiment, patient programming type features and clinician programming type features may both only be accessible using a remote user interface. In this manner, programming functions for IMD 12 may not be accessed through direct manipulation of intermediate device 28. Instead, intermediate device 28 may contain control functions for programming IMD 12 and may allow patient 16, a clinician, and/or other qualified individuals to access the control functions through one or more remote user interfaces.
  • In one embodiment, clinician programmer 26 provides a display for presenting information from application module 66, which runs on intermediate device 28. Application module 66 of intermediate device 28 may include the programming applications traditionally implemented by clinician programmer 26 (e.g., control functions for clinician programmer 26). The programming applications for clinician programmer 26 stored in applications module 66 may include the control functions typically available for clinician programmer 26 described above. The programming applications stored within intermediate device 28 may include, for example, programming instructions to programming therapy parameters of IMD 12, download patient data (e.g., physiological parameter values recorded by IMD 12, such as blood pressure, electrical activity, core body temperature, ECG data, etc.) from IMD 12, download IMD 12 diagnostic information from IMD 12, and so forth. In this way, a user may interface with clinician programmer applications that are stored within applications module 66 of intermediate device 28 with the aid of the display of clinician programmer 26. Information that is communicated from intermediate device 28 to clinician programmer 26 may pertain to graphics and/or other indicators that may be displayed on clinician programmer 26.
  • In some embodiments, in addition to displaying information to a user, clinician programmer 26 functions as a user input terminal that is configured to receive input from a user. Information communicated from clinician programmer 26 to intermediate device 28 may pertain to inputs selected by a user via clinician programmer 26. A user, such as a clinician or other medical professional, may provide input via a touch screen, keyboard, buttons, a peripheral pointing device or other appropriate input means available on clinician programmer 26. Alternatively, clinician programmer 26 merely provides a display for presenting information from intermediate device 28, and a user provides input via a user interface on intermediate device 28. The user interface of intermediate device 28 may include, for example, a touch screen, keyboard, buttons, a peripheral pointing device or other appropriate input means.
  • In another embodiment, a user interface (including a display) provided on intermediate device 28 may be mirrored to a separate computing device, such as clinician programmer 26, which, as described above, may include an undedicated personal computer. Mirroring the user interface, e.g., the display, provided by intermediate device 28 to the separate computing device provides patient 16, a clinician, and/or another qualified individual with the option to use the separate computing device as a user interface for intermediate device 28. For example, patient 16 may use a separate computing device with a larger screen than intermediate device 28 as a user interface for the intermediate device. This may be beneficial to patients with visual and/or tactile impairments or to implement interfaces that would be too complex when used on the intermediate device display.
  • In another embodiment, intermediate device 28 includes web server module 92 and clinician programmer 26 includes web browser module 94 to facilitate communication between intermediate device 28 and clinician programmer 26. Intermediate device 28 and clinician programmer 26 comprise application modules 66 and 72 and operating system modules 64 and 70, respectively. Application modules 66 and 72, operating system modules 64 and 70, web server module 92, and web browser module 94 may each comprise software that may be executed by a processor. Application module 72 of clinician programmer 26 may comprise non-programming applications that run on clinician programmer 26. All programming functions of clinician programmer 26 may be confined to web browser module 94 of clinician programmer 26. As with the embodiments discussed above, in some embodiments, intermediate device 28 includes a safe mode button 60 that is coupled to a safe mode setting module that stores the safe mode settings for IMD 12, or alternatively, the settings may be stored within IMD 12.
  • Web server module 92 may include software, hardware or a combination of software and hardware, that is configured to accept requests from web browser module 94, which may also include a combination of software, hardware or a combination of software and hardware. For example, a user may input a request to access programming applications via web browser module 94 of clinician programmer 26. As another example, the user may input a request that indicates a specific therapy parameter for implementation by IMD 12 (i.e., the user may request a programming instruction be sent to IMD 12) via web browser module 94. The inputs may be provided to web browser module 94 via a user interface of clinician programmer 26. The requests provided to web server module 92 may substantially conform to the hypertext transfer protocol (HTTP).
  • Upon receiving the request from web browser module 94, web server module 92 may respond to web browser module 94, such as by providing information that defines a graphical display to present on a display of clinician programmer 26 via web browser module 94. The graphical display may provide an interface with which the user may provide further requests to web server module 92. As another example, if the user provides input to web server module 92 that requests a programming instruction be sent to IMD 12, web server module 92 provide confirmation to web browser module 94 that a programming instruction was successfully or unsuccessfully transmitted to IMD 12.
  • In yet another embodiment, clinician programmer 26 acts as a user terminal that provides access to a client server. Information that is communicated from intermediate device 28 to clinician programmer 26 may be limited to graphics and other indicators that may be displayed on clinician programmer 26. Information communicated from clinician programmer 26 to intermediate device 28 may be limited to display output and inputs selected by a user via clinician programmer 26 (e.g., via a touch screen, mouse, and/or keyboard). In this embodiment, intermediate device 28 may function as a client server that may be accessed by clinician programmer 26. In this embodiment, the interface between clinician programmer 26 and intermediate device 28 may be similar to terminal server programs, such as Virtual Network Computing, Windows Remote Desktop®, and Unix/Linux X terminal sessions.
  • In the embodiment in which clinician programmer 26 acts as a user terminal for accessing a client server (i.e., intermediate device 28), clinician programmer 26 may include a display that presents a graphical user interface that remotely controls features of intermediate device 28. For example, a user may remotely access applications module 66 of intermediate device 28 via clinician programmer 28. In one embodiment, inputs (e.g., via a keyboard or a peripheral pointing device, such as a mouse) provided to clinician programmer 26 during a remote access session are transmitted to intermediate device 28. The remote access may be gained through any suitable connection between intermediate device 28 and clinician programmer 26, such as a cabled connection, via wireless communication, USB connection, a LAN, WAN, via an internet connection, and so forth. In this embodiment as well as many of the other embodiments discussed herein, intermediate device 28 may request information from the user to verify the identity of the user. For example, the user may be provided with a user name and password that the user may input to intermediate device 28 in order to gain remote access to programming features of applications module 66 of intermediate device 28.
  • Various embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.

Claims (20)

1. A method comprising:
receiving programming instructions for a medical device from a computing device;
analyzing a content of the programming instructions;
determining whether the content of the programming instructions is logically valid; and
transmitting the programming instructions to the medical device if the content of the programming instructions is logically valid.
2. The method of claim 1, wherein receiving programming instructions from the computing device comprises receiving programming instructions at an intermediate computing device, and wherein analyzing the content of the programming instructions comprises analyzing the content of the programming instructions at the intermediate computing device.
3. The method of claim 2, wherein programming the medical device if the content of the programming instructions is logically valid comprises transmitting the programming instructions from the intermediate computing device to the medical device if the content of the programming instructions is logically valid.
4. The method of claim 1, wherein analyzing the content of the programming instructions comprises analyzing the content of the programming instructions at the medical device.
5. The method of claim 1, wherein the computing device comprises at least one of an intermediate computing device, a patient programming device, or a clinician programmer.
6. The method of claim 1, further comprising placing the medical device in a known safe mode if the content of the programming instructions is not logically valid.
7. The method of claim 1, wherein analyzing the content of the programming instructions comprises comparing a therapy parameter value of the programming instructions to at least one of a device-specific range of acceptable therapy parameter values, a patient-specific range of acceptable therapy parameter values, or medication dosage instructions.
8. The method of claim 7, wherein at least one of the device-specific range, the patient-specific range or the medication dosage instructions is stored within at least one of the medical device or an intermediate computing device.
9. The method of claim 1, wherein receiving programming instructions from the computing device comprises receiving the programming instructions during the course of a programming session between the computing device and the medical device, the method further comprising:
periodically receiving a defined signal from the computing device during the course of the programming session;
transmitting the programming instructions to the medical device if the content of the programming instructions is logically valid; and
transmitting alternative instructions to the medical device instead of the programming instructions in response to an interruption in transmission of the defined signal.
10. The method of claim 1, further comprising prompting a user to validate the content of the programming instructions if the content of the programming instructions is not logically valid.
11. The method of claim 1, wherein the programming instructions comprise a first set of programming instructions, and wherein if the content of the programming instructions is not logically valid, the method further comprises refusing further receipt of a second set of programming instructions from the computing device until an indication that the computing device reset is received.
12. A system comprising:
a computing device; and
a mediator module that receives programming instructions for a medical device from the computing device, analyzes a content of the programming instructions, determines whether the content of the programming instructions is logically valid based on the analysis, and transmits the programming instructions to the medical device the content of the programming instructions is logically valid.
13. The system of claim 12, further comprising the medical device, wherein the medical device comprises the mediator module.
14. The system of claim 12, further comprising an intermediate computing device configured to communicate with the computing device and the medical device, wherein the intermediate device comprises the mediator module.
15. The system of claim 14, wherein the intermediate computing device comprises a safe mode interface, wherein the intermediate computing device is configured to transmit alternative instructions to the medical device instead of the programming instructions in response to receiving an input from a user via the safe mode interface.
16. The system of claim 12, wherein the computing device comprises at least one of a patient programming device, a clinician programmer or a personal computer.
17. The system of claim 12, further comprising a watch dog module, wherein the computing device periodically transmits a defined signal to the watch dog module, and wherein the mediator module transmits the programming instructions to the medical device if the defined signal is uninterrupted and transmits alternative instructions to the medical device instead of the programming instructions in response to an interruption in transmission of the defined signal.
18. The system of claim 12, wherein the processor is configured to analyze the content of the programming instructions by comparing a therapy parameter value set forth by the programming instructions to at least one of a device-specific range of acceptable therapy parameter values, a patient-specific range of acceptable therapy parameter values, or medication dosage instructions.
19. The system of claim 12, further comprising a user interface to interact with the mediator module, wherein the mediator module is configured to prompt a user via the user interface to validate the content of the programming instructions if the content of the programming instructions is not logically valid.
20. A computer-readable medium comprising instructions that cause a processor to:
receive programming instructions for a medical device from a computing device;
analyze a content of the programming instructions;
determine whether the content of the programming instructions is logically valid; and
transmit the programming instructions to the medical device if the content of the programming instructions is logically valid.
US11/940,573 2006-12-06 2007-11-15 Medical device programming safety Active 2028-12-27 US7848819B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/940,573 US7848819B2 (en) 2006-12-06 2007-11-15 Medical device programming safety

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US87319006P 2006-12-06 2006-12-06
US87326406P 2006-12-06 2006-12-06
US11/940,573 US7848819B2 (en) 2006-12-06 2007-11-15 Medical device programming safety

Publications (2)

Publication Number Publication Date
US20080140161A1 true US20080140161A1 (en) 2008-06-12
US7848819B2 US7848819B2 (en) 2010-12-07

Family

ID=39367540

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/940,573 Active 2028-12-27 US7848819B2 (en) 2006-12-06 2007-11-15 Medical device programming safety
US11/940,734 Abandoned US20080140163A1 (en) 2006-12-06 2007-11-15 Telemetry device for a medical device programmer
US11/940,604 Active 2029-01-29 US7885712B2 (en) 2006-12-06 2007-11-15 Medical device programming safety

Family Applications After (2)

Application Number Title Priority Date Filing Date
US11/940,734 Abandoned US20080140163A1 (en) 2006-12-06 2007-11-15 Telemetry device for a medical device programmer
US11/940,604 Active 2029-01-29 US7885712B2 (en) 2006-12-06 2007-11-15 Medical device programming safety

Country Status (3)

Country Link
US (3) US7848819B2 (en)
EP (2) EP2102772A2 (en)
WO (3) WO2008069896A2 (en)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140162A1 (en) * 2006-12-06 2008-06-12 Medtronic, Inc. Medical device programming safety
US20080147145A1 (en) * 2002-10-31 2008-06-19 Medtronic, Inc. Failsafe programming of implantable medical devices
US7837719B2 (en) 2002-05-09 2010-11-23 Daemen College Electrical stimulation unit and waterbath system
US20110082520A1 (en) * 2009-10-07 2011-04-07 Mcelveen Jr John T System for remote monitoring and modulation of medical apparatus
US8352034B2 (en) 2011-02-18 2013-01-08 Medtronic, Inc. Medical device programmer with adjustable kickstand
US8532775B2 (en) 2011-02-18 2013-09-10 Medtronic, Inc. Modular medical device programmer
US8761897B2 (en) 2012-08-31 2014-06-24 Greatbatch Ltd. Method and system of graphical representation of lead connector block and implantable pulse generators on a clinician programmer
US8757485B2 (en) 2012-09-05 2014-06-24 Greatbatch Ltd. System and method for using clinician programmer and clinician programming data for inventory and manufacturing prediction and control
US20140207874A1 (en) * 2013-01-22 2014-07-24 General Electric Company Systems and methods for collaborating in a non-destructive testing system
US8812125B2 (en) 2012-08-31 2014-08-19 Greatbatch Ltd. Systems and methods for the identification and association of medical devices
US8868199B2 (en) 2012-08-31 2014-10-21 Greatbatch Ltd. System and method of compressing medical maps for pulse generator or database storage
US20140325287A1 (en) * 2013-04-26 2014-10-30 Cyberonics, Inc. System monitor for monitoring functional modules of a system
US8903496B2 (en) 2012-08-31 2014-12-02 Greatbatch Ltd. Clinician programming system and method
US8983616B2 (en) 2012-09-05 2015-03-17 Greatbatch Ltd. Method and system for associating patient records with pulse generators
US9180302B2 (en) 2012-08-31 2015-11-10 Greatbatch Ltd. Touch screen finger position indicator for a spinal cord stimulation programming device
US9259577B2 (en) 2012-08-31 2016-02-16 Greatbatch Ltd. Method and system of quick neurostimulation electrode configuration and positioning
US9375582B2 (en) 2012-08-31 2016-06-28 Nuvectra Corporation Touch screen safety controls for clinician programmer
US9471753B2 (en) 2012-08-31 2016-10-18 Nuvectra Corporation Programming and virtual reality representation of stimulation parameter Groups
US9507912B2 (en) 2012-08-31 2016-11-29 Nuvectra Corporation Method and system of simulating a pulse generator on a clinician programmer
US9594877B2 (en) 2012-08-31 2017-03-14 Nuvectra Corporation Virtual reality representation of medical devices
US9596224B2 (en) 2013-04-05 2017-03-14 Nuvectra Corporation Systems, devices, components and methods for communicating with an IMD using a portable electronic device and a mobile computing device
US9615788B2 (en) 2012-08-31 2017-04-11 Nuvectra Corporation Method and system of producing 2D representations of 3D pain and stimulation maps and implant models on a clinician programmer
US9767255B2 (en) 2012-09-05 2017-09-19 Nuvectra Corporation Predefined input for clinician programmer data entry
US10668276B2 (en) 2012-08-31 2020-06-02 Cirtec Medical Corp. Method and system of bracketing stimulation parameters on clinician programmers

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1581102A4 (en) * 2002-12-11 2006-12-20 Proteus Biomedical Inc Method and system for monitoring and treating hemodynamic parameters
US9308382B2 (en) 2004-06-10 2016-04-12 Medtronic Urinary Solutions, Inc. Implantable pulse generator systems and methods for providing functional and/or therapeutic stimulation of muscles and/or nerves and/or central nervous system tissue
EP1799101A4 (en) * 2004-09-02 2008-11-19 Proteus Biomedical Inc Methods and apparatus for tissue activation and monitoring
US7720546B2 (en) 2004-09-30 2010-05-18 Codman Neuro Sciences Sárl Dual power supply switching circuitry for use in a closed system
US8186358B2 (en) * 2005-07-29 2012-05-29 Codman Neuro Sciences Sárl System and method for locating an internal device in a closed system
US8924248B2 (en) 2006-09-26 2014-12-30 Fitbit, Inc. System and method for activating a device based on a record of physical activity
US20080082144A1 (en) * 2006-09-29 2008-04-03 James Marcotte Universal usb-based telemetry rf head
US8395498B2 (en) 2007-08-31 2013-03-12 Cardiac Pacemakers, Inc. Wireless patient communicator employing security information management
US9848058B2 (en) 2007-08-31 2017-12-19 Cardiac Pacemakers, Inc. Medical data transport over wireless life critical network employing dynamic communication link mapping
US8473069B2 (en) 2008-02-28 2013-06-25 Proteus Digital Health, Inc. Integrated circuit implementation and fault control system, device, and method
US9008766B2 (en) 2008-06-02 2015-04-14 Physio-Control, Inc. Medical device adjusting operation when used with non-authenticated patient parameter collecting accessory
US8179087B2 (en) * 2008-06-02 2012-05-15 Physio-Control, Inc. Selective recharging of medical device depending on authentication of power adapter system
US8183823B2 (en) * 2008-06-02 2012-05-22 Physio-Control, Inc. Selective powering of medical device depending on authentication of power adapter system
US8347149B2 (en) * 2008-10-01 2013-01-01 Cardiac Pacemakers, Inc. System and method for providing fault tolerant processing in an implantable medical device
JP2012510340A (en) * 2008-12-02 2012-05-10 プロテウス バイオメディカル インコーポレイテッド Communication protocol suitable for the analyzer
US8082312B2 (en) * 2008-12-12 2011-12-20 Event Medical, Inc. System and method for communicating over a network with a medical device
US8812841B2 (en) 2009-03-04 2014-08-19 Cardiac Pacemakers, Inc. Communications hub for use in life critical network
US8319631B2 (en) 2009-03-04 2012-11-27 Cardiac Pacemakers, Inc. Modular patient portable communicator for use in life critical network
US10376696B2 (en) * 2009-03-20 2019-08-13 Electrocore, Inc. Medical self-treatment using non-invasive vagus nerve stimulation
EP2424588A4 (en) 2009-04-29 2013-05-22 Proteus Digital Health Inc Methods and apparatus for leads for implantable devices
US20100318159A1 (en) * 2009-06-12 2010-12-16 Boston Scientific Neuromodulation Corporation Miniature remote controller for implantable medical device
EP2457241A2 (en) 2009-07-23 2012-05-30 Proteus Biomedical, Inc. Solid-state thin film capacitor
US8171094B2 (en) * 2010-01-19 2012-05-01 Event Medical, Inc. System and method for communicating over a network with a medical device
US11660392B2 (en) 2010-02-05 2023-05-30 Deka Products Limited Partnership Devices, methods and systems for wireless control of medical devices
EP2531232B1 (en) * 2010-02-05 2016-10-19 DEKA Products Limited Partnership Infusion pump apparatus and heated fill adapter system
US9107684B2 (en) * 2010-03-05 2015-08-18 Covidien Lp System and method for transferring power to intrabody instruments
US9253168B2 (en) 2012-04-26 2016-02-02 Fitbit, Inc. Secure pairing of devices via pairing facilitator-intermediary device
US8738321B2 (en) 2010-09-30 2014-05-27 Fitbit, Inc. Methods and systems for classification of geographic locations for tracked activity
US8694282B2 (en) 2010-09-30 2014-04-08 Fitbit, Inc. Methods and systems for geo-location optimized tracking and updating for events having combined activity and location information
US8849610B2 (en) 2010-09-30 2014-09-30 Fitbit, Inc. Tracking user physical activity with multiple devices
US8615377B1 (en) 2010-09-30 2013-12-24 Fitbit, Inc. Methods and systems for processing social interactive data and sharing of tracked activity associated with locations
US8744803B2 (en) 2010-09-30 2014-06-03 Fitbit, Inc. Methods, systems and devices for activity tracking device data synchronization with computing devices
US10983945B2 (en) 2010-09-30 2021-04-20 Fitbit, Inc. Method of data synthesis
US8762102B2 (en) 2010-09-30 2014-06-24 Fitbit, Inc. Methods and systems for generation and rendering interactive events having combined activity and location information
US9390427B2 (en) 2010-09-30 2016-07-12 Fitbit, Inc. Methods, systems and devices for automatic linking of activity tracking devices to user devices
US8712724B2 (en) 2010-09-30 2014-04-29 Fitbit, Inc. Calendar integration methods and systems for presentation of events having combined activity and location information
US8620617B2 (en) 2010-09-30 2013-12-31 Fitbit, Inc. Methods and systems for interactive goal setting and recommender using events having combined activity and location information
US8805646B2 (en) 2010-09-30 2014-08-12 Fitbit, Inc. Methods, systems and devices for linking user devices to activity tracking devices
US8954290B2 (en) 2010-09-30 2015-02-10 Fitbit, Inc. Motion-activated display of messages on an activity monitoring device
US8738323B2 (en) 2010-09-30 2014-05-27 Fitbit, Inc. Methods and systems for metrics analysis and interactive rendering, including events having combined activity and location information
US11243093B2 (en) 2010-09-30 2022-02-08 Fitbit, Inc. Methods, systems and devices for generating real-time activity data updates to display devices
US9241635B2 (en) 2010-09-30 2016-01-26 Fitbit, Inc. Portable monitoring devices for processing applications and processing analysis of physiological conditions of a user associated with the portable monitoring device
US8954291B2 (en) 2010-09-30 2015-02-10 Fitbit, Inc. Alarm setting and interfacing with gesture contact interfacing controls
US9188460B2 (en) 2010-09-30 2015-11-17 Fitbit, Inc. Methods, systems and devices for generating real-time activity data updates to display devices
US10004406B2 (en) 2010-09-30 2018-06-26 Fitbit, Inc. Portable monitoring devices for processing applications and processing analysis of physiological conditions of a user associated with the portable monitoring device
US8762101B2 (en) 2010-09-30 2014-06-24 Fitbit, Inc. Methods and systems for identification of event data having combined activity and location information of portable monitoring devices
US9310909B2 (en) 2010-09-30 2016-04-12 Fitbit, Inc. Methods, systems and devices for physical contact activated display and navigation
US9148483B1 (en) 2010-09-30 2015-09-29 Fitbit, Inc. Tracking user physical activity with multiple devices
US20120123503A1 (en) * 2010-11-15 2012-05-17 Medtronic, Inc. Patient programmer with customizable programming
WO2012092197A2 (en) 2010-12-27 2012-07-05 Medtronic, Inc. Application limitations for a medical communication module and host device
US9495511B2 (en) * 2011-03-01 2016-11-15 Covidien Lp Remote monitoring systems and methods for medical devices
US8983615B2 (en) 2011-02-21 2015-03-17 Boston Scientific Neuromodulation Corporation System for communication with implantable medical devices using a bridge device
US8738925B1 (en) 2013-01-07 2014-05-27 Fitbit, Inc. Wireless portable biometric device syncing
US20130006330A1 (en) * 2011-06-28 2013-01-03 Greatbatch, Ltd. Dual patient controllers
US20130197607A1 (en) 2011-06-28 2013-08-01 Greatbatch Ltd. Dual patient controllers
US8954148B2 (en) 2011-06-28 2015-02-10 Greatbatch, Ltd. Key fob controller for an implantable neurostimulator
US9974108B2 (en) 2012-02-06 2018-05-15 Nuvectra Corporation Paired communication between an implanted medical device and an external control device
US9641239B2 (en) 2012-06-22 2017-05-02 Fitbit, Inc. Adaptive data transfer using bluetooth
US9039614B2 (en) 2013-01-15 2015-05-26 Fitbit, Inc. Methods, systems and devices for measuring fingertip heart rate
US9728059B2 (en) 2013-01-15 2017-08-08 Fitbit, Inc. Sedentary period detection utilizing a wearable electronic device
US8827906B2 (en) 2013-01-15 2014-09-09 Fitbit, Inc. Methods, systems and devices for measuring fingertip heart rate
EP2770452A1 (en) * 2013-02-22 2014-08-27 Samsung Electronics Co., Ltd. Method and system for transmitting result of examination of specimen from medical device to destination through mobile device
US10404784B2 (en) * 2013-02-22 2019-09-03 Samsung Electronics Co., Ltd. Method and system for transmitting result of examination of specimen from medical device to destination
US9440076B2 (en) 2013-03-15 2016-09-13 Globus Medical, Inc. Spinal cord stimulator system
US9887574B2 (en) 2013-03-15 2018-02-06 Globus Medical, Inc. Spinal cord stimulator system
US9872997B2 (en) 2013-03-15 2018-01-23 Globus Medical, Inc. Spinal cord stimulator system
US9878170B2 (en) 2013-03-15 2018-01-30 Globus Medical, Inc. Spinal cord stimulator system
US9870447B2 (en) 2013-04-26 2018-01-16 Roche Diabetes Care, Inc. Medical data transfer component
US9830673B2 (en) 2013-04-26 2017-11-28 Roche Diabetes Care, Inc. System portal control for a diabetes management system
US9186518B2 (en) 2013-09-06 2015-11-17 Boston Scientific Neuromodulation Corporation Medical device application for configuring a mobile device into an external controller for an implantable medical device
US9717919B2 (en) 2013-09-06 2017-08-01 Boston Scientific Neuromodulation Corporation Filtering algorithm for assessing communications wirelessly received by an implantable medical device
EP2870979B1 (en) 2013-11-08 2021-01-06 Nuvectra Corporation Implantable medical lead for stimulation of multiple nerves
US9031812B2 (en) 2014-02-27 2015-05-12 Fitbit, Inc. Notifications on a user device based on activity detected by an activity monitoring device
US9449409B2 (en) 2014-04-11 2016-09-20 Fitbit, Inc. Graphical indicators in analog clock format
US9449365B2 (en) 2014-04-11 2016-09-20 Fitbit, Inc. Personalized scaling of graphical indicators
US9288298B2 (en) 2014-05-06 2016-03-15 Fitbit, Inc. Notifications regarding interesting or unusual activity detected from an activity monitoring device
GB201413836D0 (en) * 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
EP3180069B1 (en) 2014-08-17 2020-05-13 Nine Continents Medical, Inc. Miniature implatable neurostimulator system for sciatic nerves and their branches
US9533162B2 (en) 2014-08-21 2017-01-03 Boston Scientific Neuromodulation Corporation Use of a dedicated remote control as an intermediary device to communicate with an implantable medical device
US9916436B2 (en) 2014-10-24 2018-03-13 Physio-Control, Inc. Intelligent accessories for medical devices
US10835449B2 (en) * 2015-03-30 2020-11-17 Zoll Medical Corporation Modular components for medical devices
US9700669B2 (en) * 2015-04-16 2017-07-11 Flowonix Medical Incorporated Patient programmer for implantable drug delivery device
GB2540961B (en) 2015-07-31 2019-09-18 Arm Ip Ltd Controlling configuration data storage
GB2540965B (en) 2015-07-31 2019-01-30 Arm Ip Ltd Secure configuration data storage
EP3337557B1 (en) * 2015-08-17 2020-08-19 Boston Scientific Neuromodulation Corporation Remote access and post program telemonitoring
US10230270B2 (en) * 2015-09-09 2019-03-12 Cpg Technologies, Llc Power internal medical devices with guided surface waves
US10315038B2 (en) 2016-02-19 2019-06-11 Boston Scientific Neuromodulation Corporation Clinical guidance user interfaces for neurostimulator programming
US10080530B2 (en) 2016-02-19 2018-09-25 Fitbit, Inc. Periodic inactivity alerts and achievement messages
EP3421081B1 (en) 2017-06-30 2020-04-15 GTX medical B.V. A system for neuromodulation
US11173311B2 (en) 2018-11-02 2021-11-16 Advanced Neuromodulation Systems, Inc. Methods for programming an implantable medical device and related systems and devices
US10967190B2 (en) 2018-11-02 2021-04-06 Advanced Neuromodulation Systems, Inc. Methods of operating a system for management of implantable medical devices (IMDs) using reconciliation operations and revocation data
US11083900B2 (en) 2018-11-02 2021-08-10 Advanced Neuromodulation Systems, Inc. Methods for operating a system for management of implantable medical devices and related systems
US11090496B2 (en) 2018-11-02 2021-08-17 Advanced Neuromodulation Systems, Inc. Implantable medical device using permanent and temporary keys for therapeutic settings and related methods of operation
US11173313B2 (en) * 2018-11-02 2021-11-16 Advanced Neuromodulation Systems, Inc. Implantable medical device with offline programming limitations and related methods of operations
ES2911465T3 (en) 2018-11-13 2022-05-19 Onward Medical N V Control system for the reconstruction and/or restoration of a patient's movement
EP3695878B1 (en) 2019-02-12 2023-04-19 ONWARD Medical N.V. A system for neuromodulation
DE19211698T1 (en) 2019-11-27 2021-09-02 Onward Medical B.V. Neuromodulation system
EP3988158A1 (en) 2020-10-26 2022-04-27 GTX medical B.V. System for planning and/or controlling neuromodulation
WO2023118945A1 (en) 2021-12-24 2023-06-29 Debiotech S.A. Safety medical system
EP4249045A1 (en) * 2022-03-25 2023-09-27 BIOTRONIK SE & Co. KG Implant communication system and method for communicating with an implantable medical device

Citations (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3942535A (en) * 1973-09-27 1976-03-09 G. D. Searle & Co. Rechargeable tissue stimulating system
US4208008A (en) * 1978-11-06 1980-06-17 Medtronic, Inc. Pacing generator programming apparatus including error detecting means
US4304238A (en) * 1976-09-16 1981-12-08 Cardiac Pacemakers, Inc. Programmable demand pacer
US4365633A (en) * 1980-02-22 1982-12-28 Telectronics Pty. Ltd. Patient-operated pacemaker programmer
US4550732A (en) * 1984-03-23 1985-11-05 Cordis Corporation System and process for enabling a predefined function within an implanted device
US4587970A (en) * 1985-01-22 1986-05-13 Telectronics N.V. Tachycardia reversion pacer
US4926865A (en) * 1987-10-01 1990-05-22 Oman Paul S Microcomputer-based nerve and muscle stimulator
US5158078A (en) * 1990-08-14 1992-10-27 Medtronic, Inc. Rate responsive pacemaker and methods for optimizing its operation
US5226413A (en) * 1990-08-14 1993-07-13 Medtronic, Inc. Rate responsive pacemaker and method for automatically initializing the same
US5350407A (en) * 1992-12-30 1994-09-27 Telectronics Pacing Systems, Inc. Implantable stimulator having quiescent and active modes of operation
US5383915A (en) * 1991-04-10 1995-01-24 Angeion Corporation Wireless programmer/repeater system for an implanted medical device
US5456692A (en) * 1993-09-03 1995-10-10 Pacesetter, Inc. System and method for noninvasively altering the function of an implanted pacemaker
US5653735A (en) * 1995-06-28 1997-08-05 Pacesetter, Inc. Implantable cardiac stimulation device having an improved backup mode of operation and method thereof
US5683432A (en) * 1996-01-11 1997-11-04 Medtronic, Inc. Adaptive, performance-optimizing communication system for communicating with an implanted medical device
US5690690A (en) * 1995-03-08 1997-11-25 Pacesetter, Inc. Implantable cardiac stimulation system
US5752977A (en) * 1997-04-15 1998-05-19 Medtronic, Inc. Efficient high data rate telemetry format for implanted medical device
US5792201A (en) * 1995-07-13 1998-08-11 Pacesetter, Inc. Safety optimization in microprocessor-controlled implantable devices
US5938690A (en) * 1996-06-07 1999-08-17 Advanced Neuromodulation Systems, Inc. Pain management system and method
US6249703B1 (en) * 1994-07-08 2001-06-19 Medtronic, Inc. Handheld patient programmer for implantable human tissue stimulator
US6308102B1 (en) * 1999-09-29 2001-10-23 Stimsoft, Inc. Patient interactive neurostimulation system and method
US20020016568A1 (en) * 2000-01-21 2002-02-07 Lebel Ronald J. Microprocessor controlled ambulatory medical apparatus with hand held communication device
US20020123673A1 (en) * 1999-12-17 2002-09-05 Webb James D. Method and apparatus for remotely programming implantable medical devices
US20020133207A1 (en) * 2001-03-19 2002-09-19 Cardiac Pacemakers, Inc. Implantable cardiac rhythm management device incorporating a programmable watchdog timer
US6480745B2 (en) * 1999-12-24 2002-11-12 Medtronic, Inc. Information network interrogation of an implanted device
US6516227B1 (en) * 1999-07-27 2003-02-04 Advanced Bionics Corporation Rechargeable spinal cord stimulator system
US20030088290A1 (en) * 2001-11-07 2003-05-08 Spinelli Julio C. Centralized management system for programmable medical devices
US20030130708A1 (en) * 2002-01-08 2003-07-10 Von Arx Jeffrey A. Two-hop telemetry interface for medical device
US6597951B2 (en) * 2001-03-16 2003-07-22 Cardiac Pacemakers, Inc. Automatic selection from multiple cardiac optimization protocols
US6609032B1 (en) * 1999-01-07 2003-08-19 Advanced Bionics Corporation Fitting process for a neural stimulation system
US6622045B2 (en) * 2001-03-29 2003-09-16 Pacesetter, Inc. System and method for remote programming of implantable cardiac stimulation devices
US20030177031A1 (en) * 2002-03-15 2003-09-18 Medtronic, Inc. Data management of patient medical information for use with an implantable medical device
US6659968B1 (en) * 2000-06-01 2003-12-09 Advanced Bionics Corporation Activity monitor for pain management efficacy measurement
US6665565B1 (en) * 1999-12-24 2003-12-16 Medtronic, Inc. Method and a system for conducting failure mode recovery in an implanted medical device
US20040138724A1 (en) * 2002-10-31 2004-07-15 Sieracki Jeffrey M. Failsafe programming of implantable medical devices
US20040138518A1 (en) * 2002-10-15 2004-07-15 Medtronic, Inc. Medical device system with relaying module for treatment of nervous system disorders
US20040143302A1 (en) * 2002-10-31 2004-07-22 Sieracki Jeffrey M. Distributed system for neurostimulation therapy programming
US20040167587A1 (en) * 2002-09-30 2004-08-26 Medtronic, Inc. Multi-mode programmer for medical device communication
US20040199215A1 (en) * 2003-04-02 2004-10-07 Lee Michael T. Neurostimulation therapy usage diagnostics
US6804558B2 (en) * 1999-07-07 2004-10-12 Medtronic, Inc. System and method of communicating between an implantable medical device and a remote computer system or health care provider
US20040215286A1 (en) * 2003-04-22 2004-10-28 Stypulkowski Paul H. Generation of multiple neurostimulation therapy programs
US20040260363A1 (en) * 2003-06-23 2004-12-23 Arx Jeffrey A. Von Secure long-range telemetry for implantable medical device
US6868309B1 (en) * 2001-09-24 2005-03-15 Aksys, Ltd. Dialysis machine with symmetric multi-processing (SMP) control system and method of operation
US6878112B2 (en) * 1999-12-17 2005-04-12 Medtronic, Inc. Virtual remote monitor, alert, diagnostics and programming for implantable medical device systems
US20050277999A1 (en) * 2004-06-10 2005-12-15 Ndi Medical, Llc Implantable pulse generator for providing functional and/or therapeutic stimulation of muscles and /or nerves and/or central nervous system tissue
US6978181B1 (en) * 2002-05-24 2005-12-20 Pacesetter, Inc. Inter-programmer communication among programmers of implantable medical devices
US20050283198A1 (en) * 2004-06-18 2005-12-22 Haubrich Gregory J Conditional requirements for remote medical device programming
US7043305B2 (en) * 2002-03-06 2006-05-09 Cardiac Pacemakers, Inc. Method and apparatus for establishing context among events and optimizing implanted medical device performance
US7065409B2 (en) * 2002-12-13 2006-06-20 Cardiac Pacemakers, Inc. Device communications of an implantable medical device and an external system
US20060161213A1 (en) * 2005-01-14 2006-07-20 Patel Neilesh S Method of graphical display of link status and fail-safe mechanism for safety during real-time medical device therapy
US20060190047A1 (en) * 2005-02-23 2006-08-24 Medtronic, Inc. Implantable medical device providing adaptive neurostimulation therapy for incontinence
US7142923B2 (en) * 2003-02-21 2006-11-28 Medtronic, Inc. Implantable neurostimulator programming with battery longevity indication
US7146219B2 (en) * 2002-10-31 2006-12-05 Medtronic, Inc. Applying filter information to identify combinations of electrodes
US7216000B2 (en) * 2002-10-31 2007-05-08 Medtronic, Inc. Neurostimulation therapy manipulation
US20080140162A1 (en) * 2006-12-06 2008-06-12 Medtronic, Inc. Medical device programming safety
US7489970B2 (en) * 2003-04-02 2009-02-10 Medtronic, Inc. Management of neurostimulation therapy using parameter sets
US20090157137A1 (en) * 2007-12-14 2009-06-18 Cardiac Pacemakers, Inc. Vector Configuration Detection and Corrective Response Systems and Methods
US7610099B2 (en) * 2000-06-19 2009-10-27 Medtronic, Inc. Method of processing telemetry signals in an implantable medical device including a telemetry processor
US7657319B2 (en) * 2006-02-24 2010-02-02 Medtronic, Inc. Programming interface with an unwrapped 2D view of a stimulation lead with complex electrode array geometry

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020052539A1 (en) * 1999-07-07 2002-05-02 Markus Haller System and method for emergency communication between an implantable medical device and a remote computer system or health care provider
US7463930B2 (en) * 2000-12-20 2008-12-09 Medtronic, Inc. Implantable medical device programmer module for use with existing clinical instrumentation
US7187978B2 (en) * 2001-11-01 2007-03-06 Medtronic, Inc. Method and apparatus for programming an implantable medical device
US6643541B2 (en) * 2001-12-07 2003-11-04 Motorola, Inc Wireless electromyography sensor and system
US20030140928A1 (en) * 2002-01-29 2003-07-31 Tuan Bui Medical treatment verification system and method
EP2462983A1 (en) * 2002-06-28 2012-06-13 Boston Scientific Neuromodulation Corporation Microstimulator having self-contained power source and bi-directional telemetry system
US7742821B1 (en) * 2003-06-11 2010-06-22 Boston Scientific Neutomodulation Corporation Remote control for implantable medical device

Patent Citations (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3942535A (en) * 1973-09-27 1976-03-09 G. D. Searle & Co. Rechargeable tissue stimulating system
US4304238A (en) * 1976-09-16 1981-12-08 Cardiac Pacemakers, Inc. Programmable demand pacer
US4208008A (en) * 1978-11-06 1980-06-17 Medtronic, Inc. Pacing generator programming apparatus including error detecting means
US4365633A (en) * 1980-02-22 1982-12-28 Telectronics Pty. Ltd. Patient-operated pacemaker programmer
US4550732A (en) * 1984-03-23 1985-11-05 Cordis Corporation System and process for enabling a predefined function within an implanted device
US4587970A (en) * 1985-01-22 1986-05-13 Telectronics N.V. Tachycardia reversion pacer
US4926865A (en) * 1987-10-01 1990-05-22 Oman Paul S Microcomputer-based nerve and muscle stimulator
US5158078A (en) * 1990-08-14 1992-10-27 Medtronic, Inc. Rate responsive pacemaker and methods for optimizing its operation
US5226413A (en) * 1990-08-14 1993-07-13 Medtronic, Inc. Rate responsive pacemaker and method for automatically initializing the same
US5383915A (en) * 1991-04-10 1995-01-24 Angeion Corporation Wireless programmer/repeater system for an implanted medical device
US5350407A (en) * 1992-12-30 1994-09-27 Telectronics Pacing Systems, Inc. Implantable stimulator having quiescent and active modes of operation
US5456692A (en) * 1993-09-03 1995-10-10 Pacesetter, Inc. System and method for noninvasively altering the function of an implanted pacemaker
US6249703B1 (en) * 1994-07-08 2001-06-19 Medtronic, Inc. Handheld patient programmer for implantable human tissue stimulator
US5690690A (en) * 1995-03-08 1997-11-25 Pacesetter, Inc. Implantable cardiac stimulation system
US5653735A (en) * 1995-06-28 1997-08-05 Pacesetter, Inc. Implantable cardiac stimulation device having an improved backup mode of operation and method thereof
US5792201A (en) * 1995-07-13 1998-08-11 Pacesetter, Inc. Safety optimization in microprocessor-controlled implantable devices
US5683432A (en) * 1996-01-11 1997-11-04 Medtronic, Inc. Adaptive, performance-optimizing communication system for communicating with an implanted medical device
US5938690A (en) * 1996-06-07 1999-08-17 Advanced Neuromodulation Systems, Inc. Pain management system and method
US5752977A (en) * 1997-04-15 1998-05-19 Medtronic, Inc. Efficient high data rate telemetry format for implanted medical device
US6609032B1 (en) * 1999-01-07 2003-08-19 Advanced Bionics Corporation Fitting process for a neural stimulation system
US6804558B2 (en) * 1999-07-07 2004-10-12 Medtronic, Inc. System and method of communicating between an implantable medical device and a remote computer system or health care provider
US6516227B1 (en) * 1999-07-27 2003-02-04 Advanced Bionics Corporation Rechargeable spinal cord stimulator system
US6895280B2 (en) * 1999-07-27 2005-05-17 Advanced Bionics Corporation Rechargeable spinal cord stimulator system
US6308102B1 (en) * 1999-09-29 2001-10-23 Stimsoft, Inc. Patient interactive neurostimulation system and method
US7060031B2 (en) * 1999-12-17 2006-06-13 Medtronic, Inc. Method and apparatus for remotely programming implantable medical devices
US20020123673A1 (en) * 1999-12-17 2002-09-05 Webb James D. Method and apparatus for remotely programming implantable medical devices
US6878112B2 (en) * 1999-12-17 2005-04-12 Medtronic, Inc. Virtual remote monitor, alert, diagnostics and programming for implantable medical device systems
US6480745B2 (en) * 1999-12-24 2002-11-12 Medtronic, Inc. Information network interrogation of an implanted device
US6665565B1 (en) * 1999-12-24 2003-12-16 Medtronic, Inc. Method and a system for conducting failure mode recovery in an implanted medical device
US6577899B2 (en) * 2000-01-21 2003-06-10 Medtronic Minimed, Inc. Microprocessor controlled ambulatory medical apparatus with hand held communication device
US20020049480A1 (en) * 2000-01-21 2002-04-25 Lebel Ronald J. Microprocessor controlled ambulatory medical apparatus with hand held communication device
US20020016568A1 (en) * 2000-01-21 2002-02-07 Lebel Ronald J. Microprocessor controlled ambulatory medical apparatus with hand held communication device
US6659968B1 (en) * 2000-06-01 2003-12-09 Advanced Bionics Corporation Activity monitor for pain management efficacy measurement
US7610099B2 (en) * 2000-06-19 2009-10-27 Medtronic, Inc. Method of processing telemetry signals in an implantable medical device including a telemetry processor
US6597951B2 (en) * 2001-03-16 2003-07-22 Cardiac Pacemakers, Inc. Automatic selection from multiple cardiac optimization protocols
US20020133207A1 (en) * 2001-03-19 2002-09-19 Cardiac Pacemakers, Inc. Implantable cardiac rhythm management device incorporating a programmable watchdog timer
US6622045B2 (en) * 2001-03-29 2003-09-16 Pacesetter, Inc. System and method for remote programming of implantable cardiac stimulation devices
US6868309B1 (en) * 2001-09-24 2005-03-15 Aksys, Ltd. Dialysis machine with symmetric multi-processing (SMP) control system and method of operation
US20030088290A1 (en) * 2001-11-07 2003-05-08 Spinelli Julio C. Centralized management system for programmable medical devices
US20030130708A1 (en) * 2002-01-08 2003-07-10 Von Arx Jeffrey A. Two-hop telemetry interface for medical device
US7043305B2 (en) * 2002-03-06 2006-05-09 Cardiac Pacemakers, Inc. Method and apparatus for establishing context among events and optimizing implanted medical device performance
US20030177031A1 (en) * 2002-03-15 2003-09-18 Medtronic, Inc. Data management of patient medical information for use with an implantable medical device
US6978181B1 (en) * 2002-05-24 2005-12-20 Pacesetter, Inc. Inter-programmer communication among programmers of implantable medical devices
US20040167587A1 (en) * 2002-09-30 2004-08-26 Medtronic, Inc. Multi-mode programmer for medical device communication
US20040138518A1 (en) * 2002-10-15 2004-07-15 Medtronic, Inc. Medical device system with relaying module for treatment of nervous system disorders
US20040138724A1 (en) * 2002-10-31 2004-07-15 Sieracki Jeffrey M. Failsafe programming of implantable medical devices
US7146219B2 (en) * 2002-10-31 2006-12-05 Medtronic, Inc. Applying filter information to identify combinations of electrodes
US7216000B2 (en) * 2002-10-31 2007-05-08 Medtronic, Inc. Neurostimulation therapy manipulation
US20040143302A1 (en) * 2002-10-31 2004-07-22 Sieracki Jeffrey M. Distributed system for neurostimulation therapy programming
US7181286B2 (en) * 2002-10-31 2007-02-20 Medtronic, Inc. Distributed system for neurostimulation therapy programming
US7065409B2 (en) * 2002-12-13 2006-06-20 Cardiac Pacemakers, Inc. Device communications of an implantable medical device and an external system
US7142923B2 (en) * 2003-02-21 2006-11-28 Medtronic, Inc. Implantable neurostimulator programming with battery longevity indication
US7489970B2 (en) * 2003-04-02 2009-02-10 Medtronic, Inc. Management of neurostimulation therapy using parameter sets
US20040199215A1 (en) * 2003-04-02 2004-10-07 Lee Michael T. Neurostimulation therapy usage diagnostics
US20040215286A1 (en) * 2003-04-22 2004-10-28 Stypulkowski Paul H. Generation of multiple neurostimulation therapy programs
US7155290B2 (en) * 2003-06-23 2006-12-26 Cardiac Pacemakers, Inc. Secure long-range telemetry for implantable medical device
US20040260363A1 (en) * 2003-06-23 2004-12-23 Arx Jeffrey A. Von Secure long-range telemetry for implantable medical device
US20050277999A1 (en) * 2004-06-10 2005-12-15 Ndi Medical, Llc Implantable pulse generator for providing functional and/or therapeutic stimulation of muscles and /or nerves and/or central nervous system tissue
US20050283198A1 (en) * 2004-06-18 2005-12-22 Haubrich Gregory J Conditional requirements for remote medical device programming
US20060161213A1 (en) * 2005-01-14 2006-07-20 Patel Neilesh S Method of graphical display of link status and fail-safe mechanism for safety during real-time medical device therapy
US20060190047A1 (en) * 2005-02-23 2006-08-24 Medtronic, Inc. Implantable medical device providing adaptive neurostimulation therapy for incontinence
US7657319B2 (en) * 2006-02-24 2010-02-02 Medtronic, Inc. Programming interface with an unwrapped 2D view of a stimulation lead with complex electrode array geometry
US20080140162A1 (en) * 2006-12-06 2008-06-12 Medtronic, Inc. Medical device programming safety
US20090157137A1 (en) * 2007-12-14 2009-06-18 Cardiac Pacemakers, Inc. Vector Configuration Detection and Corrective Response Systems and Methods

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7837719B2 (en) 2002-05-09 2010-11-23 Daemen College Electrical stimulation unit and waterbath system
US9867992B2 (en) 2002-10-31 2018-01-16 Medtronic, Inc. Failsafe programming of implantable medical devices
US20080147145A1 (en) * 2002-10-31 2008-06-19 Medtronic, Inc. Failsafe programming of implantable medical devices
US7899546B2 (en) 2002-10-31 2011-03-01 Medtronic, Inc. Failsafe programming of implantable medical devices
US20110125221A1 (en) * 2002-10-31 2011-05-26 Medtronic, Inc. Failsafe programming of implantable medical devices
US7848819B2 (en) * 2006-12-06 2010-12-07 Medtronic, Inc. Medical device programming safety
US7885712B2 (en) 2006-12-06 2011-02-08 Medtronic, Inc. Medical device programming safety
US20080140162A1 (en) * 2006-12-06 2008-06-12 Medtronic, Inc. Medical device programming safety
US20110082520A1 (en) * 2009-10-07 2011-04-07 Mcelveen Jr John T System for remote monitoring and modulation of medical apparatus
US9227057B2 (en) 2009-10-07 2016-01-05 John T. McElveen, JR. Method of remote monitoring and modulation of medical apparatus
US8532775B2 (en) 2011-02-18 2013-09-10 Medtronic, Inc. Modular medical device programmer
US8706227B2 (en) 2011-02-18 2014-04-22 Medtronic, Inc. Electronic device with adjustable kickstand
US8352034B2 (en) 2011-02-18 2013-01-08 Medtronic, Inc. Medical device programmer with adjustable kickstand
US9180302B2 (en) 2012-08-31 2015-11-10 Greatbatch Ltd. Touch screen finger position indicator for a spinal cord stimulation programming device
US9259577B2 (en) 2012-08-31 2016-02-16 Greatbatch Ltd. Method and system of quick neurostimulation electrode configuration and positioning
US8868199B2 (en) 2012-08-31 2014-10-21 Greatbatch Ltd. System and method of compressing medical maps for pulse generator or database storage
US10668276B2 (en) 2012-08-31 2020-06-02 Cirtec Medical Corp. Method and system of bracketing stimulation parameters on clinician programmers
US8903496B2 (en) 2012-08-31 2014-12-02 Greatbatch Ltd. Clinician programming system and method
US10376701B2 (en) 2012-08-31 2019-08-13 Nuvectra Corporation Touch screen safety controls for clinician programmer
US10347381B2 (en) 2012-08-31 2019-07-09 Nuvectra Corporation Programming and virtual reality representation of stimulation parameter groups
US10141076B2 (en) 2012-08-31 2018-11-27 Nuvectra Corporation Programming and virtual reality representation of stimulation parameter groups
US8812125B2 (en) 2012-08-31 2014-08-19 Greatbatch Ltd. Systems and methods for the identification and association of medical devices
US8761897B2 (en) 2012-08-31 2014-06-24 Greatbatch Ltd. Method and system of graphical representation of lead connector block and implantable pulse generators on a clinician programmer
US9314640B2 (en) 2012-08-31 2016-04-19 Greatbatch Ltd. Touch screen finger position indicator for a spinal cord stimulation programming device
US9375582B2 (en) 2012-08-31 2016-06-28 Nuvectra Corporation Touch screen safety controls for clinician programmer
US9471753B2 (en) 2012-08-31 2016-10-18 Nuvectra Corporation Programming and virtual reality representation of stimulation parameter Groups
US9507912B2 (en) 2012-08-31 2016-11-29 Nuvectra Corporation Method and system of simulating a pulse generator on a clinician programmer
US9555255B2 (en) 2012-08-31 2017-01-31 Nuvectra Corporation Touch screen finger position indicator for a spinal cord stimulation programming device
US9594877B2 (en) 2012-08-31 2017-03-14 Nuvectra Corporation Virtual reality representation of medical devices
US10083261B2 (en) 2012-08-31 2018-09-25 Nuvectra Corporation Method and system of simulating a pulse generator on a clinician programmer
US9615788B2 (en) 2012-08-31 2017-04-11 Nuvectra Corporation Method and system of producing 2D representations of 3D pain and stimulation maps and implant models on a clinician programmer
US9901740B2 (en) 2012-08-31 2018-02-27 Nuvectra Corporation Clinician programming system and method
US9776007B2 (en) 2012-08-31 2017-10-03 Nuvectra Corporation Method and system of quick neurostimulation electrode configuration and positioning
US8757485B2 (en) 2012-09-05 2014-06-24 Greatbatch Ltd. System and method for using clinician programmer and clinician programming data for inventory and manufacturing prediction and control
US9767255B2 (en) 2012-09-05 2017-09-19 Nuvectra Corporation Predefined input for clinician programmer data entry
US8983616B2 (en) 2012-09-05 2015-03-17 Greatbatch Ltd. Method and system for associating patient records with pulse generators
US9954908B2 (en) * 2013-01-22 2018-04-24 General Electric Company Systems and methods for collaborating in a non-destructive testing system
US20140207874A1 (en) * 2013-01-22 2014-07-24 General Electric Company Systems and methods for collaborating in a non-destructive testing system
US10484438B2 (en) 2013-01-22 2019-11-19 General Electric Company Systems and methods for collaborating in a non-destructive testing system
US9596224B2 (en) 2013-04-05 2017-03-14 Nuvectra Corporation Systems, devices, components and methods for communicating with an IMD using a portable electronic device and a mobile computing device
US9092552B2 (en) * 2013-04-26 2015-07-28 Cyberonics, Inc. System monitor for monitoring functional modules of a system
US20140325287A1 (en) * 2013-04-26 2014-10-30 Cyberonics, Inc. System monitor for monitoring functional modules of a system

Also Published As

Publication number Publication date
US20080140163A1 (en) 2008-06-12
US7885712B2 (en) 2011-02-08
US7848819B2 (en) 2010-12-07
WO2008069896A2 (en) 2008-06-12
EP2097845A2 (en) 2009-09-09
EP2102772A2 (en) 2009-09-23
WO2008069897A3 (en) 2008-09-12
WO2008069897A2 (en) 2008-06-12
WO2008069913A2 (en) 2008-06-12
WO2008069913A3 (en) 2008-08-21
US20080140162A1 (en) 2008-06-12
WO2008069896A3 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
US7848819B2 (en) Medical device programming safety
EP1562675B1 (en) Failsafe programming of implantable medical devices
EP1478432B1 (en) Method and apparatus for remotely programming implantable medical devices
US7324850B2 (en) Method and apparatus for communication between a handheld programmer and an implantable medical device
US7697994B2 (en) Remote scheduling for management of an implantable medical device
EP2890453B1 (en) System for connecting devices to a neurostimulator
US20070078497A1 (en) Remote programming of implantable medical devices
US20060189854A1 (en) Method and apparatus for remotely programming implantable medical devices
CN108025176B (en) Systems and methods for interacting with implantable medical devices
EP2361114B1 (en) Systems and methods for highly safe adjustment of device parameters
US20120185017A1 (en) Phased deactivation of functionality in implantable medical device systems
EP3352847B1 (en) System comprising a local user system for interacting with an implantable medical device and for monitoring a network communication link and an associated method
CN117298454A (en) System and method for remote programming of implantable medical devices

Legal Events

Date Code Title Description
AS Assignment

Owner name: MEDTRONIC, INC., MINNESOTA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GOETZ, STEVEN M.;JOHNSON, DONALD R.;DREW, TOUBY A.;AND OTHERS;REEL/FRAME:020472/0208;SIGNING DATES FROM 20071221 TO 20080131

Owner name: MEDTRONIC, INC., MINNESOTA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GOETZ, STEVEN M.;JOHNSON, DONALD R.;DREW, TOUBY A.;AND OTHERS;SIGNING DATES FROM 20071221 TO 20080131;REEL/FRAME:020472/0208

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12