KLASSEDIAGRAM FOR
INF3120-PROSJEKT: G15

3. oktober 2003

Gruppe 15:
MORTEN M. WANG HANSEN
ESPEN URNE
PER THOMAS KRAABØL
CHRISTER MICHAELSEN

INNHOLD

1Klassediagram   3
1.1Diagram   3
1.2Beskrivelse av relasjoner mellom klasser   4
1.3Beskrivelse av komplekse / Listing av metoder   5

1. KLASSEDIAGRAM

1.1 Diagram

Klassediagram

1.2 Beskrivelse av relasjoner mellom klasser

Ward

Room

Bed

Person

Appointment

OperationScheduler

Operation

1.3 Beskrivelse av komplekse / Listing av metoder

Kap.nr. refererer til kundens kravspesifikasjon.

1.1 Operation.create()

  1. Hvis det ikke finnes pasienter på venteliste, gi feilmelding og returner
  2. Velg Patient.id fra OperationSchedulerer.waitList
  3. Velg fra: WaitList.treatment
  4. Velg fra: Room.id av typen "operationroom"
  5. Prompt for: operation date/time
  6. Prompt for: operation duration
  7. Kall til Hospital.roomAvailability()
  8. Kall til Hospital.bedAvailability()
  9. Velg fra: Room.id og Bed.id av typen "recoveryroom"
  10. Recovery date/time := op.date/time + op.duration
  11. Prompt for: recovery duration
  12. Kall til Hospital.roomAvailability()
  13. Kall til Hospital.bedAvailability()
  14. Velg fra liste: Doctor.id (flere?)(Fra liste med ledige leger i aktuelt tidsrom)
  15. Kall til OperationSchedulerer.assignStaff()
  16. Velg fra: Nurse.id (flere?)(Fra liste med ledige sykepleiere i aktuelt tidsrom
  17. Kall til OperationSchedulerer.assignStaff()
  18. Generer id og lagre

1.2 Operation.modify()

1.3 Operation.delete()

  1. Prompt for: Operation.id (kan søkes opp)
  2. Kall til OperationSchedulerer.removeStaff()
  3. Kall til Hospital.roomAvailability()
  4. Kall til Hospital.bedAvailability()
  5. Lagre

1.4.1 OperationScheduler.assignStaff()

1.4.2 OperationScheduler.removeStaff()

1.4.3 OperationScheduler.assignStaff()

1.4.4 OperationScheduler.removeStaff()

1.4.5 Ward.addNurse()

2.1 WaitList.addPatient()

2.2 WaitList.deletePatient()

2.3 WaitList.modify()

2.4a WaitList.display()

2.4b Patient.displayWaitList()

3.1 OperationScheduler.dailyORReport(Room)

3.2 OperationScheduler.dailyDoctorReport(Doctor) / OperationScheduler.dailyNurseReport(Nurse)

3.3 OperationScheduler.dailyPatientReport()

3.4 OperationScheduler.???

4.1 Room.addBed()

4.2 Room.deleteBed()

4.3 Room.changeBed()

4.4 Room.displayBed()

5.1 Ward.bedAvailabilityReport()

5.2 Hospital.bedAvailabilityReport()

5.3 Ward.roomAvailabilityReport()

5.4 Hospital.roomAvailabilityReport()

6.1 Nurse.create()

6.2 Nurse.delete()

6.3 Nurse.modify()

6.4 Nurse.display()

7.1 OperationScheduler.dailyNurseReport()

7.2 OperationScheduler.weeklyNurseReport()

7.3 OperationScheduler.monthlyNurseReport()

7.4 Ward.nurseList()

7.5 Hospital.onCallList()

8.1 Patient.create()

8.2 Patient.modify()

8.3 Ward.checkIn(Patient)

8.4 Ward.checkOut()

  1. Velg: Patient.id (kan søkes opp)
  2. Kall til Hospital.roomAvailability()
  3. Kall til Hospital.bedAvailability()
  4. Patient.cost := (Operation.recoveryDuration*cost_per_day)
  5. Lagre

8.5 Patient.display()

8.6 OperationScheduler.patientSchedule(Patient)

9.1 Hospital.patientList()

10.1 Doctor.create()

10.2 Doctor.delete()

10.3 Doctor.modify()

10.4 Doctor.display()

11.1 Hospital.doctorList() / Ward.doctorList()

11.2 OperationScheduler.dailyDoctorReport(Doctor)

11.3 OperationScheduler.weeklyDoctorReport(Doctor)

11.4 OperationScheduler.monthlyDoctorReport(Doctor)

11.5 Doctor.listPatients()

Extra - Appointment.create()

  1. Velg: Patient.id (kan søkes opp)
  2. Hvis Patient ikke er registrert, kall til Patient.create()
  3. Velg Doctor.id (kan søkes opp) ----- eller ----- Prompt for: time
  4. Velg ledig time for Doctor ----- eller ----- Velg fra liste med ledige leger for angitt time
  5. Lagre