Design Document For Insulin Pump (Version 1.1)



Similar documents
Insulin pump therapy aiming for better blood glucose control in people with type 1 diabetes

Get Primed on Pumps: A beginners guide to Insulin Pump Therapy

Insulin Pump Management and Continuous Glucose Monitoring Systems (CGMS)

A Reference Guide for School Nurses. with the Medtronic MiniMed Insulin Pump

Insulin Delivery System. Reference Guide

ALVIN INDEPENDENT SCHOOL DISTRICT Diabetes Medical Management Plan

Diabetes Health Care Plan

Finally, the right fit for your insulin needs.

Taking Insulin Pumps to School. Rachel Calendo, MS, RN, CPNP, CDE, Martha Cuevas, RN, BSN, CPT

The design of an insulin pump preliminary requirements (a technical note)

OFFICE OF CATHOLIC SCHOOLS DIOCESE OF ARLINGTON DIABETES MEDICAL MANAGEMENT PLAN Page 1 of 5 TO BE COMPLETED BY PARENT OR GUARDIAN

Why is Insulin so Important?

Basal and Bolus Insulin 7/16/2014. Jackie Aday RN, BSN, CDE Jeni Neighbors RN, BSN, CDE. BASAL: Small amount of insulin infused every few minutes

Design of an Insulin Pump. Purpose of an Insulin Pump:

Insulin Pumps. with Diabetes

Pump Therapy MADE FOR YOU. Pump User Guide

Debiotech will be introducing its new insulin JewelPUMP2 for Diabetes Type 2 during the 2014 ATTD conference in Vienna, Austria. (January 29 th, 2014)

How to design an insulin pump

Telephone: Home Work Cell Address Father/Guardian: Address:

Imagine a world... Believe in better control. MiniMed Veo Paradigm System Questions and Answers About Insulin Pumping

SARASOTA MEMORIAL HOSPITAL

Diabetes Management and Treatment Plan for School (For the insulin pump student)

MiniMed 640G System Intelligent for Better Control

School Year 20 / 20. Diabetes Health Care Plan for Southgate Schools

A pictorial guide to diabetes care, supplies, and devices

Continuous Subcutaneous Insulin Infusion (CSII)

Diabetes. New Trends Presented by Barbara Obst RN MS August 2008

The OmniPod Insulin Management System

Contacts and Important Information

Anneli, Martina s daughter In better control with her pump since 2011 MY CHILD HAS TYPE 1 DIABETES

Objectives PERINATAL INSULIN PUMPS: BASICS FOR NURSES. Historical Perspective. Insulin Pumps in Pregnancy. Insulin Pumps in the US

4/7/2015 CONFLICT OF INTEREST DISCLOSURE OBJECTIVES. Conflicts of Interest None Heather Rush. Heather M. Rush, APRN, CDE Louisville, KY

Is what you know about INSULIN PUMP THERAPY. This educational resource is provided by Medtronic MiniMed, Inc.

Anneli, Martina s daughter In better control with her pump since 2011 MY CHILD HAS TYPE 1 DIABETES

Dear Parent/Guardian and Physician of

Insulin Pump Therapy and Continuous Glucose Sensor Use in the Management of Diabetes Mellitus

Introduction. We hope this guide will aide you and your staff in creating a safe and supportive environment for your students challenged by diabetes.

Diabetes Medical Management Plan (DMMP)

INSULIN PUMP. User Guide

B. Braun Space GlucoseControl (SGC)

How to Attach Files in Blackboard Learn , Messages, Discussions, and Assignments

Insulin Delivery Options: Inhale, Inject, and Infuse. Traci Evans, A.N.P., B.C.-A.D.M. Nurse Practitioner The Diabetes Center Ocean Springs, MS

Insulin Infusion Pumps

ROYAL HOSPITAL FOR WOMEN

Table of Contents. Introduction to the model 508 insulin pump

Calculating Insulin Dose

Alternative method for delivering insulin using continuous subcutaneous insulin infusion (CSII) open loop system

Insulin Pump Therapy

