The disclosure relates to medical devices and, more particularly, to handheld programmers for medical devices.
Medical devices are used to deliver therapy to patients to treat a variety of symptoms or conditions, and may be implantable or external. An implantable neurostimulator, for example, may treat symptoms or conditions such as chronic pain, tremor, Parkinson's disease, epilepsy, incontinence, or gastroparesis. The implantable medical device delivers neurostimulation therapy via one or more leads that include electrodes located proximate to the spinal cord, pelvic nerves, or stomach, or within the brain of a patient. In general, the implantable medical device delivers neurostimulation therapy in the form of electrical pulses.
A clinician selects values for a number of programmable parameters in order to define the neurostimulation therapy to be delivered to a patient. For example, the clinician may select an amplitude, which may be a current or voltage amplitude, and pulse width for a stimulation waveform to be delivered to the patient, as well as a rate at which the pulses are to be delivered to the patient. In addition, the clinician also selects particular electrodes within an electrode set to be used to deliver the pulses, and the polarities of the selected electrodes.
The clinician uses a clinician programmer to program the parameters into the implantable medical device. The implantable medical device may store multiple programs, however, which may be selected by the patient using a patient programmer. The patient may select different programs to modify therapy delivered by the implantable medical device, e.g., to achieve greater pain relief. Different programs may be appropriate for different times of day or different physical activities or postures.
The patient programmer communicates with the implantable medical device to modify programs using telemetry. The patient programmer is typically designed as a mobile device that may be carried by the patient throughout the course of the day. For example, the patient programmer may be a handheld device, and typically is powered by batteries within the device.
In general, this disclosure describes techniques for configuring external programmers for use with implantable medical devices. The techniques may include customizing a generic external programmer, e.g., a patient programmer, with an application that enables a user to interact with an implantable medical device (IMD) via the external programmer. In some cases, the application is selected from one or more applications stored on a clinician programmer. Each of the applications is associated with a type of IMD and is configured to the control the operation of a patient programmer. Once the application is selected, the application is transmitted from the clinician programmer to the generic external programmer, e.g., patient programmer. The application configures the generic external programmer to present an interface to the user that is appropriate for the type of IMD with which the external programmer will be used and enables a user to interact with the IMD via the patient programmer.
In one example, the disclosure is directed to a method comprising receiving, via a clinician programmer, user input that selects one of a plurality of applications, wherein each of the applications is configured to control the operation of a patient programmer, the selected application is associated with a type of the IMD, and others of the plurality of applications are associated with different types of IMDs, and transmitting, via the clinician programmer, the selected application to the patient programmer, wherein the patient programmer is configured to receive and implement the selected application to enable a user to interact with the IMD via the patient programmer.
In another example, the disclosure is directed to a system comprising a user interface, a memory device configured to store a plurality of applications, wherein each of the applications is configured to the control the operation of a patient programmer, and a processor. The processor is configured to receive user input that selects one of the plurality of applications at the time of initial programming of the implantable medical device (IMD), wherein the selected application is associated with a type of the IMD, and others of the plurality of applications are associated with different types of IMDs, and control transmission of the selected application to the patient programmer, wherein the patient programmer is configured to receive and implement the selected application to enable a user to interact with the IMD via the patient programmer.
In another example, the disclosure is directed to a computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to receive user input that selects one of a plurality of applications at the time of initial programming of the implantable medical device (IMD), wherein the selected application is associated with a type of the IMD, and others of the plurality of applications are associated with different types of IMDs, and control transmission of the selected application to the patient programmer, wherein the patient programmer is configured to receive and implement the selected application to enable a user to interact with the IMD via the patient programmer.
In another example, the disclosure is directed to a method comprising receiving, from a clinician programmer, a selected one of a plurality of applications, wherein each of the applications is configured to control the operation of a patient programmer, the selected application is associated with a type of the IMD, and others of the plurality of applications are associated with different types of IMDs, and configuring, based on the received application, the patient programmer to present an interface that enables a user to interact with the IMD via the patient programmer.
In another example, the disclosure is directed to a system comprising a user interface, a memory device configured to store an application, wherein the application is configured to control the operation of a patient programmer, and a processor. The processor is configured to receive, from a clinician programmer, a selected one of a plurality of applications for interfacing with an implantable medical device (IMD), wherein the selected application is associated with a type of IMD, and others of the plurality of applications are associated with different types of IMDs, and configure, based on the received application, the user interface to present an interface that enables a user to interact with the IMD via the patient programmer.
In another example, the disclosure is directed to a computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to receive, from a clinician programmer, a selected one of a plurality of applications for interfacing with an implantable medical device (IMD), wherein the selected application is associated with a type of IMD, and others of the plurality of applications are associated with different types of IMDs, and configure, based on the received application, a user interface to present an interface that enables a user to interact with the IMD via the patient programmer.
In another example, the disclosure is directed to a method comprising receiving a selected one of a plurality of applications, wherein each of the applications is configured to control the operation of a patient programmer, the selected application is associated with a type of the IMD, and others of the plurality of applications are associated with different types of IMDs, and assigning, based on the received application, a function to at least one input of the patient programmer.
The details of one or more aspects of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
This disclosure describes techniques that allow a generic external programmer for use with an implantable medical device (IMD) to be programmed with an application for operating the patient programmer that is specific to a type of the IMD. The application allows the patient programmer to interface with the IMD, and cause the patient programmer to present an interface that allows a user of the patient programmer to program, e.g., modify, operational parameters of the IMD. At the time of implant or during the initial programming of the IMD in the patient, a clinician, for example, may select an application from one or more applications stored on a clinician programmer. For example, the clinician programmer may include one application for use with a first type of IMD configured to deliver therapeutic electrical stimulation to a patient for pain relief, another application for use with a second type of IMD configured to deliver one or more therapeutic agents via a drug pump, another application for use with a third type of IMD configured to provide deep brain stimulation, and another application for use with a fourth type of IMD configured to deliver therapeutic electrical stimulation to treat pelvic nerve disorders. A user may select one or more applications that are appropriate for the type of IMD implanted in the patient from amongst the applications stored on the clinician programmer.
Once the user selects an application, e.g., an application for use with an IMD configured to deliver therapeutic electrical stimulation to a patient for pain relief, the selected application is transmitted from the clinician programmer to the generic external programmer, e.g., patient programmer. The selected application then configures the generic external programmer to present an interface to the user that is appropriate for the IMD with which the programmer will be used. In this particular example, the selected application configures the generic patient programmer to present an interface to the patient that will allow the patient to, for example, adjust stimulation parameters such as delivery cycle, duration, voltage or current amplitude, pulse width, and pulse rate, or select from stored programs comprising electrical stimulation therapy parameter sets.
If the user had selected an application to be used with an IMD that delivers one or more therapeutic agents via a drug pump, for example, the selected application would configure the generic external programmer to present an interface to the user that is appropriate for the IMD that delivers drug therapy. In such an example, the selected application configures the generic patient programmer to present an interface to the patient that will allow the patient to, for example, specify the bolus size of a therapeutic agent that is delivered to a target tissue site, the frequency of bolus delivery, the concentration of the therapeutic agent delivered in each bolus, and the type of therapeutic agent delivered if the IMD is configured to deliver more than one type of therapeutic agent.
The techniques described in this disclosure permit the manufacture of generic external programmers that can be programmed at the time of implant of an IMD, or during the initial programming of the IMD in the patient, with an application. In addition, the techniques described herein allow an external programmer previously programmed with a first application to be reprogrammed, or re-imaged, with a second application that is different than the first application. That is, an application is not loaded onto a programmer during the manufacturing process, but is instead loaded at a clinic, for example. Allowing such generic external programmers to be manufactured may provide several advantages. For example, the manufacturing process may be simplified because only a single model of external programmer, which can later be configured via an application, needs to be manufactured.
In addition, a generic external programmer, which can later be configured via an application, may simplify supply chain management and inventory control by reducing the materials and the number of components required to build an external programmer. Multiple versions of external programmers may require different housings, hardware buttons, covers, and the like, which may increase the complexity of controlling inventory and supplying materials. Producing a single, generic external programmer, however, may reduce the number of material suppliers and the complexity of inventory control because only a single set of components for the generic external programmer is required to be sourced and stored.
Further, eliminating multiple versions of external programmers may reduce the opportunity for error in a manufacturing facility because components from one programmer version cannot be mistakenly assembled into another programmer version. In addition, if one or more applications are updated or introduced, the manufacturing process is not affected because the new or updated applications may be downloaded from a network onto the clinician programmer by a user at the time of implantation, for example.
Further still, a generic external programmer, which can be configured later via an application, may simplify distribution. Rather than carry multiple versions of external programmers, sales representatives, for example, need only carry a stockpile of generic external programmers and do not need to manage an inventory of different programmer versions.
In the example illustrated in
In some examples, lead 10 may also carry one or more sense electrodes to permit IMD 4 to sense electrical signals from patient 6. Some of the stimulation electrodes may be coupled to function as stimulation electrodes and sense electrodes on a selective basis. In other examples, IMD 4 may be coupled to one or more leads which may or may not be bifurcated. In such examples, the leads may be coupled to IMD 4 via a common lead extension or via separate lead extensions.
A proximal end of lead 10 may be electrically and mechanically coupled to header 8 on IMD 4 either directly or indirectly via a lead extension. Conductors in the lead body may electrically connect stimulation electrodes located on lead segments 12 to IMD 4. Lead 10 traverses from the implant site of IMD 4 along the neck of patient 6 to cranium 18 of patient 6 to access brain 16. Lead segments 12A and 12B are implanted within the right and left hemispheres, respectively, in order to deliver electrical stimulation to one or more regions of brain 16, which may be selected based on the patient condition or disorder.
IMD 4 may deliver, for example, deep brain stimulation (DBS) or cortical stimulation (CS) therapy to patient 6 via the electrodes carried by, i.e., located on, lead segments 12 to treat any of a variety of neurological disorders or diseases. Example neurological disorders may include depression, dementia, obsessive-compulsive disorder and movement disorders, such as Parkinson's disease, spasticity, epilepsy, and dystonia. DBS also may be useful for treating other patient conditions, such as migraines and obesity. However, the disclosure is not limited to the delivery of DBS or CS therapy.
Lead segments 12A, 12B may be implanted within a desired location of brain 16 through respective holes in cranium 18. Lead segments 12A, 12B may be placed at any location within brain 16 such that the electrodes located on lead segments 12A, 12B are capable of providing electrical stimulation to targeted tissue during treatment. Example locations for lead segments 12A, 12B within brain 16 may include the pedunculopontine nucleus (PPN), thalamus, basal ganglia structures (e.g., globus pallidus, substantia nigra, subthalmic nucleus), zona inserta, fiber tracts, lenticular fasciculus (and branches thereof), ansa lenticularis, and/or the Field of Forel (thalamic fasciculus). In the case of migraines, lead segments 12 may be implanted to provide stimulation to the visual cortex of brain 16 in order to reduce or eliminate migraine headaches afflicting patient 6. However, the target therapy delivery site may depend upon the patient condition or disorder being treated.
Therapy system 2 also may include a clinician programmer 24 and/or a patient programmer 26. Clinician programmer 24 may be a handheld computing device that permits a clinician to program stimulation therapy for patient 6 via a user interface, e.g., using input keys and a display or a touch screen display. For example, using clinician programmer 24, the clinician may specify stimulation parameters, i.e., create programs, for use in delivery of stimulation therapy. Clinician programmer 24 may support telemetry (e.g., radio frequency (RF) telemetry) with IMD 4 to download programs and, optionally, upload operational or physiological data stored by IMD 4. In this manner, the clinician may periodically interrogate IMD 4 to evaluate efficacy and, if necessary, modify the programs or create new programs. As described in more detail below, using the techniques of this disclosure, a user may also interact with clinician programmer 24 to program IMD 4, e.g., select values for operational parameters of the IMD, during the initial implantation of IMD 4 within patient 6 or during subsequent in-clinic visits.
Like clinician programmer 24, patient programmer 26 may be a handheld computing device. Patient programmer 26 may also include a display and input keys to allow patient 6 to interact with patient programmer 26 and IMD 4. In this manner, patient programmer 26 provides patient 6 with a user interface for control of the stimulation therapy delivered by IMD 4. For example, patient 6 may use patient programmer 26 to start, stop or adjust electrical stimulation therapy. In particular, patient programmer 26 may permit patient 6 to adjust stimulation parameters of a program such as duration, current or voltage amplitude, pulse width and pulse rate. Patient 6 may also select a program, e.g., from among a plurality of stored programs, as the present program to control delivery of stimulation by IMD 4.
In some examples, IMD 4 delivers stimulation according to a group of programs at a given time. Each program of such a program group may include respective values for each of a plurality of therapy parameters, such as respective values for each of current or voltage amplitude, pulse width, pulse shape, pulse rate and electrode configuration (e.g., electrode combination and polarity). IMD 4 may interleave pulses or other signals according to the different programs of a program group, e.g., cycle through the programs, to simultaneously treat different symptoms or different body regions, or provide a combined therapeutic effect. In such examples, clinician programmer 24 may be used to create programs, and assemble the programs into program groups. Patient programmer 26 may be used to adjust stimulation parameters of one or more programs of a program group, and select a program group, e.g., from among a plurality of stored program groups, as the current program group to control delivery of stimulation by IMD 4.
IMD 4, clinician programmer 24, and patient programmer 26 may communicate via cables or a wireless communication, as shown in
As described in more detail below, using the techniques of this disclosure, a user may select one application from among a plurality of applications stored on clinician programmer 24. Each of the applications is configured to the control the operation of a patient programmer. A selected application is associated with a type of IMD, e.g., a first type of IMD may be configured to deliver therapeutic electrical stimulation to a patient for pain relief, and others of the plurality of applications are associated with different types of IMDs, e.g., a second type of IMD may be configured to deliver one or more therapeutic agents via a drug pump, a third type of IMD may be configured to provide deep brain stimulation, fourth type of IMD may be configured to deliver therapeutic electrical stimulation to treat pelvic nerve disorders, and the like. Once the user selects an application, e.g., an application for use with a first type of IMD configured to deliver electrical stimulation to a patient in the form of DBS, the selected application is transmitted from clinician programmer 24 to the generic external programmer, e.g., patient programmer 26. The selected application then configures patient programmer 26 to present an interface to the user that is appropriate for IMD 4. In this particular example, the selected application configures the generic patient programmer to present an interface to the patient that will allow the patient to, for example, adjust stimulation parameters such as delivery cycle, duration, voltage or current amplitude, pulse width, and pulse rate, or select from stored programs comprising electrical stimulation therapy parameter sets. In other words, the selected application enables a user to interact with the IMD via the patient programmer.
In the example of
IMD 34 may be implanted in patient 36 at a location minimally noticeable to the patient. For SCS, stimulator 34 may be located in the lower abdomen, lower back, or other location to secure the stimulator. Leads 32 are tunneled from stimulator 34 through tissue to reach the target tissue adjacent to spinal cord 38 for stimulation delivery. At the distal ends of leads 32 are one or more electrodes (not shown) that transfer the stimulation pulses from the lead to the tissue substantially simultaneously with stimulation pulses delivered via a housing electrode, e.g., electrode 37.
IMD 34 delivers stimulation to spinal cord 38 to reduce the amount of pain perceived by patient 36. As mentioned above, however, the stimulator may be used with a variety of different therapies, such as peripheral nerve stimulation (PNS), peripheral nerve field stimulation (PNFS), deep brain stimulation (DBS), cortical stimulation (CS), pelvic floor stimulation, peripheral nerve stimulation, gastric stimulation, and the like. The stimulation delivered by IMD 34 may take the form of stimulation pulses or continuous stimulation waveforms, and may be characterized by controlled current or voltage levels, as well as programmed pulse widths and pulse rates in the case of stimulation current pulses. Stimulation may be delivered via selected combinations of electrodes located on one or both of leads 32 and on the housing. Stimulation of spinal cord 38 may, for example, prevent pain signals from traveling through the spinal cord and to the brain of the patient. Patient 34 perceives the interruption of pain signals as a reduction in pain and, therefore, efficacious therapy.
With reference to
Clinician programmers 24 of
Further, as indicated above, the techniques of this disclosure are not limited to systems that deliver therapy. Rather, the techniques described herein may be used in conjunction with implantable medical devices, e.g., sensors, that monitor certain biological parameters. Patient programmer 26 may configure the operation of sensors, e.g., sensitivity settings, and adjust or provide algorithms for detecting patient conditions or events.
Clinician programmer 24 may also allow the clinician to identify parameter settings that enable IMD 4 to deliver effective therapy with desirable device performance characteristics, e.g., low battery consumption. Clinician programmer 24 may control IMD 4 to test parameter settings in order to allow a clinician to identify desirable configurations in an efficient manner.
Using the techniques of this disclosure, clinician programmer 24 may be configured to store one or more applications. Once clinician programmer 24 has loaded IMD 4 with one or more therapy programs, a user, e.g., a clinician or sales representative, may select one of the applications stored on clinician programmer 24. Clinician programmer 24 may then transmit, e.g., via a wired connection, a wireless connection, or via a computer-readable media (such as a memory stick), the selected application to a generic external programmer, namely patient programmer 26. Once downloaded, the selected application configures the generic patient programmer 26 to map programmer functions to buttons, scroll wheels, and the like, and to present an interface to the user that is appropriate for the IMD with which the external programmer will be used. For example, the interface for an IMD that is configured to deliver a therapeutic agent in some metered or other desired flow dosage to a therapy site within a patient may be different from the interface for an IMD that is configured to deliver DBS, as in
User interface 42 may include a screen and one or more input buttons that allow clinician programmer 24 to receive input from a user, e.g., a clinician or sales representative. The screen may be a liquid crystal display (LCD), plasma display, dot matrix display, or touch screen. The input buttons may include a touch pad, increase and decrease buttons, emergency shut off button, and other input media needed to control the stimulation therapy. In accordance with the techniques of this disclosure, user interface 42 is configured to receive, at the time of initial programming of an IMD or at the time of implant, user input that selects one of the applications 54, 56 stored in memory 48.
Memory 48, a computer-readable storage medium, may store instructions that cause processor 40 to provide various aspects of the functionality ascribed to clinician programmer 24 in this disclosure. Memory 48 may include any fixed or removable magnetic, optical, or electrical media, such as RAM, ROM, CD-ROM, magnetic disks, EEPROM, or the like. Memory 48 may also include a removable memory portion that may be used to provide memory updates or increases in memory capacities. A removable memory may also allow patient data to be easily transferred to another computing device, or to be removed before programmer 24 is used to program therapy for another patient. Memory 48 may also store information that controls operation of an IMD, such as therapy delivery values.
Consistent with the techniques of this disclosure, memory 48 may store operating system 52 and any number of applications, shown as application 1 (54) through application N (56) in the illustrated example. Each application is a software application that, when installed on generic patient programmer 26, configures the generic programmer to present an interface to the user that is appropriate for the IMD with which the patient programmer will be used. For example, if a patient is fitted with an IMD for pain relief, as in
Memory 48 may also store newly released applications that may interface with newly released implantable medical devices. For example, upon release of a new IMD, processor 40 may retrieve, e.g., from a website, flash drive or other computer-readable storage media, and the like, the new application that will interface with the new IMD. Then, processor 40 may transmit the new application to generic patient programmer 26, which will configure itself to present an interface to the user that is appropriate for the new IMD. In this manner, the techniques of this disclosure may remove manufacturing operations from software distribution for the patient programmer. That is, the manufacturer of the generic patient programmer does not need to know about the new IMD because software distribution for the patient programmer happens via clinician programmer 24 and not via the manufacturing process. Thus, the techniques of this disclosure may simplify new product introductions.
While clinician programmer 24 may be any type of computing device, the clinician programmer may preferably be a hand-held device with a display and input mechanism associated with user interface 42 to allow interaction between the clinician, for example, and clinician programmer 24. The clinician programmer may differ from patient programmer 26 by having additional features not offered to the patient for security, performance, or complexity reasons.
Processor 40 may include one or more processors such as 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 40 may control user interface 42 to display information, and perform certain functions when requested by a user via input to the user interface. Processor 40 may retrieve data from and/or store data in memory 48 in order to perform the functions of clinician programmer 24 described in this disclosure. For example, upon receiving user input that selects one of the applications 54, 56 stored in memory 48 via user interface 42, processor 40 retrieves the selected application, e.g., application 1 (54), and prepares to transmit the selected application to patient programmer 26. The functions attributed to processor 40 in this disclosure may be embodied as software, firmware, hardware or any combination thereof.
Telemetry module 44 allows the transfer of data to and from patient programmer 26 and an IMD. To support RF communication, telemetry module 44 may include appropriate electronic components, such as amplifiers, filters, mixers, encoders, decoders, and the like. In some examples, processor 40 controls telemetry module 44 to transmit the selected application to patient programmer 26. In addition, processor 40 may control telemetry module 44 to exchange information with patient programmer 26 as well as an IMD. Further, processor 40 may control telemetry module 44 to transmit to patient programmer 26 a unique identifier 76 that identifies the IMD. In general, an IMD is programmed with a unique identifier. This unique identifier permits clinician programmer 24 or patient programmer 26 to specify and communicate with a particular IMD without affecting other nearby implantable medical devices. Once patient programmer 26 receives unique identifier 76, or key, patient programmer 26 is “bonded” to the IMD with that particular unique identifier. Thus, the unique identifier provides a level of security and safety that reduces or eliminates the ability of one patient's patient programmer to reprogram another patient's IMD.
In other examples, processor 40 transmits the selected application to patient programmer 26 from port 50 via a wired connection. For example, port 50 may be a Universal Serial Bus (USB) port, a Joint Test Action Group (JTAG) interface, conforming to IEEE 1149.1 boundary-scan standard, or some other interface that supports transmission of data over wired connection 58 between port 50 of clinician programmer 24 and port 70 of patient programmer 70.
In addition to a selected application and unique identifier, clinician programmer 24 may also transmit patient information 78 to patient programmer 26. For instance, clinician programmer 24 may transmit patient information 78 such as the patient's name, the date of implant, the reason(s) for the implant, and the name of the implanting physician to patient programmer 26 for storage in memory 68.
Power source 46 delivers operating power to the components of programmer 24. Power source 46 may be a rechargeable battery, such as a lithium ion or nickel metal hydride battery. Other rechargeable or conventional batteries may also be used. In some cases, clinician programmer 24 may be used when coupled to an alternating current (AC) outlet, i.e., AC line power, either directly or via an AC/DC adapter. Power source 46 may include circuitry to monitor power remaining within a battery. In this manner, user interface 42 may provide a current battery level indicator or low battery level indicator when the battery needs to be replaced or recharged. In some cases, power source 46 may be capable of estimating the remaining time of operation using the current battery.
Patient programmer 26 may include processor 60, user interface 62, telemetry module 64, power source 66, memory 68, and one or more ports 70. In general, processor 60 controls user interface 62, stores and retrieves data to and from memory 68, and controls transmission of data with an IMD through telemetry module 64 and with a clinician programmer through a wired connection from port 70 or through a wireless connection via telemetry module 64. The components of patient programmer 26 are similar to the components described above with respect to clinician programmer 24 and, for purposes of conciseness, will not be described in detail again. While patient programmer 24 may generally be described as a hand-held computing device, the patient programmer may be a notebook computer, a cell phone, a personal digital assistant, or a workstation, for example.
Memory 68, a computer-readable storage medium, may store instructions that cause processor 60 to provide various aspects of the functionality ascribed to patient programmer 26 in this disclosure. Memory 68 stores operating system 72, which may, in some examples, be the same as operating system 52 of clinician programmer 24. Operating system 72 is configured such that programmer 24 may receive and implement a user-selected application that is loaded by the clinician programmer, thereby allowing patient programmer 26 to interface with clinician programmer 24. In addition, operating system 72 allows generic patient programmer 24 to be powered up during manufacturing and functionally tested.
Again, clinician programmer 24 transmits an application to patient programmer 26 at the time of implant, during the initial programming of the IMD, or during a reprogramming of a patient programmer (e.g., if a patient receives a new IMD, then the patient programmer may be reprogrammed and reused). In this manner, the manufacturing process need not be aware of different applications and need only produce a generic external programmer to be programmed at a later time.
Consistent with the techniques of this disclosure, memory 68 may receive and store the application that was selected by a user from among the applications stored in memory 48 of clinician programmer 24 and transmitted from clinician programmer 24 to patient programmer 26. For instance, if a user selected application 1 from among the N applications stored in memory 48 of clinician programmer 24, then processor 60 of patient programmer 26 stores application 1 in memory 68, as shown at 74.
Once stored in memory 68, the transmitted application, e.g., application 1 (74) loads (either manually or automatically) and configures patient programmer 26 to present a user interface to the user that is appropriate for the IMD with which the patient programmer will be used. In other words, patient programmer 26 is configured, based on the received application, to present an interface to a user that may be used to control the IMD implanted within the patient. For example, if a patient is fitted with an IMD for pain relief, as in
As mentioned above, clinician programmer 24 may transmit a unique identifier that identifies the IMD. Either prior to or after receiving the selected application, patient programmer 26 receives, via telemetry module 64 or port 70, the unique identifier that bonds patient programmer 26 to a specific IMD. Upon receiving the unique identifier, processor 60 of patient programmer 26 stores the unique identifier in memory 68, shown at 76.
In addition, using certain techniques of this disclosure, various hardware circuitry of patient programmer 26, e.g., telemetry module 64, may be configured based on the received application. For example, the received application may configure telemetry module 64 such that particular filters, e.g., bandpass filters, are selected to process received telemetry signals differently. In this manner, an application transmitted from clinician programmer 24 to patient programmer 26 may configure telemetry module 64 differently in order to allow patient programmer 26 to communicate with different types of IMDs.
For example, a first application transmitted from a clinician programmer to a first patient programmer that allows the patient programmer to communicate with an IMD that delivers electrical stimulation therapy may configure a telemetry module to use a first set of filters to process received telemetry signals, while a second application transmitted from the clinician programmer to a second patient programmer that allows the second patient programmer to communicate with an IMD that delivers therapeutic agents may configure a telemetry module to use a second set of filters to process received telemetry signals.
In a similar manner, in example implementations in which a patient programmer includes recharge circuitry to replenish a rechargeable power source of an implanted device, various parameters may be programmed to configure the recharge circuitry of the patient programmer to be compatible with a particular power source and control circuit of the IMD with which the patient programmer will be used.
The hardware circuitry configuration techniques described above are not limited to telemetry or recharge modules, however. Rather, other hardware circuitry may be configured based on the received application. For example, user interface 62 of patient programmer 26 may be configured using the received application. In particular, a display of user interface 62 may have its layout, icons, soft keys, color, and the like, configured based on the received application so that a patient programmer that will communicate with an IMD that delivers electrical stimulation therapy may be configured differently than a patient programmer that will communicate with an IMD that delivers a therapeutic agent, for example.
Memory 68 may include specific therapy programs (not shown) comprising electrical stimulation parameters or parameters related to the delivery of a therapeutic agent. For example, the programs may include data that defines the parameters of electrical pulses delivered to the patient in the case of therapeutic electrical stimulation. When a new therapy program is requested by the IMD or the patient, processor 60 retrieves one of the therapy programs from memory 68 and transmits the retrieved program to the IMD in order adjust the electrical stimulation. Alternatively, the patient may generate a new program during therapy and store it in memory 68. As indicated above, the therapy programs which include, for example, parameters for controlling delivery of therapeutic electrical stimulation or therapeutic drug delivery and different from the applications used to configure the external programmer.
Processor 60 may control telemetry module 44 to exchange information with patient programmer 26 as well as an IMD. Further, processor 40 may control telemetry module 44 to transmit to patient programmer 26 a unique identifier that identifies the IMD. In general, an IMD is programmer with a unique identifier. This unique identifier permits clinician programmer 24 or patient programmer 26 to specify and communicate with a particular IMD without affecting other nearby implantable medical devices. Once patient programmer 26 receives the unique identifier, or key, patient programmer 26 is “bonded” to the IMD with that particular unique identifier. Thus, the unique identifier provides a level of security and safety that reduces or eliminates the ability of a patient programmer to reprogram another patient's IMD.
As indicated above, in addition to a selected application and unique identifier, clinician programmer 24 may also transmit patient information to patient programmer 26. For instance, clinician programmer 24 may transmit patient information such as the patient's name, the date of implant, the reason(s) for the implant, and the name of the implanting physician to patient programmer 26 for storage in memory 68. Upon receiving the patient information, processor 60 stores the patient information in memory 68, shown at 78.
It should be noted that application 1 (74), unique identifier 76, and patient information 78 stored in memory 68 of generic patient programmer 26 are indicated with dashed-line outlines because they are specific to the type of IMD implanted in the patient and are not initially stored in memory 68, thereby permitting patient programmer 26 to remain generic.
User interface 62 may be designed to receive an indication from the patient to deliver electrical stimulation or a therapeutic bolus in the case of a drug delivery system. The indication may be in the form of a patient input such as pressing a button representing the start of therapy, or selecting an icon from a touch screen, for example. In alternative examples, user interface 62 may receive an audio cue from the patient, e.g., the patient speaks into a microphone in order to perform functions such as beginning stimulation therapy. Patient programmer 26 acts as an intermediary for patient to communicate with the IMD for the duration of therapy.
Buttons 90, 92 are minus and plus inputs, respectively. Using certain techniques of this disclosure, clinician programmer 24 (or another device) may transmit parameters to patient programmer 26 during programming that assign functions to minus and plus inputs 90, 92. For example, for IMDs that deliver electrical stimulation therapy, minus and plus inputs 90, 92 may allow patient 6, 36 to decrease and increase values of neurostimulation parameter settings. In one implementation, buttons 90, 92 may permit patient 6, 36 to quickly decrease or increase the amplitude of stimulation being delivered by IMD 4, 34, for IMDs that deliver electrical stimulation therapy.
Or, for IMDs that deliver therapeutic agents, e.g., drug pumps, clinician programmer 24 may transmit parameters during programming of patient programmer 26 that assign functions to minus and plus inputs 90, 92 that decrease and increase the amount of the therapeutic agent(s) that are delivered by the IMDs. In some implementations, buttons 90, 92 may permit a patient to quickly decrease or increase the size of the bolus of the therapeutic agent that is delivered for IMDs that deliver therapeutic agents.
In this manner, minus and plus inputs 90, 92 may be initially associated with a generic functionality, e.g., decrease and increase. In accordance with one aspect of this disclosure, minus and plus inputs 90, 92 may then, via the parameters transmitted by clinician programmer 24 or another device, be assigned specific functions, e.g., decrease or increase the amplitude of stimulation being delivered for IMDs that deliver electrical stimulation therapy or decrease or increase the concentration of the therapeutic agent(s) that are delivered for IMDs that deliver therapeutic agents. In some implementations, the parameters are part of the user-selected application that is transmitted from clinician programmer 24 to patient programmer 26.
As indicated above, devices other than a clinician programmer may transmit the parameters to patient programmer 26. For example, a general-purpose personal computer (PC) (e.g., a desktop PC, a laptop PC, and the like), a tablet PC, a network server, or some other device via a wired or wireless connection may transmit parameters to patient programmer 26 that assign, or map, functions to the input mechanisms, e.g., buttons, scroll wheels, soft keys, and the like, of patient programmer 26. In addition, in some example implementations, the parameters may be transmitted during the manufacturing process, or prior to shipment to a clinician. In other example implementations, the parameters may be transmitted at the time of implant of an IMD, during the initial programming of the IMD in the patient, or when an external programmer previously programmed with a first application is to be reprogrammed, or re-imaged, with a second application that is different than the first application.
Although not depicted, patient programmer 26 may include a scroll wheel. The scroll wheel may be in place of or in addition to minus and plus buttons 90, 92. As one example, the scroll wheel may be assigned, via transmitted parameters from clinician programmer 24 or another device, similar functions, e.g., decrease or increase, as described above. In some example implementations, the scroll wheel may be a physical scroll wheel. In other implementations, the scroll wheel may be a scroll wheel displayed on display 88 that receives input via a touchscreen.
Button 94 may be an on/off button that turns power on and off, and which also functions to turn backlighting on and off. Button 102 is a four-way (up, down, left, right) rocker switch that permits navigation through items presented on display 88.
Buttons 100 may be devoted to a variety of functions that may be assigned, or mapped, to patient programmer 26 during programming by clinician programmer 24. Like with minus and plus inputs 90, 92, buttons 100 may be inputs that are initially associated with generic functionalities such as activation of therapy, deactivation of therapy, and interrogation of an IMD to check device status. In accordance with one aspect of this disclosure, inputs 100 may be assigned specific functions via the parameters transmitted by clinician programmer 24. For example, for IMDs that deliver electrical stimulation, inputs 100 may be assigned functions such as activation of stimulation, deactivation of stimulation, and interrogation of IMD 4, 34 to check device status. The device status may include remaining battery power and current stimulation parameter settings, and may be displayed on display 88. As another example, for IMDs that deliver therapeutic agents, e.g., drug pumps, inputs 100 may be assigned functions such as activation of delivery of a therapeutic agent, deactivation of delivery of a therapeutic agent, and interrogation of an IMD to check device status. The device status may include remaining amount of therapeutic agent(s) and current delivery parameter settings, such as the bolus size and frequency of bolus delivery, and may be displayed on display 88.
In addition, soft keys 106, 108 may be inputs presented on display 88 whose functions may also be assigned to patient programmer 26 during programming by clinician programmer 24. Of course, there may be other soft keys and, as mentioned above, one or more scroll wheels, displayed on display 88 that may be inputs whose functions are assigned via transmitted parameters.
As described above, the techniques of this disclosure allow a generic external programmer, e.g., a patient programmer, to be customized at the time of initial programming of an implantable medical device (IMD) or during a reprogramming of a previously programmed patient programmer, for example, with an application for interfacing with the implanted medical device. These techniques may provide a number of advantages, including simplifying the manufacturing process, supply chain management, inventory control, hardware distribution, and new product introductions.
Although the techniques discussed throughout this disclosure are described generally with respect to transmitting applications from a clinician programmer to a patient programmer, in some example implementations, other devices may be used to transmit applications to a patient programmer. For example, a general-purpose personal computer (PC) (e.g., a desktop PC, a laptop PC, and the like), a tablet PC, a network server, or some other device via a wired or wireless connection may transmit applications to a patient programmer using the techniques described above.
The techniques described in this disclosure may be implemented, at least in part, in hardware, software, firmware or any combination thereof. For example, various aspects of the techniques may be implemented within one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuitry, as well as any combinations of such components, embodied in programmers, such as physician or patient programmers, stimulators, or other devices. The terms “processor,” “processing circuitry,” “controller” or “control module” may generally refer to any of the foregoing logic circuitry, alone or in combination with other logic circuitry, or any other equivalent circuitry, and alone or in combination with other digital or analog circuitry.
For aspects implemented in software, at least some of the functionality ascribed to the systems and devices described in this disclosure may be embodied as instructions on a computer-readable storage medium such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM), FLASH memory, magnetic media, optical media, or the like. The instructions may be executed to support one or more aspects of the functionality described in this disclosure.
Various aspects of the disclosure have been described. These and other aspects are within the scope of the following claims.