Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
INSULIN MANAGEMENT
Document Type and Number:
WIPO Patent Application WO/2015/116371
Kind Code:
A1
Abstract:
A method of managing insulin includes receiving blood glucose measurements (BG) on a computing device (112, 132, 142) from a glucometer (124). The blood glucose measurements are separated by a time interval (TNext). The method includes determining, using the computing device, an insulin dose rate (IRR) based on the blood glucose measurements and determining a blood glucose drop rate (BGDropRate) based on the blood glucose measurements and the time interval. The method also includes determining a blood glucose percentage drop (BG%DroP) based on the blood glucose measurements. The method includes decreasing the time interval between blood glucose measurements by the glucometer when the blood glucose drop rate is greater than a threshold drop rate (BGDropRateLimit), and decreasing the time interval between blood glucose measurements by the glucometer when the blood glucose percentage drop is greater than a threshold percentage drop (%DropLowLimit).

Inventors:
BOOTH ROBERT C (US)
HEBBLEWHITE HARRY (US)
Application Number:
PCT/US2015/011086
Publication Date:
August 06, 2015
Filing Date:
January 13, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ASEKO INC (US)
International Classes:
A61J7/00; A61M5/14; A61M5/145; A61M5/168; G06Q50/22
Foreign References:
EP2644088A12013-10-02
US20140024907A12014-01-23
US20070078314A12007-04-05
US20050049179A12005-03-03
US20060264895A12006-11-23
Other References:
See also references of EP 3046599A4
Attorney, Agent or Firm:
KRUEGER, Brett, A. (350 East Michigan AvenueSuite 30, Kalamazoo MI, US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A method (700) comprising:

receiving blood glucose measurements (BG) on a computing device (112, 132, 142) from a glucometer (124), the blood glucose measurements (BG) separated by a time interval (TNext); and

for each time interval (TNext):

detemiming, using the computing device (112, 132, 142), an intravenous insulin infusion rate (IRR) based on the blood glucose measurements (BG) of the time interval f! \ .,:)".

determining, using the computing device (1 12, 132, 142), a blood glucose percentage drop (BG%DroP) based on the blood glucose measurements (BG);

determining, using the computing device (112, 132, 142), a blood glucose drop rate (BGoropRate) based on the blood glucose measurements (BG)and the time interval (TNexl);

decreasing the time interval (TNext) between blood glucose measurements (BG)by the glucometer (124) when the blood glucose percentage drop (BG%Drop) is greater than a threshold percentage drop (%DropLow Limit);

decreasing the time interval (TNsxt) between blood glucose measurements (BG) by the glucometer (124) when the blood glucose drop rate (BGoropRate) is greater than a threshold drop rate (BGoropRateLimit); and

sending the intravenous insulin infusion rate (IRR) from the computing device (112, 132, 142) to an insulation administration device (123a, 123b).

2. The method (700) of claim 1, further comprising setting the time interval (T e t) between the blood glucose measurements (BG) by the glucometer (124) to a default time interval (Toefauit) or a minimum of:

a preconfigured hypoglycemia time interval (THypo) when a current blood glucose measurement (BG) is less than a threshold hypoglycemia blood glucose value (BGHypo); a preconfigured short time interval (Tshort) when:

the current blood glucose measurement (BG) is greater than the threshold hypoglycemia blood glucose value (BGHypo) and less than a lower limit (BGTRL) of a blood glucose target range (BGTR) and the blood glucose percentage drop (BG%i¾op) is greater than a low blood glucose percentage drop limit (%Drop1.OWLjmit); or

the current blood glucose measurement (BG) is greater than or equal to the lower limit (BGTRL) of the blood glucose target range (BGTR) and the blood glucose percentage drop (BG%DroP) is greater than a regular blood glucose percentage drop limit(%DropReguiai .i!r)lt);

a preconfigured blood glucose drop rate time interval (TBGDR) when the blood glucose drop rate (BGoropRate) is greater than a blood glucose drop rate limit

(BGoropRateLimit);

a preconfigured long time interval (TLong) when the blood glucose measurements (BG) have been within the blood glucose target range (BGTRL) for a duration of time greater than a stable time period (T stable); or

a preconfigured meal bolus time interval (Tj eaiBoius) when a meal bolus program is in operation;

wherein the hypoglycemia time interval (Tnypo) is less than the short time interval (Tshort), the short time interval (Ts ort) is less than the blood glucose drop rate time interval (TBGDR), the blood glucose drop rate time interval (TBGDR) is less than the long time interval (TBGDR), and the meal bolus time interval (TMeaiBoius) is less than the long time interval (TLONG).

3. The method (700) of claim I , wherein determining the intravenous insulin infusion rate (IRR)comprises calculating:

IIR ------ (BG - K) * M

wherein IIR is the intravenous insulin infusion rate (IRR), BG is the current blood glucose measurement (BG), K is a constant, and M is a multiplier;

wherein determining the blood glucose percentage drop (BG%Di0p) comprises calculating:

Percentage drop

wherein BGp evious is a previous blood glucose measurement (BGprevious) and BG is a current blood glucose measurement (BG); and wherein determining the blood glucose drop rate (BGi¾op ate) comprises calculating:

BGoropR te "~ (BG Previ us - BG) / (T Current ~ Tprevioiis) wherein BGDropRate is the blood glucose drop rate(BGDroPRate), BG is the current blood glucose measurement (BG), BGprevious s a previous blood glucose measurement (BGpfevious), Tcuiient is a current time and TPrevi0,JS is a previous time.

4. The method (700) of claim 3, further comprising:

leaving the multiplier (M) unchanged between time intervals (TNext) when the current blood glucose measurement (BG) is greater than an upper limit (BGTRH) of a blood glucose target range (BGTR) a d a ratio of the current blood glucose measurement (BG) divided by a previous blood glucose measurement (BGprevious) is less than or equal to a (LA); and

multiplying the multiplier (M) by a change factor (McF)whe the current blood glucose measurement (BG) is greater than the upper limit (BGTRH) of the blood glucose target range (BGTR) and the ratio of the current blood glucose measurement (BG) divided by the previous blood glucose measurement (BGpfev;0US) is greater than the (LA).

5. The method (700) of claim 4, wherein the constant K equals 60 mg/dl and the (LA) is 0.85.

6. The method (700) of claim 4, further comprising dividing the multiplier (M) by the change factor (MCF) when the current blood glucose measurement ( BG) is less than a lower limit (BGTRL) of the blood glucose target range (BGTR).

7. The method (700) of claim 3, further comprising, in response to receiving an indication of patient (10) solid food consumption, increasing the intravenous insulin infusion rate (I R) and maintaining the multiplier (M) unchanged for at least two time intervals (T ext).

8. The method (700) of claim 7, further comprising: receiving, at the computing device (112, 132, 142), a number of estimated grams of carbohydrates for a meal;

determining, using the computing device (1 12, 132, 142), an estimated meal bolus in units of insulin based on the number of estimated grams of carbohydrates and a carbohydrate-insulin-ratio (OR);

determining, using the computing device (112, 132, 142), an estimated meal bolus insulin rate, based on the estimated meal bolus, an available deliver}' time, and a configurable constant; and

determining, using the computing device (112, 132, 142), a total insulin rate as a sum of the intravenous insulin rate (IRR) and the estimated meal bolus insulin rate; and sending the total insulin rate from the computing device (112, 132, 142) to the insulin administration device (123a, 123b).

9. The method (700) of claim 8, further comprising:

dividing a total meal time (TMeaiBoius) into meal time sub-intervals TMeaiBoiusN), a first meal time sub-interval (TMeaiBoius i) starting with a pre-meal blood glucose measurement (BG1) before receiving the indication of patient (10) solid food

consumption; and

determining, using the computing device (112, 132, 142), the total insulin rate for each meal time sub-interval (TMeaiBoiusN) n succession.

10. The method (700) of claim 9, further comprising:

receiving, at the computing device (112, 132, 142), a number of actual grams of carbohydrates for the meal during a subsequent time interval (TMeaiBoius?) after the first time interval (TMeaiBoiUsi);

determining, using the computing device (1 12, 132, 142), an actual meal bolus based on the number of actual grams of carbohydrates;

determining, using the computing device (112, 132, 142), an estimated delivered meal bolus by multiplying the estimated meal bolus rate by an elapsed delivery time; determining a remaining meal bolus in units of insulin, using the computing device (112, 132, 142), by subtracting a product of the estimated delivered meal bolus insulin rate and an actual delivery time from the actual meal bolus;

determining, using the computing device (112, 132, 142), a revised meal bolus insulin rate as the remaining meal bolus divided by a time remaining in the total meal time;

determining, using the computing device (112, 132, 142), a revised total insulin rate as a sum of the intravenous insulin rate (IRR) and the revised meal bolus insulin rate; and

sending the revised total insulin rate from the computing device (112, 132, 142) to the insulin administration device (123a. 123b),

11. The method (700) of claim 10, further comprising decreasing the time interval ί Ί ws ; to less than the default time interval (Toefauit) ft r om or more meal time sub- intervals (TMeaiBoiusN) .

12. The method (700) of claim 1 1 , further comprising:

electronically displaying on a display (116, 143, 146) in communication with the computing device (1 12, 132, 142) a warning and blocking transition to a subcutaneous administration of insulin when the current blood glucose measurement (BG) is outside a stability target range (BGSTR); and

electronically displaying on the display (116, 143, 146) a warning when the current blood glucose measurement (BG) is within the stability target range (BGSTR) for less than a threshold stability period of time (Tstabie).

13. The method (700) of claim 3, further comprising:

determining, using the computing device (112, 132, 142), a total daily dose (TDD) of insulin based on the multiplier ( ) when the current blood glucose

measurement (BG) is within a stability target range (BGSTR) for a threshold stability period of time (Tstabie); determining, using the computing device (112, 132, 142), recommended insulin doses comprising a daily basal insulin and a daily meal insulin for subcutaneous therapy as an apportioning of the total daily dose (T DD ) of insulin, wherein the daily basal insulin is half of the total daily dose (TDD) of insulin and the daily meal insulin is half of the total daily dose (TDD ) of insulin; and

sending the recommended insulin doses from the computing device (112, 132, 142) to a subcutaneous injection device (123a, 123b) or electronically displaying the recommended insulin doses on a display (1 16, 143, 146) in communication with the computing device (1 12, 132, 142).

14. The method (700) of claim 13, further comprising determining, using the computing device (112, 132, 142), the total daily dose (TDD) of insulin by calculating:

TDD = (BGTarget - K) * (MTrans) * 24

wherein TDD is the total daily dose of insulin, MTrans is a current multiplier at a moment of initiation of a process of a transition to subcutaneous insulin treatment; and BGxarget is determined by calculating:

BGT3X8et = (BRTRH ÷ BRTRL) / 2

wherein BRTRH is an upper limit (BGT H) of th e blood gl ucose target range (BGTR) and BRTRL is a lower limit (BGTRL) of the blood glucose target range (BGTR).

15. The method (700) of claim 13, further comprising determining, using the computing device (112, 132, 142), the total daily dose (TDD) of insulin as a function of a patient (10) body weight by calculating:

TDD = 0.5 * Weight

wherein TDD is the total daily dose of insulin and Weight is a patient (10) body weight in kilograms.

16. A system (100) comprising:

a glucometer (124) measuring blood glucose measurements (BG) separated by a time interval f i M K

an insulation administration device (123a, 123b); and a dosing controller (160) in communication with the giucometer (124) and the insulation administration device (123a, 123b), the dosing controller (160) including a computing device (112, 132, 142) and non-transitory memory (144) in communication with the computing device (112, 132, 142), the non-transitory memory (144) storing instructions that when executed by the computing device (112, 132, 142) cause the computing device (112, 132, 142) to perform operations comprising:

receiving blood glucose measurements (BG)on the computing device (112, 132, 142) from the giucometer (124), the blood glucose measurements (BG) separated by a time interval. f! \ .,.:); and

for each time interval (TNext):

determining, using the computing device (112, 132, 142), an intravenous insulin infusion rate (IRR) based on the biood glucose measurements (BG)of the time interval (T ext);

determining, using the computing device ( .1 12, 132, .142), a blood glucose percentage drop (BG%D.rop) based on the blood glucose measurements (BG);

determining, using the computing device (112, 132, 142), a blood glucose drop rate (BGoropRate) based on the blood glucose measurements (BG) and the time interval (T ext);

decreasing the time interval (TNext) between blood glucose measurements (BG) by the giucometer (124) when the blood glucose percentage drop (BG%Drop) is greater than a threshold percentage drop (%DropLow Limit);

decreasing the time interval (TNext) between blood glucose measurements (BG) by the giucometer (124) when the blood glucose drop rate

(BGoropRate) is greater than a threshold drop rate (BGoropRateLimit); and

sending the intravenous insulin infusion rate (IRR) from the computing device (112, 132, 142) to the insulation administration device (123a, 123b).

17. The system ( 100) of claim 16, wherein the operations further comprise setting the time interval (TNext) between the biood glucose measurements (BG) by the giucometer (124) to a default time interval (TDeiauit) or a minimum of: a preconfigured hypoglycemia time interval (Tnypo) when a current blood glucose measurement (BG) is less than a threshold hypoglycemia blood glucose value (BGHVPO); a preconfigured short time interval (Tshon) when:

the current blood glucose measurement (BG) is greater than the threshold 5 hypoglycemia blood glucose value (BGH>po) and less than a lower limit (BGTRL) of a blood glucose target range (BGTR) and the blood glucose percentage drop (BG%Droo) is greater than a low blood glucose percentage drop limit (%DropLow Limit); or

the current blood glucose measurement (BG) is greater than or equal to the lower limit (BGTRL) of the blood glucose target range (BGTR) and the blood glucose Q percentage drop (BGo/oDrop) is greater than a regular blood glucose percentage drop limit

(%DrOpRegular Limit);

a preconfigured blood glucose drop rate time interval (TBGDR) when the blood glucose drop rate (BGDropRate) is greater than a blood glucose drop rate limit

( B( j DropRateLimit) ;

5 a preconfigured long time interval (l ong) when the blood glucose measurements

(BG) have been within the blood glucose target range (BGTRL) for a duration of time greater than a stable time period (T stable); or

a preconfigured meal bolus time interval (Tj ieaiBoius) when a meal bolus program is in operation;

0 wherein the hypoglycemia time interval (Tnypo) is less than the short time interval

(T short), the short time interval (Tshort) is less than the blood glucose drop rate time interval, the blood glucose drop rate time interval (TBGDR), the blood glucose drop rate time interval (TBGDR) is less than the long time interval (TBGDR), a« the meal bolus time interval (TMeaiBoius) is less than the long time interval (T >s<g).

5

18. The system (100) of claim 16, wherein determining the mtravenous insulin infusion rate (IRR) comprises calculating:

IIR = (BG - K) * M

wherein IIR is the intravenous insulin infusion rate, BG is the current blood0 glucose measurement (BG), K is a constant, and M is a multiplier; wherein determining the blood glucose percentage drop (BG%DI-OP) comprises calculating:

( BGprevious "" BG)N

Percentage drop

v AJ ^previous

wherein BGprevious is a previous blood glucose measurement (BGprsvi0US) and BG is a current blood glucose measurement (BG); and

wherein determining the blood glucose drop rate (BGi¾op ate) comprises calculating:

BGoropR te = ( BGprevious ~~ BG) / (J Current ~ T Previous) wherein BGDropRate is the blood glucose drop rate (BGD 0pRate), BG is the aureus blood glucose measurement (BG), BGprevious s a previous blood glucose measurement (BGprevious), Tcunent is a current time and Tprevious is a previous time.

19. The system (100) of claim 18, wherein the operations further comprise:

leaving the multiplier ( ) unchanged between time intervals (TNext) when the current blood glucose measurement (BG) is greater than an upper limit (BGTRH) of a blood glucose target range (BGTR) and a ratio of the current blood glucose measurement

(BG) divided by a previous blood glucose measurement (BGprevj0lls) is less than or equal to a threshold ratio (LA); an

multiplying the multiplier (M) by a change factor (MCF) when the current blood glucose measurement (BG) is greater than the upper limit (BGTRH) of the blood glucose target range (BGTR) and the ratio of the current blood glucose measurement (BG) divi ded by the previous blood glucose measurement (BGpfevious) s greater than the threshold ratio

(LA).

20. The system (100) of claim 19, wherem the constant K equals 60 mg/dl and the threshold ratio (LA) is 0.85.

21. The system ( 100) of claim 19, wherein the operations further comprise dividing the multiplier (M) by the change factor (MCF) when the current blood glucose measurement (BG) is less than a lower limit (BGT L) of the blood glucose target range (BGTR).

22. The system (100) of claim 18, wherein the operations further comprise, in response to receiving an indication of patient (10) solid food consumption, increasing the intravenous insulin infusion rate (IRR)and maintaining the multiplier (M) unchanged for at least two time intervals (TNext).

23. The system (100) of claim 22, wherein the operations further comprise:

receiving, at the computing device (1 12, 132, 142), a number of estimated grams of carbohydrates for a meal;

determining, using the computing device (1 1 2, 132, 142), an estimated meal bolus in units of insulin based on the number of estimated grams of carbohydrates and a carbohydrate-insulin-ratio (OR);

determining, using the computing device (1 12, 132, 142), an estimated meal bolus insulin rate, based on the estimated meal bolus, an available deliver}' time, and a configurable constant; and