Report reference guide. mmol/l. One. solution EMR. No fuss

The MiniMed Paradigm Veo System A step-by-step guide

Insulin Pump Therapy in Older Adults

Basal Rate Testing Blood sugar is affected at any time by 1) basal insulin 2) food (carbohydrate) intake 3) bolus insulin (meal time and correction)

The Diabetes Self Management Insulin Pump Therapy Program

Abbott Diabetes Care Inc. ART20494 Rev. B 02/11

Diabetes Insulin Pump Health Care Plan District Nurse Phone: District Nurse Fax:

My Sick Day Plan for Type 1 Diabetes on an Insulin Pump

Use of Continuous Subcutaneous Insulin Infusion (CSII) Pumps in Hospitalized Patients Policy and Procedure

Section 504 Plan (pg 1 of 8)

Diabetes and Technology. Disclosures Certified Insulin Pump Trainer for: Animas Medtronic Diabetes Omnipod. Rebecca Ray, MSN, APRN, FNP-C

H-TRONplus. H-TRON plus Reference Manual INSULIN PUMP. Dear H-TRONplus pump user,

Inpatient Guidelines: Insulin Infusion Pump Management

DIABETES AND INSULIN PUMP THERAPY TOP TIPS FOR TRAVELLING

WHAT CAN I DO TO REDUCE MY RISK OF DEVELOPING THE COMPLICATIONS OF TYPE 1 DIABETES?

Insulin Delivery Devices

Diabetes Medical Management Plan

UW MEDICINE PATIENT EDUCATION. Using Insulin. Basic facts about insulin and self-injection. What is insulin? How does diabetes affect the body?

If you have type 1 diabetes, you will probably get symptoms quite suddenly, over a few days or weeks.

Equipment and Supplies Checklist for Parents Student: DOB: School: Grade: Equipment and Supplies to be Provided by Parent. Parent Signature Date

MiniMed 530G System User Guide

Are you ready to pump?

insulin & diabetes What is insulin? Why must it be injected? What if I have to go on to insulin? Are there different types of insulin?

Insulin Pump Therapy during Pregnancy and Birth

An estimated 280 Australians develop diabetes every day. It is Australia s fastest-growing chronic disease.

Safe use of insulin e- learning module

A patient guide to the use of insulin for diabetes

OmniPod. Extension. for the CoPilot Health Management System. Version 1.1. For use with PDM model UST200

Type 1 Diabetes - Managing a Critical Ratio

INSULIN PUMP THERAPY

Insulin Pens & Improving Patient Adherence

Continuous Subcutaneous Insulin Infusion (CSII) pump therapy

Citrix EdgeSight for Load Testing User s Guide. Citrix EdgeSight for Load Testing 3.8

Insulin. and diabetes. What is insulin? Who needs to inject insulin? Why must it be injected? What if I have to go on to insulin?

BLOOD GLUCOSE METER. Getting Started Guide for Single Patient Use Only

Paradigm 512 and 712 Infusion Pumps

Insulin Dose Adjustment REAL-Time CGMS Guidelines for Subjects on Pump Therapy

sbchoi~kku.edu jeremy~sooil.com DANA Diabecare IlS Insulin Infusion pump Infusion pump Class II

Diabetes Education Information for Teachers and School staff

SMS Database System Quick Start. [Version 1.0.3]

Transcription:

For Insulin Pump (Version 1.1) Written by: Morteza Yousef-Sanati Hamid Mohammad-Gholizadeh Assignment 2 Course: 703 Software Design Professor: Dr. Tom Maibaum March 2011

