AU2009201927A8 - Insulin pump - Google Patents

Insulin pump Download PDF

Info

Publication number
AU2009201927A8
AU2009201927A8 AU2009201927A AU2009201927A AU2009201927A8 AU 2009201927 A8 AU2009201927 A8 AU 2009201927A8 AU 2009201927 A AU2009201927 A AU 2009201927A AU 2009201927 A AU2009201927 A AU 2009201927A AU 2009201927 A8 AU2009201927 A8 AU 2009201927A8
Authority
AU
Australia
Prior art keywords
pump
insulin
user
blood glucose
bolus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
AU2009201927A
Other versions
AU2009201927A1 (en
Inventor
Michael L. Blomquist
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Smiths Medical ASD Inc
Original Assignee
Smiths Medical ASD Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/US2007/022004 external-priority patent/WO2008048556A2/en
Priority claimed from PCT/US2007/022050 external-priority patent/WO2008048586A1/en
Application filed by Smiths Medical ASD Inc filed Critical Smiths Medical ASD Inc
Priority to AU2009201927A priority Critical patent/AU2009201927A1/en
Publication of AU2009201927A1 publication Critical patent/AU2009201927A1/en
Publication of AU2009201927A8 publication Critical patent/AU2009201927A8/en
Assigned to SMITHS MEDICAL ASD, INC. reassignment SMITHS MEDICAL ASD, INC. Request for Assignment Assignors: SMITH MEDICAL MD, INC.
Abandoned legal-status Critical Current

Links

Description

S&F Ref: 907020D1 AUSTRALIA PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address Smiths Medical MD, Inc., of 1265 Grey Fox Road, St. of Applicant : Paul, Minnesota, 55112, United States of America Actual Inventor(s): Michael L. Blomquist Address for Service: Spruson & Ferguson St Martins Tower Level 35 31 Market Street Sydney NSW 2000 (CCN 3710000177) Invention Title: Insulin pump The following statement is a full description of this invention, including the best method of performing it known to me/us: 5845c(2107700_1) INSULIN PUMP Technical Field The present invention relates to insulin pumps. 5 Background A large portion of the world's population suffers from diabetes. Many of these people need to take injections of insulin to normalize the level of sugar in their bodies to prevent complications. Such complications can include kidney failure, loss of circulation, io and blindness. The need to manually take injections with a syringe and the process of determining the dose for various shots can be a great inconvenience and can limit a diabetic's activities and restrict their movements. Furthermore, it can be difficult to maintain a consistent level of blood glucose because there is a practical limit to the number of injections that most patients can receive. 15 One solution to reduce some of the problems associated with the manual injection of insulin is an ambulatory pump that delivers insulin to the diabetic user. Such insulin pumps can provide a more consistently normal level of blood glucose, which reduces the risk of complications from diabetes. However, current pumps still have practical limits to their programming that make them cumbersome to program and that 20 limits the potential of the pump to provide even greater control over blood glucose levels. Summary Various aspects are disclosed in the independent claims. 1 2107439 I;uS Description of the Drawings Figure 1 illustrates the architecture of a pump that embodies the present invention; Figure 2 is a top view of the pump shown in Figure 1; 5 Figure 3 illustrates setting time and date operating parameters in the pump shown in Figures 1 and 2; Figure 4 illustrates setting alert styles in the pump shown in Figures 1 and 2; Figures 5 and 6 illustrate setting operational parameters related to the pump history for the pump shown in Figures 1 and 2; 1o Figures 7-9 illustrate basal rate testing executed by the pump shown in Figures 1 and 2; 2 2107439 1:JIS Figures 10-12 illustrate setting operational parameters for the basal rate delivery programs executed by the pump shown in Figures 1 and 2; Figure 13 illustrates setting the operational parameters for the correction bolus delivery programs executed by the pump shown in-Figures 1 and 2; 5 Figures 14A-1 4D illustrate insulin absorption models used in the correction bolus delivery programs executed by the pump shown in Figures 1 and 2; Figure 15 illustrates setting the operational parameters for the correction bolus delivery programs executed by the pump shown in Figures 1 and 2; Figures 16-24 illustrate setting the operational parameters for the meal bolus 10 delivery programs executed by the pump shown in Figures 1 and 2; Figure 25 illustrates the-operations of setting and delivering an audio bolus on the pump shown in Figures 1 and 2; Figure 26 illustrates the pump shown in Figures 1 and 2 communicating with a computer; 15 Figures 27A-27F illustrate a user interface on the computer illustrated in Figure 26. Detailed Description of the Preferred Embodiment Various embodiments of the present invention will be described in detail with reference to the drawings, wherein like reference numerals represent like parts 20 and assemblies throughout the several views. Reference to various embodiments does not limit the scope of the invention, which is limited only by the scope of the claims attached hereto. Additionally, any examples set forth in this specification are not intended to be limiting and merely set forth some of the many possible embodiments for the claimed invention. 25 The logical operations of the various embodiments of the invention described herein are implemented as: (1) a sequence of computer implemented steps, operations, or procedures running on a programmable circuit within a computer, (2) a sequence of computer implemented steps, operations, or procedures running on a programmable circuit within a pump for delivering insulin; and/or (3) interconnected 30 machine modules or program engines within the programmable circuits. The various embodiments execute or utilize operating parameters, which customize or personalize operation of the computer implemented steps, machine 3 modules, and programs. to meet the requirements of individual pump users. The operating parameters can be numerical values, text strings, flags, argument names, or any other aspect of the insulin pump programming that the user can set to control operation of the pump. 5 Additionally, the pump generates and presents information and fields in user interfaces, which are also referred to as displays. The user interfaces can include fields, alpha/numeric character strings, times, and dates. The fields, also referred to as cells, prompt users to enter and/or select information. Because there is not an alpha/numeric keyboard on the pump, each of the field is associated with a spin box 10 that includes values the user can enter into the fielI. The user spins or scrolls through values until the desired value is visible within the field. When the user selects the visible value it is entered into the field. The user selects a value with a Next function, Edit function, or Select function as identified herein. When the pump displays a field and the field has focus, it is said to prompt the user to select a value. 15 Additionally, selecting a value in a field causes the pump to index focus to the next field as defined by the programmed operations or to display the next user interface as defined by the programmed operations. In an alternative embodiment, the pump has an alpha/numeric keyboard from which operating parameters can be typed directly into the pump. 20 The description set forth herein discusses pumping insulin. One skilled in the art will realize that many of the features, structures, and methods disclosed herein can be used with medical infusion pumps for delivering agents other than insulin. The term "user" generally applies to the person who is receiving insulin from the pump. In many contexts, however, the user could also refer to any other 25 person such as a caregiver that is operating the pump. A. Pump Architecture Figure 1 is a functional block diagram illustrating one of many possible embodiments of an insulin pump, generally identified as 100. A microprocessor 102 is in electrical communication with and controls a pump motor 104, a screen 106, an 30 audible alarm 108, and a vibratory alarm 110. Other embodiments can use a microcomputer, or any other type of programmable circuit, in place of the microprocessor. 4 The pump motor 104 drives a drive mechanism 112 that pushes a plunger mechanism 114. The plunger mechanism 114 ejects insulin from an insulin cartridge (not shown). The insulin cartridge contains a supply of insulin for delivery to a patient. These mechanical components are illustrated and discussed in 5 commonly assigned United States patent application serial no. 10/086,646, entitled Cartridge and Pump With Axial Loading, the disclosure of which is hereby incorporated by reference. The screen 106 can have many different configurations such as an LCD screen. As explained in more detail herein, the screen 106 displays a user interface 10 that presents various items of information useful to a patient or caregiver. The audible alarm 108 is a beeper, and an alarm provides actual alarms, warnings, and reminders. Similar to other portable electronic devices such as a cellular telephone, the vibratory alarm 110 provides an alarm to either supplement the audio alarms or replace the audio alarm when an audible beep would be disruptive or not heard. A 15 user can selectively enable or disable the audible 108 and vibratory 110 alarms. In one possible embodiment, however, both the audible 108 and vibratory 110 alarms cannot be disabled at the same time. The microprocessor 102 is in electrical communication with both a random access memory (RAM) 116 and a read only memory (ROM) 118, which are onboard 20 the pump 100 but external to the microprocessor 102 itself. The microprocessor 102 can be any programmable circuit configured to execute instructions stored in the memory devices. In one possible embodiment, the microprocessor 102 includes internal memory as well. The RAM 116 is a static RAM stores that data that can change over time such as pump settings and a historical log of events experienced by 25 the insulin pump 100. The ROM 118 stores code for the operating system and the application programs. The ROM 118 can be any type of programmable ROM such as an EPROM. In one possible embodiment, the RAM 116 has 500 kilobytes of memory capacity and the ROM 118 has 2 megabytes of memory capacity. An infrared (IR) port 120 is in electrical communication with the 30 microprocessor. As explained in more detail below, the IR port 120 provides data communication with an external device such as a computer for programming an application program, programming pump settings, and downloading historical data logs. The insulin pump 100 can include other types of communication ports in place 5 of or in addition to the IR port 120. Examples of other possible communication ports include a radio frequency (RF) port or a port that provides a hard-wired data communication link such as an RS-232 port, a USB port, or the like. A real-time clock 122 provides a clock signal to the microprocessor 102. An 5 advantage of having a real-time clock 122 is that it provides the program with the actual time in real-time, including day of the week, so that the programs executed by the insulin pump can track and control the actual time of day that insulin delivery and other events occur. Various durations described here are used for alerts, alarms, reminders, and other functions. In one possible embodiment, the timers are formed 10 by the real-time clock 122 and software executed by the microprocessor 102. A battery 123 electrically connects to the real time clock 122 and the RAM 116. The battery 123 provides an alternate electricity source for the real time clock and the RAM 116 to preserve data stored in the RAM in the case of a power interruption, such as during removal of a primary battery. 15 A keypad 124 also provides input to the microprocessor 102. Although other possible types.of keypads are possible, one type of keypad has four buttons and is a membrane-type of keypad, which provides resistance to water and other environmental conditions. The keypad 124 contains soft keys for which the function of the keys can change as a user executes different menu selections and commands. 20 An audio bolus button 125 provides a further input to the microprocessor 102. The audio bolus button 125 enables a bolus, such as a correction bolus or meal bolus as described herein, corresponding to a specific audible sound. In a possible embodiment, various potential audio bolus amounts correspond to unique audible sounds configured to allow a user to program the audio bolus without requiring the 25 user to visually reference the pump screen 106. Other inputs into the microprocessor 102 include a pressure sensor 126, which is sensitive to the pressure within a reservoir of insulin; a cartridge sensor 128, which is sensitive to the presence of an insulin cartridge; and a motion detector 130, which detects motion of a gear (not shown) in the drive mechanism 112. The 30 pressure sensor 126, cartridge sensor 128, and motion detector 130 are described in more detail in United States Patent application serial number 10/086,646, which is entitled Cartridge and Pump With Axial Loading, the disclosure of which was incorporated by reference above. 6 Referring to Figure 2, the pump 100 is packaged in a housing 132. The keypad 124 is positioned on a first portion of the housing 132, and the screen 106 is positioned on a second portion of the housing 132. Additionally, the screen 106 has two portions, a display portion 134 and a template portion 136. A user interface is 5 presented in the display portion 134 of the screen 106. The template portion 136 provides a template that indicates the function assigned to each of the keys on the keypad. In the embodiment illustrated in the drawings, the keypad 124 has a first function key 138 and a second function key 140, and an up key 142 and a down key 144. The up and down keys 142 and 144 10 are for scrolling or spinning through operating parameters that are presented in a spin box associated with a field or between pages present within a user interface such as the home pages as described below. Additionally; a first portion 146 in the template identifies the function assigned to the first function key 138, and a second portion 148 identifies the function assigned to the second function key 140. If a 15 variable or menu selection can be scrolled up or down, a corresponding center portion 150 of the template presents one or both of an up arrow corresponding to the scroll direction of the up key 142, and a down arrow corresponding to the scroll direction of the down key 144. B. Home Page 20 In one possible embodiment, the insulin pump 100 is controlled by a menu driven application program that is stored in the ROM 118 and executed by the processor 102. The application program also is parameter-driven in that the outcome or steps executed by the various application programs depend on the operating parameters set by the user. Examples of outcomes and steps that depend 25 on the operating parameters include delivery rates, delivery schedules, delivery amounts, the generation and presentation of menus, and the like. Referring still to Figure 2, the application program presents a home page 152 in the display portion 134 of the screen 106. The home page 152 includes a first icon 154 that illustrates the amount of insulin remaining in the insulin cartridge. 30 This first icon 154 has the shape of a syringe and a bar 156 arranged relative to the syringe shape to illustrate the amount of remaining insulin. The amount of remaining insulin also is quantified and listed below the first icon 154. A second icon 158 has the shape of a battery and has a bar 160 arranged relative to the battery 7 shape to illustrate the amount of remaining battery life. The percentage of remaining life on the battery is positioned below the second icon 158. In one possible embodiment, the home page 152 presents the current status 162 of the insulin pump's 100 operation. In the example set forth in the illustration, 5 the insulin pump 100 is delivering insulin at a rate of L 15 units per hour according to a first basal schedule. The home page 152 also presents the name 166 of the active delivery program it is executing and personal information 168 as programmed by the user. In the illustrated example, the personal information it displays is a banner "Marys Pump," which identifies the owner of the insulin pump 100. Other 10 examples of information that might be included in the personal field includes medical information about the pump user similar to that information included on a medical alert bracelet such as allergies and the fact that the patient is diabetic, more detailed information about the patient including the patient's full named, telephone number, and address, detailed information about the user's caregiver such as the 15 name and telephone number of the user's physician, and a-warning that the pump 100 is an insulin punp and should not be removed from the user. Furthermore, the pump 100 can be configured to present more than one home page. In this embodiment, the user scrolls through the home pages using the up and down keys 142 and 144. For example, other home pages might include the date, 20 time, and amount of the last bolus delivered by the insulin pump; contact information about the patient's caregiver; medical information about the patient such as a list of the user's allergies, a warning that the user is a diabetic, and a warning that the pump is an insulin pump and should not be removed. The pump 100 displays an icon 170 in the home page 152 to identify the 25 displayed page as the home page. Additionally, the icon 170 can include a page number to indicate which home page is currently being displayed. One possible shape for the home page icon is an icon having the shape of a house. C. Main Menu Referring to Figure 3, the user accesses a main menu 190 by activating a 30 menu function 192 assigned to the second function key 140. The insulin pump 100 then displays the main menu 190, which includes a plurality of menu items that the user can select for setting operation parameters and performing various tasks as described herein. In one possible embodiment, the menu items in the main menu are 8 Basal Programs, New Cartridge, History, and Pump Settings. In other possible embodiments, the main menu 190 can be customized to include other menu items such as Correction Bolus, Temporary Rate, Meal Bolus, and others. Furthermore, the user can customize at least some of the labels for various menu items in both the 5 main menu 190 and submenus. The New Cartridge menu item is selected to access the cartridge or syringe of insulin loaded in the pump 100. In one possible embodiment, selecting the New Cartridge menu item automatically sequences the user through the steps of loading the new cartridge, priming the tubing for the infusion set, priming the cannula, and 10 setting the site reminder, if the display site reminder is enabled. The site reminder is discussed below in more detail. In yet another embodiment the user will affirmatively acknowledge each of these steps by pressing a predetermined key, either the first or second function keys 138 or 140 on the keypad 124, at the conclusion of each step, which causes the pump to index to the next step. After 15 sequencing through each of these steps, the pump 100 prompts the user to enter an instruction whether to resume delivery of insulin. Accessing the cartridge is discussed in more detail in United States patent application serial no. 10/086,646, entitled Cartridge and Pump With Axial Loading, the disclosure of which was incorporated by reference above. 20 The user selects the desired menu item by using the up and down keys 142 and 144 until the desired menu item is highlighted or otherwise marked. The user then activates the highlighted menu item by activating a select function 194 assigned to the second function key 140. By selecting the Pump Settings menu item, the pump brings up a Pump 25 Settings submenu 196 of several submenu items, including Time and Date, Beep/Vibrate, Program Lock, and Personalize. The Time and Date menu option is selected to set the time and date of the clock. This time and date is set in real time. When the Time and Date menu option is selected, the screen displays the time and date, and focus is placed on the hour field 198. The user scrolls through values for 30 the hour until the desired value is set. The user then activates a next function 200 assigned to the second function key 140 to index through the remaining fields for the time and date (e.g., the minute field 202, the am/pm field 204, the month field 206, the day field 208, and the year field 210) and set the desired values for each of these 9 fields. The user exits the Time and Date function at any time by activating the Done function 212 assigned to the first function key 138. Activating the Done function 212 saves the current time and date settings and returns the pump to the Pump Settings submenu 196. 5 D. Beep/Vibrate Referring to Figure 4, to configure an alarm function to generate either an audible or vibratory signal, the user selects the Beep/Vibrate menu option within the Pump Settings submenu 196. The pump 100 then indexes to the next user interface and places focus on a choose-alert field 214. The user scrolls to the desired beep 10 setting or vibrate setting and selects that setting by activating the Next function 200 to select the desired setting. If the Beep setting is selected, focus changes to a beep volume field 216 and the user scrolls to and selects the desired volume level. In one possible embodiment, the volume levels from which the user can select are low, medium, and high. Other embodiments use a numbered volume scale, labels such as 15 indoor and outdoor, and the like. Upon selecting the desired volume level, the alert and volume settings are saved and the Pump Setting submenu 196 is displayed on the screen 106. If the user selects vibrate in the choose-alert field 214, the pump 100 will return directly to the Pump Setting submenu 196. E. -Navigation Sounds 20 Audible sounds generated by the pump 100 provide assistance to the user in navigating through the pump menus. The audible sounds provide a method by which a user need not rely on visually observing the pump screen while programming the pump. Such a feature can be used by visually impaired users, or users who do not wish to otherwise visually confirm the pump settings. In various 25 embodiments of the pump 100, the sounds indicate the current screen displayed by the pump, and also signify buttons depressed on the pump or other pump events. The pump 100 uses the home screen 152 as a basis for navigating through the pump menus by providing a unique audible sound, such as a beep of a unique pitch as compared with other sounds made by the pump. Additional home screens 30 and menu screens programmed into the pump are associated with beeps of varying pitches. For example, the home screen 152 is associated with a first sound, which is emitted when the pump first displays the home screen, as well as each time a user navigates back to the home screen. The main menu 190 is associated with a second 10 sound different from the first sound, and that second sound is emitted each time a user navigates to the main menu 190. Additional sounds, different from the first and second sounds and also different from each other, are associated with other home pages and menu screens as described herein. In one embodiment, the pump emits a 5 sound of a specific pitch upon display of one or more optional setup screens. Associating a sound with an optional screen notifies the user that they are outside the typical pump programming screens. For example, the pump 100 can emit the sound upon display of a correction bolus screen, a basal rate confirmation screen, or some other unannounced screen displayed by the pump. 10 Some screens programmed into the pump revert back to a home screen after a predetermined period of time elapses. A user relying on sounds to navigate through the screens will want to know when this occurs. For such screens, the pump 100 can emit a second sound which is either the same as or different from the first sound associated with the screen so as to signify that such a reversion will take 15 place. In one embodiment, the pump 100 emits three sounds thirty seconds before the reversion takes place. In such an embodiment, the pump can also optimally emit a single sound fifteen seconds before the reversion takes place. Additional sounds of varying pitch, length, or occurrence can be used as well. For example, the same sound can be used for multiple screens, but be repeated a different number of times 20 to indicate the occurrence of one screen or the other. Sounds are also associated with the up and down keys 142, 144 on the pump 100 to assist in setting pump delivery rates, times, and other settings. A first sound, different from the home screen and menu screen sounds described above, is associated with the up key 142. A second sound, different from this first sound and 25 also different from the home screen and menu screen sounds, can be associated with the down key 144. The pump emits the first or second sounds when the up key 142 or down key 144 is depressed, respectively. In one embodiment, the sound associated with the up key is of a higher pitch than the sound associated with the down key. In another possible embodiment, the up key 142 or down key 144 repeats 30 operation when held in a depressed position by a user. In this embodiment, the sound associated with the selected key 142, 144 repeats for each instance in which operation of the key repeats. In a further embodiment, sounds of increasing pitch are associated with numerical values scrolled through using the up and down keys, 11 such that lower values are associated with sounds of a lower pitch, and higher values are associated with sounds of a higher pitch. When scrolling through a range of values to select a setting in a pump, at least two implementations are possible with respect to the boundaries of each range. 5 In one implementation, pressing the up key 142 at the top of the range will cause the pump value to wrap around, to the lowest value in the range. Likewise, pressing the down key 144 at the bottom of the range will cause the pump value to wrap around to the highest value in the range. In a second implementation, pressing the up key 142 at the top of the range or the down key 144 at the bottom of the range will have 10 no effect, causing the pump setting to remain at that maximum or minimum value. In an embodiment in which the wrap around implementation is used, a sound is emitted by the pump 100 when either one of the up or down keys 142, 144 is depressed and the wrap around condition occurs, which is different from the sound emitted when either of the up or down keys 142, 144 are depressed and the condition 15 does not exist. This sound notifies a user that the wrap around condition has occurred without the need for visual confirmation. In an embodiment in which the "wrap around" implementation is not used, a sound is emitted by the pump 100 when a user presses the up or down key 142, 144 which is different from the normal sound emitted when one of the keys is depressed. This second sound notifies a user 20 that depressing that key had no effect, again, without the need for visual confirmation. In various additional embodiments in which either the wrap around implementation is or is not used, the unique sound which occurs at the boundary of the range can be different if at the top of the range or at the bottom of the range. In other embodiments, additional unique sounds can be used to denote a position 25 within the range scrolled through. For example, the pump 100 can emit a unique sound each time a value is reached that is a multiple of 10. Unique sounds for each multiple of 10, or other notable positions within the range can be used as well. Sounds are further associated with one or more alerts and/or alarms occurring in the pump 100. These sounds can be customized so that the user hears a 30 familiar sound upon occurrence of a specific event or alarm. For example, a missed meal alarm can be associated with a dinner bell or some other sound. In a possible embodiment, the pump emits sounds, such as numerical values or messages, in Morse code or some other audibly encoded format. 12 The combination of all of the sounds for the screens, menus, and keys allows a user to program the pump 100 without relying on either visual confirmation using the pump screen or otherwise having to accurately count the number of times which a key is depressed. In a possible embodiment, one or more of these sound 5 features can be disabled. For example, some or all sounds can be disabled if a user selects the vibrate option in the choose-alert field 214 described above. F. Pump History Referring to Figure 5, one possible embodiment of the insulin pump 100 tracks historical information related to the pump 100 such as delivery information 10 , and other events related to the pump 100. Historical information can be viewed on the screen 106 of the pump 100 or uploaded to a computer as discussed in more detail herein. The pump 100 can be customized to view historical delivery and event information in individual history screens or under the History item of the main menu 190. Additionally, the pump 100 can display delivery information either as 15 individual events or as averages. These alternatives are only some of the possible embodiments. The pump 100 can.be programmed to track many different types of historical information, to present the historical information in many different ways, and to provide different ways to access historical information. In one possible 20 embodiment, the historical information that the pump 100 tracks includes: (1) The aggregate insulin delivered by the pump 100 as well as the amount of insulin broken down by insulin delivered as a meal bolus, insulin delivered to counteract estimated carbohydrates consumed by the user (if the carbohydrate estimator is used), delivered as a 25 correction bolus, and delivered according to basal delivery protocols. In various embodiments, the pump 100 will record delivery according to basal delivery protocols as a total for all basal delivery protocols, or if the pump 100 is programmed with multiple delivery basal protocols, the delivered insulin can be broken down by each basal 30 protocol used by the pump 100. In one possible embodiment, this data is stored as a daily total and an average daily total for a predetermined number of days. Additionally, in various embodiments, the average data can be recorded as actual average 13 values or the average data can be calculated from the daily totals when requested for display or upon other requests. (2) The amount of insulin delivered by the pump 100 according to a -basal protocol as a percent of the total insulin delivered by the pump 5 100. -In one possible embodiment, this data is stored as a daily percentage and an average daily percentage for a predetermined number of days. Additionally, in various embodiments, the average data can be recorded as actual average values or the average data can be calculated from the daily totals when requested for display or upon 10 other requests. (3) The date, time, and amount of each bolus delivered. (4) The 500-Rule factor, which is used to estimate the grams of carbohydrates that are covered by each unit of insulin. To determine the grams of carbohydrates that are covered by each unit of insulin, 15 the 500-Rule factor is divided by the total daily dose of insulin required to maintain the user blood sugar level in an acceptable range. The typical 500-Rule factor is 500, and hence the ratio is called the 500 Rule. However, the factor may vary for different types of insulin and from user to user and the value for the 500-Rule factor 20 is calculated and stored. in one possible embodiment, the 500-Rule factor is. stored as a daily value depending on the total delivery dose and an average value for a predetermined number of days. In an alternative embodiment, the 500-Rule factor is not stored but is calculated as the 500-Rule factor is required for a display, 25 calculation, or other function. (5) The I 800-Rule factor, which is used to estimate the drop in blood glucose for every unit of insulin. To determine the drop in blood glucose for each unit if insulin delivered to the user, the I 800-Rule factor is divided by the total daily dose of insulin required to maintain 30 the user blood sugar level in an acceptable range. The typical 1800 Rule factor is 1800, and hence the ratio is called the 1800 Rule. However, the factor may vary for different types of insulin and from user to user and the value for the 1800-Rule factor is calculated and 14 stored. In one possible embodiment, the 1800-Rule factor is stored as a daily value depending on the total delivery dose and an average value for a predetermined number of days. In an alternative embodiment, the 1800-Rule factor is not stored but is calculated as 5 the 1800-Rule factor is required for a display, calculation, or other function. (6) The complete history, which in one possible embodiment is the last 2000 events that are experienced by the pump, including all daily delivery totals, all alerts, all errors, all battery changes, all insulin 10. . cartridge changes, all changes to the pump program, and the like. Each record of an event includes the date and time that the event occurred. In other embodiments, a predetermined number of events other than 2000 are recorded. In yet another possible embodiment, the pump 100 records the events for a predetermined number of days 15 rather than an absolute quantity, although there might be a limit to the total number of events that are recorded depending on available memory and other factors. In one possible embodiment, as used herein total daily dose, also referred to as Total Daily Dose or TDD, refers to the total amount of insulin delivered during a 20 single day including the amount of insulin delivered as a correction bolus. Other embodiments might include the amount of insulin delivered as a correction bolus in the total daily dose of insulin. To customize how the historical information is displayed on the pump 100, the user selects the History menu item from the Personalize submenu 222. The 25 pump 100 indexes to a delivery-summary field 264, which is placed in focus. The user scrolls to and selects the desired yes or no value. The yes value enables the Delivery Summary menu item in the History submenu 290 (Figure 6), and the no value disables the Delivery Summary menu item in the History submenu 290. Disabled menu items are not displayed as part of the menu. In one possible 30 embodiment, the delivery summary displayed under this menu item includes the total daily dose of insulin delivered by the pump 100 as well as the amount of insulin broken down by insulin delivered as a meal bolus, insulin delivered to counteract estimated carbohydrates consumed by the user (if the carbohydrate 15 estimator is used), delivered as a correction bolus, and delivered according to basal delivery protocols. In an alternative embodiment, the delivery summary includes the total or aggregate amount of insulin, including insulin delivered as a correction bolus. 5 Upon selecting the yes or no value in the delivery-summary field 264, focus indexes to an average-delivery-summary field 266, in which the user scrolls to and selects either a yes value or a no value. The yes value enables the Average Delivery Summary menu item in the History submenu 290, and the no value disables the Average Delivery Summary menu item in the History submenu 290. In one possible 10 embodiment, the Average Delivery Summary displayed under this menu item includes the average daily total for a predetermined number of days for the aggregate insulin delivered by the pump as well as the amount of insulin broken down by insulin delivered as a- meal bolus, insulin delivered to counteract estimated carbohydrates consumed by the user (if the carbohydrate estimator is used), 15 delivered as a correction bolus, and delivered according to basal delivery protocols. Upon selecting the yes or no value in the average-delivery-summary field 266, focus indexes to a basal-as-percent-of-TDD field 268. In one possible embodiment, basal as a percent of TDD is the amount of insulin delivered by the pump 100 according to a basal protocol as a daily percent of the total insulin 20 delivered by the pump 100. The user selects whether to display the Basal as a Percent of TDD menu item in the.History submenu 290 using a procedure similar to that described for the Delivery Summary. Under this menu item, the pump 100 lists the total daily amount of insulin delivered as a basal as a percent of the total daily dose of insulin delivered . In an alternative embodiment, the pump 100 lists the total 25 daily amount of insulin delivered as a bolus as a percent of the total daily dose of insulin delivered. In various embodiments, the bolus as a percent can be listed as the meal bolus as a percent of the total daily dose of insulin delivered, correction bolus as a percent of the total daily dose of insulin delivered, or total bolus as a percent of the total daily dose of insulin delivered. The pump 100 then indexes focus to an 30 average-basal-as-percent-of-TDD field 270. In one possible embodiment, average basal as a percent of total daily delivery (TDD) is the amount of insulin delivered by the pump 100 according to a basal protocol as an average daily percent over a predetermined number of days of the total insulin delivered by the pump 100. The 16 user selects whether to display the Avg Basal as a Percent of TDD menu item in the History submenu 290 using a procedure similar to that described for the Delivery Summary. The pump 100 lists the average basal as a percent of the total daily delivery under this menu item. 5 The pump 100 then indexes focus to a bolus-history field 272. In one possible embodiment, the Bolus History is the date, time, and amount of each bolus delivered. The user selects whether to display a Bolus History menu item in the History submenu 290 using a procedure similar to that described for the Delivery Summary. The pump 100 lists the pump's 100 Bolus History under the Bolus 10. History menu item. The pump 100 then indexes focus to an edit-display-of-more-history field 274. The user scrolls to a yes value or a no value as desired and then activates the next function. If the user selects the no value, the pump returns to the Personalize submenu 222. If the user selects the yes value, the focus indexes to a carbohydrate 15 ratio field 276 in which the user scrolls to a yes value or a no value as desired and activates the Next function. Selecting the yes value causes the pump 100 to display a Calc 500 Rule menu item in the history submenu 290 and to display the calculated carbohydrate ratio. The pump indexes focus to a 500-rule-factor field 278 when the user selects yes in the 500-rule-factor field 276. The user then scrolls to the desired 20 500-Rule factor to use in various calculations and activates the Next function. In one possible embodiment, the potential factors are in the range from 400 to 600 in increments of 15. The pump 100 then indexes focus from the 500-rule-factor field to an average-carb-ratio field 280. Selecting the no value in the 500-Rule-factor field 276 disables display of the Calc 500 Rule menu item in the History submenu 25 290 and causes the pump 100 to index directly from the 500-rule-factor field 276 to the average-carb-ratio field 280. Within the average-carb-ratio field 280, the user scrolls to and selects either a yes value or a no value. If the user selects the yes value, the pump 100 will enable an Avg Calc 500 Rule menu item in the History submenu 290. Under the Avg Calc 30 500 Rule menu item, the pump displays the average carbohydrate ratio for a predetermined number of days. In one possible embodiment, the pump 100 calculates the average carbohydrate ratio for a 7-day period. Upon selecting the yes or no value, the pump indexes focus to a correction-factor field 282. 17 In other embodiments, the pump calculates the average carbohydrate ratio for periods other than 7 days. For example, the range could be in the range from 2 to 90 days. In another possible embodiment, the pump 100 calculates the average carbohydrate ratio for however number of days it stores historical data. In yet 5 another embodiment, the user can select a predetermined number of days over which to calculate and average the carbohydrate ratio. If the user selects the yes value in the correction-factor field 282, the focus indexes to an 1800-rule-factor field 284. The user then scrolls to and selects the desired 1800-Rule factor to use in various calculations. In one possible 10 embodiment, the potential .1800-Rule factors are in the range from 1500 to 2200 in increments of 100. The pump then indexes focus to an average-correction-factor field 286. Selecting the no value in the correction-factor field 282 disables display of the Calc 1800-Rule menu item in the History submenu 290 and causes the pump to index directly from the correction-factor field 282 to the average-correction-factor 15 field 286. Within the average-correction-factor field 286, the user scrolls to and selects a yes value or a no value. If the user selects the yes value, the pump 100 will enable the Avg. Calc 1800 Rule menu item in the History submenu 290. Under the Avg. Cale 1800 Rule menu item, the pump 100 displays the average correction factor for 20 a predetermined number of days. In one possible embodiment, the pump 100 calculates the average correction factor for a.7-day period. Upon selecting the yes or no value, in the average-correction-factor field 286, the pump indexes focus to a complete-history field 288. In other embodiments, the pump calculates the average correction factor for 25 periods other than 7 days. For example, the range could be in the range from 2 to 90 days. In another possible embodiment, the pump 100 calculates the average correction factor for however number of days it stores historical data. In yet another embodiment, the user can select a predetermined number of days over which to calculate and average the correction factor. 30 Within the complete-history field 288, the user scrolls between either a yes value or a no value. The user selects yes to enable a Complete History menu item in the History submenu 290 and selects the no value to disable the Complete History menu item. Upon selecting either the yes or no value, the pump returns to the 18 Personalize submenu. Under the Complete History menu item, the pump displays the complete body of historical information stored in RAM 116. Referring now to Figure 6, viewing historical information about the pump. 100 is accomplished through the main menu 190. The user activates the Menu 5 function 174 to access the main menu 190. Within the Main Menu 190, the user selects and activates the History menu item. The pump then indexes to the History submenu 290 that lists the historical information that is available to view on the pump 100. As described above, the historical information that is available, depending on the setting made within the History item of the.Personalize submenu 10 222 as described above, are Delivery Summary, Avg Delivery Summary, Basal as a Percent of TDD, Avg Basal as a percent of TDD, Calc 500 Rule, Avg Calc 500 Rule, Calc 1800 Rule, and Avg Calc 1800 rule. If the user selects Delivery Summary, the pump indexes to a Delivery Summary 292 that has a date field 294 in which the current date is listed and a Total 15 field in which the total number of insulin units delivered is listed, a Meal Bolus field in which the number of insulin units delivered as a meal bolus is listed, a Carbs field in which the total number of carbohydrates that the user entered as an estimate of carbohydrate consumption is listed, Corr. Bolus field in which the total number of insulin units delivered as a correction bolus are listed, and a Basal field in which the 20 total number of insulin units delivered according to the basal protocols employed by the pump are listed. The user can scroll through dates in the date field 294 and see this historical information for dates other than the current date. In one possible embodiment, the user can scroll through the seven different dates, including the current date and the 25 six previous dates. When the user scrolls to a different date, the pump automatically updates the historical delivery information relating to delivery that occurred on the date now listed in the date field. In an alternative embodiment, the user can scroll through the previous 90 days of data. In yet another possible embodiment, the user can scroll through however many days of data are stored on the pump 100. 30 If the user selects the Avg Delivery Summary menu item in the History submenu 290, the pump 100 indexes to a display 296 entitled "7 Day Average," 293 and displays the same fields (Total field, Meal Bolus field, Carbs field, Corr. Bolus field, Basal field) as the Delivery Summary display 292. However, rather than daily 19 totals, the fields present that average number of insulin units delivered over a predetermined number of days. Additionally, in place of the date field 294, the screen for-the Avg Delivery Summary presents an avg-over field 298, which contains the number of days for which the historical data is being averaged. The 5 user can change the number of days by scrolling up or down using the up or down keys, respectively. In one possible embodiment, the number of days that can be averaged are in the range from 2-30. In another possible embodiment, the number of days that can be averaged are in the range from 2-90 days. In yet another possible embodiment, the number of days that can be averaged are in the range from 2 days 10 to however many days of historical data are stored on the pump 100. After scrolling to a new number of days to average, the user activates an Update Function 300 and the pump 100 recalculates the averages. If the user changes the number of days over which the average data is calculated, the title "7 Day Average" 293 changes to "X Day Average," where X is 15 the selected number of days over which the data is averaged. If the use selects the Basal as % of TDD item menu from the History submenu 290, the pump 100 will display a "Basal as % of TDD" display (not shown) and present the percent of total insulin delivered by the pump according to the basal delivery protocols on any given day. The Basal as % of TDD display will 20 present a date field in which the user can change the day for which the historical information is presented in a manner similar to the Delivery Summary display 292 as described above. If the use selects the Avg Basal as % of TDD item menu from the History submenu 290, the pump 100 will display an "Avg Basal as % of TDD" display (not 25 shown) and present the average percent of total insulin delivered by the pump 100 according to the basal delivery protocols for a predefined number of days. The Basal as % of TDD screen will display an avg-over field 298 in which the user can change the number of days for which the historical information averaged in a manner similar to the 7 Day Summary display 296 as described above. 30 If the user selects Calc 500 Rule, the pump will index to a "Carb Ratio - 500 Rule" display and present a table of information. In each row of the table, the pump will list a date and the calculated carbohydrate ratio for that date. The carbohydrate ratio is calculated by dividing the 500-Rule factor by the total number of insulin 20 units delivered for that day. In one possible embodiment, the pump 100 will calculate and list the carbohydrate ratio for 30 days and the user can scroll through those values using the up and down keys. However, other embodiments will calculate and list the carbohydrate ratio for any other number of days. 5 If the user selects Avg Calc 500 Rule, the pump 100 indexes to an "Avg Carb Ratio - 500 Rule" display. The pump 100 calculates and presents the average carbohydrate ratio for a predetermined number of days. The "Avg Carb Ratio - 500 Rule" display includes an avg-over field 298 in which the user can change the number of days for which the average carbohydrate ratio is averaged in a manner 10 similar to the "Avg Delivery Summary" display as described above. If the user selects Calc 1800 Rule, the pump 100 will index to a "Correction Factor - 1800 Rule" display and present a table of information. In each row of the table, the pump 100 will list a date and the calculated correction factor for that date. The correction factor is calculated by dividing the 1800-Rule factor by the total daily 15 dose of insulin required to maintain the user blood sugar level in an acceptable range. In one possible embodiment, the pump 100 will calculate and list the correction factor for 30 days and the user can scroll through those values using the up and down keys 142 and 144. However, other embodiments will calculate and list the correction factor for other numbers of days. 20 If the user selects Avg Cale 1800 Rule, the pump 100 indexes to an "Avg Correction Factor - 1800 Rule" display. The pump 100 calculates and presents the average correction factor for a predetermined number of days. The Avg Correction Factor - 1800 Rule screen includes an avg-over field 298 in which the user can change the number of days for which the average correction factor is averaged in a 25 manner similar to the "Avg Delivery Summary" display as described above. G. Basal Rate Test In an exemplary embodiment, the insulin pump 100 performs basal testing to determine a proper basal rate for a user of the pump. The basal rate for a pump is the rate at which the pump delivers insulin to a user, and in the exemplary 30 embodiment correlates to the rate at which, independent of meals, the user requires insulin for normal metabolism, based on the user's particular metabolic need for insulin. The user's metabolic need for insulin is determined by testing under a controlled set of circumstances. Basal rate testing aborts under a number of 21 WO 2008/048586 PCTIUS2007/022050 circumstances, for example due to delivery of a correction bolus or a meal bolus as described herein. Also, unusual insulin levels, such as levels falling very far outside of a safe range, can cause interruption of a basal rate test or invalidation of test results for user safety reasons. A blood glucose level that is too high or too low is 5 unsafe to the tested user and will cause the pump 100 to abort the basal rate test. Likewise, an initially high or low blood glucose level or high level of insulin on board can prevent the start of a basal rate test. Prior to and during the basal rate tests, the pump 100 notifies a user of proper behaviors for a basal rate test, as well as behaviors which can cause test failure, such as eating or delivering a correction 10 . bolus. As described in more detail herein, the basal rate test is performed by measuring the user's blood glucose level at least at the beginning and end of a defined time period. The data representing the measured blood glucose levels and the time at which they were measured can be presented in different formats such as a 15 table or graph. If the difference between the beginning and ending blood glucose levels falls outside a predetermined range, the user's body is not using insulin at the same rate at which the pump is delivering it and the user can adjust the basal rate accordingly. Since a user's basal insulin needs can vary from hour to hour, the blood glucose level 20 also can be measured at different points throughout the test and compared to the beginning blood glucose level. A difference between any of these intermediate blood glucose levels and the beginning blood glucose level also can indicate that the basal rate needs adjustment. In possible embodiments, this process can be performed iteratively until the difference between the beginning and ending blood 25 glucose levels are within a desired range. Since a user's basal insulin needs can change over time (weight gain or loss, change in fitness level, etc), basal rate testing may be performed periodically by users of the pump to ensure that the proper basal rate is programmed into the pump for basal delivery, discussed below. The basal testing, in general, enables four sets 30 of scheduled alarms to define a basal test. Each set of alarms corresponds to a time segment during the day in which a user may want to check their basal delivery. For example, the set of alarms can represent times before or after meals, or at other times during a day, week, or other time period. 22 Referring now to Figure 7, an exemplary implementation initiating a basal test process is shown. The pump 100 displays a basal test submenu 281, which is reached from the main menu 190. The basal test submenu 281 displays a basal test option listing, which includes a "Start Test" option, a "Set up Test" option, and a 5 "Test History" option. The Start Test option allows the user to initiate a basal test according to the current settings in the pump, and is only visible when no other basal test has been started. The Set up Test option allows a user to set up basal test options, and is discussed in greater detail in conjunction with Figure 8, below. The Test History option displays a test history from a currently executing or formerly 10 executed basal test. An example of a basal test chart generated from basal test history data is shown in Figure 9. Using the up and down keys 142, 144, the user chooses one of the options displayed on the basal test submenu 281 and chooses a select option 283. In the embodiment shown in Figure 7, the Start Test option is selected as described. 15 Upon selection of the Start Test option, the pump 100 displays a start basal test screen 285. The start basal test screen 285 allows the user to confirm that a basal test is intended, and may display one or more messages to the user. The messages can include information about the basal test, about activities to avoid during the basal test, or other related information. The user confirms that a basal test is 20 intended by selecting a continue option 287. If the basal test is not intended, a back option returns to the basal test submenu 281. When the user confirms that a basal test is in fact intended, the pump 100 displays a basal test timing screen 289. The basal test timing screen 289 displays options for various predefined basal tests, such as an overnight basal test, a daytime 25 basal test, or an evening basal test. The daytime basal test can be, for example, a morning basal test or an afternoon basal test. In the example shown, the overnight basal test is selected using the up and down keys 142, 144 and the continue option 287. Upon selection of the desired basal test, the pump displays a listing 291 of 30 reminder alerts which will be activated to guide the user through the basal testing process associated with that basal test. The reminder alerts represent times during the basal test process at which the user is prompted to enter their current blood glucose level. The reminder alerts can be, for example, times of the day. The listing 23 291 of reminder alerts can be editable by the user, so as to change the times of the day at which the reminders occur, or to change the number of reminders, as shown below in Figure 8. A start option 295 initiates the basal test. In the embodiment shown, a user 5 can start a basal test at any time. However, the pump 100 only enters the basal testing state upon the occurrence of the first programmed reminder alert. Upon initiation of the test, the pump can optionally present one or more prompts or informational screens to the user to assist the user in running the basal rate test. The pump can advise the user as to-optimal methods for performing the basal rate test, 10 such as not eating for two hours prior to the test. In one possible. embodiment, the one or more prompts includes a series of questions presented to the user prior to initiation of the test. The questions can be related to the user's health or sickness, activity or exercise level, stress levels, and variations of these factors from their normal levels. Other questions can be asked as well. In response to the answers 15 provided by a user, the pump 100 may optionally display guidelines for taking a basal rate test or suggest postponement of the basal rate test. The questions and responsive answers can be included in a report, such as the one discussed below in conjunction with Figure 9. When the reminder alert occurs, the pump 100 prompts the user to test their 20 blood glucose and input the blood glucose reading into the pump. Optionally, the user can select a snooze option to delay the blood glucose test by 15 minutes. The user can repeat selection of the snooze option indefinitely. Referring to Figure 8, the insulin pump 100 provides informational and control features related to a basal test. The screens shown in Figure 8 are available 25 to a user whether or not a basal test is in operation. In the example shown, the information is relates to an overnight basal test. A basal test submenu 281' corresponds to the basal test submenu 281 of Figure 7, but includes options related to the currently executing basal test. Basal test submenu items include the current test status, end the current test, set up testing, and 30 test history. Additional submenu items are possible as well. If the user selects the current test status option, the pump 100 indexes focus to a test status screen 297. The test status screen 297 displays information related to the currently scheduled test. The information can include the time remaining in the 24 test, the time of the next reminder alarm, and other information. A back option returns focus to the basal test submenu 281'. If the user selects the end the current test option from the basal test screen 28 1', the pump 100 indexes focus to an end test screen 299. The end test screen 299 5 asks the user to confirm that ending the test before its completion is intended. An end option 301 on the end test screen 297 confirms that the test should be aborted. A back option returns focus to the basal test submenu 281'. If the user selects the set up testing option, the pump 100 indexes focus to a test setup screen 303. The test setup screen 303 includes navigation options to allow 10 the user to set up.a basal test and also to allow the user to set threshold blood glucose levels at which the basal test will be aborted. The user selects one of the listed tests, shown in screen 303 as "Overnight test", "Daytime test" and "Evening test". Upon selecting one of the tests, a blood glucose limit screen 305 provides the user with an interface for defining high and low threshold values, 307, 309. The 15 user selects and edits the high and/or low threshold value 307, 309 using the up and down arrow keys 142, 144. A next option confirms the settings of the threshold values 307, 309, and causes the pump 100 to index focus to a basal test timing screen 287'. The basal test timing screen 287' corresponds to the basal test timing screen 20 287 of Figure 7, but relates to the currently selected basal test. The basal test timing screen 287' presents a list of reminder alarms represented by times of the day at which those alarms occur. The basal test timing screen 287' also presents additional information, such as the number of blood glucose tests to be performed over the course of the basal rate test, and the total elapsed time of the test. An edit option 25 311 allows a user to selectively edit the reminder alarms. Upon selection of the edit option 311, the pump 100 indexes focus to a basal test edit screen 315, which allows the user to edit the blood glucose thresholds included in the basal test. The user selects an existing reminder alarm using the up and down keys 142, 144, and a next option activates the alarm for editing using the up and down keys. 30 Default tests reside within the pump 100 and are customizable by a user. In one embodiment, the overnight test includes reminder alerts at 8:00 p.m., 11:00 p.m., 3:00 a.m., and 7:00 a.m.. The daytime basal test schedule includes reminder alerts at 9:00 a.m., 12:00 p.m., 2:00 p.m., and 4:00 p.m. The evening basal test 25 schedule includes reminder alerts at 3:00 p.m., 6:00 p.m., 9:00 p.m., and 12:00 a.m. Other times are possible as either default or customized tests as well. In one embodiment, the pump 100 does not allow editing of a basal test while the test is in progress. 5 The basal test terminates upon detection of any of a number of conditions. These conditions include determination that the user's current blood glucose value is outside of the range defined by the high and low threshold values, initiation of a meal bolus, initiation of a correction bolus, changing the insulin cartridge associated with the pump, changing the basal pattern, or initiation of a temporary basal rate. 10 If the user selects the test history option, the pump 100 indexes focus to a test selection screen 319. The test selection screen 319 prompts the user to select the type of test for which to review the test history. A test listing 323 within the test selection screen 319 displays the programmed tests and corresponding radio buttons, allowing the user to select one of the tests by using the up and down keys 142, 144. 15' The test types include the types of tests executable by the pump, such as an overnight test, daytime test (such as a morning or afternoon test), or evening test. Each test differs by the timing of the set of reminder alerts associated with the test. Upon user selection of one of the types of tests, the pump 100 indexes focus to a test data screen 325 which displays one or more of the tests of that type which have been 20 performed by the pump. In one embodiment, the pump 100 displays data related to the last three instances in which the test was run. In a possible embodiment, the data includes the date, the time, and the user's blood glucose level at the time of the last blood glucose test. Referring to Figure 9, an exemplary chart graphically displaying three 25 different hypothetical examples of executed overnight basal tests is shown. The chart displays the time of day along the horizontal axis, and the user's blood glucose level along the vertical axis. First, second, and third data sets 327, 329, and 331 represent separate hypothetical overnight tests, and include data points at alarm times of 8:00 p.m., 11:00 p.m., 2:00 a.m., 3:00 a.m., and 4:00 a.m., which are, for 30 example, set in the basal test timing screen 307 of Figure 8. First data set 327 includes only the first three data points, because at 2:00 a.m. the pump 100 detected a blood glucose level above the accepted range for the test, and the test aborted. Second data set 329 represents a successfully completed test. Third data set 331 26 includes five data points, but did not complete operation due to detection of a blood glucose level below the accepted range for the test, resulting in canceling of the test. Upon detection of a blood glucose reading outside the threshold range programmed into the pump 100, the pump displays either an alert indicating that the user's blood 5 glucose is either too high or too low. The pump 100 optionally instructs the user to follow physician's instructions to remedy the abnormal blood glucose value. For example, a user executing a basal rate test resulting in the first data set 327 might be instructed to increase the basal insulin rate for a subsequent test. Conversely, a user executing a basal rate test resulting in the third data set 331 might be instructed to 10 decrease the basal insulin rate for a subsequent test. In a possible embodiment, the pump 100 graphically displays the suggested adjustment to the user's basal profile. Displaying the change in the user's basal profile can show the user the effect of the changed basal rate on blood glucose values. Referring back to Figures 7-9, in one embodiment the basal test process 15 cannot be completed simultaneously with the application of a correction bolus or other non-basal rate effect caused by the pump 100. Events that cause the basal test to terminate include a correction bolus, a meal bolus, changing the insulin cartridge, disabling the threshold values, or editing the basal pattern. Additional options can abort the basal test as well. 20 In one possible embodiment of pump 100, the basal rate testing is performed by prompting a user to input blood glucose values at scheduled times during the test. In an alternate embodiment, the pump 100 communicatively links to a blood glucose sensor. In such an embodiment, the pump 100 optionally requests blood glucose level information from the blood glucose sensor at various times during'the test. 25 The various times during the test can include the scheduled times during which manual or automated blood glucose test result entry would be expected, and can also include a periodic request to a blood glucose sensor. For example, the periodic request can occur every ten minutes or some other period, and may be a user selectable period. The pump 100 would receive the most recent test result obtained 30 by the blood glucose sensor. In embodiments including a communicative link to a blood glucose sensor, the user need only be interrupted when an abnormal blood glucose level is detected so that appropriate corrective action is taken. 27 H. Basal Rate Delivery Referring to Figure 10, the insulin pump 100 can deliver insulin either according to a basal rate or as a bolus. In one possible embodiment, the pump 100 can deliver insulin according to four different basal delivery programs. To 5 customize the basal delivery programs, the user accesses the Personalize Delivery submenu 222. Selecting the Delivery menu item in the Personalize submenu 222 causes the pump to index to a Personalize Delivery submenu 302 in which the user can select the type of bolus or basal delivery protocol to edit. Selecting the Basal Program 10 menu item causes the pump 100 to index a maximum-basal-rate field 304, which is placed in focus. Within the maximum-basal-rate field 304, the user scrolls to and selects the desired maximum basal rate. In one possible embodiment, the maximum basal rate values are in the units of u/hr and the user can scroll through values in the range from 0.5 u/hr to 36 u/hr in increments of 0.5 u/hr. When the desired 15 maximum basal rate is selected, focus indexes to a review/edit-basal-programs field 306 in which the user selects either a yes or a no value. If the user selects the no value, the insulin pump 100 retums to the Personalize Delivery submenu 302. If the user selects the yes value, the pump 100 indexes to a display 308 entitled "Select Program" and lists the name 310 for each of the basal programs, 20 Basal 1, Basal 2, Basal 3, and Basal 4. A check box 312 is also displayed next to each name 310 for the basal delivery programs. If a Basal program is enabled, the check box 312 next to its name is set. If a Basal program is not enabled, the check box 312 next to its name is cleared. The name 310 of each enabled basal-delivery program is displayed as a menu item in the Basal Programs submenu 318 (Figure 25 12) and the user can selectively activate the enabled programs. To enable or disable a basal program, the user scrolls to the desired basal program and activates the Edit function 254. The pump 100 indexes to a display 313 entitled "Basal 1," where "Basal I" is the name of the basal program being edited. The display has two fields, an enable field 314 and a name field 316. 30 Within the enable field 314, the user selects either a yes value or a no value. If the user selects the no value, the pump 100 disables the basal program associated with the screen 313 (Basal Program I in the illustrated example) and returns to the Select Program display 308. The check box 312 for the disabled program is cleared. In 28 one possible embodiment, if the pump 100 is actually executing the basal program that the user attempts to disable, the pump 100 will not disable the program and will present an error message stating, "You may not disable the active program." If the user selects the yes value in the enable field 314, the pump 100 indexes 5 focus to the name field 316. Within the name field 316, the user can assign a custom name to the basal delivery program. In one possible embodiment, the user can scroll through names that are preloaded into the pump 100. Examples of names might include Weekday, Weekend, Sick Day, Travel, Monthly, and the generic names such as Basal 1, Basal 2, etc. When the user has scrolled to the desired name, the user 10 activates the Next function and the pump.100 returns to the Select Program display 308. The check box 312 for the program that was just edited is set to indicate that the basal program is enabled. Additionally, the name selected in the name field 316 is displayed in the Select Program display 308 in place of the previously assigned name. The name selected in the name field 316 is also displayed as a menu item in 15 the Basal Programs submenu 318. The user repeats this procedure from the Select Program display 308 for each basal program 310 for which he or she desires to change the enabled state and/or name. When the user is done changing the enabled states and program names for the various basal programs 310, the user activates the Done function 212. The pump 20 100 then returns to the Personalize Delivery submenu 302. As described below, the names of the enabled basal delivery programs will then appear the Basal Programs submenu-318. In an alternative embodiment, within the display entitled "My Program X," the user can access a spin box in which they scroll through a list of optional names 25 and select a custom name for the enabled basal delivery programs. The selected name would then replace the generic name (e.g., Basal 1, Basal 2, Basal 3, and Basal 4 in the illustrated example) for the program associated with the display. Examples of optional names that might be loaded in the pump 100 include weekday, weekend, sick, and monthly (which is to designate a basal delivery program set for a woman's 30 menstrual cycle). Referring now to Figure 11, the user can edit the operating parameters for the delivery protocols assigned to each of the enabled basal programs. From the main menu, the user selects the Basal Programs menu item. The pump then indexes to a 29 Basal Programs submenu 318 that lists those basal programs 317 that have been enabled as menu items. Each Basal Delivery program listed in the submenu 318 is identified by the name assigned to that particular program (e.g., Basal X, Weekend, Weekday, Sick Day, Travel, Monthly). In the illustrated example, all four basal 5 programs are enabled and identified by the generic name Basal X. Additionally, there is button 320 next to each of the menu items (names for the enabled basal programs). The buttons 320 associated with the active basal program are set, and the buttons for the other basal delivery programs are cleared. To edit a basal program, the user scrolls to and selects the desired basal 10 program. The pump 100 indexes to a submenu 322 for which the title is the same name as the selected basal program. The menu has two menu items, an Edit menu item and a Start Using menu item. The user selects the edit menu item and the pump 100 indexes to a Summary user interface 324 that presents a table in which each row identifies a start time 326 and a scheduled delivery rate 328 for each time interval in 15 the basal program. In the illustrated embodiment, there is a first time interval 330 having a start time and a delivery rate, a second time interval 332 having a start time and a delivery rate, and a third time interval having 334 a start time and a delivery rate. The start times are listed in a start-time field, and the delivery rates, are listed in a delivery-rate field. 20 To edit the start times and the delivery rates, the user activates the edit function 254 in the Summary user interface 324 and the pump 100 indexes to an Edit user interface 336 and assigns the Done function 212 to the first function key 138. Additionally, the pump 100 places focus on the delivery-rate field 340 for the first interval 330. The user scrolls to and selects the desired delivery rate. The user 25 selects the desired delivery by scrolling to the desired value and activating the Next function 200. In one possible embodiment, the pump 100 scrolls through delivery rates in the range from 0 u/hr to 2 u/hr in increments of .05 units per hour. The delivery rate does not exceed the maximum delivery rate'(Figure 10, Item 304). When the desired delivery rate is selected, the pump 100 indexes focus to the 30 start-time field 342 for the second time interval 332. The user scrolls to and selects the desired start time. In one possible embodiment, the pump 100 scrolls through start times in increments of 30 minutes. In one possible embodiment, the start time cannot be earlier than or equal to the start time of the previous time interval and 30 cannot be later than or equal to the start time of the next subsequent time interval. Other embodiments will implement different scrolling increments and limitations on the start time that can be selected. In another embodiment, if a selected start time is not in sequence, the pump 100 will automatically reposition the delivery intervals so 5 they are in chronological order. When the desired start time is selected, pump 100 then indexes focus to the delivery-rate field 340 for the second time interval 332, which the user sets using the procedures described above with respect to the first time interval 330. The user continues this procedure indexing through the start times for each of the time 10 .intervals and their associated delivery rates until the start time for each of the delivery intervals and their associated delivery rates are set. When the user is finished setting and/or editing the start times and delivery rates for the various intervals, he or she activates the Done function 212 and the pump 100 returns to the Summary Display 324. 15 In one possible embodiment, the first time interval 330 always starts at 12:00 midnight. In this embodiment, the last time interval will terminate at 12:00 midnight. If, within the Summary Display 324, the user highlights and selects the first time interval 330 for editing, the pump 100 indexes to the Edit display 336 and initially highlights the delivery rate 328 for the first time interval 330 rather than the 20 start time 326. In another embodiment, however, the user can change the start time 320 for the first time interval 330. The last time interval would then extend until the start time for the first time interval 330. Additionally, within the Summary Display 324, the user can scroll to a delivery interval other than the first interval 330 and activate the Edit function 254. In this situation, the start-time field 342 for the 25 selected interval is initially placed into focus rather than the delivery-rate field 340. To add a time interval to the basal program, the user continues to index through all of the time intervals and associated fields until the pump generates a new delivery interval and displays the characters "--:--" 344 in the start-time field 342 of the new interval, which occurs after indexing through the delivery-rate field 340 for 30 the last time interval. The user then scrolls through desired start times for the new time interval. After the desired start time is selected, the user activates the Next function 200 and the pump 100 indexes to the delivery-rate field 340 for the new time interval, which the user sets by scrolling through available delivery rate values. 31 . The user can then activate the Next function 200 to add yet another new time interval or can activate the Done function 212 to return to the Summary display 324. In one embodiment, the pump 100 can include up to 48 time segments, although other embodiment will include more or fewer time segments. 5 To delete a time interval from the basal program, the user places the start time field 342 for the desired interval into focus and scrolls down until the time reads "--:--" 344. The user then activates the Next function and the time interval is deleted and the user either activates the Next function 200 to index to another time interval for editing or activates the Done function 212 to return to the Summary 10 display 324. Additionally, both the Summary user interface 324 and the Edit user interface 336 include a total field 346 in which the total insulin scheduled to be delivered over a 24-hour period for that basal program is listed. The total insulin scheduled to be delivered is calculated by multiplying the delivery rate by the length 15 of each time interval to calculate the total insulin to be delivered for each time interval by the basal program being edited. The total insulin to be delivered for each time interval is then summed to calculate the total insulin scheduled to be delivered over a 24-hour period. Referring to Figure 12, to begin a basal program the user indexes to the Basal 20 Programs submenu 318 and selects the name of the desired basal program. The pump indexes to the Basal X submenu 322 and selects the Start Using menu item. The pump retums to the Basal Programs submenu 318 and sets the button 320' for the newly activated basal program. The pump 100 also clears the button 320 for the previously active basal program. 25 1. Correction Bolus In addition to delivering a basal rate the pump 100 may administer a bolus to lower the user's blood glucose level. One possible embodiment of the pump 100 can deliver two types of boluses, a correction bolus and a meal bolus. The correction bolus delivers a dose of insulin over and above the basal rate to lower or correct the 30 user's blood glucose level if it becomes too high. A meal bolus is a dose of insulin delivered in anticipation of consuming a meal to counteract the effects that the meal may have on the user's blood glucose. 32 Referring to Figure 13, the user can personalize or customize the correction bolus program and how the program is presented in the user interface. To personalize the temporary rate programs, the user accesses the Personalize Delivery submenu 302. Selecting the Correction Bolus menu item causes the pump 5 100 to display a main-menu field 388, and places it in focus. The user scrolls to and selects either a yes value or a no value. The yes value enables a Correction Bolus menu item in the main menu 190, and a no value disables the Correction Bolus menu item in the main menu 190. Upon selecting the yes or no value, focus indexes to a meal-bolus field 390 in which the user scrolls to and selects either a yes value or 10 a no value. .A yes value enables the user to set a correction bolus through the meal bolus delivery program as described below. A no value disables the ability to set a correction bolus through the meal bolus delivery program. Upon selecting a yes or no value in the meal-bolus field 390, focus indexes to a units field 392 in which the user scrolls to and selects units for measuring blood 15 glucose levels in either mg/dL and mmol/L. Upon selecting the units, focus indexes to a correction-bolus-factor field 394 in which the user scrolls to and selects a desired correction factor. The correction factor is the amount that the user's blood glucose drops for each unit of delivered insulin. In one possible embodiment, the user scrolls through values ranging from 5 mg/dL to 200 mg/dL (or 0.2 mmol/L to 20 12 rnmolfL). When the desired correction factor is set, focus indexes to a target blood glucose field 393. Additionally, the pump 100 calculates the average correction value for a predetermined number of days beginning with the previous day and extending backwards in time, and then displays 396 the average correction factor together with 25 the correction-bolus-factor field 394. In the illustrated example, the pump 100 displays the average correction factor for the previous seven days. As discussed above, other embodiments average the correction factor over other periods of time. In yet other embodiments the user can select the period of time over which to average the correction factor. 30 The target blood glucose field 393 allows a user to edit or review the correction bolus blood glucose targets. An edit option 395 allows the user to optionally edit the blood glucose target values. If the user chooses to edit the blood glucose target values, they can optionally choose to set a constant target blood 33 glucose value, or a variable target blood glucose value which changes throughout the day based on expected meal consumption, activity levels, or other factors. When the desired blood glucose targets are set or if the user chooses not to edit the blood glucose target values, focus indexes to a correction bolus adder field 397. 5 The correction bolus adder field 397 sets one or more correction bolus changes within the pump 100. In the field 397 shown, the correction bolus adder field prompts a user to indicate whether to increase the correction bolus delivered by the pump 100 based on the user's current blood glucose level. An edit option 399 allows the user to optionally customize the increase amount for the correction bolus 10 based on blood glupose. The addition of insulin to the correction bolus can be a constant amount over a given threshold, can be a graduated increase based on current blood glucose, or a set of stepped increases in insulin based on blood glucose. Once one or more of the desired correction bolus adders are set, focus indexes to a duration-of-activity field 398. 15 Within the duration-of-activity field 398, the user scrolls to and selects the duration of time over which insulin remains in the user's body. This amount will vary from user to user depending on a variety of factors including physical traits of the user and the type of insulin that is used. In one possible embodiment, the user scrolls through durations in the range from 2 hours to 6 hours. When the duration is set, the 20 pump 100 returns to the Personalize Delivery submenu 302. . In a possible embodiment, a user selects an insulin absorption model from among multiple insulin absorption models for application by the pump 100. Insulin absorption models are used in the pump to determine the remaining insulin in a user's body a period of time after the insulin is delivered to t he user, whether by a 25 basal rate, a correction bolus, a meal bolus, or another insulin delivery method described herein. To calculate the user's insulin level, the insulin absorption model uses the programmed duration in the duration-of-activity field 398. The user optionally selects a linear or non-linear absorption model. A linear absorption model assumes a constant absorption rate of insulin into the body. A nonlinear 30 absorption model assumes a faster absorption rate with higher insulin levels, and a lower absorption rate with lower insulin levels. The user optionally also programs a start time and tail time into the pump 100. 34 Figures 14A- I 4D show graphical representations of four possible insulin absorption models which can be set in the pump. The horizontal axis of the graphs represents the elapsed time since the last measured insulin on board. The vertical axis represents the insulin on board as a percentage of the total delivered insulin at 5 the time represented by the axis. Figure 14A shows a linear absorption model in which the programmed duration in the duration-of-activity field 398 was set to be 3 hours. The start time and tail time are either not selected or set to be zero. These settings result in a linear decrease in estimated insulin on board over three hours. The equation to be used to 10 determine the current insulin on board (IOB) is: Current IB =Initial Bolus Amount * (Duration of Activity - Elapsed Time) Current lOB = Duration of Activity For example, if a 3 Unit bolus is delivered using this selected model, at a time one and a half hours later the model estimates that the user has 1.5 Unit remaining unabsorbed within their body. 15 Figure 14B shows a linear absorption model having a non-zero start time and tail time. In the embodiment shown, the start time is programmed to be 15 minutes and the tail time is programmed to be one hour. Using this model, it is assumed that insulin in a user's body does not decrease for the first 15 minutes after it is introduced. After that start period, insulin levels are assumed to decrease linearly 20 over the set duration to a point at which approximately 5% of the introduced insulin remains. At that point, insulin levels drop to zero (either linearly or non-linearly) over the designated tail time. The equation used to determine current insulin on board using this model is: Initial Bolus Amount *(Duration of Activity + Start Time - Elapsed Time) Current IOB= Duration of Activity 25 Note: During Start up Time, current IOB limited to Initial Bolus Amount until the Current lOB reaches 5% of the Initial Bolus Amount. At that point, the equation used becomes: 0.05 * Initial Bolus Amount * (Elapsed Time Since Tail Time Started) Current IOB =Total Tail Time More generally, the tail can be affected by changing the percentage of insulin on 30 board at which the tail time occurs. In such an instance, the above equation becomes: 35 Tail Threshold % * Initial Bolus Amount *(Elapsed Time Since Tail Time Started) Current IOB = Total Tail Time Figure 14C shows a non-linear absorption model in which the programmed duration in the duration-of-activity field 398 was set to be 3 hours. The start time 5 and tail time are either not selected or set to be zero. A variety of equations can be used to model the non-linear'absorption model, such as an exponentially decreasing, hyperbolic, or other equation. The following is an example of one possible equation used to model non-linear insulin absorption: 10 ' x 2 In( 20 ) y e~_X T2 Where y = Current IOB 15 x = Elapse time T = Duration of Activity The method of calculating the current insulin on board remains the same, by determining the amount of insulin on board based on the model by using the time elapsed since the insulin is delivered into the user's body. 20 Figure 14D shows a non-linear absorption model having a non-zero start time and tail time. In the embodiment shown, the start time is programmed to be 15 minutes and the tail time is programmed to be 2 hours. The start time and tail time are implemented similarly to those described in conjunction with Figure 14B, while using the non-linear model described in conjunction with Figure 14C. 25 Additional methods for varying the absorption model can be incorporated into the pump 100 as well. A general method for varying insulin absorption would include incorporation of factors which can affect the rate at which the user would actually absorb insulin, such as due to boluses, activity, or other factors. In one example embodiment, the pump 100 varies the insulin absorption model based on a 30 bolus amount. In a further embodiment, the pump 100 varies the insulin absorption model based on both a bolus amount and the user's body weight. In a further embodiment, the pump 100 varies the insulin absorption model based on the user's anticipated near-future activity level. Other factors can include the user's age, 36 fitness level, body mass index. or other user entered health information. In yet a further embodiment, the pump varies the insulin absorption model based on the ambient temperature experienced by the user. In further embodiments, the pump 100 varies the insulin absorption model based on other patient-specific parameters. 5 Referring now to Figure 15, the user delivers a correction bolus by selecting the correction bolus menu item from the main menu 190. The pump 100 then displays an amount field 400 in which the user enters the amount by which they would like to lower their blood glucose. The user scrolls to and selects the desired. amount. The pump 100 then calculates a recommended bolus and indexes focus to a 10 recommend-bolus field 402. The pump 100 also displays a banner 403 with the recommend-bolus field 402 which reads "Bolus to Lower BG X?" where X is the amount that the user entered to lower his or her blood glucose. The pump 100 calculates the recommended bolus according to the equation: Correction Bolus = Drop in Glucose Level Correction Factor 15 and displays the recommended correction bolus in the recommend-bolus field 402. The user can adjust the recommended correction bolus by incrementing the recommend amount up or down using the up and down keys 142 and 144, respectively. 20 When the desired correction bolus is displayed in the recommend-bolus field 402, the user activates the Deliver function 384 and the pump 100 displays a banner 408 in the screen stating the bolus is delivering and the amount of the bolus. The pump 100 then returns to the home page 152 after delivery of the bolus is complete. Additionally, the pump 100 has a duration of activity program that 25 determines whether any bolus that was previously delivered is still active. If a previous bolus is still active, the pump 100 calculates the estimated amount of insulin that is still active in the patient's body. In a linear system the pump uses an equation analogous to the insulin on Board equations above: . Last Bolus Amount x (Duration -Time Since Last Bolus) (2) Residual Insulin = Duration 30 if (Duration-Time Since Last Bolus) > 0, otherwise Residual Insulin = 0. 37 where Residual Insulin is the amount of insulin from a previous bolus still active within the user's body, Last Bolus Amount is the amount of the last bolus, Duration is the duration of insulin, which is set as described in conjunction with Figure 13, 5 and Time Since Last Bolus is the amount of time lapsed since the last bolus was delivered. Additionally, there could be more than one boluses still active within the user's body. In this situation, equation 2 is used to calculate the residual insulin from each of the still active boluses and the amount of residual insulin for each of the previous boluses is summed to determine Residual Insulin. Alternately, a 10 modified version of equation 2 may be used based on a non-linear insulin absorption model, if selected. The pump 100 then calculates an adjusted correction bolus according to the equation: Reduced Correction Bolus = Correction Bolus - Residual Insulin (3) 15 The pump 100 then displays the reduced recommended corrected bolus in the correction-bolus field 402 rather than the recommended correction bolus. The display also presents a banner (not shown) with the recommended-bolus field that indicates that the recommended bolus is reduced to accommodate residual bolus insulin that is still working in the user's body. An example of such a banner is 20 "*reduced for insulin on-board". In an alternative embodiment, when the user selects the Correction Bolus menu item from the main menu 190, the pump 100 indexes to a display that presents the correction factor, displays the user's target blood glucose level, and displays a current-blood-glucose field that prompts the user to enter the user's current blood 25 glucose level. The user scrolls to and selects their current blood glucose level. The pump 100 then calculates the appropriate amount of the bolus to lower the user's blood glucose level to the target value and then presents the verification display. In this embodiment, the pump 100 calculates the desired drop in the glucose level, and the pump 100 calculates the correction bolus according to the equation: Current Glucose Level -Target Glucose Level (4) 30 Correction Bolus = Correction Factor In one possible embodiment, the pump 100 varies the correction bolus amount based not only upon the time of day, but also the current blood glucose of 38 the user. The user can set one or more rules in the pump 100 to change the correction factor applied. These rules can be based on a rules framework programmed into the pump 100. For example, the pump can include an additive rule framework of the form "If blood glucose is above X, add Y %". The user could 5 create a number of personalized rules of the same form, by entering a blood glucose setting and a percentage value. For example, by entering 250 and 20%, respectively, the user tells the pump 100 to add 20% to the bolus if the user's blood glucose level is over 250. In a possible embodiment, the effect of these defined rules can be added to the correction bolus after it is initially calculated using equation (4), above. 10 . In a second possible embodiment, the correction factor is altered to take into account whether or not a rule applies at the time the correction bolus is calculated. A plurality of rules can be created in the pump 100 with differing glucose values and percentages. In one possible embodiment, up to four rules can be programmed into the pump 100. Additionally, the added insulin delivered by the 15 pump 100 can be displayed on the pump screen, such as upon selection of the Correction Bolus menu item in the main menu 190. These equations can change based on the insulin absorption model selected. J. Negative Meal Bolus Similar to the correction bolus, the pump 100 can suggest a negative meal. 20 bolus, which is a suggested amount of carbohydrates for the user to consume. A negative meal bolus is suggested by the pump when the user's blood glucose level is too low or potentially will become too low due to the current level of insulin on board. The negative meal bolus is complementary to the correction bolus, and the two operate to maintain the user's blood glucose level within a safe range. 25 In a possible embodiment, when the user selects the Correction Bolus menu item from the main menu 190 and the pump 100 determines that the user's blood glucose is below the target level, the pump indexes to a display that includes a notification message indicating to a user that their blood glucose level is below their target blood glucose level. In a further embodiment, the pump 100 includes a 30 negative meal bolus target analogous to the correction bolus target, which is a target level to which the negative meal bolus is configured to aim. The negative meal bolus target can be a different value from the correction bolus target. For example, the correction bolus target can represent a higher level within a range of safe blood 39 glucose levels, such as 130 mg/dl, and the negative meal bolus target can represent a lower level within the range, such as 90 mg/dI. In a possible embodiment, the correction bolus target and negative meal bolus target are user-selectable. In a possible embodiment, the pump 100 deactivates the negative bolus 5 feature based on the occurrence of other events within the pump. For example, the negative bolus feature can be disabled. during an extended bolus, or for a predetermined or customizable period of time after delivery of a meal bolus, as described below. The negative meal bolus feature allows the pump 100 to optionally display 10 the amount of carbohydrates necessary to bring the user's low blood glucose back to the target level, consistent with the equations described above. In an embodiment of the pump 100 incorporating a food database as described below, the pump optionally displays one or more foods appropriate for treating low blood glucose which contain at least the required number of carbohydrates. In such an embodiment, the pump 15 also optionally displays a minimum serving size-to be consumed to reach the required number of carbohydrates. The pump 100 also optionally displays the user's current blood glucose level or the user's target blood glucose level. The pump 100 optionally executes a meal bolus program which, in one aspect, can calculate and display the number of 20 carbohydrates to bring the user's blood glucose from its current level to the user's target level. The calculated number of carbohydrates is editable by the user, . although the number entered by the user maybe replaced by the number calculated by the pump 100 if the user-entered value is lower. Once the number of carbohydrates is accepted, raised, or lowered by the 25 user, one of three things may happen. If the user accepts the calculated bolus, the pump 100 applies a "zero" bolus. If the user lowers the number of carbohydrates, the pump 100 displays a message indicating that the user's blood glucose would still be below target. If the user raises the number of carbohydrates, a meal bolus program, such as those discussed below, calculates the amount of insulin necessary 30 to counteract the extra carbohydrates. This insulin can be delivered to the user at the time the user selects the number of carbohydrates to consume, or can optionally delay the insulin bolus for an amount of time sufficient to ensure that the user's blood glucose level increases quickly back to a normal level. In a possible 40 embodiment, the pump 100 delays 15 minutes before delivering additional insulin to allow the user a chance to consume some carbohydrates and raise their blood glucose level. In a further possible embodiment, the software prompts the user to perform a blood glucose test to confirm that the bolus is needed. In such an 5 embodiment, the software allows the user to confirm or cancel the bolus as appropriate. In an embodiment of the pump 100 including a food database, as described below, the pump 100 can display one or more foods that are good to eat when blood glucose is abnormal, i.e. too high or too low. Additionally, foods which are well 10 suited for.consumption in anticipation of exercise or on sick days can be displayed as well. The pump 100 can present to a user a list of foods which are appropriate under other circumstances as well. K. Meal Bolus Programs A meal bolus is a bolus that the pump delivers in anticipation of a meal that 15 the user plans to consume. In one possible embodiment, the amount of the meal bolus is based on how much insulin is required to work against the carbohydrates that the user plans to consume. There are several types of meal bolus programs that the pump 100 may include. One type is a standard bolus in which the pump 100 delivers the meal bolus a predetermined time prior to when the user consumes the 20 meal or snack. The standard program delivers the bolus at the maximum rate that the pump 100 is able to deliver it. As explained below, the standard program can be set for programming in either units of insulin or number of carbohydrates. Another type of meal bolus that the pump 100 can be programmed to deliver is an extended bolus in which the pump 100 delivers the meal bolus over an extended period. Yet 25 another type of meal bolus that the pump 100 can be programmed to deliver is a combination bolus in which the pump 100 immediately delivers a portion of the meal bolus and the balance of the meal bolus over an extended period of time. Referring to Figure 16, to instruct the pump 100 to program the standard meal bolus in units of insulin and to otherwise personalize the meal bolus program, 30 the user accesses the Personalize Delivery submenu 302. From the Personalize Delivery submenu 302, the user selects the Meal Bolus menu item and the pump 100 prompts 410 the user to select whether to program in units of insulin or carbohydrates. The user selects units of insulin. The pump 100 then prompts 412 41 the user to select the maximum bolus that can be delivered. In one possible embodiment, the user scrolls through values in the range between 0 units and 40 units of insulin in increments of 1 until the desired value is highlighted. Next, the pump 100 prompts 414 the user to select the increments in which the user can select 5 the actual bolus to be delivered. In one possible embodiment, the user scrolls between 0.05 units, 0.10 units, 0.50 units, and 1.00 units. The pump 100 then prompts 416 the user to select whether to enable an extended bolus program and to display an Extended Bolus menu item within a Meal Bolus submenu 434 (Figure 18). The extended bolus program is selected by 10 selecting a yes value and disabled by selecting a no value. The pump 1.00 also prompts 418 the user to select whether to enable a combination bolus program and to display a Combo Bolus menu item within the Meal Bolus submenu 434. The combination bolus program is activated by selecting a yes value and is disabled by selecting a no value. The pump 100 then prompts 420 the user to choose whether to 15 enable an audio bolus program. The user selects a yes value to enable the audio bolus program and selects a no value to disable the audio bolus program. If the pump 100 is preprogrammed with one or more custom meal boluses, the pump prompts 422 the user to select whether to review or edit a custom bolus. If the user does not want to review or edit a custom bolus, the user selects no and the 20 pump 100 returns to the Personalize Delivery submenu 302. If the user selects yes, the pump 100 presents a display 424 entitled "Custom Bolus," which lists the names 426 of the available custom meal bolus programs. The display 424 also presents a check box 428 for each of the custom meal bolus programs 426. If a custom meal bolus program 426 is enabled, the check box 428 is set. If a custom meal bolus 25 program 426 is not enabled, the check box 428 is cleared. When a custom meal bolus is enabled, it is displayed in the Meal Bolus submenu 434 as a separate menu item. If the custom meal bolus program is not enabled, it is not displayed in the Meal Bolus submenu 434 and the user cannot execute the program. To enable or disable a meal bolus program, the user scrolls to the desired 30 custom meal bolus program and activates the Edit function 254. The pump 100 presents a display 430 entitled "Custom Bolus: X," where X is the name of the selected custom meal bolus program. In the illustrated example, the title of the display is Custom Meal Bolus: Pizza". Upon activating the Edit function 254, the 42 pump 100 prompts 432 the user to select either a yes value or no value. If the user selects the yes value, the pump 100 enables the custom meal bolus program 426 and displays the name of the program as a menu item in the Meal Bolus submenu 434. If the user selects the no value, the pump 100 disables the custom meal bolus 5 program 426 and does not display the name of the program as menu item in the Meal Bolus submenu 434. After the yes or no value'is selected, the pump 100 returns to the "Custom Bolus" display 424. The user repeats this procedure from the "Custom Bolus" display 424 for each custom meal bolus program 426 for which they desire to change the enabled 10 state. When the user i§ done changing the enabled states for the available custom meal bolus programs 426, the user activates the Done function 212 in the "Custom Bolus" display 424. The pump 100 then returns to the Personalize Delivery submenu 302. Additionally, in one possible embodiment, if there are no custom meal bolus 15 programs available for the user to enable, the pump 100 automatically returns to the Personalize Delivery submenu 302 after the user instructs 420 the pump 100 whether to enable an Audio Bolus. In one possible embodiment, a user can program the pump 100 to include a database of foods for which to configure delivery of a custom bolus. A user of the 20 pump 100 selects one or more foods from the database of foods to form a meal from which the user's carbohydrate intake is calculated. The database of foods can include a number of records associated with food entries. The food entries each represent a food or a combination of foods. The record includes fields for a name of the food entry, the amount of carbohydrates contained in the food or foods 25 represented by the food entry, and a default serving size for the food entry. Each entry in the food database is a food entry. The food entry has a number of fields within it. One field can be a name field, and will be the information displayed to the user representing the name or names of the food displayed. The food entries can represent specific foods tracked by a user of the pump. The food 30 entries can also represent meals including a variety of foods typically eaten by the user, and would include combinations of types of foods. Examples of foods displayed could be "pizza" or "apple", or could also be "Chicken, Potato, and Green Beans" or some other combination commonly consumed by the user, who may wish 43 to store the combination so that they do not have to select each food and serving size each time they consume the common meal. Additional fields include a carbohydrate field and a serving size field related to the foods displayed. The carbohydrate field contains information related to the 5 number of carbohydrates are contained in the foods, given a default serving size stored in the serving size field. The carbohydrate field and the serving size field are customizable by a user, and can be set independently of each other as well. In a possible embodiment of the food database, nutritional information is stored in the food database and associated with the one or more food items. The 10 additional nutritional information can be stored in additional fields associated with. the food entry, or can be stored separately and referenced by the food entry. The nutritional information includes, for example, additional carbohydrate information, fat information, or protein information. Other nutritional information can be stored as well. 15 In a further possible embodiment of the food database, the pump 100 stores metadata related to one or more user conditions in conjunction with one or more of the foods in the food database. The pump can be configured to display specific foods upon occurrence of the conditions. These conditions include, for example, such as activity levels, sickness, high or low blood glucose levels, or other 20 conditions. For example, in the case of a low blood glucose level, a metadata tag may be associated with a food entry in the food database "orange juice" which will be displayed to the user upon detection of a low blood glucose level. Optionally, the pump 100 displays a specific amount of orange juice to consume, as calculated using the negative meal bolus feature, described herein. 25 In one embodiment, the food database includes 500 or more foods, categories of foods, and/or meals. In a possible embodiment, the food database is a subset of a larger food database that is stored on a computing system that can be interfaced with the pump 100, such as the system shown below in Figure 26. Referring now to Figure 17, a meal maker function allows the user to select 30 one or more food entries from the food database to form meals. Meals refer to combinations of one or more food entries selected using the pump which indicate the food or foods which the user plans to consume. In one embodiment, up to 10 food entries are selectable from the food database to form a meal. The food entries in the 44 food database are categorized into one or more hierarchical levels for ease of navigation, and food categories screen 405 displays one or more food categories in a category listing 407, allowing the user to navigate to a food or meal to be consumed using the up and down keys 142, 144. The user selects a food or meal category from 5 the overall food listing 407, and confirms the choice using a next option 409. Upon activation of the next option, the pump 100 indexes focus to a food entries screen 411. The food entries screen 411 presents a number of foods within the category selected using the food categories screen 405. In the example shown, a fruits category includes single fruits as well as a fruit salad option, which corresponds to a 10 variety of fruits. The user selects at least one food using the up and down keys 142, 144 and uses a next option 413 to confirm selection of one of the food entries. Upon activation of the next option 413, the pump 100 indexes focus to a servings screen 409. The user selects the number of servings, or "serving size" of the selected food entry that will be consumed, using a servings field 417 and the up 15 and down keys 142, 144. The user optionally also defines the default amount of food referred to as the "serving size", such that a single serving of the food represents the amount of the food that user-eats in a single meal. In one particular implementation, the selectable number of servings of the food can be between 0.5 and 3 servings, based on the default food amount. Upon selection of a serving size 20 using a select option 419, the pump calculates the number of carbohydrates to be consumed for the selected food entry, and indexes focus to a confirmation screen 421. The confirmation screen 421 displays the food or foods selected, as well as a number of informational items related to nutritional aspects of the food, including the serving size of the food, the number of carbohydrates, and the amount of fiber, 25 protein, and fat included in the food. The informational items correspond to the information stored in the food database and associated with the food entry. Other information can be displayed as well, such as by incorporating additional fields into each food entry in the food database. The user can select an add option 423 to add additional food entries to the current meal using the food database, or confirm that 30 the food entries selected represent the meal desired using a set option 425. Upon user confirmation using the set option 425, the pump 100 indexes focus to a delivery screen 427. The delivery screen 427 displays overall meal information, including a total number of carbohydrates consumed, a listing of the foods to be consumed, and 45 other optional nutritional or serving size information. Upon selection of a home option 429 the pump indexes focus to a carbohydrate delivery screen 200, such as are shown below in Figure 20. Using the appropriate screens as described below, the pump delivers an appropriate meal bolus based on the total number of 5 carbohydrates to be consumed in the meal. A back option returns to the confirmation screen 421 allowing the user to add additional foods to the meal. If a food is not selected from the food database, the user can directly enter a number of carbohydrates, as illustrated in Figure 20 below. However, in any event the pump prevents the user from specifying a serving size for the food item which 10 would cause the total insulin bolus to be greater than the programmed maximum insulin dose, as set using the prompt 412. In the embodiment shown in Figure 17, the meal maker function provides a hierarchy of menu-based screens configured to organize the foods listed in the food database. The hierarchy of menus includes one or more levels of menus, each menu 15 representing foods, meals, types of foods, types of meals, or other user-selectable navigation or selection criteria. In another embodiment, all foods are displayed in a non-hierarchical listing. Figure 18 illustrates administration of a standard meal bolus when the pump 100 is set to program meal boluses using units of insulin. The user selects the meal 20 bolus menu item from the main menu, and the pump indexes to a Meal Bolus submenu 434. The meal bolus submenu 434 lists the available meal bolus programs. Examples include the standard meal bolus program, the extended meal bolus program, the combination meal bolus program, and any enabled custom meal bolus programs. In the illustrated example, only the extended meal bolus program is 25 enabled and the Meal Bolus submenu 434 includes a Standard Bolus and an Extended Bolus. The user highlights the Standard Menu item and the pump 100 prompts 436 the user to enter the number of units to deliver. In one-possible embodiment, the user can scroll through values in the range from 0 units to 17 units in increments of 0.5 units. 30 If the pump 100 is programmed to enable administration of a correction bolus through the Meal Bolus program, the pump 100 prompts 436 the user to enter the number of units to deliver as a meal bolus. The user then activates the Deliver function 384 and the pump 100 prompts 438 the user to enter the amount by which 46 they want to lower their blood glucose level. In one possible embodiment, the user enters the amount by scrolling through values in units of either mg/dL or mmol/L. When the desired drop in blood glucose is entered, the user activates the Next function 200, which causes the pump 100 to calculate a recommended bolus amount 5 and to display a user interface with the banner 439 stating "Bolus to Lower BG X plus Y meal bolus." X is the amount the user entered to lower the blood glucose level, and Y is the amount of the meal bolus entered by the user. The user interface also displays the recommended bolus amount 440 to deliver. The recommended bolus amount 440 is the recommended correction bolus 10 as calculated above, plus the amount of the meal.bolus. This feature allows the user to correct a-high blood glucose level and deliver additional insulin to work against carbohydrates that they plan to consume. The user can adjust the recommended bolus amount by increasing or decreasing the recommended bolus amount by. scrolling up or down. In one possible embodiment, the user scrolls in increments of 15 0.5 units. Once the desired bolus amount is set, the user activates the Deliver function 384. Activating the Deliver function 384 causes the pump 100 to deliver the correction bolus. The pump 100 will begin to deliver the bolus and display a banner 408 stating that the bolus is being delivered. An example of such a banner is "Bolus 20 X is Delivering", where X is the bolus amount. When delivery of the bolus is complete, the pump 100 returns to the home page 152. In an alternative embodiment, when the pump 100 is programmed to enable administration of a correction bolus through a Meal Bolus, the pump 100 displays a user interface entitled Current Blood Glucose." The pump 100 calculates the current 25 correction factor and displays the correction factor in the user interface. The pump 100 also displays the target blood glucose level. The user then enters his or her current blood glucose level in units of either mg/dL or mmol/L, by scrolling through a range of values until the current blood glucose level is displayed. In this embodiment, the target blood glucose level and the appropriate units are 30 programmed into the pump 100 when personalizing the correction bolus program as described herein. After the user enters the current blood glucose level, the user activates the Next function 200 and the pump 100 calculates a recommended bolus amount, using the equations set forth above, and adds it to the meal bolus. The 47 pump 100 displays the user interface with the banner "Bolus to Lower BG X plus Y Meal Bolus" 439. The user can then change the amount 440 and activate the Deliver function 384 to begin delivery of the bolus as described above. Additionally, in one possible embodiment, the pump 100 adjusts the 5 recommended bolus based on the meal bolus or the meal bolus plus the correction bolus to accommodate insulin on board or residual insulin that is still working within the user's body. In this embodiment, the amount of the adjusted correction bolus is adjusted using the equations described above in conjunction with the duration-of-activity function. The methods of adjusting the bolus amount for insulin 10 Qn board are described above. Referring to Figure 19, to instruct the pump 100 to program the standard meal bolus in number of carbohydrates consumed and to otherwise personalize the meal bolus program, the user accesses the Personalize Delivery submenu 302. From the Personalize Delivery submenu 302, the user selects the Meal Bolus menu item 15 and the pump 100 then prompts 442 the user to select whether to program in units of insulin or carbohydrates. The user highlights units of carbohydrates and activates the Next function 200. The pump 100 prompts 444 the user to enter one or more carbohydrate ratios, which is the number of grams of carbohydrates that each unit of insulin will counteract. The pump 100 optionally accepts a schedule of carbohydrate 20 ratios as well, allowing the carbohydrate ratio to change based on the time of day. The pump 100 also calculates the historical average carbohydrate ratio 445 for a predetermined time-period and displays that historical average with the prompt 444. In one possible embodiment, the historical average is for the previous 7-day period. As discussed above, other embodiments average the carbohydrate ratio over other 25 periods of time. In yet other embodiments the user can select the period of time over which to average the carbohydrate ratio. The user enters the carbohydrate ratio by scrolling through values in a predetermined range such as from 0 gm/u to 50 gm/u in increments of 1. When the desired number of carbohydrates is set, the user activates the Next function 200 and 30 the pump 100 prompts 446 the user to set the increment by which the user would like to be able to scroll through the number of carbohydrates when programming the pump 100 to deliver a meal bolus. In one possible embodiment, the user can set the desired increment between I and 15 grams. 48 The pump 100 prompts 448 the user to enter the maximum bolus that can be delivered. In one possible embodiment, the user scrolls through values in the range between 0 units and 40 units of insulin in increments of I until the desired value is highlighted. The pump 100 then prompts 450 the user to enter the increments in 5 which the user can select the actual bolus to be delivered. In one possible embodiment, the user scrolls between 0.05 units, 0.10 units, 0.50 units, and 1.00 units and activates the Next function 200. The pump prompts 452 the user to select whether to enable an extended bolus program and to display an Extended Bolus menu item within the Meal Bolus 10 submenu 434. The extended bolus program is enabled by highlighting and activating a yes value and not enabled by highlighting and selecting a no value. The pump 100 also prompts 454 the user to select whether to enable a combination bolus program and to display a Combo Bolus menu item within a Meal Bolus submenu 434. The combination bolus program is enabled by highlighting and activating a yes 15 value and not enabled by highlighting and selecting a no value. The user activates the Next function 200 to index through these prompts 452 and 454. The pump 100 then prompts 456 the user to choose whether to enable an audio bolus program. The user selects a yes value to enable the audio bolus program and selects a no value to not enable the audio bolus program and then activates the next function 200. 20 If the pump 100 is preprogrammed with one or more custom meal boluses, the pump 100 then prompts 458 the user to select whether to review or edit a custom bolus. If the user does not want to review or edit a custom bolus, the user selects no and the pump 100 returns to the Personalize Delivery submenu 302. If the user selects yes, the pump indexes to a display 460 entitled "Custom Bolus," which lists 25 the names 462 of the available custom programs. In the illustrated example, there are four custom boluses available on the pump, Breakfast, Lunch, Dinner, and Snack. The screen also presents a check box 464 for each of the custom meal bolus programs 462. If a custom meal bolus program is enabled, the pump 100 sets the 30 check box 464. If a custom meal bolus program is not enabled, the pump 100 clears the check box 464. When a custom meal bolus program is enabled, it is displayed in the Meal Bolus submenu 434 as a separate menu item. If the custom meal bolus 49 program is not enabled, it is not displayed in the Meal Bolus submenu 434 and the user cannot execute the custom meal bolus program. To enable or disable a custom meal bolus program, the user selects the desired custom meal bolus program and activates the Edit function 254. The pump 5 100 indexes to a display 466 entitled "Custom Bolus: X," where X is the name 462 of the selected custom meal bolus program. In the illustrated example, the title of the display 466 is Custom Meal Bolus: Breakfast". The user interface 466 displays 468 a default number of carbohydrates for the custom bolus. For example, the user can create a custom breakfast meal bolus that would have a default value of 90 10 carbohydrates, equal to the number of carbohydrates in a bowl of cereal and milk normally consumed by the user at breakfast. The pump also prompts 470 the user to select either a fixed carbohydrate ratio or the previously entered carbohydrate ratio schedule. If the user selects a fixed carbohydrate ratio, the fixed carbohydrate ratio is used with the custom meal bolus program. The value of the carbohydrate ratio 15 468 may or may not be the same value as the carbohydrate ratio 444. The user enters the carbohydrate ratio by scrolling through values in a predetermined range such as from 0 gm/u to 50 gm/u in increments of 1. When the desired number of carbohydrate ratio is set, the user activates the Next function 200 and the pump 100 returns to the "Custom Bolus"- submenu 434. 20 The user repeats this procedure from the "Custom Bolus" display 460 for each custom bolus program for which they desire to change the enabled state. When the user is done changing the enabled states for the available custom meal bolus programs, the user activates the Done function 212. The pump 100 then returns to the Personalize Delivery submenu 302. 25 Additionally, in one possible embodiment, if there are no custom meal bolus programs available for the user to enable, the pump 100 automatically returns to the Personalize Delivery submenu 302 after the user instructs 456 the pump 100 whether to enable an Audio Bolus. Figure 20 illustrates administration of a standard meal bolus when the pump 30 100 is set to program meal boluses using grams of carbohydrates. The user selects the meal bolus menu item from the main menu 190, and the pump indexes to the Meal Bolus submenu 434. The meal bolus submenu 434 lists the available meal bolus programs. Examples include the standard meal bolus program, the extended 50 meal bolus program, the combination meal bolus program, and any enabled custom meal bolus programs. In the illustrated example, only the extended meal bolus program is enabled and the meal bolus submenu includes a Standard Bolus and an Extended Bolus. 5 The user selects the Standard Menu item and the pump 100 prompts 472 the user to enter the number of carbohydrates that the user plans to consume. The user interface also displays the current carbohydrate ratio 473. The user sets the desired number of carbohydrates. In one possible embodiment, the user scrolls through carbohydrates in the range from 0 grams to 225 grams. 10 The user then activates the Next function 200 and the pump 100 calculates a recommended size for the meal bolus using the equation: Recommended Meal Bolus Grams of Carbohydrates (5) Carbohydrate Ratio 15 The pump 100 displays 474 the recommended meal bolus. The user can then adjust the size of the meal bolus by scrolling up or down. In one possible embodiment, the pump 100 scrolls in increments of 1. Once the desired bolus amount is set the user activates the Deliver function 384. In a further possible embodiment, the recommended meal bolus is altered 20 based on other nutritional information associated with the selected food entries from the food database. For example, the meal bolus can be increased for foods with a large number of proteins and/or fats in addition to the carbohydrates in the food. in yet another embodiment, the meal bolus is altered based on other nutritional information associated with the selected food entries from the food 25 database. For example, a combination or extended bolus is optionally recommended for foods having a large number of fats in addition to the carbohydrates in the food. When the pump 100 is programmed to enable administration of a correction bolus through a Meal Bolus, the pump 100 prompts 472 the user to enter the number of carbohydrates to be consumed. The user then activates the Next function 200, 30 and the pump 100 prompts 478 the user to enter the amount by which they want to lower their blood glucose level. The user then activates the Next function 200, which causes the pump 100 to calculate a recommended bolus amount and to display 51 a user interface with a banner 482 stating "Bolus to Lower BG X plus Y grams of carbohydrates." X is the amount by which the user entered to lower the blood glucose level, and Y is the number of carbohydrates that the user entered. The pump 100 also displays the-recommended bolus amount 480 to deliver. 5 The recommended bolus amount 480 is the recommended correction bolus plus the amount of the meal bolus. This feature allows the user to correct a high blood glucose level and deliver additional insulin to work against carbohydrates that they plan to consume. The user can adjust the recommended bolus amount by increasing or decreasing the recommended bolus amount by scrolling up or down. In one 10 possible embodiment, the user scrolls in increments of 0.5 units. Once the desired, bolus amount is set, the user activates the Deliver function 384. Activating the Deliver function 384 causes the pump 100 to start the countdown timer and display the banner 404 that states a bolus will be delivered in predetermined time. In one possible embodiment, that time is 5 seconds and the 15 banner 404 also states the bolus amount. An example of a possible banner 404 states "Bolus X Delivery Starts in 5 Seconds," where X is the bolus amount. The pump 100 also assigns a Stop function 406 to the first function key 138. If the user activates the Stop function 406 before the countdown timer times out, the pump 100 will terminate delivery of the bolus and return to the home page 20 152. If the user does not activate the Stop function 406, when the timer times out, the pump 100 will begin to deliver the bolus and display the banner 408 stating that the bolus is being delivered. An example of such a banner is "Bolus X is Delivering", where X is the bolus amount. When delivery of the bolus is complete, the pump returns to the home page 152. 25 In an alternative embodiment, when the pump 100 is programmed to enable administration of a correction bolus through a Meal Bolus, the pump 100 prompts the user to enter their current blood glucose measurement. The pump 100 calculates the current correction factor and also displays the correction factor and the target blood glucose level with the prompt. The user then enters his or her current blood 30 glucose level in units of either mg/dL or mmol/L, by scrolling through a range of values until the current blood glucose level is displayed. In this embodiment, the target blood glucose level and the appropriate units are programmed into the pump when personalizing or customizing the correction bolus program. Once the user 52 enters the current blood glucose level, the user activates the Next function 200 and the pump 100 calculates a recommended bolus amount and adds it to the meal bolus. The pump 100 displays the user interface with the banner 482 "Bolus to Lower BG X plus Y grams of carbohydrates." The user can then change the amount and 5 activate the Deliver function 384 to begin delivery of the bolus as described above. Additionally, in one possible embodiment, the pump 100 adjusts the recommended bolus based on the meal bolus or the meal bolus plus the correction bolus to accommodate insulin on board or residual insulin that is still working within the user's body. In this embodiment, the amount of the adjusted correction 10 bolus is adjusted using the equatiQns described above in conjunction with the duration-of-activity function. The methods of adjusting the bolus amount-for insulin on board is described herein. In a further possible embodiment, the pump 100 logs the meals selected by the user and for which meal boluses are delivered. The pump optionally logs 15 nutritional information related to the meals, such as information related to carbohydrates, fats, or proteins. Other nutritional information can be logged as well. In yet another embodiment the pump 100 generates and presents reports to the user. The reports can include historical food intake, as well as cumulative nutritional information of the foods consumed. 20 Figure 21 illustrates administration of an extended bolus. The user selects the meal bolus menu item from the main menu 190, and the pump 100 indexes to a Meal Bolus submenu 434. The meal bolus submenu 434 lists the available meal bolus programs including the extended bolus program. In the illustrated example, the extended meal bolus program and the combination bolus program are enabled 25 and the meal bolus submenu includes menu items for a standard bolus, an extended bolus, and a combination bolus. The user selects the Extended Bolus menu item and, when the pump 100 is set to program in units of insulin, the pump prompts 484 the user to enter the number of units to deliver. In one possible embodiment, the user can scroll through 30 values in the range from 0 units to 17 units in increments of 0.5 units. When the number of units for delivery are entered, the user activates the Next function 200 and the pump 100 prompts 486 the user to enter the duration of length of time over 53 which the extended bolus is to be delivered. In one possible embodiment, the user enters a duration in the range of 0 minutes to 6 hours in increments of 30 minutes. When the duration is set, the pump 100 displays a user interface 488 that presents the programmed amount 490 of the extended bolus and the duration 492 5 over which it is to be delivered. To begin delivery of the-extended bolus, the user activates the Deliver function 384. The pump 100 then begins delivering the extended bolus and will complete delivery upon expiration of the duration. Alternatively, when the pump 100 is set to program in grams of carbohydrates, the pump 100 prompts 484' the user to enter the grams of 10 carbohydrates that the user plans to consume rather than the units of insulin to deliver as an extended bolus. The pump 100 also prompts 486 the user to enter the duration for the extended bolus. The pump 100 displays 485 the carbohydrate ratio while prompting the user to enter the grams of carbohydrates 484' and the duration 486. The pump 100 then calculates a recommended bolus amount 490' using the 15 carbohydrate ratio as described above and displays the recommended bolus amount 490', together with the duration 492 in a user interface that confirms the parameters for delivery of the extended bolus. The user can adjust the recommended amount 490' for the extended bolus by scrolling with the up and down keys 142 and 144. The user activates the Deliver function 384 to begin delivery of the extended bolus 20 using the parameters displayed in the user interface. After delivery of the extended bolus begins, if the pump 100 is programmed to enable administration of a correction bolus through the Meal Bolus program, the pump 100 prompts 494 the user to enter the amount by which they want to lower their blood glucose level. The user then activates the Next function 200 and the 25 pump 100 prompts 496 the user to enter the number of units to deliver as a meal bolus. In one possible embodiment, the user enters the amount by scrolling through values in units of either mg/dL or mmol/L. When the desired drop in blood glucose is entered, the user activates the Next function 200, which causes the pump 100 to calculate a recommended bolus amount and to display the banner 497 "Bolus to 30 Lower BG X." X is the amount by which the user entered to lower the blood glucose level. The prompt 496 initially displays the recommended bolus amount to deliver. The recommended bolus amount is the recommended correction bolus 490 or 490', 54 which the pump 100 calculates using the correction factor as discussed above. This feature allows the user to correct a high blood glucose level and deliver additional insulin to work against carbohydrates that they plan to consume. The user can adjust the recommended bolus amount 496 by increasing or decreasing the recommended 5 bolus amount 496 by using the up and down keys 142 and 144. In one possible embodiment, the user scrolls in increments of 0.5 units. Once the desired bolus amount is set, the user activates the Deliver function 384. Activating the Deliver function 384 causes the pump 100 to display the banner 404 that states a bolus will be delivered in predetermined time.- In one 10 possible embodiment, that time is 5 seconds and the pump 100 displays the bolus amount 496 in the banner. An example of a possible user interface states "Bolus X Delivery Starts in 5 Seconds," where X is the amount of the correction bolus. The pump 100 also assigns the Stop function 406 to the first function key 138. If the user activates the Stop function 406 before the countdown timer times 15 out, the pump 100 will terminate delivery of the correction bolus and return to the home page 152. In one possible embodiment, activating the Stop function 406 will terminate delivery of the correction bolus, but not the extended bolus. If the user does not activate the Stop function 406, when the timer times out, the pump 100 will begin to deliver the bolus and display the banner 408 stating that the bolus is being 20 delivered. An example of such a banner is "Bolus X is Delivering", where X is the bolus amount. When delivery of the bolus is complete, the pump 100 returns to the home page 152. In an alternative embodiment, no timer is included in the pump and the pump 100 begins delivering the correction bolus immediately. In an alternative embodiment, when the pump 100 is programmed to enable 25 administration of a correction bolus through a Meal Bolus, the pump 100 prompts the user to enter their current blood glucose measurement. The pump 100 calculates the current correction factor and displays the correction factor in the user interface. The pump 100 also displays the target blood glucose level. The user then enters his or her current blood glucose level in units of either mg/dL or mmol/L, by scrolling 30 through a range of values until the current blood glucose level is displayed. In this embodiment, the target blood glucose level and the appropriate units are programmed into the pump 100 when personalizing the correction bolus program. Once the user enters the current blood glucose level, the user activates the Next 55 function 200 and the pump 100 calculates a recommended bolus amount and adds it to the meal bolus. The pump 100 displays the user interface with the banner "Bolus to Lower BG X plus Y Meal Bolus." The user can then change the amount and activate the Deliver function 384 to begin delivery of the bolus as described above. 5 Additionally, in one possible embodiment, the pump 100 adjusts the recommended correction bolus based on the meal bolus or the meal bolus plus the correction bolus to accommodate insulin on board or residual insulin that is still working within the user's body. In this embodiment, the amount of the adjusted correction bolus is adjusted using the equations described above in conjunction with 10 . the duration-of-activity function. The methods of adjusting the bolus amount for insulin on board is described herein. Referring to Figure 22, the user can halt delivery of an extended bolus by activating the Stop function 172 on the home page 152. As described above, the pump 100 prompts the user to halt all delivery or just the extended bolus. The user 15 selects the extended bolus. The pump 100 then prints the banner 386 indicating how much time remains in the duration for the extended bolus and how much of the extended bolus remains to be delivered. The pump 100 also prompts the user to confirm that insulin delivery is to be stopped. The user confirms by activating the Yes function 178. The pump 100 then stops delivery of the extended bolus and 20 returns to pumping according to the normal basal rate. If the user activates the No function 180, the pump 100 will continue delivering according to the extended bolus and will return to the home page 152. The user optionally stops all delivery of insulin from the pump 100 using the All Delivery option. Referring to Figure 23, delivery of a combination bolus is programmed into 25 the pump in a manner similar to that of an extended bolus. However, the pump also prompts 498 the user to enter the proportion or percent of the bolus that the pump 100 delivers immediately upon activation of the Deliver function 384. To enter the proportion of the amount that is delivered immediately, the user scrolls through percentages until the desired percentage of the bolus for immediate delivery is set. 30 In one possible embodiment, the user scrolls through percentages in the range from 0% to 100% in increments of 1. Additionally when programming the pump to deliver a combination bolus, the pump 100 displays 500 the percentage of the bolus that is to be delivered immediately in the confirmation user interface 488. In an 56 alternative embodiment, the user enters the proportion or percent of the bolus that the pump 100 delivers over an extended period. Referring to Figure 24, the user can suspend delivery of a combination bolus in a manner substantially similar to that of the extended bolus except that the pump 5 100 displays a combination bolus menu item in the suspend menu. The user selects the combination bolus menu item to suspend delivery of the combination bolus, and then confirms suspension of the combination bolus. L. Weekly Schedule A weekly schedule can be created and preprogrammed into the pump 100. 10 The weekly schedule allows the user to schedule a pattern of basal rates for individual days of the week, and also allows the user to schedule a set of missed meal bolus alerts for individual days of the week. The weekly schedule allows a user to preprogram one or more basal rates as described above in conjunction with Figures 10-11, and to preprogram'one or more meal bolus alert sets as described 15 above in conjunction with Figures 16-20. Referring to Figure 25, the pump 100 presents an editable weekly schedule to accommodate a user's specific insulin delivery requirements. For example each user may have varying meal times, activity levels, or insulin absorption rates which will affect the basal rate and bolus timing required of the pump 100. In the example 20 shown, the user selects an Edit Schedule item optionally included in the main menu 190, and the pump 100 indexes focus to an edit schedule submenu 500. The edit schedule submenu 500 can be used in addition to or as a substitute for the basal programs option in the Personalize Delivery submenu 302 described above. The edit schedule submenu 500 lists the available editing options for the temporary rates, 25 weekly schedule, basal patterns, and correction boluses. In the example shown, the menu items are displayed as "Temp Basal Pattern", "Edit Weekly Schedule", "Edit Basal Patterns", and "Edit Missed Meal Alert", respectively. Other menu items or names for menu items are possible as well. The user selects one of the menu items to edit the corresponding aspect of 30 the weekly schedule. If the user selects the Temp Basal Pattern option in the edit schedule submenu 500, the pump 100 indexes focus to a start temporary basal pattern screen 502 which allows the user to indicate when to start the temporary basal pattern. A temporary basal pattern is a basal pattern that overrides, for a day, 57 the basal pattern scheduled in the weekly schedule. For example, if a pump user has to occasionally work on Saturday, they can schedule their "Weekday" pattern to temporarily override their "Weekend" pattern for the Saturday they must work. Selecting the Temp Basal Pattern option allows the user to have a temporary basal 5 pattern applied by the pump 100 for the remainder of the current day and a second temporary basal pattern programmed to take effect the following day as well. A temp basal pattern start box 503 displays the time at which the temporary basal pattern will begin. In the start temporary basal patten screen 502 shown, the temp basal pattern start box 503 indicates that the basal pattern will start immediately. To 10 select a different time at which the temporary basal pattern will begin, the user can change the setting in the temp basal patten start box 503 using the up and down keys. Other start times, such as delayed by an hour, a day, or other time period are possible. A back option returns focus to the edit schedule submenu 500. Upon confirmation of the temp basal pattern start time by selecting a next 15 option, the pump 100 indexes focus to a select temp pattern screen 504. The select temp pattern screen 504 prompts the user to select the temporary basal pattern that is to be applied. The user selects from the list of basal patterns 505 programmed or loaded into and enabled in the pump. In the example shown, "Weekday", "Weekend", "Sick Day", and "Basal Pattern 4" are listed as selectable options. 20 Other lists or combinations of basal patterns can be displayed as well, depending upon the patterns created or loaded into the pump 100. The user selects one of the basal patterns using up and down keys 142, 144. Upon selection of a basal pattern and confirmation of the selection with a select option, focus returns to a main menu 190. A back option in the select temp pattern screen 504 returns focus to the start 25 temporary basal pattern screen 502. If the user selects the Edit Weekly Schedule option in the edit schedule submenu 500, the pump 100 indexes focus to a day program screen 506, which displays the basal pattern and missed meal pattern associated with that day. In the day program screen 506 shown, the day displayed is Monday, and the basal pattern 30 is Pattern 1. The missed meal bolus alarm set is shown as Set 1. The up and down keys 142, 144 navigate through the days of the week, and an edit option 507 indexes focus to a day edit screen 508. The day edit screen 508 displays the basal pattern assigned to the day in a basal pattern field 509, and allows the user to edit the basal 58 pattern for the day selected in the day program screen 506. The user changes the basal pattern using the up and down keys 142, 144, among the basal patterns edited using the Edit Basal Patterns option in the edit schedule submenu 500. The user also optionally selects a missed meal bolus alert set to associate with the selected day, 5 from a listing of missed meal bolus alert sets programmed using the Edit Missed Meal Alert option in the edit schedule submenu. A back option and a next option both cause the pump 100 to index focus back to the day program screen 506. If the user selects the Edit Basal Patterns option in the edit schedule submenu 500, the pump 1'00 displays a basal pattern listing 510 including basal patterns 10 programmed into the pump. The basal pattern listing 510 displays one or more editable basal patterns which are available to be scheduled in the day edit screen 509 or used as temporary basal patterns in the select rate screen 504. The basal pattern listing 510 displays the defined basal patterns, and allows a user to select one of the predefined basal patterns using the up and down keys 142, 144. The user selects a 15 back option to return to the edit schedule submenu 500, or selects a select option 511 to cause the pump 100 to index focus to a pattern view screen 512 related to the selected basal pattern. The pump 100 displays a listing of times and associated delivery rates in the pattern view screen 512 for the basal pattern selected in the basal pattern listing 510. If the user does not wish to edit the times displayed, the 20 user selects a back option to return to the basal pattern listing 510. To edit one or more of the times and/or basal patterns, the user selects an edit option 513 to cause the pump 100 to index focus to a pattern edit screen 514. The pattern edit screen 514 displays on the pump 100 and allows the user to change the times and basal rates, or add additional times with associated basal rates. The user employs the up 25 and down keys 142, 144 to select and edit the times of the day, as well as to select and edit the basal rates associated with the times of the day. A done option 515 indicates that the user has completed editing the basal pattern, and causes the pump 100 to index focus back to the pattern view screen 512. A next option 517 indexes focus within the pattern edit screen 514. 30 If the user selects the Missed Meal Alert option in the edit schedule submenu 500, the pump indexes focus to a missed meal alert listing 516. The missed meal alert listing 516 includes one or more sets of alerts configured to match the planned meal times of the user. The sets of alerts correspond to the alerts selected using the 59 day edit screen 508. If the pump 100 does not deliver a meal bolus between the start and end time of a missed meal alert, the user may have forgotten to deliver the real bolus and is prompted to deliver the meal bolus. The meal bolus can be programmed according to the meal bolus and food database description above. The 5 user can select one or more missed meal alert sets using selection boxes associated with each of the missed meal alert sets. A select option 519 causes the pump to index focus to an alert enable screen 518. The alert enable screen 518 displays the enabled or disable status of the missed meal alert set selected in the missed meal alert listing 516, and also displays 10 the name of the alert set. A next option indexes focus to an alert listing 520 associated with the alert set displayed in the alert enable screen 518. A back option returns focus to the missed meal alert listing 516. Upon user selection of the next option, the pump 100 indexes focus to the alert listing 520, which displays all of the defined missed meal alerts associated with 15 a missed meal alert set. The user can select one or more of the alerts in the alert listing which the user wishes to edit. Upon selection of a select option 519, the pump 100 indexes focus to an alert edit screen 522. A back option returns focus to the alert listing screen 520. The alert edit screen 522 allows the user to set a start time and an end time 20 for the selected alert in the missed meal alert set. Upon selection of a next option 523 in the alert edit screen 522, the pump 100 returns focus to the missed meal alert listing 516. A back option in the alert edit screen 522 returns focus to the alert listing 520. In a possible embodiment of the weekly schedule, the home screen 152 can 25 be modified to display information related to the weekly schedule as programmed, such as the current day of the week, the type of day or basal rate currently applied, the name of the basal rate pattern, the missed meal alert set applied, or other information related to the weekly schedule. Although specific examples are illustrated herein, the weekly schedule can 30 be used to schedule basal rates, delivery patterns, and boluses for various events such as different daily meal schedules, upcoming athletic events, travel schedules, work schedules, sick days, parties, and any other type of schedule or event. Additionally, sets of scheduled target blood glucose levels, such as are related to a 60 correction bolus or negative meal bolus, can be created. In an alternative embodiment, a weekly schedule could also be used to remind the user of other events such as testing blood glucose levels. The weekly schedule disclosed herein is modifiable to provide to a user a 5 monthly or yearly schedule as well. The monthly or yearly schedule can be programmed with monthly or yearly meal boluses, and can track holidays, vacations, or other events which occur outside the user's typical daily or weekly schedule. M. Disconnect/Suspend Bolus Referring back to Figure 3, a disconnect/suspend bolus feature is included in 10 the pump 100, and can be added to the main menu 190. The disconnect/suspend bolus feature 193 allows a user to disconnect from the pump 100 for up to two hours without missing delivery of insulin, although other embodiments will permit disconnecting the pump for periods greater than two hours. A user may want to disconnect from the pump 100 for a variety of reasons, such as for bathing, high 15 levels of activity, or in other situations in which a pump may be inconvenient or unsafe. When the user wishes to disconnect from the pump 100, the user is first prompted by the pump 100 to enter the duration they will be disconnected from the pump. The pump 100 calculates and displays the amount of insulin delivery which 20 will be missed in that time. This includes any basal rate and temporary rate scheduled during that time. The pump 100 prompts the user to enter a percentage of the missed insulin that the user wishes to receive as a bolus prior to disconnecting from the pump, and accepts any percentage value up to 100% of the total insulin delivery that will be missed, although other embodiments might include a limit other 25 than 100%. This percentage bolus delivered prior to disconnection can be referred to as a disconnect bolus. The pump 100 prompts the user to optionally check their blood glucose level prior to disconnecting from the pump. If the user chooses to check their blood glucose level and requires a correction bolus, the correction bolus is delivered prior 30 to disconnection. If the user chooses to check their blood glucose level and the negative meal bolus feature would normally activate, the pump 100 reduces the disconnect bolus to compensate for the user's low blood glucose level. 61 Upon confirmation by the user, the pump stops all basal rate delivery, logs the disconnection time, the percentage of immediately delivered insulin as selected, and delivers the disconnection bolus, which is the bolus amount calculated by the pump and multiplied by the percentage input by the user. Once the bolus delivery is 5 complete, the pump 100 triggers an alarm, such as a visible alarm displayed on the pump or an audible alarm emitted by the pump, indicating to a user that they should disconnect from the pump. In the exemplary embodiment, the pump requests confirmation by the user that they are disconnected from the pump. Once confirmation is received from the user, the pump adds a "reconnect" option into the 10 main menu 190. The pump stores its disconnected state and the elapsed disconnection time, such that the pump status is retained during the disconnect/suspend bolus operation even if the pump power is interrupted during the disconnect period, or if the user changes the time or date in the pump 100. While the pump 100 remains in the disconnected state, the user can 15 physically reconnect their infusion set and configure the pump to deliver a meal bolus or a correction bolus. The pump 100 maintains the interrupted basal rate during the time that the pump is in the disconnected state. When the user begins the reconnect process by selecting the reconnect option on the main menu, the pump 100 calculates the originally scheduled insulin dose, 20 which is the amount of insulin originally scheduled to be delivered during the elapsed time between the time the pump was disconnected and the time the reconnect option is selected on the main menu. The pump then subtracts the originally scheduled insulin dose from the dose delivered by disconnection bolus the dose. If the difference is a negative number, the user has reconnected before the 25 time they had indicated, and the pump should not deliver additional insulin to the patient upon reconnection. The pump 100 starts a temporary rate of zero units per hour for the time required for the basal rate and boluses to make up for that negative amount. If the amount of insulin owed is a positive number, the pump 100 prompts the user to enter the percentage of that "missed" amount that they wish to have 30 delivered, up to 100%. This percentage of missed insulin is referred to as the reconnect bolus. The pump 100 prompts the user to optionally check their blood glucose level before reconnecting. If the user chooses to check their blood glucose level, any 62 correction bolus deemed necessary will be added to the reconnect bolus. Likewise, if the user chooses to check their blood glucose level, any negative meal bolus will be subtracted from the reconnect bolus. N. Additional Pump Features 5 Additional features can be included in the pump consistent with the present disclosure. For example, the pump can include programming for temporary basal rates, an option to include an audio bolus, customized alerts, and lock levels. A temporary rate allows the user to temporarily raise or lower the delivery rate being administered by the active bolus program. The user can personalize or customize 10 the temporary rate programs and how they are present in the user interface. An audio bolus provides for delivery of a standard meal bolus using a single button. A series of sounds, such as beeps, are used to provide an indication of the setting to the user. In a possible embodiment, the beeps are configured analogously to the sounds used to program the pump 100 without the need for visual confirmation, such as by a 15 visually impaired user. Customizable alerts allow a user to select specific alerts for various types of events occurring in the pump. Lock levels provide various levels of user rights in the pump based on access codes. Lock levels prevent unauthorized users from entering and changing settings in the pump. These and additional pump features are described in greater detail in U.S. Patent No. 6,744,350, filed February 20 28, 2002 and entitled Insulin Pump Having Missed Meal Bolus Alarm, the disclosure of which was incorporated by reference in its entirety above. 0. Computer-Pump Communication and Programming In one possible embodiment, the pump 100 can communicate with a computer. The computer can upload information from the pump 100, including the 25 historical information generated by and stored on the pump 100. The computer can archive the historical information and maintain a complete historical record about the pump 100. Additionally, the computer can generate various reports regarding use of the pump 100, including information about delivery rates, bolus amounts, and alarms. Additionally, the computer can operate a program that allows the user to 30 enter operating parameters for the various delivery programs that are loaded on the pump 100 and to download those operating parameters to the pump 100. In yet another possible embodiment, the computer can be used to download delivery programs and software updates to the pump 100. 63 Referring to Figure 26, in one possible embodiment, a computer 534 is a desktop computer that is IBM PC compatible, although other computers can be used. For example, the computer 534 could be an Apple computer, portable computer, a hand-held computer, a mainframe computer, a computer that is connected to a 5 network. The computer 534 has a monitor 536, a storage device 538, and an infrared (IR) communication port 540. The pump 100 communicates with the computer through the IR port 120 on the pump 100 and the IR communication port 540 of the computer 534. In other*embodiments, the pump 100 and computer 534 communicate through other types of data links such as a wireless or radio frequency .10 (RF) connection or a wired connection such as U)SB, RS232, Fire wire, etc. Communication between a medical pump and a computer is also discussed in United States Patent 5,935,099, entitled Drug Pump Systems and Methods, the disclosure of which is hereby incorporated by reference. Referring to Figure 27A, the software operating on the computer 534 15 generates a user interface 542 that allows a user to view, edit, and enter operating parameters for the various delivery programs that are loaded on the insulin pump 100. In one possible embodiment, the user interface 542 has a plurality of stacked primary windows 544a-544e. Each primary window includes a tab 546a-546e and data entry features for entering profile settings for the delivery programs. A basal 20 programs primary window 544a is associated with the basal delivery programs, and is marked with a tab 546a bearing the name Basal Programs. A meal boluses primary window 544b is associated with the meal bolus delivery programs, and is marked with a tab 546b bearing the name Meal Boluses. A correction boluses primary window 544c is associated with the correction bolus deliver programs, and 25 is marked with a tab 546c bearing the name Correction Boluses. A temporary rates primary window 544d is associated with the temporary rate delivery programs, and is marked with tab 546d bearing the name Temporary Rates. A banner window 544e can include display options for the pump 100, and is marked with tab 546e bearing the name Banner. A weekly schedules primary window 544f is associated 30 with the weekly schedule programs, and is marked with tab 546f bearing the name Weekly schedule. A primary window 544 can include a variety of different data entry features for entering the operating parameters including text, numbers, flags, or the like. 64 Examples of the data entry features include buttons, check boxes, spin boxes, text fields, numeric fields, and tables. The buttons and check boxes are alternatively set and cleared by clicking on them with a pointing device such as a mouse. Each spin box is associated with up and down buttons and contains a list of values. The user 5 sets the desired value by spinning though the list of values with the up and down keys until the desired value is visible in the spin box. The tables have rows of cells and a scroll bar. The user can manipulate the scroll bar with a pointing device to scroll through the available rows within the table. Additionally, each primary window has a download button, an upload button, and a save button. 10 . The primary window on the top of the stack is active, and the user can enter, edit, and view operating parameters in the active primary window. The user can bring any one of the primary windows to the top of the stack by clicking on the primary window's tab. Still referring to Figure 27A, the first primary window 544a, which is for 15 setting the operating parameters for the basal programs, has three panels. The first panel 548 has a spin box 550 for setting the maximum basal rate for the insulin pump. The spin box 550 is displayed in a first group box 549. The user spins though available values until the desired maximum basal rate is visible within the spin box 550. The maximum basal rate set in the spin box will apply to all of the 20 basal delivery programs. In the illustrated example, there are four possible basal delivery programs. The first spin box 550 is present in a first group box. The second panel 552 of the screen has one secondary window 554a-554d for each of the basal delivery programs. The secondary windows are stacked and are marked with tabs 556a-556d. Each tab 556 is marked with the name of the basal 25 program associated with the tab's secondary window 554. The secondary window 554 on the top of the stack is active, and the user can enter, edit, and view operating parameters in the active secondary window. The user clicks on the tab 556 for any given secondary window to bring it to the top of the stack. In the illustrated example, there are four basal delivery programs and hence four secondary windows 30 named Basal I 554a, Basal 2 554b, Basal 3 554c, and Basal 4 554d. Each secondary window 554 has a button 558, a check box 560, and a text field 562 organized into a second group box 564 for setting program preferences. A table 566 and a graph 568 are organized into a third group box 570 and are for 65 naming, setting, and viewing the basal delivery rates. To activate a basal delivery program, the user sets the button 558 by clicking on it. Any other basal program that was active becomes inactive and the button for the previously active basal delivery program is cleared. Additionally, an asterisk is placed in the tab 556 for the 5 active basal delivery program so that the user can easily identify the active basal delivery program if the secondary window 554 for that basal delivery program is not on top of the stack. When the operating parameters for the basal delivery programs are downloaded to the pump 100, the basal delivery program in which the button 558 is set will become the active basal delivery program on the pump 100. 10 . To display the basal delivery program as a menu item in the Basal Program submenu 318 (Figure 12) on the pump 100, the user sets the checkbox 560. When the operating parameters for the basal programs are downloaded to the pump 100, the name for the basal program is displayed as a menu item in the Basal Program submenu 318. 15 To customize the name of the basal delivery program, the user types the custom name into the text field 562. The custom name is assigned to the basal delivery program and appears in the tab 556 for that program. Additionally, the custom name is the name downloaded into the pump 100 and appears in the Basal Program submenu 318, if the checkbox 560 is set. In an alternative embodiment, a 20 spin box is associated with the text field 562. The spin box presents preprogrammed, optional names for the basal delivery programs that the user can select. The selected name would then replace the generic name (e.g., Basal 1, Basal 2, Basal 3, and Basal 4 in the illustrated example) for the program associated with the display. Examples of optional names that might be loaded in the pump 100 25 include weekday, weekend, sick, and monthly (which is to designate a basal delivery program set for a woman's menstrual cycle). The basal rate table 566 or grid has a plurality of rows 572 and each row has two cells 574 and 576. When a cell within the table 566 has focus and the user presses the enter key or the tab key, the focus shifts to the next cell to the right. If 30 the current cell is the last cell in the row, focus shifts to the first cell in the next row. If the user presses the enter key while the last cell in the last row is in focus, a new row is created. In this manner, the user can expand the length of the table 572. If the user presses the enter key while the last cell of a row is in focus and there is no 66 data in any cell within that row, the computer will delete the row. The one exception is the first row in the table, which cannot be deleted. The first cell within a row is a start-time cell 574, and the second cell within a row is a delivery-rate cell 576. Each row corresponds to a different interval in the 5 delivery protocol for the basal delivery program. To set the delivery protocol for a basal program, the user enters the start time for each delivery interval in the start time cell 574 and the delivery rate in the delivery-rate cell 576. The pump 100 will - then deliver at the set delivery rate beginning at the set start time and until the start time for the next delivery interval. In one possible embodiment, the start time for 10 the first interval is 12:00 midnight and cannot be changed. Accordingly, to set the delivery protocol for the basal delivery program, the user types the start time in the start-time cell 574, hits the enter key and changes the focus to the delivery-rate cell 576 to the right. The user then types in the delivery rate for that interval, hits the cell key, and changes the focus to the start-time cell in 15 the next row (creating the row if the next row does not already exist). A new row will appear in which the user can enter the operating parameters for another delivery interval. The user continues this process until the operating parameters for all of the desired intervals are entered into the table. In an alternative embodiment, when a cell has focus, a spin box having up 20 and down buttons is presented in that cell. The user can either type a value into the spin box or spin through values until a desired value is visible in the spin box. When the cell and hence the spin box loses focus, the visible value from the spin box is entered into the corresponding cell and the spin box becomes invisible. The graph 568 provides a graphical illustration of the delivery rate for the 25 basal delivery program over a 24-hour period. In one possible embodiment, the graph 568 is a bar chart illustrating the delivery rate in a resolution of 30 minutes. In the illustrated example, Basal 1 is set to deliver 2 units/hour from 12:00 midnight to 2:00 am, 2.5 units/hour from 2:00 am to 3:00 am, etc. In one possible embodiment, the graph 568 is automatically updated as the 30 user completes entering the start time and delivery rate for each delivery interval. Additionally, the total daily basal rate is displayed 578, and is automatically calculated and updated as the user completes entering the start time and delivery rate for each delivery interval. Entry of data for an interval is complete when the user 67 enters the start time and delivery rate for the interval and exits both the start-time cell 574 and the delivery-rate cell 576. The third panel 580 presents instructions to the user. In one possible embodiment, the user interface presents a help label 582 (e.g., the question mark in 5 the illustrated example) in each of the group boxes 549, 564, and 570. When the user clicks on a help label 582, instructions specific to the group box or other aspects of the user interface associated with the help label are presented in the third panel. Alternatively, the user can point to a particular aspect of the user interface and right click on the mouse to present field-specific instructions in the third panel. 10 An additional panel (not shown) can include control options for performing a basal test. The additional panel will include options to set up and review the results of the basal test. The additional panel will have analogous functionality to that described above in conjunction with Figures 7-9. Figure 27B illustrates the second primary window 544b, which is for setting 15 the operating parameters of the meal bolus delivery programs. The meal bolus primary window includes two panels. The first panel 584 has a pair buttons 586,.a first spin box 588, a second spin box 590, a third spin box 592, a fourth spin box 594, a first check box 596, a second check box 598, a third check box 600, a fourth check box 601 and a meal bolus table 602. 20 The pair of buttons 586, spin boxes 588, 590 and table 591 are present in a first group box 604. The check boxes 596, 598, 600, and 601 are presented in a second group box 606, and the table 602 is present in a third group box 608. Spin boxes 592 and 594 are present in a fourth group box 610. The pair of buttons 586 is for setting the meal bolus delivery program to use either units of insulin or grams of 25 carbohydrates. The pair of buttons 586 toggle between set and cleared states so that when one is set the other cleared. The user set the first button to program the meal bolus programs in units of insulin and sets the second button to program the meal bolus programs in grams of carbohydrates The first spin box 588 is for setting the maximum bolus that the pump 100 30 can deliver when executing the meal bolus program. The second spin box 590 is for setting the duration of the bolus. The table 591 is for setting the user's fixed carbohydrate ratio. The table 591 optionally also works in conjunction with 68 functionality to set a schedule of carbohydrate ratios configured to change based on the time of day. In the fourth group box 610, the spin box 592 is for programming in units of insulin and is for setting the increments at which a user can spin through bolus 5 amounts. The spin box 594 is for programming in grams of carbohydrates and is for setting the increments at which a user can spin through grams of carbohydrates to be consumed in a meal. When the user sets the first button for programming in units of insulin, the third spin box 592 is enabled and the fourth 594 spin box is disabled. When the user 10 sets the second button for programming in grams of carbohydrates, the fourth 594 spin boxes is enabled, and the third spin box 592 is disabled. To enable the extended bolus program, the user sets the first check box 596. To enable the combination bolus program, the user sets the second check box 598. To enable the audio bolus function, the user sets the third check box 600. 15 To enable to food database, the user sets the fourth check box 602. Selection of the fourth check box 602 can optionally trigger creation of another window (not shown) used for browsing a food database stored on the computer. The custom meal bolus table 608 has a plurality of rows, and each row has a plurality of cells. The user navigates through the meal bolus table 608 using 20 procedures substantially similar to that of the basal rate table. Also similar to the basal rate table, the custom meal bolus table 608 can have various spin boxes that become visible when a cell has focus. The spin boxes are for entering values and pre-typed text into the cell with which it is associated. Within the meal bolus table 608, each row has seven cells. The first cell 612 25 has a check box 613. To enable the custom meal bolus defined by that row, the user sets the check box 613. The second cell 614 has a text field in which the user types a name to identify the custom meal bolus defined by that row. An example includes pizza, when the operating parameters for the custom meal bolus are customized to deliver insulin for working against a meal of pizza. Other examples, might include 30 breakfast, lunch, dinner, snack, or any other specific type of food, drink, or meal. The third cell 616 contains a text field for entering the type of custom meal bolus, whether it is a standard bolus, an extend bolus, or a combination bolus. In one possible embodiment, a spin box is presented in the third cell 616 when focus is 69 placed on the cell. The user can then spin through the types of bolus (e.g., standard, extended, or combination) and set the desired type. The fourth cell 618 is a numeric field for entering the default number of carbohydrates to be delivered by the bolus program defined by that row. The fifth cell 620 is a duration field in which the user 5 enters the duration of the bolus delivery if the bolus program defined by that row is an extended bolus or a combination bolus. The sixth cell 622 is a numeric field in which the user enters the percent of the bolus to be delivered immediately if the bolus program defined by that row is a combination bolus. The seventh cell 626 contains a text field for entering the type of 10 carbohydrate ratio entered into. the pump 100. In the embodiment shown, the carbohydrate ratio is either a Fixed or Scheduled ratio. When a Scheduled carbohydrate ratio is selected, the custom bolus uses the carbohydrate ratio that is currently in use by the pump 100. If a Fixed carbohydrate ratio is selected, the custom bolus uses the carbohydrate ratio entered in the eighth cell 624. In one 15 possible embodiment, a spin box is presented in the seventh cell 626 when focus is placed on the cell. The user can then spin through the types of carbohydrate ratios (e.g., Fixed or Scheduled) to set the desired type. The eighth cell 624 is a numeric field in which the user enters the carbohydrate ratio the pump 100 is to use when the seventh cell is set to Fixed. The carbohydrate ratio 20 is used when calculating the bolus amount to deliver. The eighth cell 624 allows the user to enter a customized carbohydrate ratio independent of the carbohydrate ratio schedule. For example, a user might use one carbohydrate for a custom meal bolus to be delivered before an early morning breakfast and a different carbohydrate ratio for a custom meal bolus to be delivered prior to an exercise session. 25 If the type of meal bolus set in the third cell (Type of Meal Bolus) 616 is standard, the fifth cell (Duration) 620 and sixth cell (% as Immediate) 622 are disabled and cleared. If the type of meal bolus set in the third cell 616 is an extended bolus, the fifth cell 620 is enabled and the sixth cell 622 is disabled and cleared. If the type of meal bolus set in the third cell 616 is set as a combination 30 bolus, the fifth 620 and sixth 622 cells are enabled. Also, the fourth cell 618 allows a default number carbohydrates for the custom bolus to be entered. For example, if a user eats a 40 gram carbohydrate snack before bed each night, a custom meal bolus called "Bedtime Snack" could be 70 created with a default carbohydrate value of 40 grams. The default value can be adjusted before the bolus is delivered. An optional second panel (not shown) in the primary window 544b for the meal bolus delivery program presents instructions. It operates in a manner 5 substantially similar to the third, instruction panel 580 in the first primary window 544a for the basal rate delivery programs as described above. Figure 27C illustrates the third primary window 544c, which is for setting the operating parameters for the correction bolus delivery program. The primary window 544c can contain two panels. The first panel 628 has buttons, check boxes, 10 and spin boxes. A first group box 030 in the first panel 628 has first and second check boxes 632 and 634. To control the pump 100 to make the correction bolus delivery program available through the main menu 190 and to display a correction bolus menu item in the main menu 190, the first check box 632 is set. To make the correction-bolus program available through the meal bolus delivery programs 15 described above, the second check box 634 is set. A table control 638 resides within a second group box 640, and sets a schedule of correction factors. The correction factors define operating parameters used by the correction bolus program. The table control allows the user to define a start time and a Factor, which refers to the amount of correction which could occur 20 at that time of day. Alternately, a pair of buttons set the units for the operating parameters used by the correction bolus program. The pair of buttons toggle between set and cleared states so that when one is set the other is cleared. The first button is set to use mg/dL and the second button is set to use mmol/l. A first spin box is for setting the correction bolus factor. When the first spin box is in focus, the 25 user spins through value until the desired correction factor is set. The pair of buttons and the first spin box are optionally organized into the second group box 640. A third group box 635 has buttons and a table control. The buttons 636 set the method by which blood glucose is measured. In the embodiment shown, the buttons 636 allow a user to select between units of mg/dl and mmol/L. The table 30 control 637 defines one or more target blood glucose levels and associates the target blood glucose levels with times of the day. In an optional embodiment, the table control 637 allows a user to define a schedule or target blood glucose levels for one or more days. 71

