CIS215+Fall+2023+Programming+Project

pdf

School

Harvard University *

*We aren’t endorsed by this school

Course

215

Subject

Computer Science

Date

Nov 24, 2024

Type

pdf

Pages

5

Uploaded by jeremiahtimothy2

Report
Programming Project: Doctor’s Office Manager This is worth 350 points total (15% of your course grade) and must be completed and turned in by Tuesday, November 21, 2023 before 11:59pm . Weeks 1-5 are worth 50 points each and the final submission is worth 100 points. Assignment Overview: You will simulate the functions of an office manager for a doctor’s office. An office manager is usually able to access patient and doctor files, assist with doctor workload during the day (assigning patients to patient rooms and assigning patients to doctors), and check patients out (billing and patient queues). This assignment will give you more experience on the use of: 1. Compound data types/structures (arrays, strings, structs, etc) 2. Output formatting 3. File handling (data logging and initialization of resources) 4. Custom data objects (design and implementation) 5. User defined functions You will write a program that presents an office manager with a menu to manage a doctor’s office. The office manager can select any of the options as many times as they would like but your program should log each “transaction” to an output file for the office manage r to review later with the doctors. The office manager should be able to load the office details from a text or data file. The office manager should be able to access menu options that allow them to know when a room or doctor is occupied and with what patient. The office manager should be able to assign patients to empty rooms and assign doctors to patients. The office manager should be able to access a patient list (sorted by order of arrival) and assign doctors on a first come first serve basis. As doctors finish with patients, the office manager should be able to check patients out. Project Specifications/Implementation Details: This program should be broken down incrementally. Weekly milestones have been organized below. You should be able to extend you project each week with the same implementation program file. You will need to include any class specification files created for this program in your submissions. Your program must meet the following specifications: Your program will have at least the following menu options: o Load office data (read in from .txt or .dat files) o Add new patient -> adds new patient to patient queue. o Add new doctor -> adds new doctor to the practice. o Patient queue summary -> list of patients waiting to be seen.
o Doctor summary -> shows status of doctors seeing patients. Should show submenu with the following: Doctors name, if occupied with patient, and in what room You can then assign unoccupied doctors or see what patient an occupied doctor is seeing. o Checkout patient o Close office -> Log money earned by doctors and exit program. Menu options: o If office manager selects, “Load office data” : Your code should accept a filename (filename.dat or filename.txt) and read the data in from file. If the file does not exist, print an error message. The input file data will be organized as follows: Doctor information (there will be 3) o For example: Name: Meredith Gray, Address: 720 Westview Dr SW, City/State: Atlanta, GA, Zip: 30314, Phone number: 4042701975, Email: gray@morehousemed.edu , Employee ID: 12345, Appointment ID: Patient information (there will be 5) o For example: Arrival Time: (get curr sys time) Name: Janae Doe, Address: 350 Spelman Lane NE, City/State: Atlanta, GA, Zip: 30314, Phone number: 4042701881, Email: jaguar@spelman.edu , Date of birth: 03/10/1987, Insurance Company Name: Cigna, Patient ID: 34567 Appointment ID: Room information o Room number, initialize all to empty. o If office manager selects, “ Add new patient : Your code should prompt the office manager to enter patient details and add that patient to the end of the queue. o If office manager selects, “Add new doctor” :
Your code should prompt the office manager to enter doctor details and the doctor should become available to assign to patients. o If office manager selects, “Patient queue summary”: Your code will display existing appointments sorted by the patients order of arrival. The patient’s name and arrival time are the only details necessary to display. The office manager should then be asked if they want to assign a patient. If yes, a menu of empty rooms should be displayed. The office manager should be able to create an appointment and update it with the first patient in the list (with the earliest arrival time) and an empty room. o If office manager selects, “Doctor summary” : Your code should display a list of the doctors’ names and whether they are seeing a patient. If a doctor is unoccupied, they can be assigned to existing patient appointments. They should be assigned on a first come first served basis. o If office manager selects, “Checkout patient”: Your code should display, a menu of existing appointments. Upon selecting a patient (appointment) to check out, they should be able to see if a patient is having a preventative visit or a sick visit. If the visit is preventative and the patient is insured, the visit is free ($0). If the visit is “preventative” and the patient is not insured, the visit is $29.95. If the visit is “sick” and the patient is insured, the visit is $50 .95. If the visit is “sick” and the patient is not insured, the visit is $150.95. Fees collected are then paid to the doctor the patient saw. A doctor or patients’ account should reflect the increase or decrease in balance. o If office manager selects, “Close office”: Your code should write to file all the account balances for the doctors and the number of patients seen by the office. Your program should exit. Your program must log each menu selection and the following transactions to an output file called OfficeHistory.txt. You will need to create 4 different custom classes: Doctor, Patient, Account, Appointment. o Doctor class Required attributes: name, address, city, state, zip code, phone number, email, employee ID, appointment ID.
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help
o Patient class Required attributes: name, address, city, state, zip code, phone number, email, date of birth, insurance company name, patient ID, appointment ID. o Account class Required attributes: owner ID, balance. o Appointment class Required attributes: patient name, patient ID, doctor name, doctor ID, room number, date, time, visit type Weekly Task Breakdown Week 1 [Oct 10-17] Algorithm and Object Design 1. Complete your program algorithm (Optional template: Algorithm Development Worksheet). a. Your algorithm should capture the solution input, process, and output thoroughly. 2. Complete UML diagrams for each of your class object templates. a. Start with the class definition and basic constructors/destructors. 3. Feel free to include any pen/paper illustrations that aid in the development of your solution. 4. Deliverable: Use the Canvas submission link to submit your algorithm and UML diagrams by Tuesday, Oct. 17, 2023, 11:59pm . Week 2 [Oct 18-24] Custom Object Implementation 1. Create member functions for each class. a. Function Suggestions: i. For Patient: getters/setters, add appointment. ii. For Doctor: getters/setters, add appointment. iii. For Appointment: getters/setters, set doctor, set patient, set date/time. 2. Deliverable: Use the Canvas submission link to submit your class specifications by Tuesday, Oct. 24, 2023, 11:59pm . Week 3 [Oct 25-31] Load office data and office manager menu options 1. Read data in from file. 2. Create a mechanism to manage the invoking of menu options. 3. Create a data structure to manage Patients and Doctors. 4. Deliverable: Use the Canvas submission link to submit your program by Tuesday, Oct. 31, 2023, 11:59pm . Week 4 [Nov 1-7] Data Logging and Patient Billing 1. Add data logging to each transaction. a. Logging details should include:
i. Menu options selected. ii. Doctor/patient appointment assignments 1. Arrival times 2. Visit types. 3. Amount billed. 4. Checkout times 2. Handle patient billing a. You should deduct patient fees from patient accounts and deposit paid fees to doctor accounts. 3. Deliverable: Use the Canvas submission link to submit your program by Tuesday, Nov. 7, 2023, 11:59pm . Week 5 [Nov 8-14] Update Data Structures and Objects 1. Update your code with more appropriate data structures. 2. Update class objects as needed. a. Provide justifications for major changes. 3. Ensure you are using appropriate formatting, informative output, and data logging messages. 4. Deliverable: Use the Canvas submission link to submit your program by Tuesday, Nov. 14, 2023, 11:59pm . Week 6 [Nov 15-21] Testing and UI improvements 1. Final Deliverables: Use the Canvas submission link to submit your program and final algorithm by Tuesday, Nov. 21, 2023, 11:59pm .