Table of Contents I INSULIN PUMP SPECIFICATIONS... 3 What is an insulin pump?... 3 How big is an insulin pump?... 3 How does an insulin pump work?... 3 How common is an insulin pump?... 3 II DESIGN DECISION... 5 II.1 SYSTEM DESIGN ARCHITECTURE... 5 II.1.1 GUI... 5 II.1.2 Controller... 6 II.1.3 Data Layer... 6 III OOM DIAGRAMS... 7 III.1 MODEL LEVEL DIAGRAMS... 7 III.1.1 Diagram PackageDiagram_1... 7 III.1.2 Diagram UseCaseDiagram_1... 8 III.2 PACKAGE DIAGRAMS CONTROLLER... 9 III.2.1 Diagram ACTButtonStateChart... 9 III.2.2 Diagram Controler ClassDiagram... 10 III.2.3 Diagram lockpump... 11 III.2.4 Diagram lockpumpcollaboration... 12 III.2.5 Diagram Pump State Chart... 13 III.2.6 Diagram reservoir_sate_chart... 14 III.2.7 Diagram resumepump... 15 III.2.8 Diagram resumepumpcollaboration... 16 III.2.9 Diagram setbasal... 17 III.2.10 Diagram setbasalcollaboration... 18 III.2.11 Diagram setbolus... 19 III.2.12 Diagram setboluscollaboration... 20 III.2.13 Diagram setdatetime... 21 III.2.14 Diagram setdatetimecollaboration... 22 III.2.15 Diagram showpumpstatus... 23 III.2.16 Diagram showpumpstatuscollaboration... 24 III.2.17 Diagram suspending PumpCollaboration... 25 III.2.18 Diagram SuspendingPump... 26 III.2.19 Diagram unlockpump... 27 III.2.20 Diagram unlockpumpcollaboration... 28 III.3 PACKAGE DIAGRAMS DATA... 29 III.3.1 Diagram DataLayerClassDiagram... 29 III.4 PACKAGE DIAGRAMS GUI... 30 III.4.1 Diagram GUI Class Diagram... 30 III.4.2 Diagram Pump Simulator User Interface... 31 Page 2 of 31

I Insulin Pump Specifications What is an insulin pump? The most recently available advance in insulin delivery is the insulin pump. In the United States, MiniMed and Disetronic market the insulin pump. An insulin pump is composed of a pump reservoir similar to that of an insulin cartridge, a battery-operated pump, and a computer chip that allows the user to control the exact amount of insulin being delivered. How big is an insulin pump? Currently, pumps on the market are about the size of a standard communications beeper. How does an insulin pump work? The pump is attached to a thin plastic tube (an infusion set) that has a soft cannula (or plastic needle) at the end through which insulin passes. This cannula is inserted under the skin, usually on the abdomen. The cannula is changed every two days. The tubing can be disconnected from the pump while showering or swimming. The pump is used for continuous insulin delivery, 24 hours a day. The amount of insulin is programmed and is administered at a constant rate (basal rate). Often, the amount of insulin needed over the course of 24 hours varies depending on factors like exercise, activity level, and sleep. The insulin pump allows the user to program many different basal rates to allow for variation in lifestyle. In addition, the user can program the pump to deliver a bolus (large dose of insulin) during meals to cover the excess demands of carbohydrate ingestion. How common is an insulin pump? Over 50,000 people with diabetes worldwide are using an insulin pump. This number is growing dramatically as these devices become smaller and more user-friendly. Insulin pumps allow for tight blood sugar control and lifestyle flexibility while minimizing the effects of low blood sugar (hypoglycemia). At present, the pump is the closest device on the market to an artificial pancreas. More recently, newer models of the pump have been developed that do not require a tubing, in fact - the insulin delivery device is placed directly on the skin and any adjustments needed for insulin delivery are made through a PDA like device that must be kept within a 6 foot range of the insulin delivery device, and can be worn in a pocket, kept in a purse, or on a tabletop when working. Page 3

