OUTLINE FOR DELIVERY 4 INF 3120 - PROJECT HOSPITAL 2006 BY GROUP 13 VERSION: FINAL DELIVERY # 4B 21 NOVEMBER, 2006 AUTHORS: MORTEN KARDOS – MORTKARD YUAN SHU – YUANSH TONJE E. KLYKKEN – TONJEEK INF3120_prosjektplan_deliverance4b INF 3120 – Project Hospital 2006 - Delivery 4 2 INDEX INDEX .......................................................................................................................................................................... 2 1 SHORT INTRODUCTION................................................................................................................................ 3 2 NEW FUNCTIONALITY .................................................................................................................................. 4 3 LAWS THE HOSPITAL HAS TO FOLLOW ................................................................................................. 5 4 DOMAIN MODEL.............................................................................................................................................. 6 5 USE CASE ........................................................................................................................................................... 7 5.1 DIAGRAM ...................................................................................................................................................... 7 5.2 DESCRIPTIONS – FULLY DRESSED .................................................................................................................. 8 5.2.1 Modify work-plan (incl. assign/removeEmployee).................................................................................. 8 5.2.2 View work plan......................................................................................................................................... 8 5.2.3 View employee schedule......................................................................................................................... 10 5.2.4 View on-call list ..................................................................................................................................... 11 6 CLASS DIAGRAM........................................................................................................................................... 12 7 SHORT DESCRIPTION OF PROCESSES USED TO EXPAND THE CLASS DIAGRAM ................... 13 8 SEQUENCE DIAGRAM W/SHORT DESCRIPTION ................................................................................. 14 8.1 8.2 8.3 8.4 9 ADD SHIFT PLAN ......................................................................................................................................... 14 VIEW SHIFT PLAN........................................................................................................................................ 15 ASSIGN EMPLOYEE TO SHIFT PLAN ............................................................................................................. 16 REMOVE EMPLOYEE FROM SHIFT PLAN ...................................................................................................... 17 A SHORT DESCRIPTION OF THE GENERATION OF CODE AND DIALOGS .................................. 18 10 LINK TO SYSTEM ...................................................................................................................................... 19 11 DESCRIPTION OF TEST IF SYSTEM IS EXECUTABLE ................................................................... 20 INF3120_projectplan_deliverance4b.doc (21.11.2006) 3 INF 3120 – Project Hospital 2006 - Delivery 4 1 SHORT INTRODUCTION The starting point for delivery 4 is a basis solution, consisting of a class diagram, and code. We are to expand this design by implementing new functionality which will consist of a work plan for Project Hospital 2006. One of the most important tasks the new functionality should fulfill is to make the scheduling process easier for the leader group and by this making the business value as large as possible for the hospital. By using the new functionality, the leader group (this meaning the administration, chief doctors and chief nurses) can plan for the various shifts for up to one month ahead. Suggestions as to how the leader group may use the new functionality: When planning one month ahead, the leader group will be able to add shifts and specify the number of nurses and doctors needed and add employees to the work plan. At week-level they can fill up the missing shifts and assign employees to operations and other specified tasks. At day-level they can assign or reassign employees to the tasks that are to be done within the ward. The functionality should also control how much employees work, hereby to follow the law. By using the new functionality, the making of, viewing of or modifying of the work plan will be simple and orderly. INF3120_projectplan_deliverance4b.doc (21.11.2006) INF 3120 – Project Hospital 2006 - Delivery 4 4 2 NEW FUNCTIONALITY Based in the issues stated above, we have decided to develop a work plan that will take care of the scheduling functionality needed. To develop a work plan, we will use some of the functions from the existing requirements list that have not yet been realized in the basis solution. This involves the view schedule functions for both doctors and nurses. In addition we will need some new functionality to be able to modify the work plan. The functions needed are: ¾ Modify work plan (Includes add/remove employees from the work list and add shift plan) ¾ View work plan (Will show the work plan for a given day/period) ¾ View employee schedules (including both nurse/doctor schedules and daily/weekly and monthly schedules to fulfill the different needs planning ahead) ¾ View nurse on-call list (in case of sickness, the leader group has to be able to get hold of a nurse quickly. The on-call list will give them the information needed to get hold of them) This list is written in a prioritized order. The reason for prioritizing this way is that to be able to view the work plan or the schedule, we need to have a work plan to view. To be implemented at a later time: Because of lack of time, we have had to postpone some of the functionality that we would have liked to implement to give the hospital full benefit of the system. But we still wish to describe the functionality here. To make the process of finding employees easier at any given time, we would have liked to implement a function that finds all employees that are able to work at one given shift, based on their existing work schedule. This means to calculate how many hours they have worked the last day/week/year, to make sure we are following the law and the rules of the hospital (still with an option to override it if this should be necessary in a crisis (which is within the law)). INF3120_projectplan_deliverance4b.doc (21.11.2006) 5 INF 3120 – Project Hospital 2006 - Delivery 4 3 LAWS THE HOSPITAL HAS TO FOLLOW According to Arbeidstilsynet (http://www.arbeidstilsynet.no/c26976/faktaside/vis.html?tid=28151#3) the law states that employees that are working especially demanding shifts, have special rules. Hospital employees may make special deals as it is crucial for the hospital to always have enough employees at work. Work at night or on Sundays is not allowed unless the nature of work demands this. Hospitals fulfill the need for personnel at the ward at every hour of the day. There are however strict rules about this. However, the hospital rules override the laws, when necessary. REGULAR WORK HOURS FOR THOSE WHO WORK STRAINING SHIFTS: For a one week period, no more than 36 hours work time is allowed. One shall have 11 hours in between shifts. OVERTIME: For a one week period, no more than 10 hours over time is allowed. For a monthly period, no more than 25 hours over time is allowed. For an annual period, no more than 200 hours over time is allowed. Planned over time is not allowed. HSS: Day Shift – 8 hours Evening shift – 8.5 hours Night shift – 10 hours INF3120_projectplan_deliverance4b.doc (21.11.2006) INF 3120 – Project Hospital 2006 - Delivery 4 6 4 DOMAIN MODEL Each ward controls their work plan. The work plan consists of several shiftPlans which in turn consists of a set of Employees that are to work on that shift. Hospital Ward Employee Nurse Waiting List WorkPlan Room Operation Room Bed ShiftPlan Recovery Bed INF3120_projectplan_deliverance4b.doc (21.11.2006) Waiting Beds Doctor Hospital Administrator Patient Operation Receptionist INF 3120 – Project Hospital 2006 - Delivery 4 7 5 USE CASE 5.1 Diagram The most important difference between this diagram and the ones in delivery 2 is that the persons actually using the system to work on the schedule have been identified. The leader group consists of the chief nurse and doctor and the administrator. This has been specified in the diagram to show the different uses of the system according to roles. View emloyee daily schedule <<include>> <<include>> View employee schedule Staff View monthly schedule <<include>> View on-Call list LeaderGroup View weekly schedule View work plan remove employee from shift plan <<include>> <<include>> Modify workplan Chief Nurse Chief Doctor <<include>> View shift plan <<include>> add employee to shift plan Administrator INF3120_projectplan_deliverance4b.doc (21.11.2006) List available employees INF 3120 – Project Hospital 2006 - Delivery 4 8 5.2 Descriptions – fully dressed 5.2.1 Modify work-plan (incl. assign/removeEmployee) Scope: Healthcare Hospital Schedule System Level: User goal Primary Actor: Stakeholder and Interests Pre conditions: Post conditions: Main success scenario: Leader group User needs to modify the work plan Work plan has been registered in the system New work plan information has been saved in the system. 1. User requests this function. 2. System validates the selection and requests the ward ID and date. 3. User gives required information to the system. 4. System checks if ward ID is valid and if date is within expected bounds. 5. System outputs the work plan 6. User adds, changes or removes the work plan information 7. System outputs positive message, and saves the data. Extensions/ Alternative flow: 1a The system has no answer. 1. The system gives an appropriate error message. 1b The system has not connected with the database 1. System gives an appropriate error message 4a Data does not exist 1. System prompts user for re-entry 4b Date is out of expected bounds 1. System prompts user for re-entry 5.2.2 View work plan Scope: Healthcare Hospital Schedule System INF3120_projectplan_deliverance4b.doc (21.11.2006) INF 3120 – Project Hospital 2006 - Delivery 4 9 Level: Primary Actor: Stakeholder and Interests Pre conditions: Post conditions: Main success scenario: User goal Leader group User needs to see the ward’s work plan Work plan is registered in the system The system is left unchanged 1. User requests this function. 2. System validates the selection and requests the ward ID, “work plan begin” date/time, “work plan” end date/time. 3. User gives required information to the system. 4. System checks if ward ID is valid and if dates are within expected bounds 5. System outputs the work plan Extensions/ Alternative flow: 1a The system has no answer. 1. The system gives an appropriate error message. 1b The system has not connected with the database 1. System gives an appropriate error message 4a. Data does not exist. 1. System prompts user for re-entry 4b Date is out of expected bounds 1. System prompts user for re-entry INF3120_projectplan_deliverance4b.doc (21.11.2006) INF 3120 – Project Hospital 2006 - Delivery 4 10 5.2.3 View employee schedule Scope: Healthcare Hospital Schedule System Level: User goal Primary Actor: Stakeholder and Interests Pre conditions: Post conditions: Main success scenario: Staff User needs to see the daily, weekly or monthly work schedule of employee. Employee has been registered in the system. The system is left unchanged 1. User requests this function. 2. System validates the selection and requests the employee ID, “schedule begin” date/time, “schedule end” date/time. 3. User gives the required information to the system. 4. System checks if employee ID is valid and if dates are within expected bounds 5. System outputs the employee schedule. Extensions/ Alternative flow: 1a The system has no answer. 1. The system gives an appropriate error message. 1b The system has not connected with the database 1. System gives an appropriate error message 4a Data does not exist. 1. System prompts user for re-entry 4b Date is out of expected bounds 1. System prompts user for re-entry INF3120_projectplan_deliverance4b.doc (21.11.2006) INF 3120 – Project Hospital 2006 - Delivery 4 11 5.2.4 View on-call list Scope: Healthcare Hospital Schedule System Level: User goal Primary Actor: Stakeholder and Interests Pre conditions: Post conditions: Main success scenario: Leader group User needs to know who is on-call. None System outputs a list of all employees that are currently oncall. 1. User requests this function. 2. System validates the selection. 3. System outputs the list of all employees that are currently on-call. Extensions/ Alternative flow: 1a The system has no answer. 1. The system gives an appropriate error message. 1b The system is not connected with the database 1. System gives an appropriate error message INF3120_projectplan_deliverance4b.doc (21.11.2006) 12 6 CLASS DIAGRAM INF3120_projectplan_deliverance4b.doc (21.11.2006) INF 3120 – Project Hospital 2006 - Delivery 4 INF 3120 – Project Hospital 2006 - Delivery 4 13 7 SHORT DESCRIPTION OF PROCESSES USED TO EXPAND THE CLASS DIAGRAM When expanding the class diagram we had the patterns low coupling and high cohesion in mind. We did not follow the controller pattern like we did in our last system design (delivery2) as the basis solution’s class diagram didn’t use controller classes (as mentioned in delivery 3). We added the classes we saw necessary from the new requirements. In addition, we added some attributes to the already existing classes from the basis solution, so that they could match the new ones. INF3120_projectplan_deliverance4b.doc (21.11.2006) INF 3120 – Project Hospital 2006 - Delivery 4 14 8 SEQUENCE DIAGRAM W/SHORT DESCRIPTION In this section we have concentrated on the use case we find of most importance for the system, ‘modify work plan’. As that sequence diagram would be very complicated, we have chosen to split it up into smaller use cases. 8.1 Add Shift Plan : Ward : Hospital : HealthCareSystem : WorkPlan : LeaderGroup manageWorkplan() findWard(wardID) findWorkPlan() findAllShiftPlans() return(Shiftplans) addShiftPlan(date, shift, nrDoc, nrNurses) shiftPlanExists := checkShiftPlanExists(date, shift):boolean Because of lack of space, the types are declared here: wardID (int) date (Date) shift (shiftEnum) nrDoc (int) nrNurses (int) INF3120_projectplan_deliverance4b.doc (21.11.2006) [shiftPlanExists == false] create(date, shift, nrDocs, nrNurses) : ShiftPlan INF 3120 – Project Hospital 2006 - Delivery 4 15 8.2 View Shift Plan : HealthCareSystem : Ward : Hospital : WorkPlan : LeaderGroup manageWorkplan() findWard(wardID) Because of lack of space, the types are declared here: wardID (int) date (Date) shift (shiftEnum) nrDoc (int) nrNurses (int) INF3120_projectplan_deliverance4b.doc (21.11.2006) findWorkPlan() findAllShiftPlans() return(Shiftplans) INF 3120 – Project Hospital 2006 - Delivery 4 16 8.3 Assign Employee To Shift Plan : Ward : Hospital : HealthCareSystem : WorkPlan : ShiftPlan : Employee : LeaderGroup manageWorkplan() findWard(wardID) findWorkPlan() findAllShiftPlans() return(Shiftplans) assignEmployeeToShift(shift, date) findAvailableEmployees(shift,date) return(availableEmployees) foundEmployee := findEmployee(employeeID):boolean foundShift : = findShiftPlan(shift, date):boolean Because of lack of space, the types are declared here: shiftAssignmentExists := checkShiftAssignment(date, shift, employeeID) wardID (int) date (Date) shift (shiftEnum) nrDoc (... INF3120_projectplan_deliverance4b.doc (21.11.2006) [shiftAssignmentExists == false && foundShift == true && foundEmployee == true ] create(employeeID, shift, date) : ShiftAssignment INF 3120 – Project Hospital 2006 - Delivery 4 17 8.4 Remove Employee From Shift Plan : Ward : Hospital : HealthCareSystem : WorkPlan : LeaderGroup manageWorkplan() findWard(wardID) findWorkPlan() findAllShiftPlans() return(Shiftplans) removeEmployeeFromShiftPlan() found_sp := findShiftPlan(date, shift):boolean Because of lack of space, the types are declared here: found_employee := findEmployee(employeeID):boolean wardID (int) [found_employee == true] found_sa := findShiftAssignment(employeeID, date, shift):boolean date (Date) shift (shiftEnum) nrDoc (int) nrNurses (int) INF3120_projectplan_deliverance4b.doc (21.11.2006) [found_sa == true] deleteShiftAssignment (shift, date, employeeID) : Employee INF 3120 – Project Hospital 2006 - Delivery 4 18 9 A SHORT DESCRIPTION OF THE GENERATION OF CODE AND DIALOGS In the code generation process we first tried to run the basis solution. This worked very well. Then we added classes to the class diagram and some attributes to the classes from the basis solution. Here we started to get problems because there were some methods missing. We solved this after a while, but when we then tried to run the program, new errors appeared to the old code. These we did not manage to solve. In the process of creating dialogs in Genova, we created a dialog ‘Manage Work Plan’. We only managed to create a shell, so this dialog is non-functional. The idea was by inputting the wardID, the work plan, including all the present and future shifts for the ward, would show. By choosing a shift and requesting to add an employee, the employees available for that particular shift would pop up. Here one could add the necessary employees for a shift. In addition one could, by choosing a shift, also see which employees were assigned, and remove or reassign employees for that shift. One should also have the possibility to add a new shift. We did not manage to implement any code of our own as we run out of time. HealthCareSy stem ManageW orkplan <<Contains>> FindBed HealthCareApp <<Contains>> <<Contains>> ViewEmploy eeSc hedule <<Ac tiv ates>> <<Contains>> <<Contains>> <<Contains>> ManageEmploy ee <<Contains>> <<Contains>> AboutHealthCareSy stem ManageBed CheckOutPatient ManagePatient Figure 1 - the dialog model INF3120_projectplan_deliverance4b.doc (21.11.2006) 19 10 LINK TO SYSTEM We do not have a running system as of now. INF3120_projectplan_deliverance4b.doc (21.11.2006) INF 3120 – Project Hospital 2006 - Delivery 4 20 INF 3120 – Project Hospital 2006 - Delivery 4 11 DESCRIPTION OF TEST IF SYSTEM IS EXECUTABLE Because the lack of time and all the problems with generation and implementation of code we did not manage to test the system at all. If we would manage to test the system we would have tried using unit testing, which tests all the methods thoroughly before implementing the actual classes. INF3120_projectplan_deliverance4b.doc (21.11.2006)