First things first…. • Project 2: Project 2 – A Week in the life of Doctor Kildare – Handouts / Description now on Web site The Dr.’s Office – Due Dates: • Minimum Effort Due: April 28, 2002 • Full Project Due: May 12, 2002 Please, please, please Doctor’s Office Manager • Respect the submission dates • You are to program an office manager for a doctor’s office. – ESPECIALLY FOR MIN-SUBMISSION!!! – Your application will • Make/cancel appointments for the doctor • Read over Project carefully! • Print dr’s schedule indicating when the doctor is or – Ask questions early. isn’t free. • Print bills for each patient seen during the week. Doctor’s Office Manager Doctor’s Office Manager • Rules: • About Patients: – The doctor works M-F: 8am – 5pm – Patients can be insured. – The doctor can perform a number of different – Types of insurance procedures • Each procedure has: • HMO – Patient pays a co-pay – Required length • Private Insurance – Insurance pays for a percentage – Cost for performing of a procedure – Flag indicating whether it is covered by insurance Doctor is allowed to schedule lunch • Uninsured – Patient pays all costs of procedure – Doctor is allowed to schedule vacation – Not all procedures are covered by insurance!! – Doctor is allowed to schedule lunch 1
Doctor’s Office Manager Doctor’s Office Manager • Running the application • Procedure file – First line indicates: – “top” class is the OfficeManager: • The HMO copay • The percentage covered by Private Insurance – java OfficeManager procedure-file appt-file – Next, for each procedure, the following info is provided: – Where • Procedure name • Procedure-file is a file listing all the procedures that the doctor • Cost can perform • Whether the procedure is covered by HMO • Appt-file is a file listing appointments to be kept by the doctor. • Whether the procedure is covered by private insurance Doctor’s Office Manager Doctor’s Office Manager • Rules for scheduling • Appointment file – Lists appointments to be made. 6 types: – Scheduling patients • SCHEDULE – Schedule an appointment for a patient • SCHEDULE will list a day, a time, and the • VACATION – Schedule vacation procedure to be performed. • LUNCH – Schedule lunch • If the time requested is already booked: • CANCEL – Cancel an appointment – Try to book the procedure in the first available slot after the time requested • REPORT – Print the current appointment book – If there is no availability for the rest of the day, no • PRINTPROC – Print a listing of all procdures appointment for this patient is scheduled – All appointments will be in 1 hour increments • Print a message indicating if appointment was scheduled or not Doctor’s Office Manager Doctor’s Office Manager • Rules for scheduling • Rules for scheduling – Scheduling vacation – Lunch scheduling • VACATION gives a day and time • LUNCH will list a day, a time • Vacation will be scheduled for all time slots at and after the • If the time requested is already booked: time requested. • If there are other appointments already scheduled, these – Try to schedule lunch in the first available slot after the appointments will be canceled. time requested • Print a message indicating that vacation has been schedule – If there is no availability for the rest of the day, the doctor takes no lunch that day • No need to print messages about canceled appointments due to vacation scheduling • Print a message indicating if lunch was scheduled or not 2
Doctor’s Office Manager Doctor’s Office Manager • Rules for scheduling • Billing patients: – Cancellations – After all statements in the appointment file are read and scheduled, • CANCEL will give a day and time • Remove the appointment (accounting for time to • A bill for each patient seen by doctor during the week should be printed. perform the procedure) • Print a cancellation message. • Note: the test cases will guarantee that CANCEL will always list a time when appointments are – Questions so far? scheduled! Classes to be implemented: Classes to be implemented • AppointmentException • OfficeManager – “top” class (contains the main) – Subclass of Exception to indicate errors that occur when processing appointments – Represents an office manager that reads and schedules appoitments • Patient • AppointmentBook – Represents a patient – Represents a single week of appointments. • Procedure – The schedule for the doctor this week – Represents a procedure to be performed by the • Appointment doctor on a patient – Represents an individual appointment Classes to be implemented Classes to be implemented • Insurance • BinarySearchTree – Represents a kind of insurance that a patient – Procedures will be stored in a may have: BinarySearchTree for efficient search – Abstract class with 3 subclasses: – (More on BinarySearchTrees next week) • HMOInsurance • PrivateInsurance • Uninsured – Subclasses need only override 1 method from the Insurance Superclass. 3
Submissions Testing your code • Like Project 1, there will be 5 • Test cases will be provided in the project’s submissions: jar file. 1. (minimum) Insurance, Uninsured, • You’ll need to write your own test classes HMOInsurance, PrivateInsurance, Patient, (not to be submitted) Procedure 2. BinarySearchTree • If you want to verify your results: 3. Appointment – A special try target has been set up 4. AppointmentBook – project2-test 5. OfficeManager Testing your code Questions? • try cs2-grd project2-test proc appt • Once again – Will provide the correct results when the app is run on – Due Dates: procedure file proc and appointment file appt • Minimum Effort Due: April 28, 2002 • try cs2-grd project2-test proc appt java-files • Full Project Due: May 12, 2002 – Will run the app on on procedure file proc and appointment file appt using the java class definitions that you pass in. • NO LATE SUBMISSIONS! – Example: • try cs2-grd project2-test proc.1 appt.1 Patient.java • Will run the app, using your definition of Patient – Multiple java files are allowed when using project2- test. 4
Recommend
More recommend