Probably the most exciting innovation in pump technology is the ability to use the pump in tandem with newer glucose sensing technology. Glucose sensors have improved dramatically in the last few years, and are an option for patients to gain further insight into their patterns of glucose response to tailor a more individual treatment regimen. The newest generation of sensors allows for a real time glucose value to be given to the patient. The implantable sensor communicates wirelessly with a pager-sized device that has a screen. The device is kept in proximity to the sensor to allow for transfer of data, however, it can be a few feet away and still receive transmitted information. Depending on the model, the screen displays the blood glucose reading, a thread of readings over time, and a potential rate of change in the glucose values. The sensors can be programmed to produce a "beep" if blood sugars are in a range that is selected as too high or too low. Some can provide a warning beep if the drop in blood sugar is occurring too quickly. To take things one step further, there is one particular sensor that is new to the market that is designed to communicate directly with the insulin pump. While the pump does not yet respond directly to information from the sensor, it does "request" a response from the patient if there is a need for adjustments according to the patterns it is programmed to detect. The ultimate goal of this technology is to "close the loop" by continuously sensing what the body needs, and then responding by providing the appropriate dose of insulin. While this technology is a few more years in the making, the strides in this direction continue to grow. Page 4

II Design Decision II.1 System Design Architecture Our design is based on 3-tier architecture which is reflected by three packages: GUI, Controller and Data. GUI includes classes related to GUI Design like, Frames, Buttons, Panels and etc. which is constructing our user interface. Controller includes core classes like classes which control the pump functionality and Data package contains a class which is responsible for storing and retrieving system data. GUI Controller Data System Design Architecture II.1.1 GUI Our GUI s completely reflects a real insulin pump interaction. Instead of using common GUI widgets like menus we decided to implement the menus just like the menus exist in a real insulin pump. This approach facilitate detaching the controller part of the software and embedding it in a real hardware with minimum effort. As you will see in the Class diagram we exploited the Command Pattern to control the complexity of different states of the buttons of the interface. As you will see in the state chart diagrams for the ACT button, its functionally changes according to the place the user interacting with. e.g while user is inside the menu the ACT button command differs Page 5

with the time the user setting the basal or bolus or even when the ser want to set the date and time. We also use singleton pattern for preventing some classes to have more than one instance throughout the life cycle of the system. e.g. ActBtn, UpBtn and other buttons in GUI. We should mention that we didn t indicate explicitly this pattern on these classes in class diagram. However it should be considered in implementation. We demonstrated each button as a child of a Button class setting their captions differently. It would be better to show these kinds of situations by using Object diagram and only change the value for that instances, But we avoided to use Object diagrams to avoid moe complexity. For changing the screen inside the frame, say the place we show information to the user, we will create one instance of a Panel class and will change according to each state of the pump. II.1.2 Controller We represented Battery and Reservoir with the corresponding classes in controller layer. These classes simulate the functionality of these hardwares like consuming the battery of decreasing the reservoir insulin. The pump class acts as a core of a controller system. it almost controls and synchronize the activity of the pumps. There are some enumerations in control layer which represents different states of the system like PumpState Enumeration. We used OCL constraint to specify the constraint of the system. these constraint are annotated in class diagrams elements. II.1.3 Data Layer Our data layer is responsible for storing system data. Actually there is one class in this layer doing all data related storing and retrieving tasks. For example we need to store the battery level and reservoir level when the pump is turned of (program closed) and then retrieve these data again when it is turned on (program started). Page 6

III OOM Diagrams III.1 Model level diagrams III.1.1 Diagram PackageDiagram_1 GUI Our Classesis organized in three packages, GUI: it includes classes related to GUI Design like, Frames, Buttons, Panels and... Controler: It includes core classes like classes wich control the pump functionality Data: This package contain a class which is responsible for storing and retriving system data Controller Data Page 7

III.1.2 Diagram UseCaseDiagram_1 Note: An insulin pump has five main buttons, including UP, Down, B, ACT and ESC/Back button and one indicator light set Alerts changereservoirlevel pump Initialize ShowPump Status changebatterylevel lock and unlock pump Set Bolus Patient <<include>> Access Bolus Menu set Date Time <<include>> Display Bolus History <<extend>> Review Basal Suspend & resume <<abstract>> Set Basal Navigating Menus to access Bolus Menu (This is a common Practice for other Usecases but I avoid to repeat it for simplicity) <<include>> Set Multiple Basal Rate Set Single Basal Rate Page 8