Claims (21)

1. A method of setting an insulin delivery rate in a pump comprising: storing one or 5 more daily basal rate patterns in the pump; associating one of the daily basal rate patterns with a day of the week; and upon occurrence of the day of the week, executing the daily basal rate pattern.
2. The method of claim 1, further comprising associating one of the daily basal rate patterns with each day of the week. 10
3. The method of claim 2, further comprising, upon occurrence of each day of the week, executing the daily basal rate pattern associated with that day of the week.
4. The method of claim 1, further comprising associating a missed meal bolus alert set with the day of the week.
5. The method of claim 1, further comprising associating a different missed meal 15 bolus alert set with each day of the week.
6. The method of claim 1, further comprising generating a daily basal rate pattern.
7. The method of claim 4, further comprising generating a missed meal bolus alert set.
8. The method of claim 4, wherein each day of the week is associable with a missed meal bolus alert set. 20
9. The method of claim 1, wherein each day of the week is associable with a daily basal rate pattern.
10. The method of claim 1, further comprising defining one or more basal patterns for temporary use on one or more days of the week.
11. The method of claim 1, wherein a computing system interfaced with the pump 25 associates one of the daily basal rate patterns with a day of the week.
2107116-1 78 12. The method of claim 1, further comprising temporarily associating one of the daily basal rate patterns with a current day of the week. 13. The method of claim 1, further comprising temporarily associating one of the daily basal rate patterns with an upcoming day of the week 5 14. The method of claim 1, further comprising displaying weekly schedule information on a screen associated with the pump. 15. The method of claim 1, further comprising displaying monthly schedule information on a screen associated with the pump. 16. The method of claim 1, further comprising displaying yearly schedule information 10 on a screen associated with the pump. 17. An insulin pump comprising: a pump mechanism; a memory configured to store one or more daily basal rate patterns for delivery by the pump; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory and programmed to: store one or more daily basal rate patterns in the pump; associate 15 one of the daily basal rate patterns with a day of the week; and upon occurrence of the day of the week, execute the daily basal rate pattern. 18. The insulin pump of claim 17, wherein the programmable circuit is further programmed to, upon occurrence of each day of the week, execute the daily basal rate pattern associated with that day of the week. 20 19. The insulin pump of claim 17, wherein the programmable circuit is further programmed to generate a daily basal rate pattern. 20. The insulin pump of claim 17, wherein the programmable circuit is further programmed to generate a missed meal bolus alert set. 21. The insulin pump of claim 17, wherein the programmable circuit is further 25 programmed to temporarily associate a daily basal rate pattern with a current day of the week. 2107116-1 79 22. The insulin pump of claim 17, wherein the programmable circuit is further programmed to temporarily associate a daily basal rate pattern with an upcoming day of the week. 23. The insulin pump of claim 17, wherein the programmable circuit is further 5 programmed to display weekly schedule information on a screen associated with the pump. 24. The insulin pump of claim 17, wherein the programmable circuit is further programmed to display monthly schedule information on a screen associated with the pump. 10 25. The insulin pump of claim 17, wherein the programmable circuit is further programmed to display yearly schedule information on a screen associated with the pump. 26. A method of setting insulin delivery rates in a pump comprising: generating one or more daily basal rate patterns; generating one or more missed meal bolus alert sets; 15 storing the one or more daily basal rate patterns and missed meal bolus alert sets in the pump; associating one of the daily basal rate patterns with each day of the week; associating one of the missed meal bolus alert set with each day of the week; and upon occurrence of the day of the week, executing the daily basal rate pattern and missed meal bolus alert set associated with that day of the week. 20 [PCT/US07/22052] 1. An insulin pump comprising: a pump mechanism; a memory configured to store a plurality of food entries in a food database; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, the 25 programmable circuit programmed to: accept entry of one or more food entries into the food database; associate each of the one or more food entries with a carbohydrate value; prompt selection of one or more food entries; and calculate a meal bolus based on the one or more food entries. 2107116-1 80 2. The insulin pump of claim 1 wherein the programmable circuit is further programmed to accept one or more names and categories for each food. 3. The insulin pump of claim 2, wherein the categories include one or more hierarchical levels of categories. 5 4. The insulin pump of claim I wherein at least one food entry represents a single food item. 5. The insulin pump of claim 1, wherein at least one food entry represents a meal, the meal including a plurality of food items. 6. The insulin pump of claim 5, wherein the programmable circuit is further 10 programmed to allow entry of serving sizes for each of the plurality of food items. 7. The insulin pump of claim 1, wherein the one or more food entries include carbohydrate information. 8. The insulin pump of claim 1, wherein the one or more food entries include serving size information. 15 9. The insulin pump of claim 1, wherein the one or more food entries include nutritional information. 10. The insulin pump of claim 1, wherein the programmable circuit is further programmed to store the food entry in the memory as a custom bolus. 11. The insulin, pump of claim 1, wherein the programmable circuit is further 20 programmed to deliver a meal bolus via the pump mechanism.
12. The insulin pump of claim 1, wherein the meal bolus is calculated based on a total carbohydrate value representing a sum of the carbohydrate values associated with the selected food entries.
13. The insulin pump of claim 1, wherein the meal bolus is calculated based on 25 nutritional information associated with the selected food entries. 2107116-1 81 14. The insulin pump of claim 1, wherein the programmable circuit is further programmed to prompt a user to input a serving size of the food entry. 15. The insulin pump of claim 14, wherein the programmable circuit is further programmed to limit the serving size based on a maximum deliverable meal bolus. 5 16. The insulin pump of claim 1, wherein the programmable circuit is further programmed to associate nutritional information with each of the one or more food entries. 17. The insulin pump of claim 16, wherein the nutritional information includes at least one of fiber, fat, or protein information. 10 18. The insulin pump of claim 1, wherein the programmable circuit is further programmed to, upon determination of nutritional information, transmit a message to the user, the message regarding food or insulin intake. 19. The insulin pump of claim 18, wherein the message includes one or more recommendations regarding timing and amount of meal consumption. 15 20. The insulin pump of claim 18, wherein the message includes one or more recommendations regarding timing and amount of bolus delivery. 21. The insulin pump of claim 18, wherein the nutritional information includes a glycemic index. 22. The insulin pump of claim 1, wherein the food entries comprise meals consumed 20 by the user. 23. The insulin pump of claim 1, wherein the food database holds up to 500 food entries. 24. The insulin pump of claim 1, wherein the food database is customizable to include parameters related to dietary information. 25 25. The insulin pump of claim 1 , wherein the programmable circuit is further programmed to associate one or more foods with a physical condition of the user. 2107116-1 82 26. The insulin pump of claim 25, wherein the physical condition is a low blood glucose level. 27. The insulin pump of claim 25, wherein the programmable circuit is further programmed to, upon detection of the physical condition, display one or more of the 5 foods associated with the physical condition. 28. A method of calculating a meal bolus in an insulin pump, the method comprising: accepting entry of one or more food entries to form a food database; associating each of the one or more food entries with a carbohydrate value; selecting one or more food entries; calculating a meal bolus based on the one or more food entries; prompting 10 selection of one or more food entries; and calculating a meal bolus based on the one or more food entries. 29. The method of claim 28, wherein calculating a meal bolus comprises computing a total carbohydrate value representing a sum of the carbohydrate values associated with the selected food entries. 15 30. The method of claim 28, wherein at least one food entry represents a single food item. 31. The method of claim 28, wherein at least one food entry represents a meal, the meal including a plurality of food items. 32. The method of claim 28, wherein the one or more food entries comprise meals 20 consumed by a user. 33. The method of claim 28, further comprising delivering a meal bolus to the user. 34. The method of claim 28, wherein the food database holds 500 or less food entries. 35. The method of claim 28, further comprising associating nutritional information with each of the one or more food entries. 25 36. The method of claim 35, further comprising storing nutritional information related to the selected one or more food entries, wherein the nutritional information represents historical nutritional intake. 2107116-1 83 37. The method of claim 28, further comprising accepting one or more names and categories for each food. 38. The method of claim 37, wherein the categories include one or more hierarchical levels of categories. 5 39. The method of claim 38, further comprising allowing entry of serving sizes for each of the plurality of food items. 40. The method of claim 28, further comprising storing the meal bolus in the memory as a custom bolus. 41. The method of claim 28, further comprising prompting a user to input a 10 customizable serving size of the food entry. 42. The method of claim 41, further comprising limiting the serving size based on a maximum deliverable meal bolus. 43. The method of claim 28, further comprising delivering the meal bolus to the user at a predetermined time. 15 44. The method of claim 28, further comprising generating a report. 45. The method of claim 44, wherein the report includes post prandial blood glucose measurements. 46. The method of claim 44, wherein the report includes insulin delivery suggestions or food intake suggestions based on the post prandial blood glucose measurements. 20 47. An insulin pump comprising: a pump mechanism; a memory configured to store a plurality of food entries in a food database; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, the programmable circuit programmed to: accept entry of one or more food entries into the food database; associate each of the one or more food entries with nutritional 25 information including a carbohydrate value; select one or more of the food entries in the food database; calculate a meal bolus based on the one or more food entries; and deliver the meal bolus to the user. 2107116-1 84 [PCT/US07/22050] 1. A method of delivering insulin to compensate for suspension of basal insulin 5 delivery, the method comprising: prompting a user to input a period in which to suspend delivery of insulin from an insulin pump; calculating an amount of insulin to be delivered during the period; prompting the user to select a portion of the amount of insulin; delivering the portion of the amount of insulin to the patient; and suspending basal delivery of insulin from the pump. 10 2. The method of claim 1, further comprising prompting the user to check their blood glucose level prior to suspending delivery from the pump. 3. The method of claim 2, further comprising adjusting the amount of insulin delivered to the user based on the user's blood glucose level. 4. The method of claim 1, wherein the period is about equal to or less than two hours. 15 5. The method of claim 1, wherein the portion is a percentage less than or equal to 100%. 6. The method of claim 1, wherein delivering the portion of the amount of insulin comprises delivering a disconnect bolus to the user. 7. The method of claim 1, further comprising, after suspending delivery of insulin 20 from the pump, allowing a meal bolus to be delivered while basal remains suspended. 8. The method of claim 1, further comprising, after suspending delivery of insulin from the pump, allowing a correction bolus to be delivered while basal remains suspended. 9. The method of claim 1, further comprising, upon elapsed period, generating a 25 reminder alarm. 10. The method of claim 1, further comprising detecting reactivation of the pump. 2107116-1 85 11. The method of claim 10, further comprising, upon detection of reactivation of the pump, calculating a suspension time in which the pump delivered no insulin to the user. 12. The method of claim 11, further comprising delivering a reconnect bolus to the 5 user. 13. The method of claim 12, further comprising adjusting the reconnect bolus based on the user's blood glucose level.
14. The method of claim 12, further comprising adding a correction bolus to the reconnect bolus. 10 15. The method of claim 12, wherein the reconnect bolus comprises at least a portion of a difference between the amount of insulin to be delivered to the user and the percentage of the amount of insulin selected by the user. 16. The method of claim 15, wherein, if the difference is negative, no reconnect bolus is delivered by the pump.
15 17. The method of claim 16, wherein no insulin is delivered by the pump until the difference is no longer negative. 18. The method of claim 1, wherein calculating an amount of insulin includes summing scheduled insulin delivery for the period in which to suspend delivery. 19. The method of claim 18, wherein the scheduled insulin delivery includes one or 20 more basal rates. 20. The method of claim 19, wherein the one or more basal rates are modifiable by one or more temporary basal rates. 21. The method of claim 19, wherein the one or more basal rates are modifiable based on a day of the week. 25 22. An insulin pump comprising: a pump mechanism; a memory configured to store information related to insulin to be delivered to a user; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, 2107116-1 86 the programmable circuit programmed to compensate for suspension of basal insulin delivery, the programmable circuit configured to: prompt a user to input a period in which to suspend delivery of insulin from an insulin pump; upon inputting a period in which to suspend delivery of insulin, calculate an amount of insulin to be delivered to 5 the user during the period; prompt the user to select a portion of the amount of insulin; deliver the portion of the amount of insulin to the patient; and suspend basal delivery of insulin from the pump. 23. The insulin pump of claim 22, wherein the amount of insulin comprises a bolus to be delivered to the user. 10 24. The insulin pump of claim 22, wherein the programmable circuit is further configured to detect reactivation of the pump. 25. The insulin pump of claim 24, wherein the programmable circuit is further configured to, upon detection of reactivation of the pump, calculate a suspension time in which the pump delivered no insulin to the user. 15 26. The insulin pump of claim 25, wherein the programmable circuit is further configured to deliver a reconnect bolus to the user. 27. The insulin pump of claim 26, wherein the reconnect bolus comprises at least a portion of a difference between the amount of insulin to be delivered to the user and the percentage of the amount of insulin selected by the user. 20 28. The insulin pump of claim 22, wherein the scheduled insulin delivery includes one or more basal rates. [PCT/US07/22051] 25 1. A method of programming a pump comprising: displaying a first screen on a display of the pump; upon displaying the first screen, emitting a first sound; displaying a second screen on the display of the pump, the second screen different from the first screen; and upon displaying the second screen, emitting a second sound different from the first sound. 2107116-1 87 2. The method of claim 1, wherein the first screen is a main menu. 3. The method of claim 1, wherein the second screen is a submenu reached by selecting an option from the main menu. 4. The method of claim 1, wherein the second screen is optionally displayed while 5 programming the pump. 5. The method of claim 1, further comprising emitting the second sound a second time, the second time occurring a first predetermined time after the second screen is initially displayed. 6. The method of claim 5, further comprising reverting to the first screen at a second 10 predetermined time after the first predetermined time. 7. The method of claim 6, wherein the second predetermined time is thirty seconds. 8. The method of claim 6, wherein the second predetermined time is fifteen seconds. 9. The method of claim 1, wherein the first sound has a first pitch and the second sound has a second pitch, the first pitch different from the second pitch. 15 10. The method of claim 1, wherein the first sound has a first length and the second sound has a second length, the first length different from the second length. 11. The method of claim 1, wherein the first sound has a first number of occurrences and the second sound has a second number of occurrences, the first number of occurrences different from the second number of occurrences. 20 12. The method of claim 1, further comprising assigning one or more audible alerts to one or more conditions in the pump. 13. The method of claim 12, wherein the one or more audible alerts are user customizable. 14. The method of claim 1, further comprising emitting an audible message. 25 15. The method of claim 14, wherein the audible message represents a numeric value. 2107116-1 88 16. The method of claim 14, wherein the audible message is in Morse code. 17. A method of programming a pump comprising: providing a first key having a first function and a second key having a second function different from the first function; assigning a first sound to the first key; and assigning a second sound to the second 5 key, the second sound different from the first sound. 18. The method of claim 17, further comprising, upon detection of activation of the first key, emitting the first sound. 19. The method of claim 17, farther comprising, upon detection of activation of the second key, emitting the second sound. 10 20. The method of claim 17, wherein the first key is an up key. 21. The method of claim 20, wherein the second key is a down key. 22. The method of claim 21, wherein the second sound has a lower pitch than the first sound. 23. The method of claim 21 , wherein the up key and the down key select a current 15 value from an operational range having an upper threshold value and a lower threshold value. 24. The method of claim 23, wherein activation of the up key when the current value is equal to the upper threshold value does not change the current value. 25. The method of claim 23, wherein activation of the up key when the current value 20 is equal to the upper threshold value causes the current value to become equal to the lower threshold value. 26. The method of claim 23, wherein activation of the down key when the current value is equal to the lower threshold value does not change the current value. 27. The method of claim 23, wherein activation of the down key when the current 25 value is equal to the lower threshold value causes the current value to become equal to the upper threshold value. 2107116-1 89 28. The method of claim 24, further comprising, upon detection of activation of the up key, emitting a sound different from the first sound and the second sound. 29. The method of claim 25, further comprising, upon detection of activation of the up key, emitting a sound different from the first sound and the second sound. 5 30. The method of claim 26, further comprising, upon detection of activation of the down key, emitting a sound different from the first sound and the second sound. 31. The method of claim 27, further comprising, upon detection of activation of the down key, emitting a sound different from the first sound and the second sound. 32. The method of claim 18, further comprising, upon detection of continuous 10 activation of the up key, emitting a sound each time a value increments within the pump. 33. The method of claim 19, further comprising, upon detection of continuous activation of the down key, emitting a sound each time a value decrements within the pump. 15 34. The method of claim 17, further comprising, upon reaching a predetermined value, emitting the first sound or the second sound. 35. The method of claim 17, further comprising assigning one or more audible alerts to one or more conditions in the pump. 36. The method of claim 35, wherein the one or more audible alerts are user 20 customizable. 37. The method of claim 17, wherein the first sound and second sound change based upon a value within a range of values associated with the pump. 38. The method of claim 37, wherein higher values result in higher pitched first and second sounds. 25 39. The method of claim 37, wherein higher values result in shorter first and second sounds. 2107116-1 90 40. The method of claim 17, farther comprising emitting an audible message. 41. The method of claim 40, wherein the audible message represents a numeric value. 42. The method of claim 40, wherein the audible message is in Morse code. 43. An insulin pump comprising: a pump mechanism; a memory configured to store a 5 plurality of screens used in programming the pump, the plurality of screens including a first screen and a second screen; a display; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory and the display, the programmable circuit programmed to: display a first screen on the display; upon displaying the first screen, emit a first sound; display a second screen on 10 the display, the second screen different from the first screen; and upon displaying the second screen, emit a second sound different from the first sound. 44. The insulin pump of claim 43, wherein the first screen is a main menu. 45. The insulin pump of claim 43, wherein the second screen is a submenu reached by selecting an option from the main menu. 15 46. The insulin pump of claim 43, wherein the second screen is optionally displayed while programming the pump. 47. The insulin pump of claim 43, wherein the programmable circuit is further configured to emit the second sound again a first predetermined time after the second screen is initially displayed. 20 48. An insulin pump comprising: a memory configured to store a plurality of screens used in programming the pump, the plurality of screens including a first screen and a second screen; a display; a programmable circuit operatively connected to the memory and the display, the programmable circuit programmed to: provide a first key having a first function and a second key having a second function different from the 25 first function; assign a first sound to the first key; and assign a second sound to the second key, the second sound different from the first sound. 49. The insulin pump of claim 48, further comprising, upon detection of activation of the first key, emitting the first sound. 2107116-1 91 50. The insulin pump of claim 48, wherein the programmable circuit is further programmed to, upon detection of activation of the second key, emit the second sound. 51. The insulin pump of claim 48, wherein the first key is an up key. 5 52. The insulin pump of claim 51, wherein the second key is a down key. 53. The insulin pump of claim 52, wherein the second sound has a lower pitch than the first sound. 54. An insulin pump comprising: a pump mechanism; a memory configured to store a plurality of screens used in programming the pump, the plurality of screens including 10 a first screen and a second screen, the memory further configured to store a plurality of sounds including a first sound and a second sound; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, the programmable circuit programmed to: provide an up key and a down key for selecting a current value from an operational range having an upper threshold value 15 and a, lower threshold value; assign the first sound to the up key; assign the second sound to the down key, the second sound different from the first sound; upon detection of activation of the up key, emit the first sound; and upon detection of activation of the down key, emit the second sound; wherein the first sound has a higher pitch than the second sound. 20 55. The insulin pump of claim 54, wherein activation of the up key when the current value is equal to the upper threshold value does not change the current value. 56. The insulin pump of claim 54, wherein activation of the up key when the current value is equal to the upper threshold value causes the current value to become equal to the lower threshold value. 25 57. The insulin pump of claim 54, wherein activation of the down key when the current value is currently equal to the lower threshold value does not change the current value. 2107116-1 92 58. The insulin pump of claim 54, wherein activation of the down key when the 30 current value is equal to the lower threshold value causes the current value to become equal to the upper threshold value. 5 [PCT/US07/22046] 1. A method of establishing an insulin delivery rate in a pump, the method comprising: selecting a set of alerts from one or more sets of alerts; initiating a test process based on the set of alerts; and upon activation of each alert in the selected set 10 of alerts, prompting a user to input a blood glucose level. 2. The method of claim 1, wherein the one or more sets of alerts include alerts representing preselected times of the day. 3. The method of claim 1, wherein the one or more sets of alerts are selected from a group of sets of alerts selected from the group consisting of: morning basal test alerts; 15 afternoon basal test alerts; evening basal test alerts; and overnight basal test alerts. 4. The method of claim 1, wherein the one or more sets of alerts are customizable. 5. The method of claim 1, further comprising, upon prompting a user to input a blood glucose level, allowing a user to optionally delay input of the blood glucose level. 6. The method of claim 1, further comprising, upon activation of each alert in the set 20 of alerts, displaying a blood glucose input screen. 7. The method of claim 1, wherein the one or more sets of alerts represents morning, afternoon, evening, and overnight basal rate tests. 8. The method of claim 1, further comprising determining that the blood glucose level is outside of a range defined by a low blood glucose threshold and a high blood 25 glucose threshold. 9. The method of claim 8, wherein the low blood glucose threshold and the high blood glucose threshold are programmable by a user. 2107116-1 93 10. The method of claim 8, further comprising, upon determining that the blood glucose level is outside the range, aborting the test process. 11. The method of claim 8, further comprising, upon detennining that the blood glucose level is outside the range, displaying a warning. 5 12. The method of claim 8, further comprising, upon determining that the blood glucose level is nearing the low blood glucose threshold or the high blood glucose threshold, increasing the frequency of blood glucose alerts. 13. The method of claim 1 , further comprising, prior to initiating the test process, presenting a series of health-related questions to a user. 10 14. The method of claim 1, further comprising, prior to initiating the test process, detecting one or more conditions preventing initiation of the test process. 15. The method of claim 14, further comprising, upon detecting one or more conditions preventing initiation of the test process, delaying initiation of the test process at least until the one or more conditions no longer exist. 15 16. The method of claim 1, further comprising aborting the test process upon detection of a changed condition in the pump. 17. The method of claim 16, wherein the changed condition is selected from a group of conditions consisting of: an activated meal bolus; an activated correction bolus; an activated temporary rate; a non-scheduled change in basal rate; a non-scheduled 20 change in basal pattern; a changed insulin cartridge; an extended power interruption to the pump ; and a downstream occlusion alarm. 18. The method of claim 1, further comprising presenting one or more questions to the user prior to initiating the test process. 19. The method of claim 18, wherein at least one of the one or more questions relates 25 to stress. 20. The method of claim 18, wherein at least one of the one or more questions relates to health. 2107116-1 94 21. The method of claim 18, wherein at least one of the one or more questions relates to activity levels. 22. The method of claim 18, further comprising logging user answers to the one or more questions. 5 23. The method of claim 1, wherein the method further comprises displaying test history data. 24. The method of claim 23, wherein the test history data includes one or more data sets representing one or more test processes. 25. The method of claim 23, wherein the test history data is displayed on the pump. 10 26. The method of claim 23, wherein the test history data is displayed on a computing system interfaced with the pump. 27. An insulin pump comprising: a pump mechanism; a memory configured to store one or more sets of alerts; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, the programmable circuit 15 programmed to: select a set of alerts from one or more sets of alerts; initiate a test process based on the set of alerts; and upon activation of each alert in the selected set of alerts, display a blood glucose input screen prompting a user to input a blood glucose level. 28. The insulin pump of claim 27, wherein the one or more sets of alerts are 20 customizable. 29. The insulin pump of claim 27, wherein the programmable circuit is further programmed to allow a user to optionally delay input of the blood glucose level. 30. The insulin pump of claim 27, wherein the one or more sets of alerts represents morning, afternoon, evening, and overnight basal rate tests. 25 31. The insulin pump of claim 27, further comprising determining that the blood glucose level is outside of a range defined at least in part by a low blood glucose threshold or a high blood glucose threshold. 2107116-1 95 32. The insulin pump of claim 30, wherein the low blood glucose threshold and the high blood glucose threshold are programmable by a user. 33. The insulin pump of claim 30, wherein the programmable circuit is further programmed to, upon determining that the blood glucose level is outside the range, 5 abort the test process. 34. The insulin pump of claim 30, wherein the programmable circuit is further programmed to, upon determining that the blood glucose level is outside the range, display a warning. 35. The insulin pump of claim 27, wherein the programmable circuit is further 10 programmed to display test history data on a display associated with the pump. 36. The insulin pump of claim 34, wherein the test history data includes one or more data sets representing one or more test processes. 37. The insulin pump of claim 27, wherein the programmable circuit is further programmed to present one or more questions to the user prior to initiating the test 15 process. 38. The insulin pump of claim 36, wherein at least one of the one or more questions relates to stress. 39. The insulin pump of claim 36, wherein at least one of the one or more questions relates to health. 20 40. The insulin pump of claim 36, wherein at least one of the one or more questions relates to activity levels 41. The insulin pump of claim 36, wherein the programmable circuit is further programmed to log user answers to the one or more questions. 42. A method of establishing an insulin delivery rate in a pump, the method 25 comprising: selecting a set of customizable alerts from one or more sets of alerts; initiating a test process based on the set of alerts; upon activation of each alert in the selected set of alerts, prompting a user to input a blood glucose level; saving test 2107116-1 96 history data in a memory of the pump; and displaying test history data on a display of the pump. [PCT/US07/22004] 5 1. A method of estimating human insulin absorption for use in an insulin pump, the method comprising: prompting a user to select between a first insulin absorption model and a second insulin absorption model; prompting a user to provide at least one model parameter; and forming an applied insulin absorption model from the selected 10 insulin absorption model and the at least one model parameter. 2. The method of claim 1, further comprising employing the applied insulin absorption model to calculate an insulin level of the user. 3. The method of claim 2, wherein employing the applied insulin absorbing model to calculate the insulin level of the user includes applying the equation 15 Current IOB = Initial Bolus Amount * (Total Time + Start Time - Elapsed Time) / Duration of Activity. 4. The method of claim 1, wherein the first insulin absorption model is linear. 5. The method of claim 1, wherein the second insulin absorption model is nonlinear. 6. The method of claim 1, further comprising providing a third insulin absorption 20 model, wherein the third insulin absorption model is a customizable insulin absorption model. 7. The method of claim 1, wherein the at least one parameter includes a start time. 8. The method of claim 1, wherein the at least one parameter includes a tail time. 9. The method of claim 8, further comprising employing the applied insulin 25 absorption model to calculate an insulin level of the user within the tail time by employing the equation 2107116-1 97 Current 1013 = 0.05 * Initial Bolus Amount * (Elapsed Time Since Tail Time Started) / Total Tail Time. 10. The method of claim 8, further comprising employing the applied insulin absorption model to calculate an insulin level of the user within the tail time by 5 employing the equation Current IOB = Tail Threshold % * Initial Bolus Amount * (Elapsed Time Since Tail Time Started) / Total Tail Time. 11. The method of claim 1, wherein the at least one parameter includes a duration. 12. The method of claim 1, wherein prompting the user to select between the first and 10 second insulin absorption models is performed by the insulin pump. 13. The method of claim 1, wherein prompting the user to select between the first and second insulin absorption models is performed by a computer interfaced with the insulin pump. 14. The method of claim 1, wherein the insulin level is the current insulin level of the 15 user. 15. The method of claim 1, further comprising modifying the applied insulin absorption model based on user entered data.
16. The method of claim 15, wherein the user entered data is selected from a group consisting of: age; weight; sex; type of insulin; fitness level; and body mass index. 20 17. The method of claim 1, further comprising modifying the applied insulin absorption model based on non-user entered data. 18. The method of claim 17, wherein the non-user entered data includes bolus size. 19. An insulin pump comprising: a pump mechanism; a memory configured to store a first insulin absorption model, a second insulin absorption model, and at least one 25 model parameter; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, the programmable circuit programmed to: prompt a user to select between the first insulin absorption model and the second 2107116-1 98 insulin absorption model; prompt a user to provide the at least one model parameter; and form an applied insulin absorption model from the selected insulin absorption model and the at least one model parameter. 20. The insulin pump of claim 19, wherein the programmable circuit is further 5 programmed to employ the applied insulin absorption model to calculate an insulin level of the user. 21. The insulin pump of claim 19, wherein employing the applied insulin absorbing model to calculate the insulin level of the user applies the equation Current IOB = Initial Bolus Amount * (Total Time + Start Time - Elapsed Time) / 10 Duration of Activity. 22. The insulin pump of claim 19, wherein the at least one model parameter includes a start time. 23. The insulin pump of claim 19, wherein the at least one model parameter includes a tail time. 15 24. The insulin pump of claim 19, wherein the at least one model parameter includes a duration. 25. The insulin pump of claim 19, wherein the first insulin absorption model is linear. 26. The insulin pump of claim 19, wherein the second insulin absorption model is nonlinear. 20 27. The insulin pump of claim 19, wherein the programmable circuit is further programmed to modify the applied insulin absorption model based on user entered data. 28. The insulin pump of claim 19, wherein the programmable circuit is further programmed to modify the applied insulin absorption model based on non-user 25 entered data. 29. A method of estimating human insulin absorption for use in an insulin pump, the method comprising: prompting a user to select between a linear absorption model and 2107116-1 99 a nonlinear insulin absorption model; prompting a user to provide a duration of the insulin absorption; prompting a user to provide a start time; prompting a user to provide a tail time; forming an applied insulin absorption model from the selected insulin absorption model, the duration, the start time, and the tail time; employing the 5 applied insulin absorption model to calculate an insulin level of the user. 30. The method of claim 29, wherein prompting the user to select between the linear absorption model and the nonlinear absorption model is performed by the insulin pump. 10 [PCT/US07/22049] 1. A method of regulating blood glucose using an insulin pump, the method comprising: storing a target blood glucose level in the pump; receiving a current blood glucose level; comparing the current blood glucose level to the target blood glucose 15 level; and upon detection of a current blood glucose level lower than the target blood glucose level, calculating a carbohydrate value required to change the current blood glucose level to the target blood glucose level. 2. The method of claim 1, further comprising, upon detection of a current blood glucose level lower than the target blood glucose level, issuing an alert. 20 3. The method of claim 2, wherein the alert is a message displayed on the insulin pump. 4. The method of claim 1, further comprising displaying the carbohydrate value. 5. The method of claim 4, wherein the displayed carbohydrate value is editable by a user. 25 6. The method of claim 5, wherein, upon determination that the displayed carbohydrate value is greater than the carbohydrate value required to change the current blood glucose level to the target blood glucose level, calculating a meal bolus. 7. The method of claim 6, further comprising delivering the meal bolus. 2107116-1 100 8. The method of claim 1, further comprising calculating a future blood glucose level based on the current blood glucose level and an insulin on board amount. 9. The method of claim 8, further comprising upon detection of the future blood glucose level lower than the target blood glucose level, calculating a carbohydrate 5 value required to change the future blood glucose level to the target blood glucose level. 10. The method of claim 1, wherein calculating a carbohydrate value requires use of one or more correction factors. 11. The method of claim 1, further comprising displaying the current blood glucose 10 level. 12. An insulin pump comprising: a pump mechanism; a memory configured to store a target blood glucose level; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, the programmable circuit programmed to: receive a current blood glucose level; compare the current blood 15 glucose level to the target blood glucose level; and upon detection of a current blood glucose level lower than the target blood glucose level, calculate a carbohydrate value required to change the current blood glucose level to the target blood glucose level. 13. The insulin pump of claim 12, wherein, upon detection of a current blood glucose level lower than the target blood glucose level, issuing an alert. 20 14. The insulin pump of claim 13, wherein the alert is a message. 15. The insulin pump of claim 12, wherein the programmable circuit is further programmed to display the carbohydrate value. 16. The insulin pump of claim 15, wherein the programmable circuit is further programmed to allow editing of the displayed carbohydrate value. 25 17. The insulin pump of claim 16, wherein the programmable circuit is further programmed to, upon determining that the displayed carbohydrate value is greater than the carbohydrate value required to change the current blood glucose level to the target blood glucose level, calculate a meal bolus. 2107116-1 101 18. The method of claim 17, wherein the programmable circuit is further programmed to delivering the meal bolus. 19. The insulin pump of claim 12, wherein the programmable circuit uses one or more correction factors to calculate the carbohydrate value. 5 20. The insulin pump of claim 12, wherein the programmable circuit is further programmed to calculate a future blood glucose level based on the current blood glucose level and an insulin on board amount. 21. The insulin pump of claim 20, wherein the programmable circuit is further programmed to, upon detection of the future blood glucose level lower than the target 10 blood glucose level, calculate a carbohydrate value required to change the future blood glucose level to the target blood glucose level. 22. The insulin pump of claim 12, wherein the programmable circuit is further programmed to display the current blood glucose level. 23. A method of regulating blood glucose using an insulin pump, the method 15 comprising: storing a target blood glucose level in the pump; receiving a current blood glucose level; comparing the current blood glucose level to the target blood glucose level; upon detection of a current blood glucose level lower than the target blood glucose level, calculating a carbohydrate value required to change the current blood glucose level to 20 the target blood glucose level, based on one or more correction factors; and displaying an alert message on a display incorporated into the pump, the alert message including an editable carbohydrate value and the current blood glucose value. 24. The method of claim 23, wherein the alert message further includes the target blood glucose value. 25 [PCT/US07/22048] 2107116-1 102 1. A method of regulating blood glucose levels using an insulin pump, the method comprising: receiving a current blood glucose level; determining whether the current blood glucose level is above a threshold value; and calculating a correction bolus value based upon the current blood glucose. 5 2. The method of claim 1, further comprising delivering the correction bolus to the user. 3. The method of claim 1, further comprising: upon determining that the current blood glucose level is above the threshold value, altering a correction bolus calculation factor; calculating the correction bolus value using the correction factor. 10 4. The method of claim 1, further comprising, upon determining that the current blood glucose level is above the threshold value, increasing the correction bolus value by a predefined amount. 5. The method of claim 4, wherein the predefined amount is a percentage of the correction bolus value. 15 6. The method of claim 5, further comprising prompting a user to input the percentage and the threshold value to define a rule. 7. The method of claim 6, further comprising prompting the user to define a plurality of rules. 8. The method of claim 6, wherein the pump prompts the user. 20 9. The method of claim 6, wherein a computing system interfaced with the pump prompts the user. 10. The method of claim 4, further comprising displaying the predefined amount on a display of the insulin pump. 11. The method of claim 1, further comprising displaying the correction bolus value 25 on a display of the insulin pump. 2107116-1 103 12. The method of claim 1, wherein calculating a correction bolus value is further based on an insulin absorption model selected from a plurality of insulin absorption models. 13. An insulin pump comprising: a pump mechanism; a memory configured to store 5 one or more blood glucose levels; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, the programmable circuit programmed to: receive a current blood glucose level; determine whether the current blood glucose level is above a threshold value; and calculate a correction bolus value based upon the current blood glucose. 10 14. The insulin pump of claim 13, wherein the programmable circuit is further programmed to deliver the correction bolus to the user. 15. The insulin pump of claim 13, wherein the programmable circuit is further programmed to, upon determining that the current blood glucose level is above the threshold value, alter a correction bolus calculation factor. 15 16. The insulin pump of claim 15, wherein the programmable circuit is further programmed to calculating the correction bolus value using the correction bolus calculation factor.
17. The insulin pump of claim 13, wherein the programmable circuit is further programmed to, upon determining that the current blood glucose level is above the 20 threshold value, increasing the correction bolus value by a predefined amount.
18. The insulin pump of claim 13, wherein the predefined amount is a percentage of the correction bolus value.
19. The insulin pump of claim 13, wherein the programmable circuit is further programmed to prompt a user to input the percentage and the threshold value to define 25 a rule.
20. The insulin pump of claim 13, wherein the programmable circuit is further programmed to prompt the user to define a plurality of rules. 2107116-1 104
21. An insulin pump comprising: a pump mechanism; a memory configured to store one or more rules, each rule including a threshold and a percentage; a programmable circuit arranged to control the pump mechanism and operatively connected to the memory, the programmable circuit programmed to: prompt a user to input the 5 threshold value and the percentage for at least one rule; receive a current blood glucose level; determine whether the current blood glucose level is above a threshold value; upon determining that the current blood glucose level is above the threshold value, alter a correction bolus calculation factor; calculate a correction bolus value based upon the correction factor; and deliver the correction bolus to the user. 10 Dated this 15th May 2009 SMITHS MEDICAL MD, INC. SPRUSON & FERGUSON Patent Attorneys for the Applicant 2107116-1 105
AU2009201927A 2006-10-17 2009-05-15 Insulin pump Abandoned AU2009201927A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2009201927A AU2009201927A1 (en) 2006-10-17 2009-05-15 Insulin pump

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/582,519 2006-10-17
US11/582,831 2006-10-17
PCT/US2007/022004 WO2008048556A2 (en) 2006-10-17 2007-10-15 Insulin pump having selectable insulin absorption models
PCT/US2007/022050 WO2008048586A1 (en) 2006-10-17 2007-10-15 Insulin pump having a suspension bolus
AU2009201927A AU2009201927A1 (en) 2006-10-17 2009-05-15 Insulin pump

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2007/022050 Division WO2008048586A1 (en) 2006-10-17 2007-10-15 Insulin pump having a suspension bolus
PCT/US2007/022004 Division WO2008048556A2 (en) 2006-10-17 2007-10-15 Insulin pump having selectable insulin absorption models

