This document relates generally to medical devices, and more particularly, to computer-assisted programming of a medical device to provide neuromodulation therapy.
Neuromodulation (or “neural neuromodulation”, also referred to as “neurostimulation” or “neural stimulation”) has been proposed as a therapy for a number of conditions. Often, neuromodulation and neural stimulation may be used interchangeably to describe excitatory stimulation that causes action potentials as well as inhibitory and other effects. Examples of neuromodulation include Spinal Cord Stimulation (SCS), Deep Brain Stimulation (DBS), Peripheral Nerve Stimulation (PNS), and Functional Electrical Stimulation (FES). SCS systems have been used as a therapeutic modality for the treatment of chronic pain syndromes. PNS has been used to treat chronic pain syndrome and incontinence, with a number of other applications under investigation. FES systems have been applied to restore some functionality to paralyzed extremities in spinal cord injury patients. DBS can be used to treat a variety of diseases or disorders.
Stimulation systems, such as implantable electrostimulators, have been developed to provide therapy for a variety of treatments. An implantable electrostimulator can include a pulse generator and one or more leads each including a plurality of stimulation electrodes. The stimulation electrodes are in contact with or near target tissue to be stimulated, such as nerves, muscles, or other tissue. The control module generates a control signal to the pulse generator, which generates electrostimulation pulses that are delivered by the electrodes to the target tissue in accordance with an electrode configuration and a set of stimulation parameters.
Neuromodulation therapy can be programmed into an electrostimulator by a user (e.g., a clinician or an authorized device user) using a programmer device. One example of such neuromodulation therapy is paresthesia-based spinal cord stimulation (SCS) to treat chronic pain. Paresthesia is a sensation such as tingling, prickling, heat, cold, etc. that accompanies the SCS therapy. Alternatively, SCS may be delivered with reduced stimulation intensity below a paresthesia threshold to avoid inducing paresthesia, yet still achieve analgesia effect and clinically effective pain relief. Such paresthesia-free SCS, also known as sub-perception SCS, generally uses stimulation pulses at higher frequencies to achieve the paresthesia-free effect, which may consume more power than paresthesia-based SCS. Proper programming of therapies such as paresthesia-based or paresthesia-free SCS is important to achieve therapeutic benefits while avoiding or minimizing side effects of such neuromodulation therapies.
Programming an electrostimulator using a programmer device generally requires a user to select or provide values for a number of therapy parameters such as amplitude, frequency, pulse width, waveforms, electrodes (cathode and anode) selected for delivering electrostimulation energy. The programming may also involve selecting, or providing values for, a sensing parameter used for sensing a physiological signal from the patient, such as a neural activity signal or an electrophysiological signal. Sensing a physiological signal while providing an electrostimulation therapy provides a feedback mechanism that may help assess patient responses to the therapy, which may help regulate or optimize a closed-loop therapy. However, finding an optimal or desired closed-loop therapy for the patient and programming such therapy to the electrostimulator generally require testing of multiple device parameters (e.g., sensing parameter and therapy parameters) and various combinations thereof, which can be time consuming and add significant complexity. Moreover, as more advanced neuromodulation therapies are developed and made available to the patient, the level of sophistication involved in neuromodulation therapy testing, optimization, and programming continues to rise. Some users (e.g., clinicians or authorized device users) may not be familiar with, thus do not use or know how to best use, certain device features pertaining to advanced neural activity signal sensing and processing, feature extraction and selection, and neuromodulation therapy programming. Even with proper training, some users may not readily envision how a different programmed value of a device feature would affect the therapeutic outcome in a patient. As a result, some advanced device features may be significantly underused if not misused. Some users may not consistently customize their programming workflow to search for individualized optimal therapies. The process of searching for and programming an optimal therapy for the patient can be inefficient. Furthermore, the longer the user stays within a given programming session, the more battery power is consumed, especially when testing and optimization of certain programmable parameters requires active communication between the electrostimulator system (e.g., battery-powered implantable device) and the programmer device.
The present inventors have recognized an unmet need for computer-assisted, individualized programming of neuromodulation therapy. According to one embodiment, an electrostimulation system comprises an electrostimulator configured to provide a neuromodulation therapy to a patient, and a programmer device operable by a user to program the electrostimulator. The programmer device includes a user interface and a controller circuit. The controller circuit collects user commands and contextual information during a programming session, including a sequence of programming instructions received from the user via the user interface. The controller circuit can determine a programming quality indicator using the user commands and contextual information. Based on the programming quality indicator, the controller circuit generates an individualized programming workflow that can guide the user to test and program a therapy setting. The electrostimulator can provide the neuromodulation therapy in accordance with the user programmed therapy setting.
Various examples discussed in this document may improve the efficiency and quality of testing and programming neuromodulation therapy to a patient. In an embodiment, a programming quality indicator can be generated using user commands and contextual information during a programming session. The programming quality indicator indicates a level of efficiency of user's programming as well as how the patient responds to neuromodulation therapy. An individualized programming workflow generated based on such programming quality indicator may expedite the search process for an individualized optimal neuromodulation therapy for the patient, reduce therapy programming time for users of different levels of experience with the device features, improve their work efficiency, and reduce overall operation cost. The reduced programming time may also reduce battery power consumption and extend battery life for battery-powered neuromodulation devices. Additionally, in accordance with some examples as described herein, the individualized programming workflow can be automatically generated or updated, and provide more direct and effective guidance to the device users to help them become familiar with advanced and complex devices features. This reduces the burden and cost of training the clinicians and device users, while at the same time promotes more consistent and efficient use of such device features.
Example 1 is a system, comprising: an electrostimulator configured to provide a neuromodulation therapy to a patient; and a programmer device operable by a user to program the electrostimulator, the programmer device including: a user interface; and a controller circuit configured to: collect user commands and contextual information during a programming session, including a sequence of programming instructions from the user via the user interface; determine a programming quality indicator using the collected user commands and contextual information; and based at least in part on the programming quality indicator, generate an individualized programming workflow to guide the user to test and program a therapy setting to the electrostimulator; wherein the electrostimulator is configured to provide the neuromodulation therapy in accordance with the user programmed therapy setting.
In Example 2, the subject matter of Example 1 optionally includes the sequence of programming instructions that can include one or more of a timing of a programmable parameter being selected, a frequency of a programmable parameter being selected over a specific time period, or an order of selecting multiple programmable parameters, wherein the individualized programming workflow includes selection or deselection of a programmable parameter, or a specific order of selecting multiple programmable parameters.
In Example 3, the subject matter of any one or more of Examples 1-2 optionally includes the controller circuit that can be configured to receive image or video data from an imaging system during the programming session, and to extract information about the sequence of programming instructions from the received image or video data.
In Example 4, the subject matter of any one or more of Examples 1-3 optionally includes the user commands and contextual information collected during the programming session that further includes time elapsed during an entirety or a portion of the programming session, including time spent when the programmer device is in active communication with the electrostimulator during the programming session.
In Example 5, the subject matter of any one or more of Examples 1˜4 optionally include the user commands and contextual information collected during the programming session that further includes an estimate of power consumption during an entirety or a specific portion of the programming session, including an estimate of power consumption when the programmer device is in active communication with the electrostimulator during the programming session.
In Example 6, the subject matter of Example 5 optionally includes the individualized programming workflow that can include an ordered selection of multiple programmable parameters based on their respective dependencies on an active communication during the programming session.
In Example 7, the subject matter of Example 6 optionally includes the controller circuit that can be configured to identify a first group of programmable parameters that require active communication during the programming session, and a second group of programmable parameters that do not require active communication during the programming session, and to generate the individualized programming workflow including prioritizing selection of second group of programmable parameters over the first group of programmable parameters.
In Example 8, the subject matter of any one or more of Examples 1-7 optionally includes the user commands and contextual information collected during the programming session that further includes patient responses indicative of a therapeutic effect or a side effect of the neuromodulation therapy.
In Example 9, the subject matter of Example 8 optionally includes at least one physiological sensor configured to sense the patient responses to the neuromodulation therapy.
In Example 10, the subject matter of any one or more of Examples 1-9 optionally includes the controller circuit that can be configured to determine the programming quality indicator based on a comparison of the sequence of programming instructions to a reference sequence of programming instructions.
In Example 11, the subject matter of any one or more of Examples 1-10 optionally includes the programming quality indicator that can include a programming quality score computed using a weighted combination of various sources of the user commands and contextual information collected during the programming session.
In Example 12, the subject matter of any one or more of Examples 1-11 optionally includes the controller circuit that can be configured to determine the programming quality indicator by applying a trained machine learning model to the user commands and contextual information collected during the programming session.
In Example 13, the subject matter of any one or more of Examples 1-12 optionally includes the controller circuit that can be configured to present on the user interface the individualized programming workflow, including to prompt the user to select or deselect a programmable parameter, or to select multiple programmable parameters in a specific order.
In Example 14, the subject matter of Example 13 optionally includes the programmable parameter that can include at least one of a signal acquisition parameter, a signal analysis parameter, or a neuromodulation therapy parameter.
In Example 15, the subject matter of any one or more of Examples 1-14 optionally includes the programmer device that can include a communication circuit to communicate with a cloud computing system, and to use one or more cloud services provided by the cloud computing system to perform one or more operations including collecting the user commands and contextual information during the programming session, determining the programming quality indicator, or generating the individualized programming workflow.
Example 16 is a method of programming an electrostimulator using a programmer device to provide electrostimulation to a patient, the method comprising: receiving user commands and contextual information during a programming session, including a sequence of programming instructions from a user via a user interface; determining a programming quality indicator using the user commands and contextual information; based at least in part on the programming quality indicator, generating an individualized programming workflow to guide the user to test and program a therapy setting to the electrostimulator; and delivering a neuromodulation therapy to the patient via the electrostimulator in accordance with the user programmed therapy setting.
In Example 17, the subject matter of Example 16 optionally includes the sequence of programming instructions from the user during the programming session that can include one or more of a timing of a programmable parameter being selected, a frequency of a programmable parameter being selected over a specific time period, or an order of selecting multiple programmable parameters, wherein the individualized programming workflow includes selection or deselection of a programmable parameter, or a specific order of selecting multiple programmable parameters.
In Example 18, the subject matter of any one or more of Examples 16-17 optionally includes user commands and contextual information during the programming session that further includes at least one of: time elapsed during an entirety or a portion of the programming session, including time spent when the programmer device is in active communication with the electrostimulator during the programming session; or an estimate of power consumption during an entirety or a specific portion of the programming session, including an estimate of power consumption when the programmer device is in active communication with the electrostimulator during the programming session.
In Example 19, the subject matter of Example 18 optionally includes the individualized programming workflow that can include an ordered selection of multiple programmable parameters based on their respective dependencies on an active communication during the programming session, such that a first group of programmable parameters that do not require active communication during the programming session are selected prior to a second group of programmable parameters that require active communication during the programming session.
In Example 20, the subject matter of any one or more of Examples 16-19 optionally includes the programming quality indicator that can include a programming quality score computed using a weighted combination of various sources of the received user commands and contextual information during the programming session.
In Example 21, the subject matter of any one or more of Examples 16-20 optionally include presenting on the user interface the individualized programming workflow, including prompting the user to select or deselect a programmable parameter, or selecting multiple programmable parameters in a specific order, wherein the programmable parameter includes at least one of a signal acquisition parameter, a signal analysis parameter, or a neuromodulation therapy parameter.
In Example 22, the subject matter of any one or more of Examples 16-21 optionally includes: establishing a communication between the programmer device and a cloud-computing system and receiving cloud-based services from the cloud-computing system; and using the received cloud-based services to perform one or more operations including collecting the user commands and contextual information during the programming session, determining the programming quality indicator, or generating the individualized programming workflow.
The description that follows will generally focus on the use of the invention within a Spinal Cord Stimulation (SCS) systems. However, the present invention may find applicability with any implantable neurostimulator device system, including DBS system, Vagus Nerve Stimulation (VNS) system, Sacral Nerve Stimulation (SNS) systems, and the like. For example, apparatus and methods for detecting (and maintaining) exceptionally small evoked neural activities as described herein can be used to detect evoked neural activities in closed-loop DBS therapy, or therapees of other regions of the nervous system. The following examples illustrate various aspects of the examples described herein.
This Summary is an overview of some of the teachings of the present application and not intended to be an exclusive or exhaustive treatment of the present subject matter. Further details about the present subject matter are found in the detailed description and appended claims. Other aspects of the disclosure will be apparent to persons skilled in the art upon reading and understanding the following detailed description and viewing the drawings that form a part thereof, each of which are not to be taken in a limiting sense. The scope of the present disclosure is defined by the appended claims and their legal equivalents.
Various examples are illustrated by way of example in the figures of the accompanying drawings. Such examples are demonstrative and not intended to be exhaustive or exclusive examples of the present subject matter.
This document describes systems and methods for programming neuromodulation therapy to a neuromodulation device. An exemplary system comprises an electrostimulator and a programmer device operable by a user to program the electrostimulator. The programmer device includes a user interface and a controller circuit. The controller circuit collects user commands and contextual information, including a sequence of programming instructions received from the user during a programming session. The controller circuit determines a programming quality indicator using the user commands and contextual information, and generates an individualized programming workflow to guide the user to test and program a therapy setting. The electrostimulator can deliver a neuromodulation therapy in accordance with the user programmed therapy setting.
The following detailed description of the present subject matter refers to the accompanying drawings which show, by way of illustration, specific aspects and examples in which the present subject matter may be practiced. These examples are described in sufficient detail to enable those skilled in the art to practice the present subject matter. Other examples may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the present subject matter. References to “an”, “one”, or “various” examples in this disclosure are not necessarily to the same example, and such references contemplate more than one example. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope is defined only by the appended claims, along with the full scope of legal equivalents to which such claims are entitled.
By way of example and not limitation, in the illustrated IPG 10, there are sixteen lead electrodes (E1-E16) split between two leads 15, with the header 23 containing a 2×1 array of lead connectors 24. However, the number of leads and electrodes in an IPG is application specific and therefore can vary. The conductive case 12 can also comprise an electrode (Ec). In a SCS application, the electrode leads 15 are typically implanted proximate to the dura in a patient's spinal column on the right and left sides of the spinal cord midline. The proximal contacts 22 are tunneled through the patient's tissue to a distant location such as the buttocks where the IPG case 12 is implanted, at which point they are coupled to the lead connectors 24. In other IPG examples designed for implantation directly at a site requiring stimulation, the IPG can be lead-less, having electrodes 16 instead appearing on the body of the IPG for contacting the patient's tissue. The IPG leads 15 can be integrated with and permanently connected the case 12 in other IPG solutions. The goal of SCS therapy is to provide electrical stimulation from the electrodes 16 to alleviate a patient's symptoms, most notably chronic back pain.
The IPG 10 can include an antenna 26a allowing it to communicate bi-directionally with a number of external devices, as shown in
Stimulation in the IPG 10 is typically provided by pulses, as shown in
The pulses as shown in
The IPG 10 includes stimulation circuitry 28 that can be programmed to produce the stimulation pulses at the electrodes as defined by the stimulation program. Stimulation circuitry 28 can for example comprise the circuitry described in U.S. Patent Application Publications 2018/0071513 and 2018/0071520, or in U.S. Pat. Nos. 8,606,362 and 8,620,436. The entirety of such references are incorporated herein by reference.
Like the IPG 10, the ETS 40 can include one or more antennas to enable bi-directional communications with external devices, explained further with respect to
The RC 45 can be as described in U.S. Patent Application Publication 2015/0080982 for example, and may comprise a dedicated controller configured to work with the IPG 10. The RC 45 may also comprise a general purpose mobile electronics device such as a mobile phone which has been programmed with a Medical Device Application (MDA) allowing it to work as a wireless controller for the IPG 10 or ETS 40, as described in U.S. Patent Application Publication 2015/0231402. RC 45 includes a user interface, including means for entering commands (e.g., buttons or icons) and a display 46. The RC 45's user interface enables a patient to adjust stimulation parameters, although it may have limited functionality when compared to the more-powerful CP 50.
In some examples, the RC 45 can have one or more antennas capable of communicating with the IPG 10 and ETS 40. For example, the RC 45 can have a near-field magnetic-induction coil antenna 47a capable of wirelessly communicating with the coil antenna 26a or 42a in the IPG 10 or ETS 40. The RC 45 can also have a far-field RF antenna 47b capable of wirelessly communicating with the RF antenna 26b or 42b in the IPG 10 or ETS 40.
In some examples, the RC 45 can have control circuitry 48 such as a microprocessor, microcomputer, an FPGA, other digital logic structures, an Applicant Specific Integrated Circuit (ASIC), etc., which is capable of executing instructions an electronic device. Control circuitry 48 can for example receive patient adjustments to stimulation parameters, and create a stimulation program to be wirelessly transmitted to the IPG 10 or ETS 40.
The CP 50 can be as described further in U.S. Patent Application Publication 2015/0360038, and is only briefly explained here. The CP 50 can comprise a computing device 51, such as a desktop, laptop, or notebook computer, a tablet, a mobile smart phone, a Personal Data Assistant (PDA)-type mobile computing device, etc. In
The antenna used in the CP 50 to communicate with the IPG 10 or ETS 40 can depend on the type of antennas included in those devices. If the patient's IPG 10 or ETS 40 includes a coil antenna 26a or 42a, wand 54 can likewise include a coil antenna 56a to establish near-filed magnetic-induction communications at small distances. In this instance, the wand 54 may be affixed in close proximity to the patient, such as by placing the wand 54 in a belt or holster wearable by the patient and proximate to the patient's IPG 10 or ETS 40.
In an example where the IPG 10 or ETS 40 includes an RF antenna 26b or 42b, the wand 54, the computing device 51, or both, can likewise include an RF antenna 56b to establish communication with the IPG 10 or ETS 40 at larger distances. (Wand 54 may not be necessary in this circumstance). The CP 50 can also establish communication with other devices and networks, such as the Internet, either wirelessly or via a wired link provided at an Ethernet or network port.
To program stimulation programs or parameters for the IPG 10 or ETS 40, the clinician interfaces with a clinician programmer graphical user interface (GUI) 64 provided on the display 52 of the computing device 51. As one skilled in the art understands, the GUI 64 can be rendered by execution of clinician programmer software 66 on the computing device 51, which software may be stored in the device's non-volatile memory 68. One skilled in the art will additionally recognize that execution of the clinician programmer software 66 in the computing device 51 can be facilitated by control circuitry 70 such as a microprocessor, microcomputer, an FPGA, other digital logic structures, etc., which is capable of executing programs in a computing device. The control circuitry 70 can execute the clinician programmer software 66 to generate a therapy plan and rendering the GUI 64. The therapy plan (also referred to as a stimulation program) may include stimulation parameters chosen through the GUI 64 (e.g., electrode configurations and stimulation dosing parameters). The control circuitry 70 can enable communications via antennas 56a or 56b to communicate the therapy plan (e.g., stimulation parameters) to the patient's IPG 10. The IPG 10 may deliver electrostimulation in accordance with the therapy plan.
In an example, the therapy plan includes a sub-perception SCS plan comprising stimulation parameters with respective values that can be set by the user via the GUI 64. In some examples, the sub-perception SCS can include a sub-perception therapy program that utilizes a particular stimulation frequency, such as at a level below 100 Hz (or in some instances lower than 10 Hz) and a biphasic-symmetric pulse waveform comprising an active charge phase followed by an active recharge phase. Stimulation pulses in the sub-perception therapy can be defined by stimulation parameters such as stimulation amplitudes, pulse width, frequency, etc. In some examples, sub-perception therapy can be delivered in discreet chunks, or boluses of stimulation pulses. Each bolus comprises stimulation pulses delivered during a first duration, followed by a second stimulation-free duration before a next bolus of stimulation pulses are delivered. A user may use the GUI 64 to program therapy settings, such as electrode selection and configuration, stimulation parameter values including, for example, amplitudes, pulse width, frequency, pulse waveform, active or passive recharge mode for the sub-perception therapy, ON time (the first duration), OFF time (the second duration), and therapy duration, among others. In some examples, the user may use the GUI 64 to define criteria for, and initiate a process of, identifying the patient's usage pattern of stimulation, such as frequency, activation time, duration, and manner of using certain stimulation programs.
Stimulation parameters relating to the electrodes 16 (the electrodes E activated and their polarities P), are made adjustable in an electrode parameter interface 86. Electrode stimulation parameters are also visible and can be manipulated in a leads interface 92 that displays the leads 15 (or 15′) in generally their proper position with respect to each other, for example, on the left and right sides of the spinal column. A cursor 94 (or other selection means such as a mouse pointer) can be used to select a particular electrode in the leads interface 92. Buttons in the electrode parameter interface 86 allow the selected electrode (including the case electrode, Ec) to be designated as an anode, a cathode, or off. The electrode parameter interface 86 further allows the relative strength of anodic or cathodic current of the selected electrode to be specified in terms of a percentage, X. This is particularly useful if more than one electrode is to act as an anode or cathode at a given time, as explained in the '038 Publication. In accordance with the example waveforms shown in
The GUI 64 as shown specifies only a pulse width PW of the first pulse phase 30a. The clinician programmer software 66 that runs and receives input from the GUI 64 will nonetheless ensure that the IPG 10 and ETS 40 are programmed to render the stimulation program as biphasic pulses if biphasic pulses are to be used. For example, the clinician programming software 66 can automatically determine durations and amplitudes for both of the pulse phases 30a and 30b (e.g., each having a duration of PW, and with opposite polarities +A and −A). An advanced menu 88 can also be used (among other things) to define the relative durations and amplitudes of the pulse phases 30a and 30b, and to allow for other more advance modifications, such as setting of a duty cycle (on/off time) for the stimulation pulses, and a ramp-up time over which stimulation reaches its programmed amplitude (A), etc. A mode menu 90 allows the clinician to choose different modes for determining stimulation parameters. For example, as described in the '038 Publication, mode menu 90 can be used to enable electronic trolling, which comprises an automated programming mode that performs current steering along the electrode array by moving the cathode in a bipolar fashion. While GUI 64 is shown as operating in the CP 50, the user interface of the RC 45 may provide similar functionality.
Stimulation dosing parameters, such as amplitude, frequency (or stimulation rate), pulse width (PW), or waveform pattern of the stimulation waveform are programmable and can be set or adjusted by a user on a GUI. In an example, the frequency of the stimulation pulse (reciprocal of period) can be programmed to a value within a specific range, such as approximately 2-700 Hz. In an example, the stimulation frequency can be programmed to 90 Hz. The pulse width (PW) can be programmed within a range, such as approximately 210±50 micro-seconds (μs). To identify the electrode configuration and fine-tune the location of stimulation, a neural target search can be carried out using the CPS-1 and CPS-2 steered simultaneously in the rostro-caudal and medial-lateral dimensions at a programmable step (resolution) such as in approximately 300 us increments. The stimulation amplitude can then be lowered to a programmable fraction of the perception threshold. Such a programming for sub-perception therapy allows for a systematic optimization of the stimulating field that provides comprehensive overlap between the area of pain and paresthesia sensation.
The neuromodulation system 700, which is an embodiment of the neuromodulation system 400, may include one or more of a user interface device 710, a controller circuit 720, and an electrostimulator 740. Portions of the neuromodulation system 700 may be implemented in stimulation devices such as IPG 10 or the ETS 40, and/or controller devices such as the RC 45 or CP 50.
The user interface device 710 can allow a user (e.g., a clinician or a device expert) to program or modify a therapy setting, and to provide feedback on a neuromodulation therapy. In an example, the user interface device 710 can be a portable (e.g., handheld) device, such as the RC 45 or a smartphone (with executable software application) operable by the patient at his or her home without requiring extra clinic visits or consultation with a device expert. In another example, the user interface device 710 can be a programmer device, such as the CP 50, that allows a physician to review therapy settings and treatment history, consult with the patient to obtain feedback information (e.g., pain relief and side effects or symptoms), programming the electrostimulator 740, or provide other treatment options to the patient. The feedback can include, for example, therapeutic effectiveness and symptoms or side effects experienced by the patient during or after the neuromodulation therapy. Such feedback, in some examples, can include physiological signals sensed by physiological sensors in response to therapy delivered to the patient in accordance with a programmed candidate therapy program.
The user interface device 710 can include an input unit 711 and an output unit 712. The input unit 711 can include one or more user interface (UI) control elements operable by a user to program or modify a device setting. For example, the user may use the UI control elements to provide or adjust values for one or more programmable parameters including, for example, a signal acquisition parameter, a signal analysis parameter, or a neuromodulation therapy parameter, or to select from a plurality of pre-defined stimulation programs a desired simulation program for future use. Each stimulation program can include a number of stimulation parameters with respective pre-determined values.
In some examples, the input unit 711 can include UI control elements operable by the user to provide feedback on a neuromodulation therapy delivered to the patient. A therapy setting may include a set of stimulation parameters with respective programmable or preset values. Examples of the stimulation parameters can include an electrode configuration (e.g., stimulation lead and electrode location, selection of active electrodes, designation of anode and cathode, and stimulation current or energy fractionalization across the electrodes), stimulation dose parameters (e.g., pulse width, frequency, pulse amplitude), stimulation pulse waveform, or an ON-OFF cycling of stimulation bursts, among others. The feedback provided by the user via the input unit 711 can include pain data or feedback on pain relief by the existing SCS therapy. The pain data or the feedback on pain relief may include identification of pain sites, distribution of the pain, intensity of pain at various pain sites, or temporal pattern such as persistence of the pain at various pain sites, a pain drawing with pain markings identifying the locations, intensities, patterns of pain, among other information. In some examples, the feedback may include side effects or symptoms arise or persist associated with the SCS, or severity of the symptom or a side effect. The severity can take a numerical value (e.g., on a 1 to 5 scale) or a categorical value (e.g., “Mild”, “Moderate”, or “Severe”). The feedback may be provided in different formats, such as texts, graphs, or verbal descriptions, among others. In some examples, the user may provide, via the input unit 711, information about patient health or medical information, such as change in medication, physical activities, medical procedures received, among other information. As will be discussed further below, the therapy controller 725 may use patient feedback on the neuromodulation therapy, along with other contextual information and user commands during a programming session, to adjust a therapy setting or schedule.
The output unit 712 can include a display to present textually or graphically an interface for programming or modifying the device setting, and the information provided by the user via the input unit 711. In some examples, under the control of the controller circuit 720, the output unit 712 may display a recommendation to the user to program a neuromodulation therapy in accordance with an individualized programming workflow. The user may be prompted to select or deselect, or to change value(s) of, one or more programmable parameters on the user interface. In an example, the output unit 712 may present to the user an “optimal” therapy setting that includes recommended values for one or more device parameters. The user can accept, reject, or modify the therapy setting via the input unit 711. In some examples, the output unit 712 may display a progress of an ongoing neuromodulation therapy in real time.
The controller circuit 720, which is an example of the control circuitry 48 of the RC 45 or the control circuitry 70 of the CP 50, can be communicatively coupled to or integrated into the user interface device 710. The controller circuit 720 can generate an individualized programming workflow to guide the user to test and search for an optimal therapy setting (as defined by a set of stimulation parameters with respectively optimized values) that would achieve a desired therapeutic effect while avoiding or minimizing the side effects or symptoms, and to program the optimal therapy setting to the electrostimulator 740. The controller circuit 720 can include circuit sets comprising one or more other circuits or sub-circuits, such as a programming workflow analyzer 721 and a therapy controller 725. The programming workflow analyzer 721 may further include subcircuits including a user commands and contextual information collector 722 and a programming quality analyzer 723. The circuits or sub-circuits may, alone or in combination, perform the functions, methods, or techniques described herein. In an example, hardware of the circuit set may be immutably designed to carry out a specific operation (e.g., hardwired). In an example, the hardware of the circuit set may include variably connected physical components (e.g., execution units, transistors, simple circuits, etc.) including a computer readable medium physically modified (e.g., magnetically, electrically, moveable placement of invariant massed particles, etc.) to encode instructions of the specific operation. In connecting the physical components, the underlying electrical properties of a hardware constituent are changed, for example, from an insulator to a conductor or vice versa. The instructions enable embedded hardware (e.g., the execution units or a loading mechanism) to create members of the circuit set in hardware via the variable connections to carry out portions of the specific operation when in operation. Accordingly, the computer readable medium is communicatively coupled to the other components of the circuit set member when the device is operating. In an example, any of the physical components may be used in more than one member of more than one circuit set. For example, under operation, execution units may be used in a first circuit of a first circuit set at one point in time and reused by a second circuit in the first circuit set, or by a third circuit in a second circuit set at a different time.
In various examples, portions of the functions of the controller circuit 720 may be implemented as a part of a microprocessor circuit. The microprocessor circuit can be a dedicated processor such as a digital signal processor, application specific integrated circuit (ASIC), microprocessor, or other type of processor for processing information including physical activity information. Alternatively, the microprocessor circuit can be a general purpose processor that can receive and execute a set of instructions of performing the methods or techniques described herein.
The user commands and contextual information collector 722 can collect information during a programming session, including a sequence of programming instructions for programming the electrostimulator 740, and contextual information in relation to how the programming instructions were made during a programming session. Referring to
The user commands and contextual information collector 722 may additionally collect information about patient response to therapy 850 indicative of a therapeutic effect or a side effect of the neuromodulation therapy. The patient response to therapy 850 may be sensed using one or more sensors. Such sensors may be included in, or external to, the IPG 10 or the ETS 40, to sense a physiological signal. In an example, the user commands and contextual information collector 722 can be coupled to one or more subcutaneous electrodes on one or more implantable leads, such as the electrodes 16 on one or more electrode leads 15 as illustrated in
The sensed physiological signal may additionally or alternatively include cardiac, pulmonary, neural, biochemical, or other physiological signals. Some of these signals may reveal characteristic signal properties in response to an onset, intensity, severity, duration, or patterns of pain. Examples of sensor signals can include cardiac signals such as a heart rate signal, a pulse rate signal, a heart rate variability signal, electrocardiogramar intracardiac electrogram, cardiovascular pressure signal, or heart sounds signal, among others. The second signal may additionally or alternatively include a galvanic skin response (GUR) signal, an electrodermal activity (EDA) signal, a skin temperature signal, an electromyogram (EMG) signal, an electroencephalogram (EEG) signal, a magnetoencephelogram (MEG) signal, a hemodynamic signal such as a blood flow signal, a blood pressure signal, a blood perfusion signal, a photoplethysmography (PPG) signal, or a saliva production signal indicating the change of amount of saliva production, among others.
In some examples, the patient response to therapy 850 may include information about body motion (e.g., bradykinesia, tremor, or rigidity), which is particularly useful for evaluating neuromodulation therapy in patients with Parkinson's disease. The body motion may be sensed using a motion sensor operably positioned on a leg or other body parts of the patient to sense the body motion, a sleep sensor attached to the patient or on a bed to sense body movement during sleep, or an imaging sensor (e.g., a camera or video recorder) for capturing images of body motion. In some examples, the sensors may be configured to sense information related to cognitive ability such as in patients with Alzheimer's disease. Examples of such sensors may include an audio sensor or an imaging sensor to record patient's verbal response or facial expressions in response to the electrostimulation delivered in accordance with candidate therapy settings. In some examples, the audio and/or the imaging sensor may be automatically activated to record patient verbal response or facial expressions when the patient is making a phone call or a video call, during which the electrostimulation is delivered in accordance with the candidate therapy settings.
In some examples, the user commands and contextual information collector 722 can be communicatively coupled to an imaging system such as a video camera that takes video or images of the user and/or the patient during a programming session. The user commands and contextual information collector 722 can generate video or image analytics indicative of user programming commands and contextual information. One or more of the user commands log 810, the stimulation program usage pattern 820, the programming time 830, the power consumption 840, or the about patient response to therapy 850 can be determined from the video or image analytics, which can subsequently be used to assessing the user's programming quality and to determine an optimal individualized programming workflow.
Referring back to
In some examples, the programming quality analyzer 723 can perform a best-case and/or worst-case workflow analysis to assess risks associated with a particular user programming action, and determine an improvement in programming efficiency that can be made based on the risk analysis. In an example, fuzzy reasoning techniques may be used to determine a human factors index that may further be used to determine association rules between a programming workflow (e.g., a sequence of programming instructions such as button presses on the user interface) and a corresponding programming quality including therapy efficacy. In some examples, error producing conditions can be identified from the user's programming workflow, and quantified to assess human reliability regardless of actual workflow taken by the user. Worst-case workflows can be determined based on different combinations of programming instructions on the user interface.
In some examples, the programming quality analyzer 723 can perform workflow analysis and determine the programming quality indicator using artificial intelligence (AI) or machine learning (ML) methods. At least one ML model can be trained to establish association rules between a programming workflow (e.g., a sequence of programming instructions such as button presses) and a corresponding programming quality indicator. Supervised or unsupervised learning algorithms may be used to train the at least one ML model. Supervised learning uses prior knowledge (e.g., examples that correlate inputs to outputs or outcomes) to learn the relationships between the inputs and the outputs. The goal of supervised learning is to learn a function that, given some training data, best approximates the relationship between the training inputs and outputs so that the ML model can implement the same relationships when given inputs to generate the corresponding outputs. Some examples of commonly used supervised-ML algorithms are Logistic Regression (LR), Naive-Bayes, Random Forest (RF), neural networks (NN), deep neural networks (DNN), matrix factorization, and Support Vector Machines (SVM). Examples of DNN include a convolutional neural network (CNN), a recurrent neural network (RNN), a deep belief network (DBN), or a hybrid neural network comprising two or more neural network models of different types or different model configurations. Unsupervised learning is the training of an ML algorithm using information that is neither classified nor labeled, and allowing the algorithm to act on that information without guidance. Unsupervised learning is useful in exploratory analysis because it can automatically identify structure in data. Some common tasks for unsupervised learning include clustering, representation learning, and density estimation. Some examples of commonly used unsupervised learning algorithms are K-means clustering, principal component analysis, and autoencoders. In an example of training a ML model to predict an optimal filter setting (or other signal processing parameter) based on physiological signals acquired under different patient conditions, a training date set can be constructed using patient population data of physiological signals collected under different patient conditions and the filter settings that are demonstrated to provide optimal or desired performance distinguishing therapy effects under different patient conditions. Once trained, the ML model can predict the programming quality, including therapy outcome, for a given user programming workflow (e.g., a sequence of user programming instructions).
The therapy controller 725 can generate an individualized programming workflow based at least in part on the programming quality indicator. The individualized programming workflow may include various graphical user interface (GUI) designs on the user interface. In an example, the individualized programming workflow may include prompted or recommended selection (e.g., via buttons or other UI control element) of one or more programmable parameters that have not been or rarely been used by the user. Examples of the individualized programming workflow including recommended selection of programmable parameters are discussed below with respect to
In an example, the individualized programming workflow may include a shortcut parameter that enables simultaneous activation or selection of multiple parameters (e.g., one button press that effectively performs multiple selections simultaneously), thereby enabling quicker programming and optimizing programming performance. In another example, the individualized programming workflow may include bookmarking or highlighting “typical” selections or “frequently selected features” based on the user's past programming patterns.
The individualized programming workflow may include a prioritized order of selecting multiple programmable parameters (e.g., button presses in an order of A-B-C instead of B-A-C). In an example, the prioritized order can be determined based on the programmable parameters' respective dependencies on an active communication (e.g., Bluetooth, or Bluetooth Low Energy or BLE protocols) between the programmer device and the electrostimulator 740 during a programming session. The therapy controller 725 can identify a first group of programmable parameters that require active communication during the programming session, and a second group of programmable parameters that do not require active communication during the programming session. A batch-mode selection can be made such that the second group of programmable parameters that do not require active communication get to be selected prior to the first group of programmable parameters that require active communication. The grouping of the device parameters and the batch-mode selection of device parameters as described herein can improve the programming efficiency and reduce power consumption associated with active communication during a programming session.
In some examples, programmable features on the user interface can be arranged (e.g., grouped) based on user's past use patterns, or levels of familiarity with such features. The individualized programming workflow may include a group of “New Features” that the user typically does not use in past programming sessions, and a group of “Typical Features” that the user frequently use in past programming sessions. The “New features” can be grouped together and collectively shown in one area of the user interface, such as arranged under one tab. Similarly, the “Typical Features” can be grouped together and collectively shown in another area of the user interface, such as arranged under a different tab. In some examples, the individualized programming workflow may include a tutorial that goes through real examples of user workflows and how they progress through the various screens.
The therapy controller 725 can generate a control signal to the electrostimulator 740 to adjust the neuromodulation therapy based on the selected signal feature. The electrostimulator 740 can deliver a neuromodulation therapy in accordance with the adjusted therapy setting. Examples of the therapy setting may include, electrode selection and configuration, stimulation parameter values including, for example, amplitudes, pulse width, frequency, pulse waveform, active or passive recharge mode, ON time, OFF time, and therapy duration, among others. In an example, the therapy controller 725 can be implemented as a proportional integral (PI) controller, a proportional-integral-derivative (PID) controller, or other suitable controller that takes measurements of the selected signal feature (e.g., a “range” of epoch-averaged ECAP signal segments) as a feedback on the adjustment of therapy settings.
The electrostimulator 740 can be an implantable module, such as incorporated within the IPG 10. Alternatively, the electrostimulator 740 can be an external stimulation device, such as incorporated with the ETS 40. In some examples, the user can choose to either send a notification (e.g., to the RC 45 or a smartphone with the patient) for a therapy reminder, or to automatically initiate or adjust neuromodulation therapy in accordance with the adjusted therapy setting. If an automatic therapy initiation is selected, the electrostimulator 740 can deliver stimulation in accordance with the adjusted therapy setting.
At 1110, during a programming session, user commands and contextual information including a sequence of programming instructions from a user can be received. The user can provide the programming instructions using one or more user interface (UI) control element on the user interface of the programmer device. The programming instructions may include selecting a programmable parameter, and providing or adjusting a value for the programmable parameter. Examples of the programmable parameter include a signal acquisition parameter, a signal analysis parameter, or a neuromodulation therapy parameter or stimulation program.
In addition to the sequence of programming instructions, contextual information associated with the user programming instructions may be received at 1110. Example of the contextual information include a timing or timestamp for each selection, a duration of time spend on selecting or programming a parameter, a frequency of (i.e. how often) a parameter being selected over a specific time period or over a number of programming sessions, or an order of setting multiple programmable parameters in a programming session. The contextual information may additionally or alternatively include a stimulation program usage pattern, time elapsed during an entirety or a portion of the programming session, such as time spent when the programmer device is in active communication with the electrostimulator during the programming session, or an estimate of power consumption during an entirety or a specific portion of the programming session, such as power consumed when the programmer device is in active communication with the electrostimulator during the programming session. In some examples, the user commands and contextual information may include information about patient responses to therapy indicative of a therapeutic effect or a side effect of the neuromodulation therapy. The patient responses may include an evoked neural response to electrostimulation of a neural target, physiological signals such as cardiac, pulmonary, neural, biochemical signals, information about body motion or information related to cognitive ability, among others.
At 1120, a programming quality indicator can be determined using the collected user commands and contextual information using various sources of the collected user commands and contextual information. The programming quality indicator indicates, for a programming workflow, therapy optimality that would result from such programming and programming efficiency to achieve said therapy optimality. The programming quality indicator can be determined based on whether one or more of the user commands and contextual information satisfy respective conditions. Alternatively, the programming quality can be represented by a numerical programming quality score computed using a weighted combination of various sources of the user commands and contextual information, such as those described with respect to
At 1130, an individualized programming workflow can be generated based at least in part on the programming quality indicator. The individualized programming workflow can be used to guide the user to test and program at least one therapy parameter to the electrostimulator. In an example, the individualized programming workflow may include prompted or recommended selection of one or more programmable parameters that have not been or rarely been used by the user. In another example, the individualized programming workflow may include a shortcut parameter that enables simultaneous activation or selection of multiple parameters (e.g., one button press that effectively performs multiple selections simultaneously), thereby enabling quicker programming and optimizing programming performance. In yet another example, the individualized programming workflow may include bookmarking or highlighting “typical” selections or “frequently selected features” based on the user's past programming patterns. In some examples, the individualized programming workflow may additionally or alternatively include a prioritized order of selecting programmable parameters. In an example, the prioritized order can be determined based on the programmable parameters' respective dependencies on an active communication between the programmer device and the electrostimulator during a programming session. Programmable parameters that require active communication during the programming session and programmable parameters that do not require active communication during the programming session can be identified and grouped in separate groups. A batch-mode selection can be made such that the group of programmable parameters that do not require active communication get to be selected prior to the group of programmable parameters that require active communication.
At 1140, a neuromodulation therapy can be delivered to the patient using the electrostimulator in accordance with the user programmed at least one therapy parameter. In some examples, the user can choose to either send a notification (e.g., to the RC 45 or a smartphone with the patient) for a therapy reminder, or to automatically initiate or adjust neuromodulation therapy in accordance with the adjusted therapy setting. If an automatic therapy initiation is selected, the electrostimulator 740 can deliver stimulation in accordance with the adjusted therapy setting.
In alternative examples, the machine 1200 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine 1200 may operate in the capacity of a server machine, a client machine, or both in server-client network environments. In an example, the machine 1200 may act as a peer machine in peer-to-peer (P2P) (or other distributed) network environment. The machine 1200 may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein, such as cloud computing, software as a service (SaaS), among other computer cluster configurations.
Examples, as described herein, may include, or may operate by, logic or a number of components, or mechanisms. Circuit sets are a collection of circuits implemented in tangible entities that include hardware (e.g., simple circuits, gates, logic, etc.). Circuit set membership may be flexible over time and underlying hardware variability. Circuit sets include members that may, alone or in combination, perform specified operations when operating. In an example, hardware of the circuit set may be immutably designed to carry out a specific operation (e.g., hardwired). In an example, the hardware of the circuit set may include variably connected physical components (e.g., execution units, transistors, simple circuits, etc.) including a computer readable medium physically modified (e.g., magnetically, electrically, moveable placement of invariant massed particles, etc.) to encode instructions of the specific operation. In connecting the physical components, the underlying electrical properties of a hardware constituent are changed, for example, from an insulator to a conductor or vice versa. The instructions enable embedded hardware (e.g., the execution units or a loading mechanism) to create members of the circuit set in hardware via the variable connections to carry out portions of the specific operation when in operation. Accordingly, the computer readable medium is communicatively coupled to the other components of the circuit set member when the device is operating. In an example, any of the physical components may be used in more than one member of more than one circuit set. For example, under operation, execution units may be used in a first circuit of a first circuit set at one point in time and reused by a second circuit in the first circuit set, or by a third circuit in a second circuit set at a different time.
Machine (e.g., computer system) 1200 may include a hardware processor 1202 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, algorithm specific ASIC, or any combination thereof), a main memory 1204 and a static memory 1206, some or all of which may communicate with each other via an interlink (e.g., bus) 1208. The machine 1200 may further include a display unit 1210 (e.g., a raster display, vector display, holographic display, etc.), an alphanumeric input device 1212 (e.g., a keyboard), and a user interface (UI) navigation device 1214 (e.g., a mouse). In an example, the display unit 1210, input device 1212 and UI navigation device 1214 may be a touch screen display. The machine 1200 may additionally include a storage device (e.g., drive unit) 1216, a signal generation device 1218 (e.g., a speaker), a network interface device 1220, and one or more sensors 1221, such as a global positioning system (GPS) sensor, compass, accelerometer, or other sensors. The machine 1200 may include an output controller 1228, such as a serial (e.g., universal serial bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate or control one or more peripheral devices (e.g., a printer, card reader, etc.).
The storage device 1216 may include a machine-readable medium 1222 on which is stored one or more sets of data structures or instructions 1224 (e.g., software) embodying or utilized by any one or more of the techniques or functions described herein. The instructions 1224 may also reside, completely or at least partially, within the main memory 1204, within static memory 1206, or within the hardware processor 1202 during execution thereof by the machine 1200. In an example, one or any combination of the hardware processor 1202, the main memory 1204, the static memory 1206, or the storage device 1216 may constitute machine readable media.
While the machine-readable medium 1222 is illustrated as a single medium, the term “machine readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) configured to store the one or more instructions 1224.
The term “machine readable medium” may include any medium that is capable of storing, encoding, or carrying instructions for execution by the machine 1200 and that cause the machine 1200 to perform any one or more of the techniques of the present disclosure, or that is capable of storing, encoding or carrying data structures used by or associated with such instructions. Non-limiting machine-readable medium examples may include solid-state memories, and optical and magnetic media. In an example, a massed machine-readable medium comprises a machine readable medium with a plurality of particles having invariant (e.g., rest) mass. Accordingly, massed machine-readable media are not transitory propagating signals. Specific examples of massed machine-readable media may include: non-volatile memory, such as semiconductor memory devices (e.g., Electrically Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EPSOM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
The instructions 1224 may further be transmitted or received over a communication network 1226 using a transmission medium via the network interface device 1220 utilizing any one of a number of transfer protocols (e.g., frame relay, internet protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), mobile telephone networks (e.g., cellular networks), Plain Old Telephone (POTS) networks, and wireless data networks (e.g., Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards known as WiFi®, IEEE 802.16 family of standards known as WiMax®), IEEE 802.15.4 family of standards, peer-to-peer (P2P) networks, among others. In an example, the network interface device 1220 may include one or more physical jacks (e.g., Ethernet, coaxial, or phone jacks) or one or more antennas to connect to the communication network 1226. In an example, the network interface device 1220 may include a plurality of antennas to wirelessly communicate using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) techniques. The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine 1200, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
Various examples are illustrated in the figures above. One or more features from one or more of these examples may be combined to form other examples.
The method examples described herein may be machine or computer-implemented at least in part. Some examples may include a computer-readable medium or machine-readable medium encoded with instructions operable to configure an electronic device or system to perform methods as described in the above examples. An implementation of such methods may include code, such as microcode, assembly language code, a higher-level language code, or the like. Such code may include computer readable instructions for performing various methods. The code may form portions of computer program products. Further, the code may be tangibly stored on one or more volatile or non-volatile computer-readable media during execution or at other times.
The above detailed description is intended to be illustrative, and not restrictive. The scope of the disclosure should, therefore, be determined with references to the appended claims, along with the full scope of equivalents to which such claims are entitled.
This application claims the benefit of U.S. Provisional Application No. 63/466,522 filed on May 15, 2023, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63466522 | May 2023 | US |