III.2 Package diagrams Controller III.2.1 Diagram ACTButtonStateChart SetBolusSelected ActBtn.Click [Bolus.amount > 0]/ StartDelivery ShowPumpStatusSelected ReturnBtn.Click ReturnBtn.Click ActBtn.Click [Pump is in Normal State] ActBtn.Click [Pump is in Normal State] DownBtn.Click SetBolusHighlighted DownBtn.Click SetBasalHighlighted ShowPumpStatusHighlighted ReturnBtn.Click UpBtn.Click ActBtn.Click [Pump is in Normal State] UpBtn.Click DownBtn.Click UpBtn.Click SetBasalSelected ReturnBtn.Click UpBtn.Click ShowBolusHistoryHighlighted ActBtn.Click [Pump is in Normal State] ReturnBtn.Click ShowBolusHistorySelected ActBtn.Click/ ShowNextDeliveryHistory ActBtn.Click [[Basal.Rate > 0 and basal. Time > 12A.M.]]/ NextBasalSetup() DownBtn.Click UpBtn.Click Suspend2 ReturnBtn.Click ActBtn.Click [Pump is in Normal State] SuspendSelected DownBtn.Click UpBtn.Click DownBtn.Click Resume2 ActBtn.Click [Pump is in Attention State] ReturnBtn.Click ResumeSelected Page 9

III.2.2 Diagram Controler ClassDiagram BolusHistory Bolus 0..* boluses Ordered - amount : int - amountdelivered : int start () stop () 0..1 addbolus (Bolus bolus) ClearHistory () exporttolist () <<enumeration>> PumpState NORMAL SPECIAL ATTENTION : int : int : int 0..1 currentbolus BasalRate - Time : Date - Rate : double - filepath : String DataProvider (Data) storebasal (Basal basal) retrivebasal () storebatterystate (Battery Parameter_1) retrivebatterystate () storereservoirstate () retrivereservoirstate ()... : Basal : Battery : Reservoir - - Pump state : int datetime : Date initialize () getstatus () alarm () suspend () resume () changebattery () changeresorvoir () finalize () lock () displaylocked... () : void : void : void : void : void : void : void : void Reservoir - tankcapacity : int - status : CapacityStatus consume (int amount) : void 0..1 Basal - basalratecounts : int Derived addbasalrate (BasalRate brate) deletebasalrate (BasalRate brate) clearbasalall () 1..* rates Ordered self<=100 and self>=0 charge>=0 and charge <=20 => status=low Battery - charge : int - status : CapacityStatus Derived getstatus () : CapacityStatus startconsumption () : void stopconsumption () : void tankcapacity>=0 and tankcapacity<=1000 BatteryStatus reservoirstatus - - - - - <<enumeration>> CapacityStatus VERY_LOW LOW MID HIGH FULL : int : int : int : int : int Page 10

III.2.3 Diagram lockpump lockpump :ActBtn :Pump :UPBtn :DownBtn :BolusBtn :ReturnBtn patient2 1: doubleclick 2: lock( ) 3: create LockedCmd:Command 4: execute( ) 5: bindcmdstobtns( ) 6: setcmd(uplockedcmd) 7: setcmd(downlockedcmd) 8: setcmd(blockedcmd) 9: setcmd(rlockedcmd) 10: setcmd(actlockedcmd) 11: lock( ) Page 11

III.2.4 Diagram lockpumpcollaboration :Pump 2: lock( ) 3: create :BolusBtn :ActBtn 4: execute( ) 11: lock( ) 10: setcmd(actlockedcmd) 8: setcmd(blockedcmd) 1: doubleclick 5: bindcmdstobtns( ) LockedCmd:Command patient2 6: setcmd(uplockedcmd) 7: setcmd(downlockedcmd) 9: setcmd(rlockedcmd) :ReturnBtn :UPBtn :DownBtn Page 12

III.2.5 Diagram Pump State Chart Initial entry / Show Main Screen do / DoPumpInitialization [Initial Action Completed] Normal deliver idle delivery resume Attention entry / showattentionicon do / alertuser exit / beep suspend [self.reservoir.tankcapacity<10%] [self.battery.charge<10%] Special entry / showspecialicon do / alertuser lowbattery suspend lowbattandres lowreservoir Page 13

