the contents of u . s . pat . no . 4 , 692 , 147 , duggan , entitled “ drug administration device ”, is hereby incorporated by reference . fig1 is a schematic view of drug infusion system 12 of the present invention . implantable drug infusion device 14 is shown implanted within the body of patient 10 . drug infusion device 14 is programmable through a telemetry link from programmer 20 , which is coupled via a conductor 22 to a radio frequency antenna 24 . drug infusion device 14 could be , but is not limited to being , a pump for infusing fluid medication into a patient &# 39 ; s body . methods of communicating , using radio frequency telemetry , with implanted treatment devices in order to program such implanted drug infusion devices , are well known in the art . fig2 is a block diagram of drug infusion system 12 having an implantable drug infusion device 14 . drug infusion device 14 consists of an internal memory unit 26 containing memory and registers which provide internal drug delivery instructions to drug delivery module 30 . external programmer 20 acts as an input - output device for drug infusion system 12 and also provides computational support for memory unit 26 . memory unit 26 and programmer 20 , operating together , function as a controller 32 controlling drug delivery module 30 in the delivery of fluid medication to patient 10 . in general , drug delivery module 30 is a pump for infusing a fluid medication , including a drug or a combination of drugs , to patient 10 . drug delivery module 30 has a reservoir 34 for holding the fluid medication to be infused and is coupled to patient 10 through catheter tubing 36 . such drug delivery modules 30 are well known in the art . memory 26 receives programming information , via telemetry , from programmer 20 through conventional means . programming information , once stored in memory unit 26 , provides the dosing regimen to be performed by drug delivery module 30 . drugs may be provided to a patient 10 by drug delivery module 30 at a predetermined dosage , generally calculated as an amount of drug provided to patient 10 in a predetermined period of time . it is typical to specify such dosage as an amount of drug , e . g ., measured in milligrams , per day , or per twenty - four hour period . this dosage amount provides the medical professional with information about the probable efficacy of the drug and potential harmful side effects of the drug on patient 10 . typically , enough drug must be administered in order to have a therapeutic effect . at the other end of the scale , the amount of the drug typically must be limited to a maximum amount , typically referred to as the maximum daily dose , in order not to avoid potentially damaging side effects . it is typically relatively easy for a medical professional to determine the proper maximum daily dose for patient 10 that , hopefully , will provide a therapeutic benefit while not producing significant harmful side effects . however , patient 10 may have a need for differing amounts of a given drug during different time intervals . for example , a patient may have a greater need for a drug which provides therapeutic pain relief during the nighttime hours in order to allow the patient to sleep . likewise , this same patient may have less of a need for the drug during active daytime hours when the patient is concentrating on other activities . in order to provide the maximum therapeutic effect of the drug during the high - need nighttime hours and to minimize potentially harmful side effects , the drug infusion device may be programmed to deliver a greater amount of the drug during certain time intervals , in this case during the nighttime hours and a lesser amount of the drug during the normally active daytime hours . by cutting down of drug delivery during the active daytime hours , a greater amount of the drug may be delivered by the drug infusion device during the nighttime hours and still keep the maximum daily dose within acceptable limits . in a multi - step or flex prescription table , the dosage of drug or fluid medication delivery changes based on time . the change in drug delivery based on time can have a recurring pattern such as daily or weekly . examples of multi - step or flex prescription table which have daily recurrence could be different dosage for morning , afternoon , evening and night and for weekly recurrence could be different dosage for different days of the week and / or different dosage for weekday and weekends , etc . the daily and weekly recurrence could be combined such that we have different dosage during the day and during each or a subset of days of the week . similarly other type of recurrence could also be used with the multi - step / flex prescription table . see , for example , programming cycle 510 in fig7 . the term “ cycle ” refers to each recurrence of the multi - step / flex prescription table and the term “ step ” for each transition within a cycle of the prescription table . note , a prescription may have more than one set of cycles . in cases of multiple cycles , one cycle may be within another cycle ( i . e . one cycle is subset of another ) or they may be disjointed . an example of a cycle within another cycle is a multi - step / flex prescription table having multiple steps during the day , i . e ., during the day cycle , ( see , for example programming cycle 520 in fig8 ) and then different day cycle for each day of the week , i . e ., the individual day cycles are considered steps from the weekly cycle &# 39 ; s perspective ( see , for example programming cycle 530 in fig8 ). the combined cycle - in - a - cycle programming cycle is illustrated by programming cycle 540 in fig9 . an example of a disjointed cycle would be one cycle running for x number of weeks and then another cycle running for the next y number of weeks , etc . see , for example , programming cycles 550 in fig1 . various permutations of the steps and cycles for the prescription table are also contemplated . in an embodiment , fig3 illustrates a process of entering a new multi - step prescription table with a daily cycle with step changes occurring on an intra day basis , i . e ., different parts of the day may have a different dosage . since the entering may occur at a time different than the time and / or day on which the prescription table is intended to commence , an accommodation must be made to allow the patient to begin to benefit from the new prescription table without the necessity of waiting for the beginning of the next programming cycle . the user , typically a medical professional , enters ( 110 ) the multi - step prescription table , also referred to a program or a programming cycle , based on the calendar , i . e ., time frame , on the user - interface in programmer 20 . programmer 20 retrieves ( 112 ) the current day and time from memory or , alternatively , the user will enter the current day and time . based on the current time and current day , programmer 20 changes , i . e ., recodes , ( 114 ) the prescription table such that the prescription table is viewed as starting from the current time and the current day . with this recoding there is no longer any partial cycles . the delivery cycle starts from the current time / date , instead of the physician / clinician calendar time / date of the programming cycle . programmer 20 then sends ( 116 ) the changed , i . e ., recoded , prescription table to the pump , i . e ., drug delivery module 30 , which immediately starts delivering the fluid medication to the patient based on the changed ( recoded ) prescription table . programmer 20 stores ( 118 ) a copy of the original prescription table as entered by the user in either programmer 20 or implantable drug infusion device 14 . in a subsequent session , programmer 20 may display ( 120 ) the prescription table as entered by the user by retrieving the original user provided prescription table that was redundantly stored in programmer 20 or implantable drug infusion device 14 . fig4 illustrates another embodiment of handling the same problem addressed in fig3 . the user enters ( 210 ) a multi - step prescription table in a conventional manner based on the user &# 39 ; s calendar on the user interface in programmer 20 . programmer 20 retrieves ( 220 ) the current time and / or day from memory or , alternatively , the user will enter the current time and / or day . programmer 20 adds ( 230 ) special flags in the multi - step prescription table to mark the user input transitions in the prescription table and then changes ( recodes ) the prescription table such that the prescription table starts from the current time and / or day . these special flags would include a mark for the first step in the cycle as entered by the user and special flags to indicate any breakup of steps within a cycle ( i . e . if the prescription is programmed at 6 pm and the step runs from midnight to midnight , then in this scheme we may break it up into two steps ) and their recombination points . programmer 20 then sends ( 240 ) the changed ( recoded ) prescription table to drug infusion device 14 which immediately starts delivering the fluid medication to the patient based on the changed ( recoded ) prescription table . in a subsequent session , programmer 20 retrieves ( 250 ) the specially added prescription flags and uses the flags placed in the prescription table to recreate and display the prescription table as entered by the user . in this method , the prescription table as entered by the physician / clinician based on their calendar does not need to be redundantly stored . fig5 illustrates still another embodiment of handling the same problem addressed in fig3 with a multi - step prescription table with two cycles which are subset of other . the multi - step prescription table has a daily cycle with intra day step changes and then a weekly cycle in which each day of the week may have a different day cycle . the user enters ( 310 ) a multi - step prescription table in a conventional manner based on the user &# 39 ; s calendar on the user interface in programmer 20 . programmer 20 retrieves ( 320 ) the current time and / or day from memory or , alternatively , the user will enter the current time and / or day . programmer 20 calculates ( 330 ) the time offset between a time associated with the prescription table , e . g ., the start time and / or day of the prescription table , and the current time and / or day . programmer 20 then sends ( 340 ) the original prescription table as entered by the user to drug infusion device 14 along with the calculated time offset . drug infusion device 14 uses ( 350 ) the offset provided by programmer 20 to find or calculate the starting point within the prescription table and starts delivering fluid medication to the patient based on the calculated starting point in the prescription table . in a subsequent session , programmer 20 simply retrieves that prescription table which was not modified in any way , from either programmer 20 or drug infusion device 14 , and displays the prescription table to the user . with this method there is only one prescription table to store and no recoding of the original prescription table is needed . in addition , no special markers or flags are needed for reconstruction of the prescription table for display during subsequent sessions , i . e . no recoding , reconstruction or redundant storage of prescription table is required . the method illustrated in fig5 may be the similar to the methods illustrated in fig3 and 4 ( single cycle or multi cycle ) with the addition of an intermediary device in between , e . g ., a programmer 20 or a remote programming system of some kind . the user creates the multi - step / flex prescription table using the user interface of a physician / clinician programmer 20 and then transmits it to a user programmer 20 or any kind of other programming device using any of the communication mode ( some examples would be re , ir , wireless , blue tooth , phone line , interact etc . etc .) or any combination of the devices and / or communication modes ( i . e . re or ir etc from the physician / clinician programmer 20 to a device that is hooked up to the phone line and then via phone line to a device that is hooked up on the patient side , etc ). the patient programmer 20 or the other programming device then downloads the prescription table to drug infusion device 14 . the four embodiments illustrated in fig3 through 6 are valid for this implementation . in addition , the recoding and / or calculation of the time offset and / or logic for managing time of day and date may be implemented / present in the intermediary devices and / or patient programmer 20 instead of the physician / clinician programmer 20 or drug infusion device 14 . fig6 shows , a multi - step prescription table with two disjointed weekly cycles , each with daily steps . the first weekly cycle runs for x weeks and then ends and then the second weekly cycle starts . the time and / or day is stored and / or kept in drug infusion device 14 . the user enters ( 410 ) a multi - step prescription table in a conventional manner based on the user &# 39 ; s calendar on the user interface in programmer 20 . programmer 20 retrieves ( 420 ) the current time and / or day from memory or , alternatively , the user will enter the current time and / or day . the user checks to make sure that the implant time of day and date matches its time of day and date . if there are any inconsistencies found between the time and / or day in drug infusion device 14 and current time and / or day in programmer 20 , programmer 20 prompts ( 430 ) the user to correct the time and / or day or , alternatively , automatically performs the correction . programmer 20 provides a set of choices / suggestions for the user to follow to resolve them and / or uses some algorithm to resolve the discrepancy . programmer 20 then sends ( 440 ) the original prescription table to drug infusion device 114 without time and / or day starting point modification . if the start of the prescription table is customized by the user based on their preference , then this start of week day / time information of the programming cycle may also be optionally transmitted along with the prescription table to drug infusion device 14 . drug infusion device 14 uses its own internal clock ( time and / or day ) to find ( 450 ) the starting point in the prescription table based on the current time and / or day starts delivering fluid medication based on the current time and / or day . in a subsequent session , programmer 20 retrieves the prescription table , which was not modified , and displays the prescription table to the user . no recoding , reconstruction or redundant storage of the prescription table is required . the method illustrated in fig6 may be similar to the methods illustrated in fig3 and 4 , or used in combination with the method illustrated in fig5 ( e . g ., single or multi cycle with only physician / clinician programmer 20 and implantable drug infusion device 14 or any combination of other intermediary devices using any combination of communication modes ). all of the illustrated methods provide the physician / clinician with the additional ability to start the prescription table at a programmed delay from the current time . in other words the physician / clinician can program a start delay for the execution of the prescription or program a particular point ( time / date ) for start of prescription table in the recurring cycle ( or in the case of multiple recurring cycle in any one of the cycles ). the execution of the prescription table remains pending ( after it has been programmed by the physician / clinician ) till the time provided by the physician / clinician is reached or the start delay programmed by the physician / clinician expires and then the multi - step prescription table starts execution based on the time / date at that point ( and not when the prescription table was programmed by the physician / clinician ). although multi - step prescription tables are time dependent ( the prescription steps and cycles change with time ), the physician / clinician would like to view and program the prescription in a time independent calendar manner , either customized to their preference or based on a commonly used standard such as 12 : 01 a . m . on monday morning , rather than based on the time when the programming session is taking place . in the description and illustrations above , a drug infusion system 12 has been described which , preferably , is capable of : a ) starting from any of the step within the first iteration of the cycle based on the physician / clinician programming calendar and the current time of day and / or current day ( i . e . for a prescription that has different dosage for the 7 days of the week , if the programming occurs on wednesday and the physician / clinician calendar week starts from monday , then the 1 st cycle must start from the 3 rd step ); b ) running the starting step for the first cycle for a shorter duration based on the physician / clinician programming calendar and the current time of the day and / or current day ( i . e . for a prescription that has different dosage for the 7 days of the week , if the programming occurs on wed at 6 pm and the physician / clinician calendar starts at 12 : 01 am on monday , then the prescription must start in the 3 rd step with only 6 hours left for that step ( instead of the usual 24 hrs )). c ) storing or reconstructing the prescription table such that it can be displayed back to the physician / clinician in the same calendar format during any of the subsequent patient visits as was programmed originally . d ) displaying to the physician / clinician in any calendar format that the physician / clinician chooses ( e . g ., the physician / clinician can customize the calendar and the prescription adjusts based on the calendar customization of the physician / clinician ) independent of the calendar format used in previous visits . for example , physicians / clinicians in different countries or regions may use calendar formats in their programmer or computer week starting on monday versus week starting on saturday ). e ) having a physician / clinician restart a multi - step / flex prescription during subsequent visits using the original multi - step / flex prescription table , with or without changes made to the contents ( e . g ., dosages ) of the prescription table , with the system ( rather than physician / clinician ) keeping track of the correct time / date to restart the prescription at the appropriate place in the prescription table . the time / day of the subsequent visit will likely be different from the original visit , and it would be undesirable to restart the prescription table at the original starting point . for example , the initial programming of the multi - step prescription table was done at 6 pm on wednesday , the subsequent visit occurs at 10 am on monday , and the prescription has a weekly cycle with daily steps . this capability allows the prescription to be restarted during the subsequent visit at the point on the prescription table corresponding to 10 am on monday without the physician / clinician having to pay attention to the time or date . f ) having a physician / clinician restart a multi - step / flex prescription during subsequent visits using the original multi - step / flex prescription table displayed in a different calendar format , with or without changes made to the contents ( e . g ., dosages ) of the prescription table , with the system ( rather than physician / clinician ) keeping track of the correct time / date to restart the prescription at the appropriate place in the prescription table . for example , the initial prescription table is created with a calendar format in which the week starts on monday , and changes are made to the contents of the prescription table during a subsequent visit while using a calendar format in which the week starts on saturday . the system will restart the prescription at the correct time taking into account the differences of the calendar format without the physician / clinician having to pay attention to the different calendar format . u . s . patent application ser . no . 10 / 278 , 769 , filed oct . 22 , 2002 , on “ drug infusion system programmable in flex mode ”, now u . s . pat . no . 7 , 967 , 812 , issued jun . 28 , 2011 , by keith e . jasperson , thomas j . valine and frederic j . wahlquist , and u . s . patent application ser . no . 10 / 278 , 767 , filed oct . 22 , 2002 , on “ drug infusion system with multiple medications ”, by keith e . jasperson , thomas j . valine and frederic j . wahlquist , are incorporated herein by reference in their entireties . while some of the description of the preferred embodiments of the invention have been described as a particular component of drug infusion system 12 performing a particular function , such as calculating an offset time , it is to be recognized and understood that such reference is for convenience only and while such may be the preferred arrangement , the functions performed by various components of drug infusion system 12 could equally well be performed by another component of drug infusion system 12 . as an example , certain functions have been ascribed to a programmer 20 . it is to be recognized and understood that such functions might as easily be performed by a physician / clinician programmer , by a patient programmer or by another component altogether , such as by implantable drug infusion device 14 . thus , embodiments of the invention are disclosed . one skilled in the art will appreciate that the present invention can be practiced with embodiments other than those disclosed . the disclosed embodiments are presented for purposes of illustration and not limitation , and the present invention is limited only by the claims that follow .
drug infusion system capable of delivering a fluid medication to a patient and method for doing same is described . an implantable drug delivery device is capable of delivering the fluid medication at a programmable rate to the patient under control of an original programming cycle having a plurality of steps in a plurality of time slots beginning at a starting time . the programming cycle specifies the programmable rate for each of the plurality of steps . an external controller is capable of storing a program representative of the original programming cycle in the implantable drug delivery device at a programming time . the drug infusion system adjusts the implantable drug delivery device so that the original programming cycle will begin at a time during the original programming cycle adjusted for the programming time .