determining, using the computing device (1 12, 132, 142), a total insulin rate as a sum of the intravenous insulin rate (IRR) and the estimated meal bolus insulin rate; and sending the total insulin rate from the computing device (1 12, 132, 142) to the insulin administration device (1 12, 132, 142, 152).

24. The system ( 100) of claim 23, wherein the operations further comprise:

dividing a total meal time (TMeaiBoius) into meal time sub-intervals TMeaiBoiusN), a first meal time sub-interval (TMeaiBoius i) starting with a pre-meal blood glucose measurement (BG1 ) before receiving the indication of patient (10) solid food

consumption; and

determining, using the computing device (1 12, 132, 142), the total insulin rate for each meal time sub-interval (TMeaiBoiusN) n succession.

25. The system (100) of claim 24, wherein the operations further comprise: receiving, at the computing device (112, 132 , 142), a number of actual grams of carbohydrates for the meal during a subsequent time interval. (TMeaiBoius2) afte the first time interval (TMeaiBoiusi );

determining, using the computing device (112, 132, 142), an actual meal bolus 5 based on the number of actual grams of carbohydrates;

determining, using the computing device (112, 132, 142), an estimated delivered meal bolus by multiplying the estimated meal bolus rate by an elapsed delivery time; determining a remaining meal bolus in units of insulin, using the computing device (112, 132, 142), by subtracting a product of the estimated delivered meal bolus Q insulin rate and an actual delivery time from the actual meal bolus;

determining, using the computing device (112, 132, 142), a revised meal bolus insulin rate as the remaining meal bolus divided by a time remaining in the total meal time;

determining, using the computing device (112, .132, 142), a revised total insulin5 rate as a sum of the intravenous insulin rate and the revised meal bolus insulin rate; and sending the revised total insulin rate from the computing device (112, 132, 142) to the insulin administration device (123a, 123b).

26. The system (100) of claim 25, wherein the operations further comprise decreasing0 the time interval (T e t) to less than the default time interval (Toefauit) for one or more meal time sub-intervals (TMeaiBoiusNr).

27. The system ( 100) of claim 26, wherein the operations further comprise:

electronically displaying on a display (116, 143, 146) in communication with the5 computing device (112, .132, 142) a warning and blocking transition to a subcutaneous administration of insulin when the current blood glucose measurement (BG) is outside a stability target range (BGSTR); and

electronically displaying on the display (116, .143, 146) a warning when the current blood glucose measurement (BG) is within the stability target range (BGSTR) for0 less than a threshold stability period of time (Tstabie).

28. The system (100) of claim 18, wherein the operations further comprise: determining, using the computing device (1 12, 132, 142), a total daily dose

(TDD) of insulin based on the mul tipli er (M) when the current blood glucose

measurement (BG) is within a stability target range (BGSTR) for a threshold stability 5 period of time (Tstabie);

determining, using the computing device (112, 132, 142), recommended insulin doses comprising a daily basal insulin and a daily meal insulin for subcutaneous therapy as an apportioning of the total daily dose (TDD ) of insulin, wherein the daily basal insulin is half of the total daily dose (TDD) of insulin and the daily meal insulin is half of Q the total daily dose (TDD ) of insulin; and

sending the recommended insulin doses from the computing device (112, 132, 142) to a subcutaneous injection device ( 123a, 123b) or electronically displaying the recommended insulin doses on a display (116, 143, 146) in communication with the computing device (1 12, 132, 142).

5

29. The system (100) of claim 28, further comprising determining, using the computing device (112, 132, 142), the total daily dose (TDD) of insulin by calculating:

TDD = (BGTarget - K) * (MTrans) * 24

wherein TDD is the total daily dose of insulin, MTrans is a current multiplier at a0 moment of initiation of a process of a transition to subcutaneous insulin treatment; and

BGiarget is determined by calculating:

BGxargat = (BRTRH ÷ BR'rRI.) /

wherein BRTRIi is an upper limit (BGTRH) of the blood glucose target range (BGTR) and BR-.-RL is a lower limit (BGTRL) of the blood glucose target range (BGTR).5

30. The system (100) of claim 28, further comprising determining, using the computing device (1 12, 132, 142), the total daily dose (TDD) of insulin as a function of a patient (10) body weight by calculating:

TDD = 0.5 * Weight

0 wherein TDD is the total daily dose of insulin and Weight is a patient (10) bod - weight in kilograms.

Description:
Insulin Management

TECHNICAL FIELD

[0001] This disclosure relates to a system for managing insulin administration or insulin dosing. BACKGROUND

[0002] Today, nearly 40% of patients admitted to acute care hospitals in the United States experience either hyperglycemia or hypoglycemia, both serious medical conditions. Many of these patients have diabetes while others have fluctuating blood sugars due to trauma, drug reactions, stress and other factors. Nurses and doctors managing these patients manually calculate insulin doses using complex paper protocols.

[0003] Manual calculation may not be accurate due to human error, which can lead to patient safety issues. Different institutions use multiple and sometimes conflicting protocols to manually calculate an insulin dosage. Moreover, the protocols may include extra paperwork that nurses and physicians have to manage, which in turn leads to workflow inefficiencies, additional operating costs, and employee satisfaction issues.

SCIP (Surgical Care improvement Project) scores, length of stay, readmission and even mortality rates adversely affect sub-optimal giycemic management.

[0004] The prevalent method of regulating continuous intravenous insulin infusion is by using a set of written instructions, known as a paper protocol. Paper protocols often involve a tree of conditional statements and some use of tables of numbers, for which a given blood glucose value dictates the use of a different column of insulin rates. The complexity of these paper protocols multiplies the probability of error by the nurses using them. These errors can lead to hypoglycemic events.

SUMMARY

[0005] One aspect of the disclosure provides a method of managing insulin. The method includes receiving blood glucose measurements on a computing device from a giucometer. The blood glucose measurements are separated by a time interval. For each time interval, the method includes determining, using the computing device, an intravenous insul in infusion rate based on the blood glucose measurements of the time interval. The method further includes determining, using the computing device, a blood glucose percentage drop based on the blood glucose measurements (e.g., between a current blood glucose measurement and a previous blood glucose measurement). The method optionally further includes determining, using the computing device, a blood glucose drop rate based on the biood glucose measurements and the time interval. The method also optionally includes decreasing the time interval between blood glucose measurements by the glucometer when the blood glucose percentage drop is greater than a threshold percentage drop and decreasing the time interval between blood glucose measurements by the glucometer when the blood glucose drop rate is greater than a threshold drop rate. The method optionally further includes sending the intravenous insulin infusion rate from the computing device to an insulation administration device.

[00Θ6] Implementations of the disclosure may include one or more of the following optional features. In some implementations, the method includes setting the time interval between the blood glucose measurements by the glucometer to a default time interval or a minimum of a preconiigured hypoglycemia time interval when a current blood glucose measurement is less than a threshold hypoglycemia blood glucose value. The method includes setting the time interval to a minimum of a preconiigured short time interval when the current blood glucose measurement is greater than the threshold hypoglycemia blood glucose value and less than a lower limit of a blood glucose target range and the blood glucose percentage drop is greater than a low blood glucose percentage drop limit or the current blood glucose measurement is greater than or equal to the lower limit of the blood glucose target range and the blood glucose percentage drop is greater than a regular blood glucose percentage drop limit. In some examples, the method includes setting the time interval to a minimum of a preconiigured blood glucose drop rate time interval when the blood glucose drop rate is greater than a blood glucose drop rate limit, a

preconiigured long time interval, when the blood glucose measurements have been within the blood glucose target range for a duration of time greater than a stable time peri od or a preconiigured meal bolus time interval when a meal bolus program is in operation. The preconiigured hypoglycemia time interval is less than the short time interval, the short time interval is less than the blood glucose drop rate time interval, the blood glucose drop rate time interval is less than the long time interval, and the meal bolus time interval is less than the long time interval.

[0007] In some examples, the method includes leaving the multiplier unchanged between time intervals when the current blood glucose measurement is greater than an upper limit of a blood glucose target range and a ratio of the current blood glucose measurement divided by a previous blood glucose measurement is less than or equal to a threshold ratio. The method further includes multiplying the multiplier by a change factor when the current blood glucose measurement divided by the previous blood glucose measurement is greater than the threshold ratio. Additionally or alternatively, the method may include the constant being equal to 60 mg/dl and the threshold ratio being equal to 0.85. The method may further include dividing the multiplier by the change factor when the current blood glucose measurement is less than a lower limit of the blood glucose target range.

[0008] The method may further include, in response to receiving an indication of patient solid food consumption, increasing the intravenous insulin infusion rate and maintaining the multiplier unchanged for at least two time intervals. In some examples, the method includes receiving, at the computing device, a number of estimated grams of carbohydrates for a meal and determining, using the computing device, an estimated meal bolus in units of insulin based on the number of estimated grams of carbohydrates and a carbohydrate-insulin-ratio. The method may further include determining, using the computing device, an estimated meal bolus insulin rate, based on the estimated meal bolus, an available deliveiy time, and a configurable constant, and determining, using the computing devi ce, a total insulin rate as a sum of the intravenous insulin rate and the estimated meal bolus insulin rate. The method may further include sending the total insulin rate from the computing device to the insulin administration device. Additionally or alternatively, the method may include dividing a total meal time into meal time sub- intervals, a first meal time sub-interval starting with a pre-meal blood glucose

measurement before receiving the indication of patient solid food consumption, and determining, using the computing device, the total insulin rate for each meal time sub- interval in succession. [0009] in some examples, the method includes receiving, at the computing device, a number of actual grams of carbohydrates for the meal during a subsequent time interval after the first time interval and determining, using the computing device, an actual meal bolus based on the number of actual grams of carbohydrates. The method also includes, determining an estimated delivered meal bolus by multiplying the estimated meal bolus rate times an elapsed delivery time. The method may further include determining a remaining meal bolus in units of insulin, using the computing device, by subtracting a product of the estimated delivered meal bolus insulin rate and an actual delivery time from the actual meal bolus. In addition, the method may include determining, using the computing device, a revised meal bolus insulin rate as the remaining meal bolus divided by a time remaining in the total meal time and determining, using the computing device, a revised total insulin rate as a sum of the intravenous insulin rate and the re vised meal bolus insulin rate. Further, the method may include sending the revised total insulin rate from the computing device to the insulin administration device. The method may also include decreasing the time interval to less than the default time interval for the one or more meal time sub-intervals.

[0010] In some implementations, the method includes electronically displaying on a display in communication with the computing device a warning and blocking transition to a subcutaneous administration of insulin when the current blood glucose measurement is outside a stability target range and electronically displaying on the display a warning when the current blood glucose measurement is within the stability target range for less than a threshold stability period of time. The method may further include determining, using the computing de vice, a total daily dose of insulin based on the mul tipli er when the current blood glucose measurement is within a stability target range for a threshold period of time. The method further includes determining, using the computing device, recommended insulin dose comprising a daily basal insulin and a daily meal insulin for subc utaneous therapy as an apportioning of the total daily dose of insulin , wherein the daily basal insulin is half of the total daily dose of insulin and the daily meal insulin is half of the total daily dose of insulin. Further, the method includes sending the recommended insulin does from the computing device to a subcutaneous injection device or electronically displaying the recommended insulin doses on a display in communication with the computing device.

[0011 ] In some examples, when the blood glucose drops more than a threshold percent of its previous value, the method includes decreasing the time interval. This threshold percent is configured with two values: Γ) a lower (more sensitive) value when the blood glucose is below the low limit of the target range but above the hypo-threshold; and 2) a higher (less stringent) value when the blood glucose is above the low limit of the target range. The method may include setting the time interval to a hypoglycemia time interval, of between about 15 minutes and about 30 minutes when the current blood glucose measurement is below the hypo-threshold blood glucose level.

[0012] Implementations of the disclosure may include one or more of the following features. In some implementations, the method determining the insulin dose rate using the current blood glucose measurement, a constant (e.g., 60 mg/ ' di), and a unit-less multiplier.

[0013] The method includes adjusting the multiplier as follows: a) multiplying the multiplier by a change factor when the current blood glucose measurement is greater than an upper limit of the blood glucose target range, and the ratio of the current blood glucose to the previous blood glucose is greater than a threshold-ratio; b) dividing the multiplier by a change factor when the current blood glucose measurement is less than a lower limit of the blood glucose target range; c) re -use the previous multiplier for two or more intervals starting at the manual initiation of a meal bolus infusion process; and d) leaving the multiplier unchanged between time intervals when none of conditions a, b, or c are applicable,

[0014] The method includes leaving the multiplier unchanged between time intervals when the current blood glucose measurement is greater than an upper limit of the blood glucose target range and the blood glucose drop rate is greater than or equal to a threshold rate of descent, and multiplying the multiplier by a change factor when the current blood glucose measurement is greater than an upper limit of the blood glucose target range and the blood glucose drop rate is less than the threshold rate of descent. Additionally or alternatively, the method includes dividing the multiplier by a change factor when the current blood glucose measurement is less than a lower limit of a blood glucose target range and leaving the multiplier unchanged between time intervals when the current blood glucose measurement is within the blood glucose target range. In some examples, the method includes leaving the multiplier unchanged for at least two subsequent time intervals when the current blood glucose measurement is a pre-meal measurement.

[0015] In some examples, a meal bolus infusion process allows for the calculation of mealtime insulin for patients consuming oral carbohydrates. These examples may include leaving the multiplier unchanged for at least two subseq uent time intervals when the current blood glucose measurement is a pre-meal measurement. In some examples, the method includes receiving, on the computing device, a number of carbohydrates for a meal and determining, using the computing device, a meal bolus rate based on the number of carbohydrates and an intravenous insulin rate based on the blood glucose level. In addition, the method includes determining a Total Insulin Rate including the sum of the meal bolus rate and the intravenous insulin rate based on a blood glucose value. The method may further include setting the time interval to about 30 minutes immediately following the pre-meal blood glucose and for the next glucose measurement time interval. If the blood glucose measurement is a second consecutive measurement after an initial pre-meal blood glucose measurement, the method includes setting the time interval, to about 60 minutes.

