DETAILED DESCRIPTION
[0025] Various embodiments of the present invention will be described in detail with reference to the drawings, wherein like reference numerals represent like parts 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.
[0026] 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 machine modules or program engines within the programmable circuits.
[0027] The various embodiments execute or utilize operating parameters, which customize or personalize operation of the computer implemented steps, machine 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.
[0028] 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 that includes values the user can enter into the field. 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. 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.
[0029] The description set forth herein discussed 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 o the person who is receiving insulin from the pump. In many contexts, however, the user could also refer to any other person such as a caregiver that is operating the pump.
[0030] A. Pump Architecture
[0031] FIG. 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 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.
[0032] 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 commonly assigned U.S. patent application Ser. No. ______ (also identified by attorney docket no. 9014.143US01), entitled Cartridge and Pump With Axial Loading, the disclosure of which was hereby incorporated by reference above.
[0033] 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 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 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.
[0034] 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 the pump 100 but external to the microprocessor 102 itself. In one possible embodiment, the microprocessor 102 includes internal memory as well. The RAM 116 is a static RAM stores data that can change over time such as pump settings and a historical log of events experienced by 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.
[0035] An infrared (IR) port 120 is in electrical communication with the 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 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.
[0036] A real-time clock 122 provides a clock signal to the microprocessor 102 . An advantage of having a real-time clock 122 is that it provides the program with the actual time in real-time 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 by the real-time clock 122 and software executed by the microprocessor 102 .
[0037] 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.
[0038] Other inputs into the microprocessor 102 is 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 pressure sensor 126 , cartridge sensor 128 , and motion detector 130 are described in more detail in U.S. patent application Ser. No. ______ (also identified by attorney docket number 9014.143US01), which is entitled Cartridge and Pump With Axial Loading, the disclosure of which was incorporated by reference above.
[0039] Referring to FIG. 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 presented in the display portion 134 of the screen 106 .
[0040] 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 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 . A center portion 150 of the template presents 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 .
[0041] B. Home Page
[0042] 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 on the operating parameters include delivery rates, delivery schedules, delivery amounts, the generation and presentation of menus, and the like.
[0043] 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. This first icon 154 has the shape of 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-shape to illustrate the amount of remaining battery life. The percentage of remaining life on the battery is positioned below the second icon 158 .
[0044] 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, the insulin pump 100 is delivering insulin at a rate of 1.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 “Mary's Pump,” which identifies the owner of the insulin pump 100 . Other 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 name, telephone number, and address, detailed information about the user's caregiver such as the name and telephone number of the user's physician, and a warning that the pump 100 is an insulin pump and should not be removed from the user.
[0045] 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, 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.
[0046] The pump 100 displays an icon 170 in the home page 152 to identify the 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.
[0047] C. Suspending Delivery
[0048] Referring to FIG. 3 , when the pump 100 is displaying the home page it assigns a suspend function 172 to the first function key 138 and a menu function 174 to the second function key 140 . Accordingly, pressing the first function key 138 initiates a suspend pumping operation. If the pump 100 has an active delivery program in addition to the standard basal delivery program, the pump 100 displays a list of options that prompts 173 the user to select whether to suspend all active delivery programs or just one of the active delivery programs other than the standard delivery program. In one embodiment of the pump 100 , there are three possible ways to deliver additional amounts of insulin over an extended period an extended bolus, a combination bolus, and a temporary rate, all of which are described in more detail herein.
[0049] In the example set forth in FIG. 3 , the pump 100 has an active temporary rate delivery program so the pump 100 prompts the user to select whether to suspend all active delivery programs or just the temporary rate delivery program by scrolling to the desired delivery program to suspend and activating a Select function 194 , which is assigned to the second function key 140 .
[0050] After the user activates the Select function 194 , the insulin pump 100 prompts 176 the user to confirm suspension of the selected delivery, whether it is all delivery, the extended bolus, the combination bolus, or the temporary rate. The user can confirm the suspend operation by activating the yes function 178 by pressing the second function key 140 or cancel the suspend operation by activating the no function 180 by pressing the first function key 138 . If there is no insulin being delivered in addition to the standard basal rate, the insulin pump will automatically skip from the home page 152 to the prompt 176 asking the user to confirm suspension of the all delivery.
[0051] When the user activates the yes function 178 , the pump 100 displays a warning 182 that the insulin pump 100 is stopping delivery. The user then activates an o.k. function 184 and the pump 100 stops delivery, returns to the home page 152 and displays a banner 186 stating the pump 100 is stopped. On the home page 152 , the pump 100 assigns a Resume function 188 in place of the suspend function 172 . In one possible alternative embodiment, the insulin pump 100 merely displays the warning that the pump 100 is stopping delivery for a predetermined period of time (e.g., 5 seconds) and then stops the pump 100 and returns to the home page 152 .
[0052] To resume pumping, the user activates the Resume function. The insulin pump 100 then prompts 189 the user to either confirm or cancel the resume function by activating either a yes function 178 or a no function 180 .
[0053] Alternatively, at the list that prompts 173 the user to select whether to suspend all active delivery programs or just one of the active delivery programs other than the standard delivery program, the user can return to the previous display (i.e., the home page 152 ) by activating a Back function 170 , which is assigned to the first function key 138 . Activating the Back function, whenever it is assigned to the first function key 138 , always returns the pump 100 back to the previous display.
[0054] D. Main Menu and Time/Date
[0055] Referring to FIG. 4 , the user accesses a main menu 190 by activating a 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 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 main menu 190 and submenus.
[0056] 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 setting the display site reminder, if the display site reminder is enabled. The display site reminder is discussed below in more detail. In yet another embodiment the user must 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 sequencing through each of these steps, the pump 100 prompts the user to enter an instruction whether to resume delivery of insulin.
[0057] Accessing the cartridge is discussed in more detail in U.S. patent application Ser. No. ______ (also identified by attorney docket no. 9014.143US01), entitled Cartridge and Pump With Axial Loading, the disclosure of which was incorporated by reference above.
[0058] 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 .
[0059] By selecting the Pump Settings menu item, the pump brings up a Pump 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 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 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 .
[0060] E. Beep/Vibrate
[0061] Referring to FIG. 5 , 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 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 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 .
[0062] F. Lock
[0063] Referring to FIG. 6 , to lock out the pump 100 and prevent anyone from entering the main menu 190 , the user selects the Program Lock menu item in the Pump Settings submenu 196 . Focus then indexes to a lockout user interface having a lock-out field 218 , which is placed in focus. The user scrolls and selects to the desired yes or no value. If the user selects no, the pump 100 continues operating and the pump 100 is not locked out. If the user selects yes, the pump 100 is locked and must be unlocked to access the main 190 menu from the home page 152 . In one possible embodiment, if there are multiple home pages, the user can still scroll through all of the home pages without unlocking the main menu 190 . In another possible embodiment, the user can still troubleshoot alarms without unlocking the pump 100 .
[0064] Referring to FIG. 7 , to unlock the pump 100 the user activates the menu function 174 and the pump 100 indexes to a user interface having a lockout-code field 220 , which is placed in focus. The user scrolls to and selects the lockout code. In one possible embodiment, the lockout code is a number and the user enters the lockout code by scrolling through possible codes. Upon selecting the proper lock-out code, the main menu 190 is unlocked and the main menu is displayed.
[0065] In alternative embodiments, there are separate fields for each digit in the lockout code. In this embodiment, the user indexes through the digits using the Next function 200 until the last digit is set at which time the pump 100 either unlocks the main menu or admonishes the user that the wrong code was entered.
[0066] Yet another embodiment of the pump 100 has lock levels in which the different (codes can be entered into the pump 100 , each code permitting access to a different set of commands and functions. Lock levels are described in more detail in commonly assigned U.S. Pat. No. 5,935,099, which is entitled DRUG PUMP SYSTEMS AND METHODS and issued on Aug. 10, 1999, the complete disclosure of which is hereby incorporated by reference.
[0067] G. Customizing Time and Date Formats
[0068] Referring to FIG. 8 , to customize the time and date formats, the user selects a Personalize menu item in the Pump Settings submenu 196 . The pump 100 then indexes to a Personalize submenu 222 in which the user selects a Localization menu item. The pump then indexes to a time-format field 224 , which is placed in focus. The user scrolls to and selects the desired time format (e.g., 12-hour or 24-hour). The pump 100 then indexes focus to a date-format field 226 . The user scrolls to and selects the desired date format (e.g., mm/dd/yy or dd/mm/yy). The pump 100 then indexes focus to a numeric-format field 228 . The user scrolls to and selects the desired numeric format (e.g., xx.xx or xx,xx). The pump 100 then returns to the Personalize submenu 222 . In an alternative embodiment, the user can also set a flag that causes the pump to automatically change time at the beginning and end of daylight savings time.
[0069] H. Customizing and Setting Alerts and Reminders
[0070] Referring to FIG. 9 , to customize and set various alerts and reminders the user selects the Alerts item from the Personalize submenu 222 . When the user selects the Alert menu item, the pump 100 indexes to a low-cartridge-alert field 230 , which is placed into focus. The user scrolls to and selects the desired volume (i.e., remaining volume within the cartridge) at which the pump 100 will generate a low cartridge alert. In one possible embodiment, the user can select whether to set the threshold for the low volume alert in the range from 5 units to 50 units. Upon selecting the desired volume, focus indexes to a delivery-limit field 232 . The user scrolls to and selects the desired delivery limit at which an alarm is generated when there is an attempt to deliver more insulin than is allowed in a one-hour period of time. In one possible embodiment, the user can select whether to set the threshold for the delivery limit alarm in the range from 2 units to 100 units.
[0071] The insulin pump 100 then indexes focus to a glucose-reminder field 234 , which is an alert that reminds the pump user to check their blood glucose level, based on a triggering event such as when the user last loaded a new insulin cartridge into the pump 100 or administered a meal bolus. The user scrolls to the desired yes and no values or settings. The yes value enables the glucose reminder and the no value disables the glucose reminder.
[0072] The pump 100 then indexes focus to a duration field 236 in which the user sets the duration between the triggering event and when the glucose reminder signals an alert. The user scrolls to and selects the desired duration. In one possible embodiment, the user scrolls through values in the range from 1 hour to 5 hours in a predetermined increment, such as 15 minute, half hours, or one hour increments. The pump 100 then indexes focus to an automatic-off field 238 . If the user selects no in the glucose-reminder field 234 , the pump 100 will skip over the duration field 236 and index focus directly to the automatic-off field 238 .
[0073] In this embodiment occurrence of the triggering event will begin a timer running, which will time out and generate an alarm when the duration lapses. When the alert is signaled, the pump displays a message reminding the user to check their blood glucose levels. The user activates a predetermined key, either the first or second function key 138 or 140 on the keypad 124 , to clear the alert and the message.
[0074] Within the automatic-off field 238 , the user sets an automatic-off alarm that is generated when no keys or buttons on the insulin pump or a remote control unit associated with the pump 100 are pressed within a predetermined period of time. The pump 100 also suspends delivery when the automatic off alarm is generated and generates an alarm display. In one possible embodiment, when the automatic off alarm is generated, the user must acknowledge the alarm while the alarm display is presented and then must reinitialize the pump 100 to resume delivery. Another embodiment, the alarm display includes a message stating that the pump is an insulin pump.
[0075] When the automatic-off field 238 is in focus, the user scrolls to and selects the desired yes or no value. If the user selects the yes value, the pump 100 enables the automatic-off alarm, and the pump 100 indexes focus to a duration field 240 in which the user scrolls to the desired duration corresponding to the delay before the automatic-off alarm is sounded and delivery is suspended. After the delay is set, the pump 100 indexes focus to a display-site-reminder field 242 . If the user selects the no value in the automatic-off field 238 , the pump 100 disables the automatic-off alarm, and indexes focus to the display-site-reminder field 242 and skips the duration field 240 .
[0076] The display-site reminder is an alert that reminds the user to change their infusion set and access site (i.e., where on their body the insulin is injected). Within the display-site-reminder field 242 , the user scrolls to and selects the desired yes and no values. If the user selects the yes function the pump 100 enables the display-site reminder, and if the user selects the no value, the user will disable the display-site reminder. In one possible embodiment, the display-site reminder will generate an alarm at a predetermined interval after the last time that the user changed their infusion set and access site. Upon selecting the yes or no value, focus indexes to a review/edit-meal-bolus-alarm field 246 .
[0077] If the user enables the display site reminder, the pump 100 prompts the user to enter the interval (i.e., the number of days) after which to generate a reminder or alarm and the time of day at which to generate the reminder. For example, setting an interval of 2 days and a time of 4:00 pm, would cause the pump 100 to generate a display-site reminder at 4:00 pm on the second day after the interval starts to run. When the pump 100 generates the display-site reminder to change the user's infusion set and access site, it generates an audio and/or vibratory alarm and displays a banner or other visual reminder that the user acknowledges by pressing a designated function key 138 or 140 on the key pad 124 . The pump 100 includes a display-site reminder menu item that the user selects to reset the display site reminder and to adjust the interval and time of day if so desired. The user would access this menu item and reset the display-site reminder when changing his or her infusion set and access site.
[0078] In one possible embodiment, the pump automatically takes the user through the process of setting the interval and time of day for the display site reminder when going through the sequence of loading the new cartridge or syringe into the pump 100 and priming the infusion set.
[0079] A meal bolus alarm is an alarm that reminds the user to deliver a meal bolus (during a predetermined time interval. For example, if the user eats breakfast every day between 7:00 am and 8:00 am every day, the user may set a missed-meal-bolus alarm for an interval between 6:15 am and 8 am. In this example, an alarm sounds if a meal bolus is not delivered within this interval. In one possible embodiment, the user can set up to four separate missed-meal-bolus alarms.
[0080] Within the review/edit-meal-bolus-alarm field 246 , the user scrolls to and selects the desired yes or no value. If the user selects the no value, the pump 100 returns to the Personalize submenu 222 . If the user selects the yes value, the pump 100 presents a user interface 248 entitled “Meal Bolus Alarm,” which lists the names 250 of the available alarms (Alarms 1 - 4 in the illustrated embodiment) and a check box 252 next to the name of each alarm. If a missed-meal-bolus alarm is enabled, the check box 252 is set. If a missed-meal-bolus alarm is not enabled, the check box 252 is cleared.
[0081] To set an alarm, the user scrolls to the name 250 of the desired alarm and activates an edit function 254 , which is assigned to the second function key 140 . The pump 100 then displays a user interface 256 entitled “Meal Bolus Alarm: Alarm X”, where X identifies the alarm to which the screen relates. In the illustrated embodiment, the display 256 relates to Alarm 1 . There is one Meal Bolus Alarm: Alarm X display 256 associated with each of the alarms 250 . Within the Meal Bolus Alarm: Alarm X display 256 , there are three fields, a give-alert field 258 , an interval-start field 260 , and an interval-end field 262 .
[0082] The give-alert field 258 is the first field placed in focus. The user scrolls to and selects the desired yes or no value. The yes value enables the meal bolus alarm, and the no value disables the meal bolus alarm. If the user selects the no value, the pump 100 returns to the “Meal Bolus Alarm” user interface 248 . If the user selects the yes value, the pump indexes focus to the interval-start field 260 . The user then scrolls to and selects the desired start time for the interval. The pump 100 then indexes focus to the interval-end field 262 . The user scrolls to and selects the desired end time for the interval. In one possible embodiment, the time values through which the use scrolls are set at 15 minute increments, although other embodiments will have other time increments.
[0083] The pump 100 then saves interval start and stop times for that meal bolus alarm and returns to the Meal Bolus Alarm display 248 . The user can then select another meal bolus alarm to enable and set or to disable using the procedures discussed above. Alternatively, the user can activate the Done function 212 and the pump 100 will save the settings for all of the meal bolus alarms and return to the Personalize submenu 222 .
[0084] I. Pump History
[0085] Referring to FIG. 10 , one possible embodiment of the insulin pump 100 tracks historical information related to the pump 100 such as delivery information 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 individual events or as averages. These alternatives are only some of the possible embodiments.
[0086] 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 embodiment, the historical information that the pump 100 tracks includes:
[0087] (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 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 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 values or the average data can be calculated from the daily totals when requested for display or upon other requests.
[0088] (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 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 other requests.
[0089] (3) The date, time, and amount of each bolus delivered.
[0090] (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, 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 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, calculation, or other function. (5) The 1800-Rule factor, which is used to estimate the number of units of insulin required for each mg/dL (or mmol/L) drop in blood glucose. To determine the drop in blood glucose for each unit if insulin delivered to the user, the 1800-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 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 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 the 1800-Rule factor is required for a display, calculation, or other function.
[0091] (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 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 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.
[0092] 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 single day excluding the amount of insulin delivered as a correction bolus. Other embodiments might includes the amount of insulin delivered as a correction bolus in the total daily dose of insulin.
[0093] 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 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 ( FIG. 11 ), 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 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 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.
[0094] 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 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), delivered as a correction bolus, and delivered according to basal delivery protocols.
[0095] Upon selecting the yes or no value in the average-delivery-summary field 266 , focus indexes to basal-as-percent-of-TDD field 268 . In one possible embodiment, basal is 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 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 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 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 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.
[0096] 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 History menu item.
[0097] 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-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 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 290 and causes the pump 100 to index directly from the 500-rule-factor field 276 to the average-carb-ratio field 280 .
[0098] 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 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 .
[0099] 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 another embodiment, the user can select a predetermined number of days over which to calculate and average the carbohydrate ratio.
[0100] 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 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 field 286 .
[0101] 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. Calc 1800 Rule menu item, the pump 100 displays the average correction factor for 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 .
[0102] In other embodiments, the pump calculates the average correction factor 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 calculate 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.
[0103] 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 Personalize submenu. Under the Complete History menu item, the pump displays the complete body of historical information stored in RAM 116 .
[0104] Referring now to FIG. 11 , viewing historical information about the pump 100 is accomplished through the main menu 190 . The user activates the Menu 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 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.
[0105] 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 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 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 total number of insulin units delivered according to the basal protocols employed by the pump are listed.
[0106] 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 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 .
[0107] 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 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 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 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.
[0108] 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 the selected number of days over which the data is averaged.
[0109] 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 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.
[0110] 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 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.
[0111] 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 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.
[0112] 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 similar to the “Avg Delivery Summary” display as described above.
[0113] 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 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.
[0114] If the user selects Avg Calc 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 manner similar to the “Avg Delivery Summary” display as described above.
[0115] J. Basal Rates
[0116] Referring to FIG. 12 , 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 customize the basal delivery programs, the user accesses the Personalize Delivery submenu 222 .
[0117] 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 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 0.5 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 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 returns to the Personalize Delivery submenu 302 .
[0118] 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, 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 ( FIG. 13 ) and the user can selectively activate the enabled programs.
[0119] 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 “My Program X,” where X is the number of the basal program being edited. In the illustrated example, the title of the display is My Program 1 because Basal program 1 is being edited. The display has two fields, an enable field 314 and a name field 316 . 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 1 in the illustrated example) and returns to the Select Program display 308 . The check box 312 for the disabled program is cleared. In 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.”
[0120] If the user selects the yes value in the enable field 314 , the pump 100 indexes 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 name Basal X, where X is the number of the basal program being edited. When the user has scrolled to the desired name, the user 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 the Basal Programs submenu 318 .
[0121] 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 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 .
[0122] In an alternative embodiment, with in the display entitled “My Program X,” the user can access a spin box in which they scroll through a list of optional names 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 menstrual cycle).
[0123] Referring now to FIG. 13 , 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 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 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.
[0124] To edit a basal program, the user scrolls to and selects the desired basal 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 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.
[0125] 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 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 0.05 units per hour. The delivery rate does not exceed the maximum delivery rate ( FIG. 12 , Item 304 ).
[0126] When the desired delivery rate is selected, the pump 100 indexes focus to the 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 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 they are in chronological order.
[0127] 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 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 .
[0128] 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 start time 326 . In other 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 selected interval is initially placed into focus rather than the delivery-rate field 340 .
[0129] 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 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. 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.
[0130] 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 200 to index focus to the delivery-rate Field 340 . The user then scrolls the delivery rate down to 0.00 348 and 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 display 324 .
[0131] 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 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.
[0132] Referring to FIG. 14 , to begin a basal program the user indexes to the Basal 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 returns 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.
[0133] K. Temporary Rate
[0134] 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 the temporary rate programs and how they are present in the user interface. Referring to FIG. 15 , to personalize the temporary rate programs, the user accesses the Personalize Delivery submenu 302 .
[0135] Selecting the Delivery menu item in the Personalize submenu 222 causes the pump 100 to index to the Personalize Delivery submenu 302 and the user selects the Temporary Rate menu item. The pump 100 then displays a display-temporary-rate field 350 , which is placed in focus. The user scrolls to and selects either a yes value or a no value. If the user selects the no value, the pump 100 returns to the Personalize Delivery submenu 302 . If the user selects the yes value, the pump 100 indexes focus to program-temporary-rate-using field 352 in which the user scrolls between and selects either a Percent value and a Units/hr value. If the user selects the Percent value, the pump 100 sets the temporary rate delivery programs to increase and decrease the basal rate in terms of a percentage of the programmed basal rate and indexes focus to a give-reminder field. If the user selects the Units/hr value, the pump 100 sets the temporary rate delivery programs to increase and decrease the basal rate in terms of absolute units per hour and indexes focus to the give-reminder field.
[0136] When focus is on the give-reminder field 354 , the user scrolls to and selects either a yes value or a no value. Selecting the yes value enables a temporary-rate reminder (either audible or vibratory) that that is periodically generated while the pump 100 is delivering a temporary rate. Focus then indexes to an interval field 356 in which the user scrolls to and selects an interval that sets how frequently the pump 100 gives a reminder. In one possible embodiment, the user scrolls between 5 minutes and 1 hour in increments such as 5 minutes, 10 minutes, or 15 minutes. Upon selection of the interval, focus indexes to an end-temporary-rate-reminder field 358 . Selecting the no value in the give-reminder field 358 disables the temporary-rate reminder and indexes focus directly from the give-reminder field 354 to the end-temporary-rate-reminder field 358 .
[0137] Within the end-temporary-rate-reminder field 358 , the user scrolls to and selects either a yes value or a no value. If the user selects the yes value, the pump 100 enables generation of the reminder upon completion of the temporary rate. The reminder is either an audible or vibratory reminder when delivery at the temporary rate is complete. In one possible embodiment, the reminder upon completion of the temporary rate is different than the reminder given to indicate that the temporary rate is still running. For example, an audible alarm might be longer, louder, or have a different sequence of beeps. Similarly, a vibratory alarm might be longer, stronger, or have a different sequence of vibrations. If the user selects the no value, the pump 100 disables the reminder.
[0138] The pump 100 next indexes focus to a review/edit-custom-temporary-rate field 360 . The user scrolls to and selects either a yes value or a no value. If the user selects the no value, the pump returns to the Personalize Delivery submenu 302 . If the user selects the yes value, the pump indexes to a display 362 entitled “Custom Temp Rate” and lists the name 364 of each customized temporary rate delivery program and displays a check box 366 next to each name 364 . In one possible embodiment, there are four separate temporary rate programs. If a customized temporary rate program is enabled, the check box 366 for that delivery program is set. If a customized temporary rate program is disabled, the check box 366 for that temporary rate delivery program is cleared. When a customized temporary rate delivery program is enabled, it is displayed in the Temporary Basal Rates submenu 376 ( FIG. 116 ) as described below and the user (can then selectively execute the temporary rate delivery program through the Temporary Rates submenu 376 . If the customized temporary rate delivery program is not enabled, it is not displayed in the Temporary Rates submenu 376 as described below and it cannot be executed.
[0139] To enable or disable a customized temporary rate program, the user scrolls to the name 364 of the desired program and activates the Edit function 254 . The pump 100 indexes to a display 367 entitled “Custom Temp Rate: Temp Rate X,” where X is the number of the customized temporary rate program being edited. In the illustrated example, the title of the screen is “Custom Temp Rate: Temp Rate 3” because temporary rate 3 is being edited. The screen has four fields, an in-menu field 368 , a name field 370 , a rate field 372 , and a duration field 374 .
[0140] The in-menu field 368 is initially placed in focus. Within this field, the user scrolls to and selects either a yes value and a no value. If the user activates the no value, the pump 100 disables the customized temporary rate program associated with the screen 367 (Temporary Rate Program 3 in the illustrated example) and returns to the Custom Temp Rate display 362 . The check box 366 for the disabled temporary rate program is cleared. In one possible embodiment, if the pump 100 is actually executing the temporary rate 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 temporary rate program.”
[0141] If the user selects the yes value in the in-menu field 368 , focus indexes to the name field 370 . Within the name field 370 , the user scrolls to and selects a name to assign the program. In one possible embodiment, the user can scroll through names such as Sick, Travel, Exercise, and the generic name Temp Rate X, where X is the number of the temporary rate program being edited. When the user has scrolled to the desired name, the user activates the Next function 200 and the pump 100 indexes to the rate field 372 .
[0142] Within the rate field 372 , the user scrolls to and selects a percentage to modify the basal rate. In one possible embodiment, the user can scroll through percentages in the range from 0% to 250%. When the desired percentage is selected, focus indexes to the duration field 374 . Within the duration field 374 , the user scrolls to and selects a duration for which they would like the temporary rate to be active once it begins. In one possible embodiment, the user can scroll through rates in the range from 30 minutes to 72 hours. When the duration is selected, the pump 100 returns to the Custom Temp Rate display 362 .
[0143] The user repeats this procedure from the Custom Temp Rate display 362 for each custom temporary rate program 364 for which they desire to edit the enabled state, name, rate, or duration. When the user is done editing custom temporary rate programs, he or she activates the Done function 212 . The pump 100 then returns to the Personalize Delivery submenu 302 . As described below, the names of the enabled custom temporary rate delivery programs will then appear in a submenu 376 entitled “Temporary Basal Rate”.
[0144] Referring to FIG. 16, a user activates a temporary rate by selecting the Temporary Rate menu item from the main menu 190 . If the user has enabled any customized temporary rates as described above with reference to FIG. 15 , the pump indexes to a Temporary Basal Rate submenu 376 , which lists the standard temporary rate delivery program 377 and all of the custom temporary rate delivery programs 364 that are enabled. In the illustrated example, the two custom temporary rate delivery programs 364 are 5 mile run and aerobics. The user scrolls to and selects the desired delivery program.
[0145] When the user selects a temporary rate program for execution, the pump 100 indexes from the Temporary Basal Rate submenu 376 to an edit screen 379 . In an alternative embodiment, if there are not any custom temporary rate programs 364 enabled (i.e., only the standard program 377 can be used), the pump 100 indexes directly from the main menu 190 to the edit screen 379 and skips the Temporary Basal Rate display 376 .
[0146] The edit screen 379 has a duration field 378 that contains the duration for the temporary rate and a rate field 380 that contain data to set the temporary rate. If the temporary rate is one that was customized as described in conjunction with FIG. 15 , the duration field 378 contain the duration as it was initially set in the “Custom Temp Rate: Temp Rate X” display 367 . Similarly, the rate field 380 initially contains the rate data originally set in the “Custom Temp Rate: Temp Rate X” display 367 . The user can then adjust these values by using the scroll keys to change the values and the Next function to index from the duration field