III.2.6 Diagram reservoir_sate_chart Reservoir of pump must be changed in order to get more capacity then there are not reverse transition from lower capacities to higher ones. consumereservoir [40%<self.tankCapacity<= 60%] high consumereservoir [60%<self.tankCapacity<= 80%] full [60%<self.tankCapacity<=80%] [80%<self.tankCapacity <= 100%] [40%<self.tankCapacity<=60%] very_low [self.tankcapacity<=10%] [10%<self.tankCapacity<=40%] middle consumereservoir [self.tankcapacity<=10%] consumereservoir [10%<self.tankCapacity<= 40%] low Page 14

III.2.7 Diagram resumepump resumepump patient7 actbtn2:actbtn upbtn2:upbtn downbtn2:downbtn pump2:pump 1: click( ) loop [ResumeMenu is Not Highlighted] alt 2: click( ) 3: click( ) 4: click( ) 5[Pump is in Attention State]: resume( ) Page 15

III.2.8 Diagram resumepumpcollaboration downbtn2:downbtn upbtn2:upbtn 2: click( ) 3: click( ) patient7 4: click( ) 1: click( ) 5[Pump is in Attention State]: resume( ) actbtn2:actbtn pump2:pump Page 16

III.2.9 Diagram setbasal setbasal patient5 setbasalmnu:menu setbasalcmd:command upbtn1:upbtn downbtn1:downbtn actbtn1:actbtn p5:pump 1: click( ) 2: execute( ) Show the Panel for setting Date and Time 3: bindcmdstobtns( ) user can use UP and Down key several times to get to the appropriat value loop alt [Condition] Condition 4: click( ) Condition 5: click( ) 6: click( ) finally user click Act button to confirm its desired value. 7: setdatetime( ) Page 17

III.2.10 Diagram setbasalcollaboration 3: bindcmdstobtns( ) setbasalcmd:command 2: execute( ) setbasalmnu:menu 1: click( ) patient5 5: click( ) downbtn1:downbtn 4: click( ) 6: click( ) upbtn1:upbtn 7: setdatetime( ) actbtn1:actbtn p5:pump Page 18

III.2.11 Diagram setbolus setbolus bolusbtn:bolusbtn actbtn:actbtn upbtn:upbtn dbtn:downbtn rbtn:returnbtn patient 1: click( ) 2: create boluscmd:boluscmd 3: execute( ) 4: create bolusscreen:bolusscreen 5: bindcmdstobtns( ) loop [True] alt upclicked 6: click( ) downclicked 7: click( ) break [actbtn or returnbtn Clicked] 8: click( ) 9: savebolus 10: showdefaultscreen 11: destroy 12: click( ) 13: showdefaultscreen 14: destroy Page 19

III.2.12 Diagram setboluscollaboration 10: showdefaultscreen 9: savebolus bolusscreen:bolusscreen 4: create 5: bindcmdstobtns( ) boluscmd:boluscmd 11: destroy actbtn:actbtn 14: destroy 13: showdefaultscreen 3: execute( ) 8: click( ) rbtn:returnbtn 2: create patient 12: click( ) 1: click( ) 6: click( ) bolusbtn:bolusbtn 7: click( ) upbtn:upbtn dbtn:downbtn Page 20

III.2.13 Diagram setdatetime setdatetime sdtmnu:menu DTcmd:Command p2:pump patient4 1: click( ) 2: execute( ) it bind new appropriat commands to every button including (UP, Down, Return, Bolus and Act) Show the Panel for setting Date and Time 3: bindcmdstobtns( ) 4: setdatetime( ) Page 21

III.2.14 Diagram setdatetimecollaboration sdtmnu:menu 2: execute( ) 1: click( ) 3: bindcmdstobtns( ) DTcmd:Command patient4 4: setdatetime( ) p2:pump Page 22