[0016] In some implementations, the method includes decreasing the time interval when the current blood glucose measurement is greater than or equal to the lower limit of the blood glucose target range and the blood glucose drop rate exceeds a threshold drop rate. The method may also include setting the time interval to a default value of about one hour when the current blood glucose measurement is greater than or equal to the lower limit of the blood glucose target range and the blood glucose drop rate is less than or equal to a threshold drop rate. The method may include setting the time interval to a hypoglycemia time interval of between about 15 minutes and about 30 minutes, when the current blood glucose measurement is below the lower limit of the blood glucose target range and greater than a hypo-threshold blood glucose level.

[0017] In some implementations, the method includes decreasing the time interval when the current blood glucose measurement is below the lower limi t of the blood glucose target range and below the hypo-threshold blood glucose level, and the blood glucose drop rate is less than or equal to a threshold drop rate. The method may also include setting the time interval to a default value of about one hour when the current blood glucose measurement is below the lower limit of the biood glucose target range and below the hypo-threshold blood glucose level, and the biood glucose drop rate is greater than the threshold drop rate,

[0018] In some examples, the method includes receiving, on the computing device, a number of carbohydrates per meal and determining, using the computing device, an intravenous insulin rate. In addition, the method mcludes determining, using the computing device, a meal bolus rate based on the number of carbohydrates and the insulin dose rate based on the intravenous insulin rate and the estimated meal bolus rate. The method may further include setting the time interval to about 30 minutes. If the blood glucose measurement is a second consecutive measurement after an initial pre- meal blood glucose measurement, the method includes settmg the time interval to about 60 minutes.

[0019] In some implementations, the method includes a function to transition the insulin delivery method from an intravenous to subcutaneous basal-bolus regimen. The transition method provides doses and parameters for starting the patient on basal-bolus subcutaneous treatment. The transition method includes electronically displaying on a display a warning and blocking transition to a subcutaneous administration of insulin when the current blood glucose measurement is outside a stability target range. In addition, the method includes electronically displaying on the dis lay a warning when the current blood glucose measurement is within the stability target range for less than a threshold stability period of time. In some examples, the method includes determining a total daily dose of insulin based on the multiplier when the current blood glucose measurement is within a stability target range for a threshold stability period of time.

[0020] Another aspect of the disclosure mcludes a system for managing insulin. The system includes a glucometer measuring blood glucose measurements separated by a time interval, an insulation administration device, and a dosing controller in

communication with the glucometer and the insulation administration device. The dosing controller includes a computing device and non-transitory memory in communication with the computing device. The non-transitory memory stores instructions that when executed by the computing device cause the computing device to perform operations. The operations include receiving blood glucose measurements on a computing device from a glucometer, the blood glucose measurements separated by a time interval. For each time interval, the system includes determining, using the computing device, an intravenous insulin infusion rate based on the blood glucose measurements of the time interval and determining, using the computing device, a blood glucose percentage drop based on the blood glucose measurements (e.g., between a current blood glucose measurement and a previous blood glucose measurement). The system further includes determining, using the computing device, a blood glucose drop rate based on the blood glucose measurements and the time interval and decreasing the time interval between blood glucose measurements by the glucometer when the blood glucose percentage drop is greater than a threshold percentage drop. The system further includes decreasing the time interval between blood glucose measurements by the glucometer when the blood glucose drop rate is greater than a threshold drop rate and sending the intravenous insulin infusion rate from the computing device to the insulation administration device.

[0021] In some implementations, the system operations further include setting the time interval between the blood glucose measurements by the glucometer to a default time interval or a minimum of a preconfigured hypoglycemia time interval when a current blood glucose measurement is less than a threshold hypoglycemia blood glucose value or a preconfigured short time interval. The minimum of a preconfigured short time interval is set when the current blood glucose measurement is greater than the threshold hypoglycemia blood glucose value and less than a lower limit of a blood glucose target range and the blood glucose percentage drop is greater than a low blood glucose percentage drop limit or the current blood glucose measurement is greater than or equal to the lower limit of the blood glucose target range and the blood glucose percentage drop is greater than a regular blood glucose percentage drop limit. Further, the operations include setting the time interval between the blood glucose measurements by the glucometer to a minimum of a preconfigured blood glucose drop rate time interval when the blood glucose drop rate is greater than a blood glucose drop rate limit or a

preconfigured long time interval when the blood glucose measurements have been within the blood glucose target range for a duration of time greater than a stable time period, or a preconfigured meal bolus time interval when a meal bolus program is in operation. The preconfigured hypoglycemia time interval is less than the short time interval, the short time interval is less than the blood glucose drop rate time interval, the blood glucose drop rate time interval is less than the long time interval, and the meal bolus time interval is less than the long time interval.

[0022] In some examples, the operations further include leaving the multiplier unchanged between time intervals when the current blood glucose measurement is greater than an upper limit of a blood glucose target range and a ratio of the current blood glucose measurement divided by a previous blood glucose measurement is less than or equal to a threshold ratio. The system further includes multiplying the multiplier by a change factor when the current blood glucose measurement is greater than the upper limit of the blood glucose target range and the ratio of the current blood glucose measurement divided by the previous blood glucose measurement is greater than the threshold ratio. In some examples, the constant equals 60 mg/dl and the threshold ratio is 0.85.

Additionally or alternatively, the operations may further include dividing the multiplier by the change factor when the current blood glucose measurement is less than a lower limit of the blood glucose target range. In some implementations, the operations further include, in response to receiving an indication of patient solid food consumption, increasing the intravenous insulin infusion rate and maintaining the multiplier unchanged for at least two time intervals.

[0023] The system may further include receiving, at the computing device, a number of estimated grams of carbohydrates for a meal, determining, using the computing device, an estimated meal bolus in units of insulin based on the number of estimated grams of carbohydrates and a carbohydrate -insulin-ratio and determining, using the computing device, an estimated meal bolus insulin rate, based on the estimated meal bolus, an available delivery time, and a configurable constant. The system may also include determining, using the computing device, a total insulin rate as a sum of the intravenous insulin rate and the estimated meal bolus insulin rate and sending the total insulin rate from the computing device to the insulin administration device. The system operations may further include dividing a total meal time into meal time sub-intervals, a first meal time sub-interval starting with a pre-meal bolus glucose measurement before receiving the indication of patient solid food consumption and determining, using the computing device, the total insulin rate for each meal time sub-interval in succession.

[0024] In some examples, the operations further include receiving, at the computing device, a number of actual grams of carbohydrates for the meal during a subsequent time interval after the first time interval, determining, using the computing device, an actual meal bolus based on the number of actual grams of carbohydrates and determining a meal bolus in units of insulin, using the computing device, by subtracting a product of the estimated meal bolus insulin rate and an actual delivery time from the actual meal bolus. The system may further include determining, using the computing device, a revised meal bolus insulin rate as the remaining meal bolus divided by a time remaining in the total meal time, determining, using the computing device, a revised total insulin rate as a sum of the intravenous insulin rate and the revised meal bolus insulin rate and sending the revised total insulin rate from the computing device to the insulin administration device. The operations may further comprise decreasing the time interval to less than the default time interval for the one or more meal time sub-intervals.

[0025] In some implementations, the operations include electronically displaying on a display in communication with the computing device a warning and blocking transition to a subcu taneous administration of insulin when the curren t blood glucose measurement is outside a stability target range and electronically displaying on the display a warning when the current blood glucose measurement is within the stability target range for less than a threshold stability period of time. In some examples, the operations include determining, using the computing device, a total daily dose of insulin based on the multiplier when the current blood glucose measurement is within a stability target range for a threshold stability period of time. The system also includes determining, using the computing device, recommended insulin dose including a daily basal insulin and a daily meal insulin for subcutaneous therapy as an apportioning of the total daily dose of insulin, wherein the daily basal insulin is half of the total daily dose of insulin and the daily meal insulin is half of the total daily dose of insulin. The system may further include sending the recommended insulin dose from the computing device to a subcutaneous injection device or electronically displaying the recommended insulin doses on a display in communication with the computing device. [0026] The dosing controller may determine the insulin dose rate based on the current blood glucose measurement, a constant (e.g., 60 mg/dl), and a multiplier. The dosing controller leaves the multiplier unchanged between time intervals when the current blood glucose measurement is greater than an upper limit of the blood glucose target range and the blood glucose drop rate is greater than or equal to a threshold rate of descent. In addition, the dosing controller multiplies the multiplier by a change factor when the current blood glucose measurement is greater than an upper limit of the blood glucose target range and the blood glucose drop rate is less the threshold rate of descent. The dosing controller may leave the multiplier unchanged between time intervals when the current blood glucose measurement is less than a lower limit of the blood glucose target range, and it may divide the multiplier by a change factor when the current blood glucose measurement is within the blood glucose target range. In some examples, the dosing controller leaves the multiplier unchanged for at least two subsequent time intervals when the current blood glucose measurement is a pre-meal measurement.

10027] in some implementations, the dosing controller decreases the time interval when the current blood glucose measurement is greater than or equal to the lower limit of the blood glucose target range and the blood glucose drop rate exceeds a threshold drop rate. In addition, the dosing controller sets the time interval to a default value of about one hour when the current blood glucose measurement is greater than or equal to the lower limit of the blood glucose target range and the blood glucose drop rate is less than or equal to a threshold drop rate. The dosing controller may set the time interval to a hypoglycemia time interval of between about 15 minutes and about 30 minutes, when the current blood glucose measurement is below the lower limit of the blood glucose target range and greater than a hypo-threshold blood glucose level.

[0028] In some examples, the dosing controller decreases the time interval when the current blood glucose measurement is below the lower limit of the blood glucose target range and below the hypo-threshold blood glucose level, and the blood glucose drop rate is less than or equal to a threshold drop rate. Moreover, the dosing controller sets the time interval to a default value of about one hour when the current blood glucose measurement is below the lower limit of the blood glucose target range and below the

I I hypo-threshold blood glucose level, and the blood glucose drop rate is greater than the threshold drop rate,

[0029] In some examples, the dosing control ler receives, on the computing device, a number of carbohydrates per meal, then determines, using the computing device, an intravenous insulin rate and a meal bolus rate based on the number of carbohydrates. Furthermore, the dosing controller determines, using the computing device, the insulin dose rate based on the intravenous insulin rate and the estimated meal bolus rate. The dosing controller may set the time interval to about 30 minutes. Additionally or alternatively, the dosing controller may set the time interval to about 60 minutes if the blood glucose measurement is a second consecutive measurement after an initial pre- meal blood glucose measurement.

[0030] In some examples, the dosing controller electronically displays on a display in communication with the dosing controller a warning and blocks transition to a subcutaneous administration of insulin when the current blood glucose measurement is outside a stability target range. The dosing controller electronically displays on the display a warning when the current blood glucose measurement is within the stability target range for less than a threshold stability period of time. The dosing controller may determine a total daily dose of insulin based on the multiplier when the current blood glucose measurement is within a stability target range for a threshold stability period of time.

[0031 ] The details of one or more implementations of the disclosure are set forth in the accompanying drawings and the description below. Other aspects, features, and advantages will be apparent from the description and drawings, and from the claims,

DESCRIPTION OF DRAWINGS

[0032] FIG. 1 A is a schematic view of an exemplar ' system for monitoring blood glucose level of a patient.

[0033] FIG, I B is a schematic view of an exemplary system for monitoring blood glucose level of a patient.

[0034] FIG. 2A. is a schematic view of an exemplar}' process for monitoring the blood glucose level of a patient. [0035] FIG. 2B is a schematic view of an exemplaiy display for inputting patient information.

[0036] FIG, 2C is a schematic view of an exemplary display for selecting a patient from a list of patients.

[0037] FIG. 2D is a schematic view of an exemplar ' display indicating initial intravenous dosing information.

[0038] FIG. 3 is a schematic view of an exemplar}' dose calculation process of FIG. 2A.

[0039] FIG. 4A. is a schematic view of an exemplar}' calculation of the intravenous time interval of FIG. 2A.

[0040] FIGS. 4B and C are schematic views of an exemplary display showing the time a next blood glucose measurement is due.

[0041] FIG. 4D is a schematic view of an exemplaiy display for inputting patient information.

[0042] FIG. 4E is a schematic view of an exemplaiy display of patient information and a timer for a patient's next blood glucose measurement.

[0043] FIGS. 5A and 5B are schematic views of an exemplary meal bolus process of FIG. 2A.

[0044] FIG. 5C is a schematic view of an exemplaiy display for inputting a patient's blood glucose measurement.

[0045] FIG. 5D is a schematic view of an exemplary display of patient information and a timer for a patient's next blood glucose measurement.

[0046] FIG S. 5E and 5F are schematic views of exemplary displays requesting information from the user.

[0047] FIGS. 6A and 6B are schematic views of an exemplar}' subcutaneous transition process of FIG. 2A.

[0048] FIG. 6C is a schematic view of an exemplary warning to the user relating to the patient.

[0049] FIG. 6D is a schematic view of an exemplary display inquiring whether the patient should continue treatment or stop. [0050] FIG. 6E is a schematic view of an exemplary display requesting information from the user relating to the patient.

[0051 ] FIG. 6F is a schematic view of an exemplary display showing the

recommended dose of insulin,

[ 0052] FIG. 6G is a schematic view of an exemplar ' view to the user relating to transitioning a patient to subcutaneous delivery.

[0053] FIG. 7 is a schematic view of an exemplar}' arrangement of operations for administering insulin.

[0054] Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

[0055] Diabetic hospital patients who eat meals often have poor appetites;

consequently, co-ordination of meal boluses and meals is difficult. Meal boluses without meals cause hypoglycemia; meals without meal boluses cause hyperglycemia. Different providers may use different methods of adjusting doses: some may use formulas of their own; some may use paper protocols that are complex and difficult for the nurse to follow, leading to a high incidence of human error; and some may use heuristi c methods. There is no guarantee of consistency. Moreover, for diabetic patients who do not eat meals, there is no currently no computerized method of tracking the patient's status. For non- diabetic patient who get include due to "stress hyperglycemia" when they are very sick or undergoing surgery, there is no current method of monitoring their recovery when the stress subsides and their need for insulin rapidly decreases. If the dose regimen does not decrease rapidly also, hypoglycemia may result. Therefore, it is desirable to have a clinical support system 100 (FIGS. 1A and IB) that monitors patients' blood glucose level.

[0056] Referring to FIG. 1 A and I B, in some implementations, a clinical decision support system 100 analyzes inputted patient condition parameters for a patient 10 and calculates a personalized dose of insulin to bring and maintain the patient's blood glucose level into a target range BGTR. Moreover, the system 100 monitors the glucose levels of a patient 10 and calculates recommended intravenous or subcutaneous insulin dose to bring the patient's blood glucose into the preferred target range BG TR over a recommended period of time. A qualified and trained healthcare professional 40 may use the system 100 along with clinical reasoning to determine the proper dosing administered to a patient 10. Therefore, the system 100 is a glycemic management tool for evaluation a patient's current and cumulative blood glucose value BG while taking into

