Logging the Execution of Sub-Programs Within a Stimulation Program for an Implantable Stimulator Device
20220023648 · 2022-01-27
Inventors
- Que Doan (West Hills, CA, US)
- Sridhar Kothandaraman (Valencia, CA, US)
- Adam Featherstone (Meridian, ID, US)
- Dennis Vansickle (Lancaster, CA, US)
Cpc classification
A61N1/025
HUMAN NECESSITIES
A61N1/3605
HUMAN NECESSITIES
International classification
Abstract
An implantable stimulator device is disclosed for executing a stimulation program comprising a plurality of sub-programs, wherein the sub-programs are configured to be automatically sequentially executed by stimulation circuitry in the device. Control circuitry periodically stores log data to indicate where each sub-program is in its execution. If the device experiences an interruption that prevents the stimulation circuitry from executing the stimulation program, and upon receiving an indication that the stimulation circuitry can continue execution of the stimulation program, the control circuitry is configured to query the log data to determine a sub-program during which the interruption occurred, and using the log data, cause the stimulation circuitry to continue execution of the stimulation circuitry either at the beginning of the sub-program, or at a point during the sub-program when the interruption occurred.
Claims
1. A method operable with a spinal cord stimulator (SCS) device, wherein the SCS device comprises a plurality of electrodes implanted within the spinal column of the patient, the method comprising: executing in the SCS device a stimulation program comprising a plurality of sub-programs thereby sequentially executing each of the sub-programs, wherein each sub-program provides stimulation to one or more of the electrodes using different stimulation parameters; receiving at an external system in communication with the SCS device at least one pain score from the patient for each of the sub-programs, wherein the at least one pain score for each sub-program is indicative of the patient's pain upon receiving the stimulation provided by that sub-program; and processing the pain scores at the external system to identify one or more of the sub-programs as suitable for the patient.
2. The method of claim 1, wherein at least some of the sub-programs provide the stimulation to different of the one or more of the electrodes.
3. The method of claim 1, wherein the stimulation is sub-threshold during at least some of the sub-programs.
4. The method of claim 1, wherein each of the sub-programs is executed for a same duration.
5. The method of claim 1, wherein the external system comprises a patient external controller.
6. The method of claim 5, wherein the pain score from the patient for each of the sub-programs is received at the external controller.
7. The method of claim 6, wherein the pain scores are processed at the external controller to identify the one or more of the sub-programs suitable for the patient.
8. The method of claim 6, wherein the external system comprises a clinician programmer, wherein the pain scores are processed at the clinician programmer to identify the one or more of the sub-programs suitable for the patient.
9. The method of claim 1, wherein processing the pain scores at the external system to identify the one or more of the sub-programs as suitable for the patient comprises comparing the pain scores to a threshold.
10. The method of claim 9, wherein there are a plurality of pain score received for at least some of the sub-programs, and wherein the plurality of pain scores for each sub-program are averaged before being compared to the threshold.
11. The method of claim 1, further comprising assessing at the external system a power draw of the identified one or more of the sub-programs.
12. The method of claim 11, further comprising determining at the external system a best of the identified one of more of the sub-programs, wherein the best sub-program comprises a lowest of the power draws.
13. A method operable with a spinal cord stimulator (SCS) device, wherein the SCS device comprises a plurality of electrodes implanted within the spinal column of the patient, the method comprising: executing in the SCS device a stimulation program comprising a plurality of sub-programs thereby sequentially executing each of the sub-programs in a sequence, wherein each sub-program provides stimulation to one or more of the electrodes using different stimulation parameters; displaying at an external system in communication with the SCS device an indication of the sub-program that is currently being executed; displaying at least one option on the external system to allow the patient to skip the currently-executed sub-program, or delete the currently-executed sub-program from the stimulation program; and receiving a selection from the patient of the at least one option, thereby causing the SCS device to execute a next sub-program in the sequence.
14. The method of claim 13, wherein at least some of the sub-programs provides the stimulation to different combinations of the one or more of the electrodes.
15. The method of claim 13, wherein the stimulation is sub-threshold during at least some of the sub-programs.
16. The method of claim 13, wherein the plurality of electrodes are carried on one or more leads of the SCS device.
17. The method of claim 13, wherein the SCS device comprises a fully-implantable pulse generator or an external trial stimulator.
18. The method of claim 13, wherein each of the sub-programs is executed for a same duration.
19. The method of claim 13, wherein the external system comprises a patient external controller.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
DETAILED DESCRIPTION
[0037] In an SCS application, it is desirable to determine a stimulation program that will be effective for each patient to relieve their symptoms, such as pain. A significant part of determining an effective stimulation program is to determine the electrodes in the array 17 or 17′ that should be selected to provide the stimulation. The neural site at which pain originates in a patient, and therefore electrodes proximate to such neural site, can be difficult to determine, and experimentation is typically undertaken to select the best combination of electrodes to provide a patient's therapy.
[0038] SCS traditionally provides a sensation of paresthesia to a patient—i.e., a tingling, prickling or heating sensation. Selecting electrodes for a given patient can be easier when paresthesia is present, because the patient can provide feedback to the clinician concerning when the paresthesia seems to “covering” the area that is causing pain. In short, the patient can generally assess when the sensation of paresthesia seems to have taken the place of the sensation of pain, which assists in electrode selection.
[0039] However, newer SCS stimulation paradigms can provide symptom relief without the sensation of paresthesia, which is often called sub-threshold stimulation therapy. See, e.g., U.S. Patent Application Publication 2019/0046800. Electrode selection for a given patient can be more difficult when paresthesia is not present, because the patient does not feel the stimulation, and therefore it can be difficult for the patient to feel whether the stimulation is covering his pain. Further, sub-threshold stimulation therapy may require a “wash in” period before it can become effective. A wash in period can take up to a day or more, and therefore sub-threshold stimulation may not be immediately effective, making electrode selection more difficult.
[0040]
[0041] As shown, stimulation program 100 is comprised of a sequence of sub-programs 102, each of which preferably selects different electrodes for stimulation. In the example shown, it is assumed that a site 98 of a patient's pain is likely within a tissue region 99. Such region 99 may be deduced by a clinician based on the patient symptoms, e.g., by understanding which electrodes are proximate to certain vertebrae (not shown), such as within the T9-T10 interspace. In the example shown, region 99 is bounded by electrodes E2, E7, E15, and E10, meaning that electrodes outside of this region (e.g., E1, E8, E9, E16) are unlikely to have an effect on the patient's symptoms. Therefore, these electrodes are not selected during any of the sub-programs 102.sub.i to reduce the size and total duration of the stimulation program 100. In another example, sub-programs 102.sub.i could be constructed for each of the electrodes without regard to a tissue region 99.
[0042] In the illustrated example, each sub-program 102.sub.i of the stimulation program 100 selects two electrodes—a bipole 97—for stimulation. For example, in sub-program 1 102.sub.1, electrode E2 is selected as an anode that will source a positive current (+I.sub.1) to the patient's tissue, while electrode E3 is selected as a cathode that will sink a negative current (−I.sub.1) from the patient's tissue. This is similar to what was illustrated earlier with respect to
[0043] The goal of moving the bipole 97 along path 96, or changing the selected electrodes in each sub-program 102.sub.i more generally, is to try and find an electrode selection that best covers the site 98 of the patient's pain. In the example of
[0044] Note that each sub-program 102.sub.i is itself a fully-executable stimulation program, specifying all relevant stimulation parameters, such as amplitude I, frequency f, pulse width PW, although not all of these stimulation parameters are shown in
[0045] It is not necessary that the selected electrodes in each sub-program 102.sub.i comprise bipoles as shown. More complicated electrode selections (e.g., three-electrode tripoles, or electrode combinations spanning the leads) could also be made. Further, the selected electrodes need not comprise physical bipoles defined at two physical electrodes 16. Instead, virtual bipoles (or tripoles, etc.), can be formed in which the pole positions are not necessarily formed at the location of the physical electrodes. See, e.g., U.S. Pat. No. 10,881,859, discussing virtual poles in an implantable stimulator device.
[0046] To summarize, as the goal of stimulation program 100 is to try and find one or more sub-programs 102.sub.i that provide good therapy for a patient, the sub-programs 102.sub.i can comprise randomly different stimulation programs. That is, any one or more stimulation parameters—selected electrodes, their polarities, amplitude, frequency, pulse width, etc.—can be varied or remain the same during each of the sub-programs. Nonetheless, sub-programs 102.sub.i providing physical bipoles 97 moving step-wise along a path 96 provide a good example, as well as a logical use model designed to assist the patient or clinician in finding a “sweet spot” at which pain 98 is present in the patient's tissue. However, the technique is not limited to this use model.
[0047] Stimulation program 100 is preferably formed at the clinician programmer 150 (
[0048] When used in a trial setting to try and locate the site 98 of a patient's pain, the stimulation program 100 can end once its last sub-program (102.sub.10) has been executed. Although not shown in the figures, when the stimulation program 100 reaches its end, the IPG 110 or ETS 140 can establish a communication link with the clinician program 150 or external controller 145 to notify the clinician or patient of this fact. Alternatively, the stimulation program 100 can run in a loop, executing 102.sub.1, 102.sub.2, etc. after the execution of 102.sub.10 has completed. Although not shown, the GUI of the clinician program 150 or external controller 145 can allow the clinician or patient to specify the number of loops that the stimulation program will be executed by the IPG 110 or ETS 140.
[0049] As mentioned above, sub-threshold stimulation can make therapy effectiveness difficult to immediately determine, especially if each sub-program 102.sub.i must be washed in for a period. Therefore, the duration di of each sub-program 102.sub.i is preferably run for a significant duration, which might comprise two to three days. Durations di are preferably the same for each of the sub-programs 102.sub.i, but could also be different.
[0050] To assist in gauging the effectiveness of each sub-program 102.sub.i, the patient may use the GUI of his external controller 145 to qualitatively rate therapy effectiveness by entering a pain score 104. This can comprise the use of a pain rating scale, such as the Numerical Rating Scale (NRS) or the Visual Analogue Scale (VAS). Such scales allow the patient to rank pain on a scale of 1 to 10, with 1 denoting no or little pain and 10 denoting a worst pain imaginable. The patient preferably enters a pain score 104 at least a few times per day, although the patient need not do so on a strict schedule. System treatment of the entered pain scores 104 is discussed further below. While this disclosure talks about the qualitative patient input of a “pain score” for simplicity, such score need not be limited to an assessment of pain, but could also be indicative of other patient statuses, such as patient wellness or therapy satisfaction. “Pain score” is used and defined herein as encompassing any patient statuses.
[0051] Also shown in
[0052]
[0053] Central to the IPG 110 or ETS 140 is control circuitry 160, which in one example can comprise a microcontroller, such as Part Number MSP430, manufactured by Texas Instruments, which is described in data sheets at http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/overview.page? DCMP=MCU_other& HQS=msp430. The control circuitry 160 more generally can comprise a microprocessor, Field Programmable Grid Array, Programmable Logic Device, Digital Signal Processor or like devices. Control circuitry 160 may include a central processing unit capable of executing instructions, with such instructions stored in volatile or non-volatile memory within or associated with the control circuitry. Control circuitry 160 may also include, operate in conjunction with, or be embedded within an Application Specific Integrated Circuit (ASIC), such as described in U.S. Patent Application Publications 2008/0319497, 2012/0095529, 2018/0071513, or 2018/0071520. The control circuitry 160 may comprise an integrated circuit with a monocrystalline substrate, or may comprise any number of such integrated circuits operating as a system. Control circuitry may also be included as part of a System-on-Chip (SoC) or a System-on-Module (SoM) which may incorporate memory devices and other digital interfaces.
[0054] Control circuitry 160 can include or interface with a program memory 162, which stores the stimulation program, such as stimulation program (SP) 100, that the IPG 110 or ETS 140 is running. As shown, the stimulation program 100, inclusive of its sub-programs 102.sub.i and their durations di, can be wirelessly telemetered to the IPG 110 or ETS 140 by either the clinician program 150 or the external controller 145 and stored in the program memory 162. Although not shown, the program memory 162 can also store a number of loops that the stimulation program 100 will execute, which as noted earlier can be specified at the relevant external device.
[0055] The control circuitry 160 executes the stimulation program 100 by executing each sub-program 102.sub.i sequentially, and in accordance with the duration di of each. Clock circuitry 164 with the IPG 110 or ETS 140 assists with timing and, in conjunction with the durations d.sub.i, can inform the control circuitry 160 when the duration of a currently-executed sub-program 102.sub.i has expired, and when execution of a next sub-program 102.sub.i+1 should begin. Clock circuitry 164 provides a timing reference t for the IPG 110 or ETS 140.
[0056] When executing each sub-program 102.sub.i in the stimulation program 100, the program memory 162 passes various stimulation parameters for each sub-program 102.sub.i to stimulation circuitry 28, which stimulation parameters can comprise the current amplitude (I), the electrodes (E) (e.g., the bipole 97) chosen for stimulation, the polarity (P) of the selected electrodes (whether they are to act as anodes or cathodes), and timing information including the frequency (f) and the pulse width (PW). The stimulation circuitry 28 can then form stimulation (e.g., pulses) at the selected electrodes with the correct amplitude and timing. Various examples of stimulation circuitries 28 can be found in U.S. Pat. Nos. 6,181,969, 8,606,362, 8,620,436, U.S. Patent Application Publications 2018/0071520 and 2019/0083796. Although not shown in
[0057] Preferably, the pain scores 104.sub.i entered by the patient using his external controller 145 (
[0058] Entering a given pain score 104.sub.i into the external controller 145 preferably causes the external controller 145 to initiate a communication session with the IPG 110 or ETS 140 so that the pain score 104.sub.i and associated time reference T.sub.i can be immediately telemetered to the pain score memory 166 and associated with an indication of the sub-program 102.sub.i that is currently being executed. However, such immediate telemetry of the pain scores 104.sub.i to the IPG 110 or ETS 140 is not strictly necessary in other designs, and the pain scores 104.sub.i and timing references T.sub.i can be associated with the currently-executed sub-program 102.sub.i in other ways, including at the external devices 150 and 145.
[0059] The contents of pain score memory 166 can be read out of the IPG 110 or ETS 140 and telemetered to the clinician programmer 150 or external controller 145 for evaluation. Such evaluation can occur and be depicted at these external devices in different ways, but
[0060] Optionally included in evaluation memory 172 are the power values 171.sub.i calculated for each of the sub-programs 102.sub.i, as discussed earlier with reference to
[0061] The data displayed in
[0062] An issue concerning stimulation program 100 is the length of time it must run to fully complete execution and evaluation of each sub-program 102.sub.i. As noted earlier, given the sub-threshold nature of the therapy, and the need for a wash in period, each sub-program 102.sub.i may take two to three days (di). If it is assumed that stimulation program 100 includes ten sub-programs 102.sub.i, it would take 20-30 days to run stimulation program 100 in its entirety.
[0063] This can be problematic because there may be various reasons, especially given the length of stimulation program 100, that execution of stimulation program 100 can be interrupted. First, the battery in the IPG 110 or ETS 140 (not shown) may deplete to a level that the IPG 110 or ETS 140 will not function. This may be because these devices have rechargeable batteries that the patient neglects to wirelessly recharge. See, e.g., U.S. Patent Application Publication 2017/0361113, describing an external charger for an implantable device. Interruption may also occur if the IPG 110 or ETS 140 detects an emergency shutdown, such as provided by an external bar magnet. See, e.g., U.S. Pat. No. 8,473,070, describing emergency shutdown of an implantable device. Interruption of the stimulation program 100 may also occur simply because the clinician or patient uses an external device 145 or 150 to change the stimulation program, perhaps to temporarily try different stimulation parameters. Interruption of the stimulation program 100 may also occur because an external device 145 or 150 is used to pause the stimulation program 100. These are just non-limiting examples of actions that can interrupt execution of stimulation program 100 in the IPG 110 or ETS 140, and others actions may cause interruption as well.
[0064] Interruption of the stimulation program 100 raises the concern that the entire stimulation program 100 might need to be run again from its beginning. This is undesirable, because it would take significant time and delay evaluation of the various sub-programs 102.sub.i that might be effective for the patient.
[0065] To address this, the control circuitry 160 in the IPG 110 or ETS 140 is able to detect where stimulation program 100 is in its operation, and can generally resume operation where it left off. Referring again to
[0066] While the status log memory 180 can comprise a historical log, it can be simpler to move the current status—i.e., the last logged entry—into its own memory location 184. This way, upon receiving an indication that the stimulation circuitry 28 can begin re-executing the stimulation program 100, the current status register 184 can simply be queried to know where to begin execution. In fact, status log memory 180 need not have historical log information, so long as current status register 184 is continually updated. Current status register 184 is preferably a non-volatile memory, and so will retain its data even if power to the IPG 110 or ETS 140 fails or is removed. Other memories present in the IPG 110 or ETS 140 are preferably also non-volatile memories.
[0067] An interruption logic module 176 can receive indications of the various types of actions that can interrupt execution of the stimulation program 100, and can issue an interrupt INT 178 when any relevant action has occurred. Interrupt 178 can cause the status log memory 180 to populate the current status register 184, and may also disable the program memory 162 or the stimulation circuitry 28.
[0068] Actions indicating the need to interrupt execution of the stimulation program 100 can come from different sources in the IPG 110 or ETS 140. For example, a battery deletion indicator 175a can come from battery voltage sensing circuitry (not shown), which monitors the voltage Vbat of the IPG or ETS's battery, and asserts the indicator 175 to the interruption module 176 when Vbat falls below a threshold Vt. Typically, the threshold Vt would be set just a bit higher (e.g., 0.1V more) than the voltage needed for the IPG 110 or ETS 140 to operate. This allows some time (0.1 Volts' worth) to allow the IPG 110 or ETS 140 to take appropriate shutdown steps before the IPG or ETS truly become non-functional, such as stopping stimulation, logging various IPG or ETS status data, etc.
[0069] The emergency shutdown indicator 175b can come from a magnetic Reed or Hall sensor (not shown) in the IPG 110 or ETS 140, which can be activated by placement of an emergency shutdown bar magnet in the vicinity of the IPG or ETS. Emergency shutdown may cause the IPG or ETS's circuitry to become disconnected from its battery, but before this a short delay period can be provided to allow the IPG 110 or ETS 140 to take appropriate shutdown steps. See, e.g., U.S. Pat. No. 8,473,070, explaining emergency shutdown and a shutdown delay period.
[0070] An indicator that the stimulation program has been (temporarily) changed (175c) or paused (175d) can come from the program memory 162.
[0071] When the action causing interruption is later removed, interrupt 178 will deassert. At this point, the stimulation program 100 can continue its execution. Continuing the execution of the stimulation program 100 can occur automatically in the IPG 110 or ETS 140 without patient or clinician intervention. This can occur by having the control circuitry 160 read the data in the current status register 184. As noted earlier, the current status register 184 preferably stores an indication of the sub-program 102.sub.i that was being executed at the time of the interruption (e.g., sub-program 102.sub.5 in
[0072] It can be sensible to start either at the beginning 183 or middle 182 of the interrupted sub-program (e.g., 102.sub.5), and different factors may determine which starting point will be used. For example, if the interruption of the stimulation program 100 has occurred for a long time, such as longer than a threshold of 12 hours, it may be beneficial to start at the beginning 183 of interrupted sub-program 102.sub.5 to allow that sub-program to properly wash back in. By contrast, if the interruption is short, such as less than the 12 hour threshold, it may be reasonable to begin in the middle 182 where sub-program 102.sub.5 was interrupted. In another example, whether to begin at the beginning 183 or middle 182 of the interrupted sub-program 102.sub.5 may depend on how far that sub-program was in its execution (e.g., X %). For example, if X is less than a threshold, it may be reasonable to start at the beginning 183, because the sub-program 102.sub.5 was not very far along in its execution anyway. If X is greater than a threshold, it may be reasonable to start in the middle 182, because the sub-program 102.sub.5 was already relatively close to finishing.
[0073] Continuing of execution of the stimulation program 100 may not be automatic in the IPG 110 or ETS 140, and instead may only commence upon receipt of permission from the clinician or patient. For example, when the interrupt 178 is removed, the IPG 110 or ETS 140 can attempt to establish a communication session with the clinician program 150 or external controller 145. Once a communication link is established, the IPG 110 or ETS 140 can send the contents of current status register 184 to the relevant external device 150 or 145 and present the clinician or patient with a notification 190 such as that shown in
[0074] Data received at the clinician programmer 150 or external controller 145 can also be used to assess the stimulation program 100 after its completion, and to identify sub-programs 102.sub.i in the stimulation program 100 that are beneficial for the patient. As shown in
[0075] An example of how the stimulation program assessment logic 186 can be used to assess the stimulation program 100 is shown in
[0076] Thereafter, the remaining sub-programs 102.sub.i, 102.sub.9, and 102.sub.10 are assessed using power assessment logic 188 to further identify at least one sub-program 102.sub.i that is suitable for the patient based on its power draw. In the example shown, power assessment logic 188 picks the remaining sub-program 102.sub.1, 102.sub.9, or 102.sub.10 that has the lowest power draw—in this example, sub-program 102.sub.9. This simple example assumes that all remaining sub-programs are equally effective (or at least, are effective) for the patient, and thus the best of those remaining sub-programs is the one with the lowest power draw and thus the one that will be most considerate of the IPG 110 or ETS 140's battery. However, this is not strictly required, and instead selection of a single best sub-program 102.sub.i can involve weighing the average pain score 170.sub.i and power draw 171.sub.i in different fashions. Further, operation of the stimulation program assessment logic 186 can select a plurality of sub-programs 102.sub.i as being effective for the patient, rather than just one. Stimulation program assessment logic 186 can additionally assess the sub-programs 102.sub.i based on factors beyond pain control effectiveness and power draw. In any event, remaining sub-programs 102.sub.i can comprise therapeutic stimulation programs that the patient can choose to use, or can comprise a starting point for the discovery of further stimulation programs, as described earlier.
[0077] It is preferable that all sub-programs 102.sub.i constructed as part of stimulation program 100 be executed and that patient feedback—pain scores 140.sub.i—be received for each. However, this is not strictly necessary, and it can be useful to allow the patient or clinician to change the execution of the stimulation program 100. This is shown in
[0078]
[0079]
[0080] Computer instructions used in the external devices 145 and 150, including those used to create the stimulation program 100 and its sub-programs 102.sub.i, to render and receive inputs from the GUIs, and those used by the control circuitry 181, can be stored on a non-transitory computer readable media, such as a solid state, optical, or magnetic memory, and can be loaded into the relevant external device from an external source, e.g., as downloaded from an Internet Server.
[0081] Although disclosed to this point in the context of a stimulator device that provides electrical stimulation to a patient's neural tissue, it should be understood that the disclosed invention can have applicability to stimulation of neural tissue involving non-electrical mechanisms. For example, and as disclosed for example in U.S. Patent Application Publication 2017/0281927, optical stimulation may be provided to neural tissue using light (or EM radiation more generally), with the device's “electrodes” providing optical energy to the tissue instead of electrical energy. Still other forms of stimulation can be used as well, including chemical stimulation, magnetic stimulation, thermal stimulation, mechanical stimulation, etc.
[0082]
[0083]
[0084] Block 200.sub.2 is used via its sub-programs 102.sub.3-102.sub.7 to form pulses with a sinewave shape at electrodes E3 (anode) and E4 (cathode), and with a common frequency F2 and pulse width PW2. However, the amplitude of the pulses differs during each of the sub-programs, decreasing from I4 in 102.sub.4 to I3 in 102.sub.5 to I2 in 102.sub.6 and to I1 in 102.sub.7. Block 200.sub.2 may also have different numbers of pulses formed during each of its sub-programs 102.sub.3-102.sub.7 as shown. Blocks 200.sub.3 and 200.sub.4 specify monopolar pulses (“mono”) which involve the use of the case electrode Ec. It is not however required that the sub-programs 102.sub.i within a block 200.sub.i have pulses that are similar in nature (e.g., increasing or decreasing in amplitude), and instead the stimulation parameters for sub-programs within a block may simply be random.
[0085] A stimulation program 100 such as illustrated in
[0086] The blocks 200.sub.i include a marker Mx, which may be stored with or associated with each sub-program 102.sub.i within a block, or which (as shown) may only be stored with or associated with only the first sub-program in a block. Effectively, each marker is associated with one of the blocks of sub-program(s): marker M1 is associated with block 200.sub.1 (sub-programs 102.sub.1-3), M2 with 200.sub.2 (102.sub.4-7); M3 with 200.sub.3 (102.sub.8); and M4 with 200.sub.4 (102.sub.9-10), Each marker Mx informs the IPG or 110 or ETS 140 where the stimulation program will continue execution once a condition leading to an interruption has been removed, as explained further below. As shown in
[0087] When a sub-program or block is executed, a marker associated with that sub-program or block can be stored in the current status register 184, which will inform the IPG 110 or ETS 140 where to continue execute after an interrupt condition is removed. For example, when sub-program 102.sub.1 begins execution, marker M1 is stored in the current status register. The marker can comprise any indicator that informs the IPG 110 or ETS 140 of the sub-program or block with which it is associated, such as a pointer to an address where sub-program 102.sub.1 can be located in the program memory 162. After execution of sub-program 102.sub.1 is complete and sub-program 102.sub.2 begins, a new marker (if any) will be stored in the current status register 184. In the example shown, sub-program 102.sub.2 is not associated with a new marker, or is associated with the same marker as sub-program 102.sub.1 by virtue of being in the same block 200.sub.1. Therefore, marker M1 remains in the current status register 184, and the same occurs when sub-program 102.sub.3 is executed. When sub-program 102.sub.4 in a new block 200.sub.2 is executed, a new marker M2 is stored in current status register 184, and so on.
[0088] When the condition (e.g., battery depletion, emergency shutdown, etc.) causing an interruption (INT 178) in the execution of stimulation program 100 is removed, the current status register 184 is read, and in association with the program memory 162 continues execution at a point corresponding to the interruption. In this example, this point comprises the beginning of the block 200i in which the interruption occurred, or more specifically at the start of a first sub-program 102i in the block. For example, if an interruption occurs during any of sub-programs 102.sub.1-3 in block 200.sub.1, continued execution of the stimulation program will begin at the beginning of block 200.sub.1, i.e., at the beginning of sub-program 102.sub.1. Allowing the user or clinician to pre-define such markers in the stimulation program 100 can be beneficial, and resuming stimulation at marker M1 provides a good example. The point of block 200.sub.1, as described earlier, is to provide pulses that via sub-programs 102.sub.1-3 increase over time, as this eases the introduction of therapy to the patient. If as in
[0089] Although particular embodiments of the present invention have been shown and described, it should be understood that the above discussion is not intended to limit the present invention to these embodiments. It will be obvious to those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the present invention. Thus, the present invention is intended to cover alternatives, modifications, and equivalents that may fall within the spirit and scope of the present invention as defined by the claims.