Medical Practice

Notes 11/03/14
Dont need to deal with lateness, ability to alter booking automatic cancellation - Aaron says it should shout out "Time Extension!" each time Check create booking/check availability positions Merge Staff types - dont do anything different Dont need room types, it just happens Setting up use cases:
 * Appointment types
 * Staff types - from external system
 * Opening times/booking times possible

Notes 04/03/14 ish
Don't need to know appointment details, created in start up


 * Booking is created for an appointment over the phone or walk in by receptionist staff type
 * Both extends create booking
 * Phone booking passes desired time
 * Walking passes current time
 * Create Appointment finds the next available appointment for the passed time
 * Checks if room is available for the full length of the appointment
 * Checks if the staff member is available for the full length of time
 * Can change the length of the appointment type and the essentiality
 * Booking can not go into overtime
 * Receptionist marks booking as arrived when the patient arrives
 * Booking automatically canceled if patient is more than 10 minutes late
 * Booking marked as cleared when patient leaves
 * Booking can have multiple appointment types, each type is taken consecutively


 * What if its running late?
 * Staff member
 * Push appointments back into 1 hour overtime slot
 * Allow free staff member to take up appointment
 * Check if other staff can take over appointments
 * Room
 * Push appointment back
 * Allow free rooms to be taken up by the appointment
 * Booking going to overrun overrun time
 * Cancel less essential bookings before it and move booking forward
 * If same essenciality, cancel the one that was booked the latest (keep the one that has been on the waiting list the longest)


 * Appointment type
 * Name
 * Length
 * Room type
 * Staff type
 * Essenciality


 * Room type
 * Name


 * Staff type
 * Name
 * Appointment types
 * Link to external system for staff


 * Patient
 * From external system


 * Booking
 * Start time
 * End time
 * Rooms[]
 * Staff members[]
 * PatientID