consideration the patient's information such as age, weight, and height. The system 1 00 may also consider other information such as carbohydrate content of meals, insulin doses being administered to the patient 10, e.g., long-acting insulin doses for basal insulin and rapid-acting insulin doses for meal boluses and correction boluses. Based on those measurements (that may be stored in non-transitory memory 24, 1 14, 144), the system 100 recommends an intravenous dosage of insulin, glucose, or saline or a subcutaneous basal and bolus insulin dosing recommendation or prescribed dose to adjust and maintain the blood glucose level towards a configurable (based on the patient's information) physician's determined blood glucose target range BG TR . The system 100 also considers a patient's insulin sensitivity or improved glycemic management and outcomes. The system 100 may take into account pertinent patient information such as demographics and previous results, leading to a more efficient use of healthcare resources. Finally, the system 100 provides a reporting platform for reporting the recommendations or prescribed dose(s) to the user 40 and the patient 10. In addition, for diabetic patients who eat meals, the system 100 provides faster, more reliable, and more efficient insulin administration than a human monitoring the insulin administration. The system 100 reduces the probability of human error and insures consistent treatment, due to the system's capability of storing and tracking the patient's blood glucose levels BG, which may be used for statistical studies. As for patients who are tube-fed or do not eat meals, the system 100 provides dedicated subprograms, which in turn provide basal insulin and correction boluses but no meal boluses. Patients who are tube-fed or who do not eat usually have a higher basal insulin level than patients who eat, because the carbohydrates in the nutritive formula are accounted- for in the basal insulin. The system 100 provides a meal-by-meal adjustment of Meal Boluses without carbohydrate counting, by providing a dedicated subprogram that adjusts meal boluses based on the immediately preceding meal bolus and the BG that followed it. The system 100 provides a meal-by-meal adjustment of Meal Boluses with carbohydrate counting by providing a dedicated subprogram that adjusts meal boluses based a Carbohydrate-to-insulin Ratio (CIR) that is adjusted at each meal, based on the CIR. used at the immediately preceding meal bolus and the BG that followed it.

[0057] Hyperglycemia is a condition that exists when blood sugars are too high. While hyperglycemia is typically associated with diabetes, this condition can exist in many patients who do not have diabetes, yet have elevated blood sugar levels caused by trauma or stress from surgery and other complications from hospital procedures. Insulin therapy is used to bring blood sugar levels back into a normal range.

[0058] Hypoglycemia may occur at any time when a patient's blood glucose level is below a preferred target. Appropriate management of blood glucose levels for critically ill patients reduces co-morbidities and is associated with a decrease in infection rates, length of hospi tal stay, and death. The treatment of hypergly cemia may differ depending on whether or not a patient has been diagnosed with Type 1 diabetes meliitus, Type 2 diabetes meliitus, gestational diabetes meliitus, or non-diabetic stress hyperglycemia. The blood glucose target range BGTR is defined by a lower limit, i.e., a low target BGTRL and an upper limit, i.e., a high target BG TRH .

[0059] Stress-related hyperglycemia: Patients often get "stress hyperglycemia" if they are very sick or undergoing surgery. This condition requires insulin. In diabetic patients, the need for insulin is visibly increased, in non-diabetic patients, the stress accounts for the only need for insulin, and as the patients recover, the stress subsides, and their need for insulin rapidly decreases. For non-diabetic patients, the concern is that their need for insulin decreases faster than their dose regimen, leading to hypoglycemia.

[0060] Diabetes Meliitus has been treated for many years with insulin. Some recurring terms and phrases are described below:

[0061] Injection: Administering insulin by means of manual syringe or an insulin "pen," with a portable syringe named for its resemblance to the familiar writing implement.

[ 0062] Infusion: Administering insulin in a continuous manner by means of an insulin pump for subcutaneous insulin or an intravenous apparatus 123a, both of which are capabl e of continuous administration. [0063] intravenous insulin Therapy: Intravenous infusion of insulin has been approved by the U.S. Food and Drug Administration as an acceptable indication for use. Intravenous infusion is the fastest of all insulin administration routes and, typically, only available in the hospital setting. For instance, in intensive care units, the patients may be fed by intravenous glucose infusion, by intravenous Total Parenteral Nutrition (TPN), or by a tube to the stomach. Patients are often given insulin in an intravenous infusion at an insulin infusion rate I IR. The IIR is regulated by the f equent testing of blood glucose, typically at intervals between about 20 minutes and 2 hours. This is combined with a protocol in which a new IIR is computed after each blood glucose test,

[0064] Basal-Bolus Therapy: Basal-bolus therapy is a term that collectively refers to any insulin regimen involving basal insulin and boluses of insulin,

[0065] Basal Insulin: Insulin that is intended to metabolize the glucose released by a patient's the liver during a fasting state. Basal insulin is administered in such a way that it maintains a background level of insulin in the patient's blood, which is general!)' steady but may be varied in a programmed manner by an insulin pump 123 a. Basal insulin is a slow, relatively continuous supply of insulin throughout the day and night that provides the low, but present, insulin concentration necessary to balance glucose consumption (glucose uptake and oxidation) and glucose production (glucogenolysis and

gluconeogenesis). A patient's Basal insulin needs are usually about 10 to 15 mU/kg/hr and account for 30% to 50% of the total daily insulin needs; however, considerable variation occurs based on the patient 10.

[0066] Bolus Insulin: Insulin that is administered in discrete doses. There are two main types of boluses, Meal Bolus and Correction Bolus.

[ 0067] Meal Bolus: Taken just before a meal in an amount which is proportional to the anticipated immediate effect of carbohydrates in the meal entering the blood directly from the digestive system. The amounts of the Meal Boluses may be determined and prescribed by a physician 40 for each meal during the day, i.e., breakfast, lunch, and dinner. Alternatively, the Meal Bolus may be calculated in an amount generally proportional to the number of grams of carbohydrates in the meal. The amount of the Meal Bolus is calculated using a proportionality constant, which is a personalized number called the Carbohydrate-to-insulin Ratio (CIR) and calculated as follows: Meal Insulin Bolus = {grams of carbohydrates in the meal } CIR (1)

[0068] Correction Bolus CB: Injected immediately after a blood glucose

measurement; the amount of the correction bolus is proportional to the error in the BG (i.e., the bolus is proportional to the difference between the blood glucose measurement BG and the patient's personalized Target blood glucose BGTaiget). The proportionali y constant is a personalized number called the Correction Factor, CF, and is calculated as follows:

CB = (BG - BG Taiget ) CF (2)

[0069] A Correction Bolus CB is generally administered in a fasting state, after the previously consumed meal has been digested. This often coincides with the time just before the next meal,

[0070] There are several kinds of Basal-Bolus insulin therapy including Insulin Pump therapy and Multiple Dose Injection therapy:

[0071] Insulin Pump Therapy: An insulin pump 123a is a medical device used for the administration of insulin in the treatment of diabetes mellitus, also known as continuous subcutaneous insulin infusion therapy. The device includes: a pump, a disposable reservoir for insulin, and a disposable infusion set. The pump 123a is an alternative to multiple daily injections of insulin by insulin syringe or an insulin pen and allows for intensive insulin therapy when used in conjunction with blood glucose monitoring and carbohydrate counting. The insulin pump 123a is a battery-powered device about the size of a pager. It contains a cartridge of insulin, and it pumps the insulin into the patient via an ''infusion set", which is a small plastic needle or "canuia" fitted with an adhesive patch. Only rapid-acting insulin is used.

[0072] Multiple Dose Injection (MDI): MDI involves the subcutaneous manual injection of insulin several times per day using syringes or insulin pens 123b. Meal insulin is supplied by injection of rapid-acting insulin before each meal in an amount proportional to the meal. Basal insulin is provided as a once, twice, or three time daily injection of a dose of long-acting insulin. Other dosage frequencies may be available. Advances continue to be made in developing different types of insulin, many of which are used to great advantage with MDI regimens: [0073] Long-acting insulins are non-peaking and can be injected as infrequently as once per day. These insulins are widely used for Basal Insulin. They are administered in dosages that make them appropriate for the fasting state of the patient, in which the blood glucose is replenished by the liver to maintain a steady minimum blood glucose level.

[0074] Rapid-acting insulins act on a time scale shorter than natural insulin. They are appropriate for boluses.

[0075] In some examples, critically ill patients are ordered nil per os (NPO), which means that oral food and fluids are withheld from the patient 10. Typically these patients 10 are unconscious, have just completed an invasive surgical procedure, or generally have difficulty swallowing. Intravenous msulin infusion is typically the most effective method of managing blood glucose levels in these patients. A patient 10 may be NPO and receiving a stead)' infusion of intravenous glucose, Total Parenteral Nutrition, tube feeding, regular meals that include carbohydrates, or not receiving any nutrition at ail. In cases where the patient 10 is not receiving any nutrition, blood glucose is typically replaced by endogenous production by the liver.

[0076] As a patient's condition improves, an NPO order may be lifted, allowing the patient 10 to commence an oral caloric intake. In patients 10 with glycemic

abnormalities, additional insulin may be needed to cover the consumption of

carbohydrates. These patients 10 generally receive one-time injections of msulin in the patient's subcutaneous tissue.

[0077] Subcutaneous administration of mealtime insulin in critically ill patients 10 can introduce a patient safety risk if, after receiving the insulin injection, the patient 10 decides not to eat, is unable to finish the meal, or experiences emesis.

[ 0078] Continuous intravenous infusion of mealtime insulin, over a predetermined time interval, allows for an incremental fulfillment of the patient's mealtime insulin requirement, while minimizing patient safety risks. If a patient 10 decides he/she is unable to eat, the continuous intravenous infusion may be stopped or, if a patient 10 is unable to finish the meal, the continuous intravenous infusion rate may be decreased to compensate for the reduction in caloric intake.

[0079] The pharmacokinetics (what the body does to a drug over a period of time, which includes the processes of absorption, distribution, localization in tissues, biotransformation, and excretion) and pharmacodynamics (what a drug does to the body) actions of insulin significantly improve when administering insulin via an intravenous route, which is a typical method of delivery for hospitalized patients 10. The

management of prandial insulin requirements using an intravenous route can improve patient safety, insulin efficiency, and the accuracy of insulin dosing. The majority of patients who require continuous intravenous insulin infusion therapy may also need to be transitioned to a subcutaneous insulin regimen for ongoing control of blood glucose, regardless of diabetes meliitus (DM) diagnosis. Moreover, the timing, dosing, and process to transition patients 10 f om a continuous intravenous route of insulin administration to a subcutaneous insulin regimen is complex and should be

individualized based on various patient parameters. Failure to individualize this approach could increase the ri sk of severe hypoglycemia during the transition process. If not enough insulin is given, the patient 10 may experience acute post-transition

hyperglycemia, requiring re-initiation of a continuous intravenous insulin infusion, Therefore, the clinical decision support system 100 calculates a personalized dose of insulin to bring and maintain the patient's blood glucose level into a target range BG TR , while taking into consideration the condition of the patient 10.

[0080] The clinical decision support system 100 includes a glycemic management module 50, an integration module 60, a surveillance module 70, and a reporting module 80. Each module 50, 60, 70, 80 is in communication with the other modules 50, 60, 70, 80 via a network 20. In some examples, the network 24 (discussed below) provides access to cloud computing resources that allows for the performance of services on remote devices instead of the specific modules 50, 60, 70, 80. The glycemic management module 50 executes a process 200 (e.g., an executable instruction set) on a processor 1 12, 132, 142 or on the cloud computing resources. The integration module 60 allows for the interaction of users 40 with the system 100. The integration module 60 receives information inputted by a user 40 and allows the user 40 to retrieve previously inputted information stored on a storage system (e.g., one or more of cloud storage resources 24, a non-transitory memory 144 of a hospital's electronic medical system 140, a non- transiton ' memory 1 14 of the patient device 110, or other non-transitory storage media in communication with the integration module 60). Therefore, the integration module 60 allows for the interaction between the users 40 and the system 100 via a display 116, 146. The surveillance module 70 considers patient information 208a received from a user 40 via the integration module 60 and information received from a glucometer 124 that measures a patient's blood glucose value BG and determines if the patient 10 is within a threshold blood glucose value BG TH - In some examples, the surveillance module 70 alerts the user 40 if a patient's blood glucose values BG are not within a threshold blood glucose value BG TH . The surveillance module 70 may be preconfigured to alert the user 40 of other discrepancies between expected values and actual values based on preconfigured parameters (discussed below). For example, when a patient's blood glucose value BG drops below a lower limit of the threshold blood glucose value BG THL - The reporting module 80 may be in communication with at least one display 116, 146 and provides information to the user 40 determined using the glycemic management module 50, the integration module 60, and/or the surveillance module 70. In some examples, the reporting module 80 provides a report that may be displayed on a display 116, 146 and/or is capable of being printed.

[0081] The system 100 is configured to evaluate a glucose level and nutritional intake of a patient 10. The system 100 also evaluates whether the patient 10 is transitioning to a subcutaneous insulin regime. Based on the evaluation and analysis of the data, the system 100 calculates an insulin dose, which is administered to the patient 10 to bring and maintain the blood glucose level of the patient 10 into the blood glucose target range BG TR . The system 100 may be applied to various devices, including, but not limited to, intravenous infusion pumps 123a, subcutaneous insulin infusion pumps 123a,

glucometers, continuous glucose monitoring systems, and glucose sensors. In some implementations, as the system 100 is monitoring the patient's blood glucose values BG and the patient's insulin intake, the system 100 notifies the user 40 if the patient 10 receives more than 500 units/hour of insulin because the system 100 considers these patients 10 to be insulin resistant.

[0082] In some examples the clinical decision support system 100 includes a network 20, a patient device 110, a dosing controller 160, and a sendee provider 130. The patient device 1 10 may include, but is not limited to, desktop computers or portable electronic device (e.g., cellular phone, smartphone, personal digital assistant, barcode reader, personal computer, or a wireless pad) or any other electronic device capable of sending and receiving information via the network 20,

[0083] The patient device 1 10 includes a data processor 1 12 (e.g., a computing device that executes instructions), and non-transitory memory 114 and a display 1 16 (e.g., touch display or non-touch display) in communication with the data processor 1 12. in some examples, the patient device 110 includes a keyboard 118, speakers 212, microphones, mouse, and a camera.

[0084] The service provider 130 may include a data processor 132 in communication with non-transitory memory 134. The service provider 130 provides the patient 10 with a process 200 (see FIG. 2) (e.g., a mobile application, a web-site application, or a downloadable program that includes a set of instructions) executable on a processor 112, 132, 142 of the dosing controller 160 and accessible through the network 20 via the patient device 110, intravenous infusion pumps 123a, hospital electronic medical record systems 140, or portable blood glucose measurement devices 124 (e.g., glucose meter or glucometer). Intravenous infusion pumps infuse fluids, medication or nutrients into a patient's circulatory system. Intravenous infusion pumps 123a may be used

intravenously and, in some instances, subcutaneous, arterial and epidural infusions are used. Intravenous infusion pumps 123a typically administer fluids that are expensive or unreliable if administered manually (e.g., using a pen 123b) by a nurse or doctor 40. Intravenous infusion pumps 123a can administer a 0.1 ml per hour injection, injections every minute, injections with repeated boiuses requested by the patient, up to a maximum number per hours, or fluids whose volumes vary by the time of day.