Publications (2)

Publication Number Publication Date
AU2009201927A1 AU2009201927A1 (en) 2009-06-11
AU2009201927A8 true AU2009201927A8 (en) 2009-06-18

Family

ID=40792669

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2009201927A Abandoned AU2009201927A1 (en) 2006-10-17 2009-05-15 Insulin pump

Country Status (1)

Country Link
AU (1) AU2009201927A1 (en)

Also Published As

Publication number Publication date
AU2009201927A1 (en) 2009-06-11

Similar Documents

Publication Publication Date Title
US20220101978A1 (en) Insulin pump having basal rate testing features
US7515060B2 (en) Insulin pump for the visually impaired
US20080171967A1 (en) Insulin pump having a food database
US20080172031A1 (en) Insulin pump having correction factors
US20080172029A1 (en) Insulin pump for determining carbohydrate consumption
US20080172028A1 (en) Insulin pump having selectable insulin absorption models
US20080172027A1 (en) Insulin pump having basal rate testing features
US20080172030A1 (en) Insulin pump having aweekly schedule
US20150119805A1 (en) Infusion pump having alarm features
AU2009201927A1 (en) Insulin pump

Legal Events

Date Code Title Description
TH Corrigenda

Free format text: IN VOL 23, NO 22, PAGE(S) 8515 UNDER THE HEADING APPLICATIONS OPI NAME INDEX UNDER THE NAME SMITH MEDICAL MD, INC., APPLICATION NO. 2009201927, UNDER INID (62) INSERT THE NUMBER PCT/ US2007/022046,PCT/US2007/022047,PCT/US2007/022048,PCTUS20 07/022049,PCT/US2007/022051,PCT/US2007/022052

PC1 Assignment before grant (sect. 113)

Owner name: SMITHS MEDICAL ASD, INC.

Free format text: FORMER APPLICANT(S): SMITH MEDICAL MD, INC.

MK1 Application lapsed section 142(2)(a) - no request for examination in relevant period