Systems and methods for programming neuromodulation therapy
This document discusses, among other things, systems and methods for programming a neuromodulation therapy to treat neurological or cardiovascular diseases. A system includes an ambulatory medical device (AMD) and at least one computer-readable storage medium including instructions executable on an external system. The instructions, when executed by the external system, causes a user interface in the external system to receive a waveform function and one or more modulation parameter values. The waveform function includes one or more modulation programs characterized by one or more modulation parameters. The instructions causes a compiler to translate the waveform function into virtual machine (VM) instructions, which can be transmitted to the AMD. The AMD includes a VM that executes the VM instructions, and generates one or more modulation waveform datasets. The AMD may generate and deliver electrostimulation therapy in accordance with the one or more modulation waveform datasets.
1. A system for providing electrostimulation to a patient, the system comprising:
an ambulatory medical device (AMD) including a virtual machine (VM) and an electrostimulator; and
at least one computer-readable storage medium including instructions executable on an external system communicatively coupled to the AMD, the external system including a user interface, a compiler, and a telemetry circuit;
wherein the instructions, when executed by the external system:
enable the user interface to receive (1) a waveform function in a form of computer code or a graph, the waveform function defining one or more modulation programs characterized by respective one or more modulation parameters, and (2) a user input of values for the one or more modulation parameters of the one or more modulation programs;
cause the compiler to translate the waveform function into VM instructions; and
cause the telemetry circuit to transmit the VM instructions to the AMD;
wherein the VM of the AMD is configured to execute the VM instructions to generate respective one or more modulation waveform datasets corresponding to the one or more modulation programs, and the electrostimulator is configured to generate electrostimulation therapy according to the one or more modulation waveform datasets.
2. The system of claim 1 , wherein:
the external system is configured to modify the waveform function or adjust the values for the one or more modulation parameters, and the compiler is configured to translate the modified waveform function into modified VM instructions; and
the VM of the AMD is further configured to update the one or more modulation waveform datasets by executing the modified VM instructions or by using the adjusted values for the one or more modulation parameters.
3. The system of claim 1 , wherein the external system further includes:
a device programmer including the user interface to receive the waveform function and the compiler to translate the waveform function into the VM instructions; and
a remote control device including a user input device to receive the user input of the values for the one or more modulation parameters.
4. The system of claim 1 , wherein the electrostimulator is configured to generate a spinal cord stimulation therapy or a deep brain stimulation therapy.
5. The system of claim 1 , wherein the electrostimulator is configured to generate a cardiac stimulation therapy or a neural stimulation therapy to treat a cardiovascular disease.
6. The system of claim 1 , wherein the user interface includes a display configured to textually or graphically display the waveform function.
7. The system of claim 1 , wherein the waveform function further includes instructions for computing delivered energy or charge balance associated with the one or more modulation waveform datasets corresponding to the one or more modulation programs.
8. The system of claim 1 , wherein:
the AMD further includes a sensor circuit configured for sensing a physiological response to delivery of the electrostimulation therapy according to the one or more modulation waveform datasets; and
the waveform function further includes instructions for modifying one or more modulation programs based on the sensed physiological response.
9. The system of claim 8 , wherein:
the AMD further includes a pain analyzer configured to generate a pain score using the sensed physiological response; and
the waveform function further includes instructions for modifying one or more modulation programs based on the generated pain score.
10. The system of claim 1 , wherein the user interface is configured to receive a user input of a modulation magnitude representing a level of stimulation intensity, wherein the values for the one or more modulation parameters are determined based on the modulation magnitude.
11. The system of claim 10 , wherein the external system further comprises a magnitude interpreter unit configured to translate the modulation magnitude into the values for the one or more modulation parameters using a plurality of gain functions respectively defining values of the one or more modulation parameters corresponding to a plurality of modulation magnitudes.
12. The system of claim 11 , wherein the magnitude interpreter unit is at least partially included in the external system or the AMD.
13. The system of claim 1 , wherein the VM is further configured to selectively authorize access to one or more registers for electrostimulation therapy generation.
14. A method for providing electrostimulation to a patient via an ambulatory medical device (AMD) communicatively coupled to an external system, the method comprising:
establishing a waveform function via an external system, the waveform function having a form of computer code or a graph and defining one or more modulation programs characterized by respective one or more modulation parameters;
receiving a user input of values for the one or more modulation parameters of the one or more modulation programs;
translating, via a compiler included in the external system, the waveform function into virtual machine (VM) instructions;
transmitting the VM instructions to the AMD;
executing the VM instructions to generate respective one or more modulation waveform datasets corresponding to the one or more modulation programs; and
generating electrostimulation therapy via the AMD according to the one or more modulation waveform datasets.
15. The method of claim 14 , further comprising modifying the waveform function or adjusting the values for the one or more modulation parameters, and updating the one or more modulation waveform datasets using (1) VM instructions translated from the modified waveform function or (2) adjusted the values for the one or more modulation parameters.
16. The method of claim 14 , wherein the electrostimulation therapy includes at least one of a spinal cord stimulation therapy, a deep brain stimulation therapy, a cardiac stimulation therapy, or a vagus nerve stimulation therapy.
17. The method of claim 14 , further comprising displaying textually or graphically the one or more modulation programs.
18. The method of claim 14 , wherein the established waveform function further includes instructions for computing delivered energy or charge balance associated with the one or more modulation waveform datasets corresponding to the one or more modulation programs.
19. The method of claim 14 , further comprising:
sensing a physiological response to a delivery of the electrostimulation therapy according to the one or more modulation waveform datasets; and
generating a pain score using the sensed physiological response;
wherein the waveform function further includes instructions for modifying one or more modulation programs based on the generated pain score.
20. The method of claim 14 , wherein receiving a user input of values for the one or more modulation parameters includes receiving a modulation magnitude representing a level of stimulation intensity, where the values for the one or more modulation parameters are determined based on the modulation magnitude.