III.2.15 Diagram showpumpstatus showpumpstatus patient8 actbtn3:actbtn upbtn3:upbtn downbtn3:downbtn pump3:pump 1: click( ) loop [ShowPumpStatus is Not Highlighted] alt 2: click( ) 3: click( ) 4: click( ) 5: getstatus( ) Page 23

III.2.16 Diagram showpumpstatuscollaboration upbtn3:upbtn 2: click( ) patient8 3: click( ) downbtn3:downbtn 4: click( ) 1: click( ) 5: getstatus( ) actbtn3:actbtn pump3:pump Page 24

III.2.17 Diagram suspending PumpCollaboration upbtn:upbtn downbtn:downbtn 2: click( ) 3: click( ) patient6 4: click( ) 1: click( ) 5[Pump is in Normal State]: suspend( ) actbtn:actbtn pump:pump Page 25

III.2.18 Diagram SuspendingPump SuspendingPump patient6 actbtn:actbtn upbtn:upbtn downbtn:downbtn pump:pump 1: click( ) loop [SuspendMenu is Not Highlighted] alt 2: click( ) 3: click( ) 4: click( ) 5[Pump is in Normal State]: suspend( ) Page 26

III.2.19 Diagram unlockpump unlockpump b1:bolusbtn b2:upbtn p1:pump b4:actbtn b3:downbtn b5:returnbtn patient3 1: click( ) 2: click( ) 3: create unlockcmd:command 4: execute( ) 5: bindcmdstobtns( ) 6: setcmd( ) 7: setcmd( ) 8: setcmd( ) 9: setcmd( ) 10: setcmd( ) 11: unlock( ) Page 27

III.2.20 Diagram unlockpumpcollaboration b3:downbtn b5:returnbtn b1:bolusbtn 9: setcmd( ) 10: setcmd( ) 1: click( ) patient3 2: click( ) 8: setcmd( ) 7: setcmd( ) 4: execute( ) 3: create 5: bindcmdstobtns( ) unlockcmd:command 11: unlock( ) 6: setcmd( ) b2:upbtn p1:pump b4:actbtn Page 28

III.3 Package diagrams Data III.3.1 Diagram DataLayerClassDiagram - - charge status Battery (Controller) : int : CapacityStatus getstatus () startconsumption () stopconsumption () : CapacityStatus : void : void - - tankcapacity status Reservoir (Controller) : int : CapacityStatus consume (int amount) : void - filepath : String DataProvider storebasal (Basal basal) retrivebasal () storebatterystate (Battery Parameter_1) retrivebatterystate () storereservoirstate () retrivereservoirstate () storebolushistory (BolusHistory bolushis tory) retrivebolushistory () : Basal : Battery : Reservoir : BolusHistory Basal (Controller) - basalratecounts : int addbasalrate (BasalRate brate) deletebasalrate (BasalRate brate) clearbasalall () BolusHistory (Controller) addbolus (Bolus bolus) ClearHistory () exporttolist () : Bolus : void : void Page 29

III.4 Package diagrams GUI III.4.1 Diagram GUI Class Diagram MainScreen MainScreen represent the default screen when pump is started OR when it is not at any other especial screen PumpScreen {abstract} 1..* 0..1 0..* submenu Ordered Menu - title : String click () 0..1 upmenu 0..1 Command {abstract} Command Pattern PumpFrame 0..1 execute () bindcmdstobtns () : void BolusScreen show () : void 0..1 cmd 1..* 0..* Singleton Pattern # # - caption icon action Button : String : String : int click () setcmd (Command cmd) {abstract} : void BolusCmd - showbolusscreen () self.caption="act" ActBtn {Rule_2} BolusBtn {Rule_3} DownBtn ReturnBtn self.caption="bolus" UPBtn self.caption="down" self.caption="return" self.caption="up" Page 30

III.4.2 Diagram Pump Simulator User Interface Frame Pump Simulator User Interface UP These are up and Down button Screen Down This is a Pump Panel, I may be represented by Panel Class in Java Bolus Esc(Return) ACT Light Pump Functional Buttons Page 31