[0085] In some implementations, an electronic medical record system 140 is located at a hospital 42 (or a doctor's office) and includes a data processor 142, a non-transitory memor 144, and a display 146 (e.g., touch display or non-touch display). The transitory memory 144 and the display 146 are in communication with the data processor 142. In some examples, the hospital electronic medical system 140 includes a keyboard 148 in communication with the data processor 142 to allow a user 40 to input data, such as patient information 208a (FIGS.2A and 2B). The non-transitory memory 144 maintains patient records capable of being retrieved, viewed, and, in some examples, modified and updated by authorized hospital personal on the display 146. [0086] The dosing controller 160 is in communication with the giucometer 124 and includes a computing device 1 12, 132, 142 and non-transitory memory 1 14, 134, 144 in communication with the computing device 1 12, 132, 142. The dosing controller 160 executes the process 200. The dosing controller 160 stores patient related information retrieved from the giucometer 124 to determine an insulin dose rate IRR based on the received blood glucose measurement BG.

[0087] The network 20 may include any type of network that allows sending and receiving communication signals, such as a wireless telecommunication network, a cellular telephone network, a time division multiple access (TDMA) network, a code division multiple access (CDMA) network, Global system for mobile communications (GSM), a third generation (3G) network, fourth generation (4G) network, a satellite communications network, and other communication networks. The network 20 may include one or more of a Wide Area Network (WAN), a Local Area Network (LAN), and a Personal Area Network (PAN). In some examples, the network 20 includes a combination of data networks, telecommunication networks, and a combination of data and telecommunication networks. The patient device 110, the sendee provider 130, and the hospital electronic medical record system 140 communicate with each other by sending and receiving signals (wired or wireless) via the network 20. In some examples, the network 20 provides access to cloud computing resources, which may be elastic/on- demand computing and/or storage resources 24 available over the network 20. The term 'cloud' services generally refers to a service performed not locally on a user's device, but rather delivered from one or more remote devices accessible via one or more networks 20.

[0088] Referring to FIGS. IB and 2A-2C, the process 200 receives parameters (e.g., patient condition parameters) inputted via the client device 1 10, the service provider 130, and/or the hospital system 140, analyzes the inputted parameters, and determines a personalized dose of insulin to bring and maintain a patient's blood glucose level BG into a preferred target range BG TR .

[0089] In some implementations, before the process 200 begins to receive the parameters, the process 200 may receive a username and a password (e.g., at a login screen displayed on the display 116, 146) to verify that a qualified and trained healthcare professional 40 is initiating the process 200 and entering the correct information that the process 200 needs to accurately administer insulin to the patient 10. The system 100 may customize the login screen to allow a user 40 to reset their password and/or username. Moreover, the system 100 may provide a logout button (not shown) that allows the user 40 to log out of the system 100. The logout button may be displayed on the display 116, 146 at any time during the execution of the process 200.

[0090] The clinical decision support system 100 may include an alarm system 120 that alerts a user 40 when the patient's blood glucose level BG is outside the target range BG TR . The alarm system 120 may produce an audible sound via speaker 122 in the form of a beep or some like audio sounding mechanism. In some examples, the alarm system 120 displays a warning message or other type of indication on the display 116 of the patient device 1 10 to provide a warning message. The alarm system 120 may also send the audible and/or visual notification via the network 20 to the hospital system 1 0 (or any other remote station) for display on the display 146 of the hospital system 140 or played through speakers 152 of the hospital system 140.

[0091] The process 200 prompts a user 40 to input patient information 208a at block 208. The user 40 may input the patient information 208a, for example, via the user device 110 or via the hospital electronic medical record systems 140 located at a hospital 42 (or a doctor's office). The user 40 may input new patient information 208a as shown in FIG. 2B or retrieve previously stored patient information 208a as shown in FIG. 2C. In some implementations, the process 200 provides the user 40 with a patient list 209 (FIG. 2C) where the user 40 selects one of the patient names from the patient list 209, and the process 200 retrieves that patient's information 208a. The process 200 may allow the user 40 to filer the patient list 209, e.g., alphabetically (first name or last name), by location, patient identification. The process 200 may retrieve the patient information 208a from the non-transitory memory 144 of the hospital's electronic medical system 140 or the non-transitory memory 1 14 of the patient device 110 (e.g., where the patient information 208a was previously entered and stored). The patient information 208a may include, but is not limited to, a patient's name, a patient's identification number (ID), a patient's height, weight, date of birth, diabetes history, physician name, emergency contact, hospital unit, diagnosis, gender, room number, and any other relevant information, in some examples, the diagnosis may include, but is not limited to, burn patients, Coronary artery bypass patients, stoke patients, diabetic ketoacidosis (DKA) patients, and trauma patients. After the user 40 completes inputting the patient information 208a, the process 200 at block 202 determines whether the patient 10 is being treated with an intravenous treatment module by prompting the user 40 (e.g., on the display 116, 146) to input whether the patient 10 will be treated with an intravenous treatment module. If the patient 10 will not be treated with the intravenous treatment module, the process 200 determines at block 210 whether the patient 10 will be treated with a subcutaneous treatment module, by asking the user 40 (e.g., by prompting the user 40 on the display 1 16, 146). if the user 40 indicates that the patient 10 will be treated with the subcutaneous treatment, the process 200 flows to block 216, where the user 40 enters patient subcutaneous information 216a, such as bolus insulin type, target range, basal insulin type and frequency of distribution (e.g., 1 does per day, 2 doses per day, 3 doses per day, etc.), patient diabetes status, subcutaneous type ordered for the patient (e.g., Basal/Bolus and correction that is intended for patients on a consistent carbohydrate diet, or Basal and correction that is intended for patients who are NPO or on continuous enteral feeds), frequency of patient blood glucose measurements, or any other relevant information. In some implementations, the patient subcutaneous information 216a is prepopuiated with default parameters, which may be adjusted or modified. When the user 40 enters the patient subcutaneous information 216, the subcutaneous program begins at block 226. The process may determine whether the patient 10 is being treated with an intravenous treatment or a subcutaneous treatment by prompting the user 40 to select between two options (e.g., a button displayed on the display 1 16, 146), one being the intravenous treatment and the other begin the subcutaneous treatment.

[0092] In some implementations and referring back to block 202, if the process 200 determines that the patient 10 will be treated with the intravenous treatment module, the process 200 prompts the user 40 at block 204 for setup data 204a, such as patient parameters 204a relevant to the intravenous treatment mode. In some examples, the patient parameter 204a relating to the intravenous treatment may be prepopuiated, for example, with default values that may be adjusted and modified by the user 40. These patient parameters 204a may include an insulin concentration (i.e., the strength of insulin being used for the intravenous dosing, which may be measured in units/mi!liliter), the type of insulin and rate being administered to the patient, the blood glucose target range BG T , the patient's diabetes history , a number of carbohydrates per meal, or any other relevant information. In some implementations, the type of insulin and the rate of insulin depend on the BG of the patient 10, For example, the rate and type of insulin

administered to a patient 10 when the blood glucose value BG of the patient 10 is greater or equal to 250mgl/dl may be different than the rate and type of insulin administered to the patient 10 when the blood glucose value BG of the patient is greater than 250ml/dl. The blood glucose target range BG TR may be a configurable parameter, customized based on various patient factors. The blood glucose target range BG T may be limited to 40 mg/dl (e.g., 100-140 mg/dl, 140-180 mg/dl, and 120-160 mg/dl).

[0093] After the user 40 inputs patient parameters 204a for the intravenous treatment at block 204, the process 200 prompts the user 40 to input the blood glucose value BG of the patient 10 at block 206. The blood glucose value BG may be manually inputted by the user 40, sent via the network 20 from a glucometer 124, sent electronically from the hospital information or laboratory system 140, or other wireless device. The process 200 determines a personalized insulin dose rate, referred to as an insulin infusion rate IIR, using the blood glucose value BG of the patient 10 and a dose calculation process 300.

[0094] in some implementations, the process 200 executes on the processor 1 12, 132, 142 the following instruction set. Other instructions are possible as well.

{

$this->load->helper('formula');

SPatientID $this->input->post("PatientID");

SCurrentBG ::: $this->input~>post("iv bg input");

SPremeal $this->input->post("pre_meal");

SEstCarbs $this->inp u t->post("carbs") ;

SCancelPre eal :=: $thi s-> in put~>post(" Cance IPre Meal");

SPatientEat $this->mput->post("patient___eat"):

SActua!Carhs 0

S Me l Bo I us $this->input->post("MealBolus"); SMealBolusCount = 0;

SLastBGData - $this->iv->GetLasti:VBG($PaiientID);

SPreviousBG = S! .as!BGi}aia~ BGVuluc;

SPreviousBGRate = $LastBGData->InsulinRate:

$iir_results = $this->CalcuiateIIR($PatientID, $CurrentBG, SLastBGData, SEstCarbs);

SMealBolusDose = 0;

Siir = $iir_results["iir"];

Smultiplier ::: $iir resuUs["multiplier"];

SActualCarbs = 0;

SPostPlateCheck = false;

$ inutesInTransition :=: $this->iv- >GetTransitionMinutesInTransition($PatientID);

SStartingMultiplier = ;: $LastBGData->SensitivityFactor; if $LastBGData->Est umberOfCarbs == 12 && $LastBGData- >AcxuaiNumberOfCarbs == 15)

{SLastBGCarbsGiven :::: true;}

else

{SLastBGCarbsGiven = false;} if($PatientEat = 0 && $EstCarbs>0 && $Premeal!= 1) {

SMealBolusData = $this->iv- >Ge†.CurrentMealBolusInfo($PatientID);

if($MealBolusData ["NumCount"]<2)

I

SCancelPreMeai = "yes";

} if($Premeal == " 1")

i

$MealBolus = 1 ;

$ActualCarbs = 0;

$MealBolusCount = 0;

}

else if($MealBolus : :::: 1)

f

i

$MealBolus :::: 1;

SEstCarbs = $LastBGData~>EstNimiberOfCarbs;

$meal eat = $this->input->post("meal___eat");

if($meal_eat=- 'input")

{$ActualCarbs = $this->input->post("meal_eat_input else

{SActualCarbs = $meal_eat/100*$EstCarbs;}

$Tim.eInterval ::: $LastBGData->TiraeInterval ;

SMealBolusCount = 1; if($ActualCarbs ==0)

{SMealBolus = 0;} i

else

(

\

SMealBolusData = $this~>iv- >GetCurrentMealBolusInfo($PatientID);

if ($MealBolusData["NumCount"] > 0 &&

$MealBolusData['TSfumCount"]<=2) SMealBolus = 1;

SEstCarbs = $MealBohisData["EstNumberofCarbs"]; SActualCarbs =

$ ea].BolusData["ActuaiNumberofCarbs"];

SMealBokisCouiit = SMealBolusData["NumCount"];

if($MealBolusData["NumCount"] <2)

f

i

$TimeInterval = $this->iv- >getPostPlateChecldnterval($PatientID);

SPostPlateCheck = true;

1

$

else

(

\

$Time!riterval :::: $Meal.Bol.usData["TimeIntervai"] ;

if $CancelPreMeal=="yes")

{SMealBolus 0: ! if($MealBolus I )

{

if($Premeal != "l")

i

Smultiplier = $LastBGData->SensitivityFactor; }

$MB = $this->CaiculateMealBoius]IR($PaiieritID, $CurrentBG,

SEsiCarbs, SActualCarbs, $LastBGData, Smultiplier, $M ealBolusCo nt, $TimeInterval );

if (SPostPlateCheck)

{SActualCarbs = 0;}

$iir = round($MB[0].l);

$MeaiBoiusDose ::: round(SMB[2],2);

if($MealBolusDose == 0.00)

{SMealBolusDose = 0.01 ;}

display = $iir;

>defaul t->insul inUni tOf easure ! :=: 'uni ts/hr') iir display :::: $iir displ.ay/$LastBGData->]nsulmConcentration; iir = $iir/SLastBGData->InsulinConcentration:

// settings

$hospital_settings = $this-> patient- >GetHospitalUnitInfoByHospitalUnitID($LastBGData->Hosp italUnitID);

//get the value from configurable option

$HypoTreatmentVaiue ::: is n meric($hospital settings-

>HypoTreatment)?$hospital_settings->HypoTreatment:6 0;

SStopinsulinBGValue ::: $this->systemsettings-

>GiobalSettmg("StopInsulinBGVal e");

(trim(strtolower($StopInsulinBGValue)) == "targetlow") empty($StopInsulinBGValue) j | !isset($StopInsulinBGValue) (SStopSnsulmBGValue > $LastBGData->TargetLow)

)

(SStopInsulinBGValue = $LastBGData->TargetLow;}

//if IIR gets this high, stop! ! !

$ StopInsulinRecommendation =

gelOneFieid("StopInsulmRecValue'V'xS†.opInsuimR€commenda tion","SlO plnsulinReclD", $hospital_settings->StopInsulinRecomm);

Sdefault iir limit = $this->options- >ListData("Waraing_IRGreaterThanValue'7'xWarnm^

eaterThanID = "' . Shospital settings->DisplayWarn . '"",true)- >Warning_IR.GreaterThanVal e;

SShowHighRate Warning ::: ($iir > ::: Sdefault iir limit);

SHighRateLimit :::: Sdefault iir limit;

SshowInsulinResistance = false;

$showD50 = false;

SshowHTF = false;

Sstop Insulin :=: false;

$D50 = 0;

if($CurrentBG > 250)

f

i

SshowInsulinResistance :::: $thi.s->iv- >CheckIfInsulinResistance($Patie tID);

}

if ( (SCurrentBG <= SHypoTreatmentValue) && (SCurrentBG < $LastBGData->TargetLow) ) {

$D50 = (100-$CurrentBG)*0.4;

$D50 = round; SI )5(). 0);

/7II for D50 is always 0

Si - - 0;

$iir__ display = 0;

if (SCurrentBG < SHypoTreatmentValue) i

$showD50 ::: true;

}

else if (SCurrentBG > 60)

{

SshowHTF = true;

}

}

}

Sstoplnsulin = ($s owD50 || ( $CurrentBG<=$S opInsulinBGValue && SCurrentBG < $LastBGData->TargetLow));

SshowDI = (!($showD50 || SshowHTF ));

SshowDSODupe = false;

if($showD5Q && $LastBGData->BGID > 0)

f

i

iff

($LastBGData~>MiivutesFromLastBG<20) &&

($LastBGData->BGValue < SCurrentBG) SshowDSO = false;

SshowD50Dupe ::: true;

$iir = 0;

$D50 = 0;

}

} if($stopInsulin)

{$iir = "0";}

SUseGTFluid = $this->UseGTFluid ($PatientID, SCurrentBG);

$BGData = array(

"ActualCarbs"=>$ActualCarbs,

"EnableFluidManage" => $hospital_settings-

^EnableFluidManage,

luidType' > ($UseGTFluid)?$LastBGData-

>Over250Fluid:$LastBGData->Under250Fluid,

TluidRate' > ($UseGTFluid)?$LastBGData-

-Over250Rate:$LastBGData->Under250Rate,

'BGValue' => SCuirentBG,

'JnsulinRate' => $iir,

'SensitivityFactor' => $multiplier,

•D50VV $D50,

'PatientEat ->$PatientEat,

'MeaiBoiusDose' > SMealBolttsDose,

"CreateDate" => getOneField("dbo.fnGluDateTime()", "Patients", 'PatieritID", $PatientID)

); if($stoplnsulin)

f $iir = 0;$iir_display = 0;

i

$ShowWammgContactPhysician= ($iir >= SStopInsulinRecommendation && $StopInsulinRecommendation!= "");

if($ShowWarningContactPhysician)

{

SShowHighRate Warning -false;

$iir = SStopInsulinRecommendation;

$iir display ::: $StopInsuimR.ecommendation;

$BGData["InsulinRate"] = SStopInsulinRecommendation;

$BGData["SensitivityF actor"] = SStartingMuitiplier;

1

$

SSamellR = false;

if($PreviousBGRate == $iir display) {

SSamellR = true;

f

Sdata :::: array(

"iir" => Siir,

"InsulinUnitOf easure" => $this->default- >InsulinUnitOfMeasure,

"showlnsulinResistance" => $showInsufinResistance,

"showD50"=>$showD50,

"showD50Dupe" :::: >$showD50Dupe,

"showHTF"=>$showHTF,

"showIIR"=>$showIIR,

" stop Insui i ' -> Ssto pi ns ulin,

"D50"=>$D50,

"HypoTreatmentValue" :=: >$HypoTreatmentValue,

'PrevDSOW' => $LastBGData->D50W, "LastBGData" => $LastBGData,

"default" > $this~>defauit,

"SecondNurseVerification" ~> $hospital_settings- >EnableSecondNurseVer,

"ShowHighRate Warning" => SShowHighRateWarning,

"HighRateLimit" => SHighRateLimit,

"ShowWarningContactPhysician" -- >

$ 8 ho w W arningContactPhy sic ian,

'BGData'=>$BGData,

'SamenR , =>$SameIIR,

'PatientEat'=>$PatientEat,

" LsDisti mie I V" => $MinutesInTransition>=240?trae : false, nableHypoglycemiaMessage ->$hospital__settings- >Enable Hypog iycemi aMessage,

'MinutesFromLastBG' => $LastBGData->MinutesFromLastBG,

'Hypoglycemi aMessage' => Shospital settings- >HypoglycemiaMessage,

'LastBGCarbsGiven* :::: >$LastBGCarbsGiven,

'IVDiscontinueRecomm' => $this->iv- >IVDiscontinueRecomm($PatientID, $iir),

'AreLastFourinsulinRatesLow' => $this->iv- >AreLastFourInsulinRatesLow($PatientID, Siir)

);

//Loading History Data

SUserlD = $this->session->userdata['logged_m , ][TJserID']; if(($data["showIIR"]))

{

SDosageAmount = $data["iir display"];

SDosageLabel =

dealWitUnsulinMeasurement($data["InsulinUnitOiMeasure"],^ display"]); }

if($data["showD50"])

i

if($EnableHypoglyceniiaMessage == 1)

{

$DosageAnioimt = "null";

$DosageLabel ::: "Stop Insulin Infusion";

}

else

f

i

SDosageAmount = $D50;

$DosageLabel = ;: "D50 or 12-15 Grams of Carbs";

}

}

//if $DosageAmount is empty and SDosageLabel is empty if(empty($DosageAmount) && empty($DosageLabel)) {

SDosageAmount = 0;

SDosageLabel ::: null;

}

$this->load->model("patient");

$this->patient->AddDosageR.ecommendationHistory($Patie ntiD, , SCurrentBG, SDosageAmount, SDosageLabel, $UserID);

$this->ioad->view( , orms/¾g/iv_bg_checkboxes", $data);

t

function UseGTFluidi SPatientlD, SCurrentBG)

(

\

//B 5.2

if($CuiTentBG >= 300)

{return true;} /7BR5.1

$Last3BGs = $this->iv->Last2BGs($PatientID);

if(eoimt($Last3BGs) == 0 && SCurrentBG >== 250) (return true;}

//BR5.3

ifi($CurrentBG>=250 && $Last3 BGs[0]->O verUnder

{return true;)

/7BR5.4

if($CuiTentBG>=250 && $Last3BGs[0]->BGValue $Last3BGs[ 1 ]->BGValue 250)

(return true;}

//default BR5.5

return false;

}

function CalculateMealBolusIIR($PatientiD, $CurrentBG, $EstimatedCarb SActualCarbs, SLastBGData, SMultiplier, SMealBolusCount, $TimeInterval)

SlnsulinUiiitsOfMeasure = GetOneField("SettingValue",

"G!obaiSettings", "SettingName", "Ins linUnitOfMeas re");

PreMealJIR(

SPatientID,

SCurrentBG,

SMultiplier,

$LastBGData->InsulinConcentration,

$EstimatedCarbs, SActuaiCarbs,

STimelnterval, SlnsulinUnitsOf Measure,

SMealBolusCount

);

$r[0] = round($r[0], 5);

return $r;

/

function CalculateIIR($PatientID, SCurrentBG, $LastBGData, SEsiCarbs) {

/* Adj ust Multiplier*/

Smultiplier = $LastBGData->SensitivityF actor;

/*add the conditon $LastBGData->SensitiviryFactor == SLastBGData- >PreBGSensitivityFactor

if change the Multiplier by manually it should not be changed.

updated by Stanley on 10/30/2013

*/

ii¾$LastBGData->BGID!=0 || SEstCarbs > 0) && (SLastBGData-

>SensitivityFactor == $LastBGData->PreBGSensitivityF actor) )

(

\

if(

(SCurrentBG > $LastBGData->TargetHigh) && ((SCurrentBG / $LastBGData->BGValue) > 0.85)

)

{

Smultiplier = Smultiplier* 1.25; elseif($CurrentBG < $LastBGData->TargetLow)

I

Smultiplier = Smultiplier * 0.8;

}

1

$

Smultiplier = round($multiplier, 5); //Calc IIR

$IIR round( (SCurrentBG - 60) * $multiplier, 1);

if($IIR < 0)

\ SUR 0: 1

Sreturn = array(

"iir"=>$IIR,

"multiplier" => $multiplier,

);

return $return;

/

[0095] FIG, 3 provides a dose calculation process 300 for calculating the insulin infusion rate IIR of the patient 10 for intravenous treatment after the process 200 receives the patient information 208a discussed above (including the patients' blood glucose value BG). At block 301 the dose calculation process 300 determines if the patient's blood glucose BG is less than a stop threshold value BG-nistop. i not, then at block 303 the dose calculation process 300 goes to block 304 without taking any action. If, however, the patient's blood glucose BG is less than a stop threshold value BGxHsto , then the calculation dose process sets the patient's regular msulin dose rate IRR to zero at block 302, which then goes to block 322. The dose calculation process 300 determines at decision block 304 if the inputted blood glucose value BG is the first inputted blood glucose value.

[0096] The patient's regular insulin dose rate IIR is calculated at block 320 in accordance with the following equation:

IIR ------ (BG - K) * M (3 A)

where K is a constant, known as the Offset Target, with the same unit of measure as blood glucose and M is a unit-less multiplier. In some examples, the Offset Target K is lower than the blood glucose target range of the patient 10, The Offset Target allows the dose calculation process 300 to calculate a non-zero stable insulin dose rate even with a blood glucose result is in the blood glucose target range BG TR . [0097] The initial multiplier Mj, determined by the physician 40, approximates the sensitivity of a patient 10 to insulin. For example, the initial multiplier equals 0.02 for adults ages 18 and above, in some examples, the initial multiplier Mi equals 0.01 for frail elderly patients 10 who may be at risk for complications arising when their blood glucose level BG falls faster than 80mg/dl/hr. Moreover, the physician 40 may order a higher initial multiplier Mj for patients 10 with special needs, such as CABG patients (i.e., patients who have undergone coronary artery bypass grafting) with BMI (Body Mass Index which is a measure for the human body shape based on the individual's mass and height) less than 30 might typically receive an initial multiplier of 0.05, whereas a patient 10 with BMI greater than 30 might receive an initial multiplier Mj of 0.06. In addition, a patient's weight may be considered in determining the value of the initial multiplier Mi, for examples, in pediatric treatments, the system 100 calculates a patient's initial multiplier Mi using the following equation:

Mi 0.0002 x Weigh t of patient (in id lograms) (3 B)

In some implementations, K is equal to 60 mg/dl. The dose calculation process 300 determines the target blood glucose target range BGTR using two limits inputted by the user 40, a lower limit of the target range BGTRL and an upper (high) limit of the target range BGTRH- These limits are chosen by the user 40 so that they contain the desired blood glucose target as the midpoint. Additionally, the Offset Target K may be calculated dynamically in accordance with the following equation:

A - BG-Target - Offset, (4)

where BGxarget is the midpoint of the blood glucose target range BGTR and Offset is the preconfigured distance between the target center BG Target and the Offset Target, .

[0098] in some implementations, the insulin dose rate IRR may be determined by the following process on a processor 1 12, 132, 142. Other processes may also be used.

function I f Ri Ssf. $current_bg, $bg_default = 60, $insulm_concentration,

Sins units of measure ::: 'units/hr) { sctiypc( Ss! no<!i'):

settype($bg__default,'float');

settype($current_ bg,'float'); 8etrype($msulin_concentration,'float');

/*

@param $sf = sensitivity factor from db

@param $current_bg :=: the current bg value being submitted @param $db default = the default "Stop Insulin When" value., ..If it isn't passed, it defaults to 60

a pa ram $insulin_concentration = the default insul in concentration from settings

*/ if($current_bg > 60) { $iir :; = array ();

$iir[0] = round(($current_bg - $bg_default) * $sf, 1); if ($ms_units_of_measure != 'units/hr') {

$iir[l] :::: round(($current bg - $bg default) * $sf /

$insulin_concentration , I );

}

return $iir; return 0;

}

t

[0099] Referring to decision block 304, when the dose calculation process 300 determines that the inputted blood glucose value BG is the first inputted blood glucose value, then the dose calculation process 300 defines the value of the current multiplier M equal to an initial multiplier (Mi) at block 306. The dose calculation process 300 then calculates, at block 320, the Insulin Infusion Rate in accordance with the MR equation (EQ. 3A) and returns to the process 200 (see FIG. 2). [00100] However, referring back to decision block 304, when the dose calculation process 300 determines that the inputted blood glucose value BG is not the first inputted blood glucose value, the dose calculation process 300 determines if the Meal Bolus Module has been activated at decision block 308, If the dose calculation process 300 determmes that the Meal Bolus Module has been activated, then the dose calculation process 300 begins a Meal Bolus process 500 (see FIG. 5),

[00101 ] Referring back to decision block 308, if the Meal Bolus Module has not been activated, the dose calculation process 300 determines, at decision block 310, if the current blood glucose value BG is greater than the upper limit BG TRH of the blood glucose target range BG TR . If the blood glucose value BG is greater than the upper limit BGTRH of the blood glucose target range BG TR , the dose calculation process 300 determines, at block 314, a ratio of the current blood glucose value BG to the previous blood glucose value BGp, where BGp was measured at an earlier time than the current BG. The process 200 then determines if the ratio of the blood glucose to the previous blood glucose, BG/ BGp , is greater than a threshold value LA, as shown in the following equation:

where BG is the patient's current blood glucose value; BGp is the patient's previous blood glucose value; and L A is the threshold ratio of BG/ BG P for blood glucose values above the upper limit of the blood glucose target range BG TRH . If the ratio BG/BG P exceeds the threshold ratio L A , then the Multiplier M is increased, in some examples, the threshold ratio LA equals 0.85.

[00102] If the dose calcul ation process 300 determines that the ratio (BG/ BG P ) of the blood glucose value BG to the previous blood glucose value BG P is not greater than the threshold ratio LA for a blood glucose value BG above the upper limit BG TRH of the blood glucose target range BG TR , then the dose calculation process 300 sets the value of the current multiplier M to equal the value of the previous multiplier M P , see block 312.

M = Mr- (6)

[00103] Referring back to block 314, if the dose calculation process 300 determmes that the ratio (BG/BG P ) of the blood glucose value BG to the previous blood glucose BGp is greater than the threshold ratio LA for a blood glucose value above upper limit BGTRH of the blood glucose target range BGTR, then dose calculation process 300 multiplies the value of the current multiplier M by a desired Multiplier Change Factor (MCF) at block 318. The dose calculation process 300 then calculates the insulin infusion rate at block 320 using the IIR equation (EQ. 3A) and returns to the process 200 (see FIG. 2).

[00104] Referring back to block 310, when the dose calculation process 300 determines that the current blood glucose value BG is not greater than the upper limit BGTRH of the blood glucose target range BGTR, the dose calculation process 300 then determines if the current blood glucose concentration BG is below the lower limit BGTRL of the blood glucose target range BGTR at decision block 31 1 . If the current blood glucose value BG is below the lower limit BG : R; of the blood glucose target range BGTR, the dose calcu lation process 300 at block 316 divides the value of the current multiplier M by the Multiplier Change Factor (MCF), in accordance with the following equation:

and calculates the current insulin infusion rate II R using equation 3 at block 320 and returns to the process 200 (see FIG. 2).

[00105J At block 31 1 , if the dose calculation process 300 determines that the blood glucose value BG is not below the lower limit of the blood glucose target range BGTRL, the dose calculation process 300 sets the value of the current multiplier to be equal to the value of the previous multiplier M P at block 312 (see EQ. 6).

[00106] Referring again to FIG. 3, at block 31 1 , if the current blood glucose value BG is below the lower limit of the target range BGTRL, logi c passes to decision block 322, where the process 300 determines if the current blood glucose concentration BG is below a hypoglycemia threshold /i (¾¾ ∑¾> · If the current blood glucose BG is below the hypoglycemia threshold 2?(¾, 0 , logic then passes to block 324, where the process 300 recommends hypoglycemia treatment, either by a calculation of an individualized dose of intravenous glucose or oral hypoglycemia treatment.

[00107] Referring back to FIG. 2A, after the dose calculation process 300 calculates the insulin infusion rate IIR, the process 200 proceeds to a time calculation process 400 (FIG. 4A) for calculating a time interval Τκ « α until the next blood glucose measurement.

[00108] FIG, 4A shows the time interval calculation process 400 for calculating a time interval T Next between the current blood glucose measurement BG and the next blood glucose measurement BG TIEXT . The time-duration of blood glucose measurement intervals T ext may vary and the starting time interval can either be inputted by a user 40 at the beginning of the process 200, 300, 400, or defaulted to a predetermined time interval, oefauit (e.g., one hour). The time interval is shortened if the blood glucose concentration BG of the patient 10 is decreasing excessively, or it may be lengthened if the blood glucose concentration BG of the patient 10 becomes stable within the blood glucose target range BG TR .

[00109] The time-interval calculation process 400 determmes a value for the time interval Τκ β χΐ based on several conditions. The time-interval process 400 checks for the applicability of several conditions, where each condition has a value for T next that is triggered by a logic-test (except Td ef _ uJt ). The process 400 selects the lowest value of T nsxt from the values triggered by logic tests (not counting T,j. ;:au | ; ·. If no logic test was triggered, the process selects Tdefauit. This is accomplished in FIG 4A by the logic structure that selects the lowest values of T next first. However, other logic structures are possible as well.

[00110] The time calculation process 400 determines at decision block 416 if the current blood glucose BG is below the lower limit BGT RL (target range low limit) of the blood glucose target range BG TR . I the current blood glucose BG is below the lower limit BG TRL of the blood glucose target range BG TR , then the time calculation process 400 determines, at decision block 418, if the current blood glucose BG is less than a hypoglycemia-tbreshold blood glucose level BGnypo-

[00111] If the current blood glucose BG is less than the hypoglycemia-threshold blood glucose level BG HyPo the time calculation process 400 sets the time interval T Nsxt to a hypoglycemia time interval ΊΉ γρο , e.g., 15 or 30 minutes, at block 426. Then the time calculation process 400 is complete and returns to the process 200 (FIG. 2) at block 428.

[00112] If the current blood glucose BG is not less than (i.e., is greater than) the hypoglycemia-threshold blood glucose level BGn ypo at block 418, the time calculation process 400 determines at block 422 if the most recent glucose percent drop BG% DIOP , is greater than the threshold glucose percentage drop %Drop ljOW l mit (for a low BG range) using the following equation:

BGo /odroO > %Drop L ow Limit (8A) since b Lr %drop - ~8Gp ^

then,

( (SG ; G BG) ) > %Drop Low Lirflit (8C) where 56 is a previously measured blood glucose.

[00113] If the current glucose percent drop BG%Dro P) is not greater than the limit for glucose percent drop (for the low BG range) %DropL o w Limit, the time calculation process 400 passes the logic to block 412. In some examples, the low limit %DropLow Limit equals 25%.

[00114] Referrmg back to block 422, if the current glucose percent drop BG D rop is greater than the limit for glucose percent drop (for the low BG range) %Dro L o w Limit, the time calculation process 400 at block 424 sets the time interval to a shortened time interval Tsh o i t , for example 20 mmutes, to accommodate for the increased drop rate of the blood glucose BG. Then the time calculation process 400 is complete and returns to the process 200 (FIG. 2) at block 428.

[00115] Referrmg back to decision block 416, if the time calculation process 400 determines that the current blood glucose BG is not below the lower limit BG TRL for the blood glucose target range BG TR , the time calculation process 400 determines at block 420 if the blood glucose BG has decreased by a percent of the previous blood glucose that exceeds a limit %DropR e g Ula r (for the regular range, i.e., blood glucose value BG > BG TRL ), using the formula:

( ( SG gG> BG) ) > 0/oDr °Psegular ( 9 )

[00116] If the blood glucose BG has decreased by a percentage that exceeds the regular threshold glucose percent drop (for the regular BG range) %>Drop R eg U | ai , the time calculation process 400, at block 425, sets the time interval to the shortened time interval Tshort, for example 20 minutes. A reasonable value for %DropR egu i a r for many

implementations is 66%. Then the time calculation process 400 is complete and returns to the process 200 (FIG. 2) at block 428. If, however, the glucose has not decreased by a percent that exceeds the threshold glucose percent drop %DropR Sg u la r, (for the regular BG range), the time calculation process 400 routes the logic to block 412. The process 400 determines, at block 412, a blood glucose rate of descent BGoropRa t e based on the following equation:

BGoropRale == (BGp - BG) / (Tcurrent ~ ' ^Previous) (10) where BGp is the previous blood glucose measurement, Tcurrent is the current time and revious is the previous time. Moreover, the process 400 at block 412 determines if the blood glucose rate of descent BGoropRate is greater than a preconfigured drop rate limit

BGdropRateLimit-

[00117] If the time calculation process 400 at block 412 determines that the blood glucose rate of descent BGoropRate, has exceeded the preconfigured drop rate limit BGdropRateLimit; the time interval T Next until the next blood glucose measurement is shortened at block 414 to a glucose drop rate time interval TBGDR, which is a relatively shorter time interval than the current time interval Tcurrent, ¾ s consideration for the fast drop. The preconfigured drop rate limit BGdropRateLimit may be about 100 mg/dl/hr. The glucose drop rate time interval T B G DR ay be 30 minutes, or any other predetermined time. In some examples, a reasonable value for Toefauit is one hour. Then the time calculation process 400 is complete and returns to the process 200 (FIG. 2) at block 428.

[00118] If the time calculation process 400 determines at block 412 that the glucose drop rate BGoropRate does not exceed the preconfigured rate limit BGdropRateLimit, me time caiculation process 400 determines, at block 408, if the patient's blood glucose concentration BG has been within the desired target range BG TR (e.g., BGTRL <BG<

BG TRH ) for a period of time Ts t abie- The criterion for stability in the blood glucose target range BG TR is a specified time in the target range BG TR or a specified number of consecutive blood glucose measurements in the target range BG TR . For example, the stable period of time Ts t abie may be one hour, two hours, two and a half hours, or up to 4 hours. If the stability criterion is met then the time interval T ext until the next scheduled blood glucose measurement BG may be set at block 410 to a lengthened time interval T LOJIS (such as 2 hours) that is generally greater than the default time interval T Ds f aU ! t . Then the time calculation process 400 is complete and returns to the process 200 (FIG. 2) at block 428. If the time calculation process 400 determines that the patient 10 has not met the criteria for stability, the time calculation process 400 sets the time interval to a default time interval To^ h at block 406. Then the time calculation process 400 is complete and returns to the process 200 (FIG. 2) at block 428.

[0011 ] Referring to FIGS. 4B and 4C, once the time calculation process 400 calculates the recommended time interval TNext, the process 200 provides a countdown timer 430 that alerts the user 40 when the next blood glucose measurement is due. The countdown timer 430 may be on the display 116 of the patient device 110 or displayed on the display 146 of the hospital system 140. When the timer 430 is complete, a "BG Due!" message might be displayed as shown in FIG. 4B. The countdown timer 430 may include an overdue time 432 indicating the time late if a blood glucose value is not entered as scheduled.

[00120] In some implementations, the countdown timer 430 connects to the alarm system 120 of the user device 1 10. The alarm system 120 may produce an audible sound via the speaker 122 in the form of a beep or some like audio sounding mechanism. The audible and/or visual notification may also be sent via the network to the hospital system 140 (or any other remote station) and displayed on the display 146 of the hospital system 140 or played through speakers 152 of the hospital system 140, or routed to the cell phone or pager of the user. In some examples, the audible alarm using the speakers 122 is turned off by a user selection 434 on the display 116 or it is silenced for a

preconfigured time. The display 1 16, 143 may show information 230 that includes the patient's intravenous treatment information 230a or to the patient's subcutaneous treatment information 230b. In some examples, the user 40 selects the countdown timer 430 when the timer 430 indicates that the patient 10 is due for his or her blood glucose measurement. When the user 40 selects the timer 430, the display 1 16, 146 al lows the user 40 to enter the current blood glucose value BG as shown in FIG. 4D. For intravenous patients 10, the process 200 may ask the user 40 (via the display 1 16, 146) if the blood glucose is pre-meal blood glucose measurement (as shown in FIG. 4D). When the user 40 enters the information 230 (FIG. 4D), the user 40 selects a continue button to confirm the entered information 230, which leads to the display 1 16, 146 displaying blood glucose information 230c and a timer 430 showing when the next blood glucose measurement BG is due (FIG, 4E). In addition, the user 40 may enter the patient's blood glucose measurement BG at any time before the timer 430 expires, if the user 40 selects the 'enter BG' button 436. Therefore, the user 40 may input blood glucose values BG at any time, or the user 40 may choose to start the Meal Bolus module process 500 (see FIG. 5) by selecting the start meal button 438 (FIG. 4E), transition the patient to SubQ insulin therapy 600 (see FIG.6), or discontinue treatment 220.

[00121] Referring to FIGS. 5A-5F, in some implementations, the process 200 includes a process where the patient's blood glucose level BG is measured prior to the

consumption of caloric intake and calculates the recommended intravenous mealtime insulin requirement necessary to control the patient's expected rise in blood glucose levels during the prandial period. When a user 40 chooses to start the Meal Bolus process 500 (e.g., when the user 40 positively answers that this is a pre-meal blood glucose measurement in FIG. 4D, or when the user 40 selects the start meal button 438 in FIG. 4E), the Meal Bolus process 500, at decision block 504, requests the blood glucose BG of the patient 10 (as shown in FIG. 5C). The user 40 enters the blood glucose value BG at 501 or the system 100 receives the blood glucose BG from a glucometer 124. This blood glucose measurement is referred to herein as the Pre-Meal BG or BG1. In some examples, where the user 40 enters the information, the user 40 selects a continue button to confirm the entered information 230c. In some examples, the intravenous meal bolus process 500 is administered to a patient 10 over a total period of time T Me aiBoius- The total period of time T Me aiBoius is divided into multiple time intervals T Me aiBoiu$i to T M eaWoiusN, where N is any integer greater than zero. In some examples, a first time interval

TMeaiBoiusi runs from a Pre-Meal blood glucose value BG1 at measured at time T ls to a second blood glucose value BG2 at measured at time T 2 . A second time interval

¾ ∞/f e ¾2 Hffls from the second blood glucose value BG2 measured at time T 2 to the third blood glucose value BG3 measured at time T 3 . A third time interval TMeaiBoims runs from the third blood glucose value BG3 measured at time T 3 to a fourth blood glucose value

BG4 measured at time T 4 . . In some implementations where the time intervals ΤΜ∞ΙΒ <> Ι* < $Ν are smaller than T De f ail i t , the user 40 should closely monitor and control over changes in the blood glucose of the pati ent 10. For example, a total period of time TMeaiBoius equals 2 hours, and may be comprised of: TMeaisoius = 30 minutes, T M ea!Boius2 = 30 minutes, and MeaiBoius3 = 1 hour. This example ends on the fourth blood glucose measurement. When the Meal Bolus process 500 has been activated, an indication 440 is displayed on the display 116, 146 informing the user 40 that the process 500 is in progress. The Meal Bolus process 500 prompts the user 40 if the entered blood glucose value BG is the first blood glucose value prior to the meal by displaying a question on the patient display 116. If the Meal Bolus process 500 determines that the entered blood glucose value BG is the first blood glucose value (BG1) prior to the meal, then the Meal Bolus process 500 freezes the current multiplier M from being adjusted and calculates a regular intravenous insulin rate !RR at block 512. The regular intravenous insulin rate IRR may be determined using EQ. 3A. Meanwhile, at block 502, the Meal Bolus process 500 loads preconfigured meal parameters, such as meal times, insulin type, default number of carbohydrates per meal, the total period of time of the meal bolus process TMeaWoiw, interval lengths (e.g., TMeaWoiwj, ¾∞/SO&.S<V), and the percent, "C", of the estimated meal bolus to be delivered in the first interval T Me aiBohsi- ϊη some examples, when the system 100 includes a hospital electronic medical record system 140, nutritional information and number of grams of carbohydrates are retrieved from the hospital electronic medical record systems 140 automatically. The Meal Bolus process 500 allows the user 40 to select whether to input a number of carbohydrates from a selection of standard meals (AcutaiCarbs) or to use a custom input to input an estimated number of carbohydrates (EstimatedCarbs) that the patient 10 is likely to consume. The Meal Bolus process 500 then flows to block 506, where the estimated meal bolus rate for the meal is calculated. The calculation process in block 506 is explained in two steps. The first step is calculation of a meal bolus (in units of insulin) in accordance with the following equation:

Estimated Meal Bolus == EstimatedCarbs / OR (11 A) where OR is the Carbohydrate-to-Insuiin Ratio, previously discussed.

[00122J The Meal Bolus process 500 then detemvmes the Estimated Meal Bolus Rate based on the following equation:

Estimated Meal Bolus Rate = Estimated Meal Bolus * C / T M eaiBoiusi (1 IB)

Where, TueciBoiusi is the time duration of the first time interval of the Meal Bolus total period of time TueaiBoi s- C is a constant adjusted to infuse the optimum portion of the Estimated Meal Bolus during first time interval TMeaiBohsi- For instance: if Estimated Meal Bolus = 6 units, TifeaWoiwi = 0-5 hours, and C = 25%, then applying Eq. 1 1 A as an example:

Estimated Meal Bolus Rate = (6 units) * 25% / (0.5 hours) = 3 units/hour (11C) The Meal Bolus process 500 calculates the Total Insulin Rate at block 508 as follows: Total Insulin Infusion Rate = Estimated Meal Bolus Rate + Regular Intravenous Rate

(12)

[00123] The Meal Bolus process 500 flows to block 510 where it sets the time interval for the first interval Tueomoi i to its configured value, (e.g., usually 30 minutes), which will end at the second meal bolus blood glucose (BG2).

[00124] After the first time interval T M eaiBoiusi expires (e.g., after 30 minutes elapse), the Meal Bolus process 500 prompts the user 40 to enter the blood glucose value BG once again at block 501. When the Meal Bolus process 500 determines that the entered blood glucose value BG is not the first blood glucose value BG1 entered at block 504 (i.e., the pre-meal BG, BG1 , as previously discussed), the process 500 flows to block 514. At block 514, the Meal Bolus process 500 determines if the blood glucose value BG is the second value BG2 entered by the user 40. If the user 40 confirms that the entered blood glucose value BG is the second blood glucose value BG2 entered, the Meal Bolus process 500 uses the j ust-entered blood glucose BG2 to calculate the intravenous insulin rate IRR at block 516 and flows to block 524. Simultaneously, if the blood glucose is the second blood glucose BG2, the Meal Bolus process 500 prompts the user 40 to enter the actual amount of carbohydrates that the patient 10 received at block 518. The Meal Bolus process 500 then determines at decision block 520 and based on the inputted amount of actual carbohydrates, if the patient did not eat, i.e., if the amount of carbohydrates is zero (see FIG. 5C). If the Meal Bolus process 500 determines that the patient did not eat, the Meal Bolus process 500 then flows to block 540, where the meal bolus module process 500 is discontinued, the multiplier is no longer frozen, and the time interval T ext is restored to the appropriate time interval T Next , as determined by process 400. If however, the Meal Bolus process 500 determines that the patient 10 ate, i.e., the actual carbohydrates is not zero (see FIG. 5D), then The Meal Bolus process 500 flows to block 522, where it calculates a Revised meal bolus rate according to the following equations, where the Revised Meal Bolus and then an amount of insulin (in units of insulin)are calculated:

Revised Meal Bolus = ActualCarbs / CIR (13 A)

[00125] The process at block 522 then determines the amount (in units of insulin) of estimated meal bolus that has been delivered to the patient 1 0 so far:

Estimated Meal Bolus Delivered = Estimated Meal Bolus Rate * (T 2 - Τ·.) (13B) where time Tl is the time of when the first blood glucose value BG1 is measured and time T2 is the time when the second blood glucose value BG2 is measured.

[00126] The process at block 522 then calculates the portion of the Revised Meal Bolus remaining to be delivered (i.e., the Meal Bolus that has not yet been delivered to the patient 10) as follows:

Revised Meal Bolus Remaining = ;: Revised Meal Bolus - Estimated Meal Bolus

Delivered (13C)

[00127] The process at block 522 then calculates the Revised Meal Bolus Rate as follows:

Revised Meal Bolus Rate ::: Revised Meal Bolus Remaining / Time Remaining (14.A) where Time Remaining = TMeaiBoius - eaiBotusi · Since the total time interval TMeaiBoius and the first time interval. T Mea i Bo i us} are preconfigured values, the Time Remaining may ¬ be determined.

[00128] The Meal Bolus process 500 calculates the total insulin rate at block 524 by- adding the Revised Meal Bolus Rate to the regular Intravenous Rate (I1R), based on the blood glucose value BG:

Total Insulin Rate = ;: Revised Meal Bolus Rate + IIR (14B)

[00129] The Meal Bolus process 500 flows to block 526 where it sets the time interval T e xt to the which will end at the third meal bolus blood glucose BG3 e.g., usually 30 minutes.

[00130] After the second interval, T Me aWoius2 expires (e.g., 30 minutes), the Meal Bolus process 500 prompts the user 40 to enter the blood glucose value BG once again at block 501. The Meal Bolus process 500 determines that the entered blood glucose value BG is not the first blood glucose value entered at block 504 (previously discussed) and flows to block 514. The Meal Bolus process 500 determines that the entered blood glucose value BG is not the second blood glucose value entered at block 514 (previously discussed) and flows to block 528. At block 528, the Meal Bolus process 500 determines if the blood glucose value BG is the third value entered. If the entered blood glucose value BG is the third blood glucose value BG entered, the Meal Bolus process 500 calculates the intravenous insulin rate IRR at block 530 and flows to block 532.

[00131] At block 532 the process determines the Total Insulin Rate by adding the newly-determined Regular Intravenous Insulin R.ate (OR) to the Revised Meal Bolus Rate, which was determined at BG2 and remains effective throughout the whole meal bolliS time, Tmealbolus- [00132] The Meal Bolus process 500 flows to block 534 where it sets the time interval TNext to the third interval T Me aiBoius3 for the fourth meal bolus blood glucose, e.g., usually 60 minutes. In some implementations, more than 3 intervals (TMeaWoius!. TueaiBoiusi MeaWoiusi ) may be used. Additional intervals ¾ ea ® 0 a5 /y may also be used and the process handles the additional intervals Me aiBoiusN similarly to how it handles the third time interval ΤΜ&ΟΒΟΜ- AS discussed in the current example, the third interval T Me aiBeius3 is the last time interval, which ends with the measurement of the fourth blood glucose measurement BG4.

[00133] After the third time interval, T M eaiBoins3, expires (e.g., 60 minutes), the Meal Bolus process 500 prompts the user 40 to enter the blood glucose value BG once again at block 501. The Meal Bolus process 500 determines that the entered blood glucose value BG is not the first blood glucose value entered at block 504 (previously discussed) and flows to block 514, The Meal Bolus process 500 determines that the entered blood glucose value BG is not the second blood glucose value entered at block 514 (previously discussed), nor the third blood glucose level entered at block 528 and flows to block 536. At block 536, the Meal Bolus process 500 determines that the inputted blood glucose is the fourth blood glucose valueBG4. In this example, the fourth blood glucose value BG4 is the last one. The process 500 then flows to block 538 where the multiplier is no longer frozen, and the time interval Ί ¾χί is restored to the appropriate time interval TV exi , as determined by the Timer Adjustment process 400 (FIG. 4A). At this time, the Meal Bolus process 500 ends and the user 40 is prompted with a message indicating that the Meal Bolus process 500 is no longer active. [00134] As shown in FIG. 5D, and previously discussed with respect to FIGS. 4B-4E, the process 200 provides a countdown timer 430 that alerts the user 40 when the next blood glucose measurement is due. The countdown timer 430 may be on the display 1 16 of the patient device 110 or displayed on the display 146 of the hospital system 140. When the timer 430 is complete, a "BG Due!" message might be displayed as shown in FIG. 4B. Moreover, the timer 430 may be a countdown timer or a meal timer indicating a sequence of mealtime intervals (e.g., breakfast, lunch, dinner, bedtime, mid-sleep).

[00135] In some implementations, a Meal Bolus process 500 may be implemented by the following process on a processor 112, 132, 142. Other processes may also be used. function PreMealIIR($PatientID, SCurrentBG, SMultiplier,

SlnsulinConcentration,

SEstCarbs, SActualCarbs, STimelnterval, SlnsulinUnitsOfMeasure, SMealBolusCount) {

Siir = array ();

SCarblnsulinRatio = CIR(SPatientlD);

SNormallnsulin :::: (SCurrentBG - 60) * SMultiplier; if($MealBolusCount = 0)

{

//first run - Premeal Bolus

$MealBolus = (SEstCarbs /SCarblnsulinRatio);

if($MealBolus <0)

{SMeaiBoius = 0;}

$iir[0] = SNormallnsulin + ( SMeaiBoius *.5 );

$iir[2] = ( SMeaiBoius *,5 );

/*

print "Premeal: MX: " . SMultiplier . "<BR>";

print (SCurrentBG - 60) * SMultiplier;

print " + " ; print ( $MealBolus *.5 );

} else if($MealBoiusCoimt = i){

//second run Post Meal Bolus

/ ' / ' third ran time interval coming in is actually the

//difference between the premeal BG and the first Post Meal BG

:cond ran)

$MeaiBoius = (SActualCarbs / $CarbInsulinRatio);

SOldMealBolus = (SEstCarbs / SCarblnsuiinRatio);

SCurrentMealBolus = (SMealBolus - (SOldMealBolus *.5 *

'imelnterval))/1.5;

if($CurrentMealBo 1 us <0)

{ SCurrentMea IBo lus =0 ; }

$iir[0] ::: $Normal Insulin + $Cun:entMealBolus ;

$iir[2] = $CurrentMealBolus ;

/*

print "PlateCheck: <BR>MX: " . SMultipiier , "<BR>";

print "Est Carbs: " . SEstCarbs . "<BR>";

print "ActualCarbs: " . $ActualCarbs . "<BR>";;

print "CarblnsuiinRatio: " . SCarblnsuiinRatio . "<BR>";

print "Timelnterval: " . $TimeInterval . "<BR>";

print "Multiplier: " . $Multiplier;

* /

}

else

f

\ SMealBolus = (SActualCarbs / SCaililnsulinRatio);

SOldMealBolus :::: (SEsiCarbs / SCarblnsulinRatio);

/*

print "Actual Carbs: " . SActualCarbs . "<BR>": print "Est Carbs: " . SEstCarbs . "<BR>";

print "CIR: " . SCarblnsulinRatio . "<BR>";

print "Multiplier: " . SMuitiplier . "<BR>";

print "CurrentBG: " . SCurrentBG . "<BR>";

print "IIR: " , ((SCurrentBG - 60) * SMuitiplier) . "<BR>"; print "MealBolus: " . SMealBolus . "<BR>";

print "OldMealBolus: " . SOldMealBolus . "<BR>";

print "Timelnterval: " , $TimeInterval . "<BR>";

*/

SCurrentMealBolus = (SMealBolus - (SOldMealBolus *.5 *

STiraeInterval))/l .5 ;

if($CurrentMealBolus <0)

{ $C urren iM ea!Bolus :::: 0 ; }

$iir[0] = SNormallnsulin + SCurrentMealBolus;

$iir[2] = SCurrentMealBolus;

/*

print "Post PlateCheck: <BR>MX: " . SMuitiplier . "<BR>"; print "IIR: ";

print (SCurrentBG - 60) * SMuitiplier . "<BR>";

print "Est Carbs: " . $EstCarbs . "<BR>";

print "Acutal Carbs: " . SActualCarbs . "<BR>";

print "Old Meal bolus: " . SOldMealBolus . "<BR>";

print "Timelnterval: " . STimelnterval . "<BR>";

print "Meal bolus: " . SMealBolus . "<BR>";

print "Final Calc: " . Sliri 0 |: } if (SlasulinUnitsOfMeasure != "units/hr")

f

\

$iir[0] = $iir[0]/$InsulinConcentration;

} return $iir;

[00136] Referring to FIGS. 2A and 6A, if the user elects to initiate the SubQ

Transition process 600, the SubQ Transition process 600 determines at decision block 604 if the current blood glucose BG is within a preconfigured stability target range BGgTR, e.g., 70-180 mg/dl, which is usually wider than the prescribed Target Range, BG-j'R. If the blood glucose BG is not within the preconfigured stability target range BGSTR (e.g., BGL OW < BG < BGni g h), the SubQ Transition process 600 at block 606 displays a warning notification on the patient display 1 16. Then, at block 610, the SubQ Transition process 600 is automatically discontinued.

[00137] Referring back to block 604, if the blood glucose BG is within the

preconfigured stability target range BGSTR (e.g. 70 - 180 mg/dl), the SubQ Transition process 600 at decision block 608 determines if the patient's blood glucose measurement BG has been in the patient's personalized prescribed target range BGTR for the recommended stability period Ts t abie, e.g., 4 hours. If the SubQ Transition process 600 determines that the blood glucose value BG has not been in the prescribed target range BGSTR for the recommended stability period Tstabie, the SubQ Transition process 600 moves to block 614 where the system 100 presents the user 40 with a warning

notification on the patient display 1 16, explaining that the patient 10 has not been in the prescribed target range for the recommended stability period (see FIG. 6C). The SubQ Transition process 600 continues to decision block 618 where it determines whether the user 40 wants the patient 10 to continue the SubQ Transition process or to discontinue the SubQ Transition process. The SubQ Transition process 600 displays on the display 1 16 of the patient device 1 10 the question to the user 40 as shown in FIG. 6D. If the user 40 chooses to discontinue the SubQ Transition process, the SubQ Transition process 600 flows to block 624, where the SubQ Transition process is discontinued.

[00138] Referring back to block 618, if the user 40 chooses to override the warning and continue the SubQ Transition process, the process 600 prompts the user 40 to enter SubQ information 617. The SubQ Transition process 600 flows to block 616, where the patient's SubQ Transition dose is calculated as a patient's total daily dose TDD. In some implementations, TDD is calculated in accordance with equation:

TDD :::: QuickTransitionConstant * M-irans (15 A) where QuickTransitionConstant is usually 1000, and M Tmis is the patient's multiplier at the time of initiation of the SubQ transition process.

[00139] Referring again to block 616, in some implementations TDD is calculated by a statistical correlation of TDD as a function of body weight. The following equation is the correlation used:

TDD = 0.5 * Weight (kg) (15B)

[00140] The SubQ Transition process 600 continues to block 620, where the recommended SubQ dose is presented to the user 40 (on the display 116) in the form of a Basal recommendation and a Meal Bolus recommendation (see FIG. 6F).

[00141] Referring again to decision block 608, if the SubQ Transition process 600 determines that the patient 10 has been in the prescribed target range BG TR for the recommended stability period, Ts t abie, SubQ Transition process 600 continues to block 612, where the patient's total daily dose TDD is calculated in accordance with the following equation:

TDD = (BGxavget - K) * (M Trans ) * 24 (16) where Μχ ηίη5 is the patient's multiplier at the time of initiation of the SubQ transition process.

[00142] In some implementations, the patient's total daily dose TDD may be determined by the following process on a processor 112, 132, 142. Other processes may also be used.

function getIV_TDD($PatientID)

{ //Sweight = getOneField("weight", "patients", "patientlD", $PatientiD);

//'return $ weight/2 ;

SCI = get instanceQ;

$Cl->load->modei('options');

$d = $CI~>options~>GetIVTDDData($Patien†JD);

STargetHigh = $d["TargetHigh"];

$TargetLow ::: $d["Target.Low"];

SMultiplier = $d["Multiplier"] ;

$MidPoint = ($Ί argetHigh + STargetLow) / 2;

SFormula = ($MidPoint - 60) * $MuItiplier * 24; return $Formula;

}

[00143] When the patient's total daily dose TDD is calculated, the SubQ Transition process 600 continues to block 620 where the recommended SubQ dose is presented to the user 40 as described above. The SubQ Transition process 600 continues to block 622, where the SubQ Transition process 600 provides information to the user 40 including a recommended dose of Basal insulin. The user 40 confirms that the Basal insulin has been given to the patient 10; this starts a transitions timer using the TransitionRunTirneNext, usually 4 hours. At this point, normal calculation rules governing the IIR are still in effect, including the intravenous IIR timer (Timer Adjustment process 400), which continues to prompt for blood glucose tests at time intervals described

previously. The SubQ Transition process 600 passes to decision block 626, which determines whether the recommended time interval TransitionRunTime has elapsed, e.g., 4 hours, after which time SubQ Transition process 600 continues to block 630, providing the user with subcutaneous insulin discharge orders and exiting the IV Insulin process in block 634. [00144] FIG. 7 provides an arrangement of operations for a method 700 of

administering intravenous insulin to a patient 10. The method 700 includes receiving 702 blood glucose measurements BG on a computing device (e.g., a processor 1 12 of a patient device 110, a processor 152 of a hospital electronic medical record system 150, or a data processor 132 of a service provider 130) of a dosing control ler 160 from a blood glucose measurement device 124 (e.g., glucose meter or glucometer). The blood glucose measurements BG are separated by a time interval ΤΝ« Λ . The method 700 includes determining 704, using the computing device 1 12, 132, 152, an insulin dose rate IIR based on the blood glucose measurements BG. In some implementations, the method 700 determines the insulin dose rate IRR based on a current blood glucose measurement BG, a constant K, and a multiplier M (see EQ. 3A above). The constant K may equal 60 mg/dl. The method 700 includes leaving the multiplier M unchanged between time intervals T^ sxt when the current blood glucose measurement BG is greater than an upper limit BG TRH of the blood glucose target range BG TR and the blood glucose percent drop BG %Dfop from the previous blood glucose value BGp is greater than or equal to a desired percent drop BG%dropM (see EQ. 5). The method 700 also includes multiplying the multiplier M by a change factor MC F when the current blood glucose measurement BG is greater than an u pper limit BG TRH of the blood gl ucose target range BG R and the blood glucose percent drop BG /oDrop (or blood glucose percent drop) is less than the desired percent drop BG%dropM. Additionally or alternatively, the method 700 includes leaving the multiplier M unchanged between time intervals TNexi when the current blood glucose measurement BG is in the target range BG TR i.e. when BG is less than an upper limit BG TRH of the blood glucose target range and greater than the lower limit BG TRL of the target range, BG TR . The method 700 also includes dividing the multiplier M by a change factor MC F when the current blood glucose measurement BG is less than the lower limit BG TRL of the blood glucose target range BG TR . The method 700 may include setting the time interval T Next to a hypoglycemia time interval Τ ΗΥΡΟ of between about 15 minutes and about 30 minutes, when the current blood glucose measurement BG is below a hypo- threshold blood glucose level BG H P O.

[00145] The method 700 includes determining 706 a blood glucose drop rate

BGo ropRate based on the blood glucose measurements BG and the time interval The method 700 includes determining 707 a blood glucose percent drop BG%D /op , using the computing device 1 12 , 132, 152 from a previous blood glucose measurement BGp. When the blood glucose drop rate BGoropRaie is greater than a threshold drop rate

BGor op R ate Limi t , t e method 700 includes decreasing at 708 the time interval T Next between blood glucose measurements measure by the glucometer.

[00146] The method 700 also includes decreasing 710 the time interval T Next between blood glucose measurements BG when the percent drop BG' ¾Drop of the blood glucose BG is greater than the threshold of the percent drop %Drop Regu j af , where the threshold of the percent drop %DropR egU iar depends on whether the current blood glucose measurement BG is below a lower limit BG TRL of a blood glucose target range BG TR . In some implementations, the method 700 includes decreasing the time interval T^ t when the current blood glucose measurement BG is greater than or equal to the lower limit BGTRL of the blood glucose target range BGT and the blood glucose percent drop BGo /oDrop exceeds a threshold percent drop %Drop RSgular . In some implementations, the method 700 includes decreasing the time interval T Next when the current blood glucose measurement BG is below the lower limit BGTRL of the blood glucose target range BGTR and above the hypo-threshold blood glucose level BG H > P O, and the blood glucose percent drop BG%i¾o P is greater than or equal to a threshold percent drop %Drop L0 wUmit- [00147] in some examples, the method 700 includes leaving the multiplier M unchanged for at least two subsequent time intervals, T^ e - xt , when the current blood glucose measurement BG is a pre -meal measurement. In some examples, the method 700 includes receiving, on the computing device 1 12, 132, 142, a number of carbohydrates for a meal as well as a blood glucose measurement, and determining, using the computing device 1 12, 132, 142, an intravenous insulin rate IIR based on the blood glucose (this SIR may be calculated using EQ. 3 A). In addition, the method 700 includes determining, using the computing device 1 12, 132, 142, a meal bolus insulin rate OR based on the number of carbohydrates. The method 700 then calculates a Total insulin rate as the sum of the meal boius rate and the regular intravenous rate as shown in EQ. 12. The method 700 may further include setting the time interval T^ xt to about 30 minutes. If the blood glucose measurement BG is a second consecutive measurement after (but not including) an initial pre-meal blood glucose measurement BG, the method 700 includes setting the time interval T e t to about 30 minutes,

[00148] In some implementations, the method 700 includes electronically displaying on a display 116, 146 a warning and blocking transition to a subcutaneous administration of insulin when the current blood glucose measurement BG is outside a stabi lity target range BGSTR. In addition, the method 700 includes electronically displaying on the display 1 16, 146 a warning when the current blood glucose measurement BG is within the patient's personalized target range BG TR for less than a threshold stability period of time Tstabie- In some examples, the method 700 includes determining a total daily dose of insulin TDD based on the multiplier M when the current blood glucose measurement BG is within a stability target range BGS TR for a threshold stability period of time Tstabie.

[00149] Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[00150] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine -readable medium" and "computer-readable medium" refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a

programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.

[00151 ] Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Moreover, subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or a combination of one or more of them. The terms "data processing apparatus", "computing device" and "computing processor" encompass all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.

[00152] A computer program (also known as an application, program, software, software appl ication, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment, A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

[00153] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[00154] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital compu ter. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both . The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer wall also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPRQM, EEPRQM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[00155] To provide for interaction with a user, one or more aspects of the disclosure can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen for displaying information to the user and optionally a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.

[00156] One or more aspects of the disclosure can be implemented in a computing system that includes a backend component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a frontend

component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such backend, middleware, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[00157] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a commumcation network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some implementations, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.

[00158] While this specification contains many specifics, these should not be construed as limitations on the scope of the disclosure or of what may be claimed, but rather as descriptions of features specific to particular implementations of the disclosure. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination, [00159] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multi-tasking and paral lel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[00160] A number of implementations have been described. Nevertheless, it wi ll be understood that various modifications may be made without departing from the spirit and scope of the disciosure. Accordingly, other implementations are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results.