Nurse: Nurses are caretakers themselves, but are also called upon to assist
doctors. Their interaction with the system will be more direct than doctors.
A nurse should be fairly familiar with the system and be able to access the
information they need with relative ease by themselves. A doctor may request
that a patient's medical history be brought up, or perhaps book another
appointment or operation. Nurses are also called upon to prepare rooms and/or
patients for operations and so will need to know what operations are
scheduled.
Nurses will need to know their own personal schedules as well as what
specific operations they have been assigned to. All these tasks can be
delegated to the secretaries as well, depending on the situation (i.e. hectic
day at the hospital). Nurses are occasionally called upon to notify next of
kin and related tasks, so will need the patient's information. Also, they
may need to call in doctors that are on-call, so this information is required
as well.
Secretaries: More than anyone, secretaries/receptionists will have the most direct interaction with the system. They will be required to respond to requests for information from every source, including nurses, doctors, managers, and patients. The tasks outlined in the doctor and nurse profiles can eventually trickle down to be performed by the secretaries. Patients can request their schedule information, or new patient information may have to be entered. Managers may request reports on room availability, etc. New doctors and new nurses will also have to be entered into the database. There will also be a need to handle check-ins and check-outs efficiently. Receptionists should be very familiar with almost every aspect of the system, at least from an external point of view.
Managers: The managers of the hospital will be direct users of the system, and should have knowledge at a level similar to nurses. However, they will be more interested in doctor and nurse records, rather than patient records. They will be responsible for the general scheduling of hours for nurses and doctors. A major task will be the input of the schedules into the system. Also, the managers will wish to control the assignments of nurses into different wards. The doctor and nurse databases may also be tied into some sort of payroll/accounting system and the manager will be involved in that. Additionally, they will be interested in statistical reports that help them in the organization of the hospital (i.e. bed availability reports).
Patients: Patients of course, will not be directly interacting with the system at all. However, they will be interested in some areas of information. Mostly, they will interact with the receptionists in order to obtain information. They may want to know what appointments/operations they are booked for and confirm the locations and times. Also, they may want to know when certain doctors are in (if they have preferences). They may also want their records updated when their personal information changes. They will also need to know their billing information. Additionally, they will be initiating check-ins and check-outs, as well as changing their medical history with every appointment or operation they receive.
Patient Relatives/Friends: These people will also request information from the receptionists. Mainly, they will be interested in patient information, such as where the patient is located, his/her condition, and what doctor is responsible for them. They will expect this information to be readily available.
Functional Specifications For O/R
This is the meat of our system, and wow, you guys have done a very good job on this. Thanks for the good-work.
Function: A patient is scheduled to an operation room for a given treatment. A recovery room is also assigned.
Inputs : Operation room number, operation date & time, operation duration ,recovery room number, recovery date & time, recovery duration, treatment, patient ID, patient name (opt), doctor(s) ID, doctor name(s) (opt), nurse(s) ID, nurse name(s) (opt), meeting number
Error Conditions:
Function: Any of the original inputs for an existing operation may be updated. This function will automatically remove all staff from the operation roster if the date/time is modified.(Staff schedules will have to be re-entered)
Inputs : Operation room number, operation date/time, operation duration, recovery room number, recovery date/time, recovery duration, patient ID number, patient name (opt), doctor ID, doctor name(s) (opt), nurse ID, nurse name(s) (opt), meeting number
Error Conditions:
Function: An operation is canceled for a given patient. This function will clear recovery room schedules, as well as operation schedules and any schedules of staff that have been added to the operation.
Inputs : Meeting number
Error Conditions:
1.4.1 ASSIGN DOCTOR TO OPERATION
Function: Assign a doctor to an operation. Checks for doctor schedule conflicts.
Inputs : doctor ID, doctor name (opt), operation date/time, operation room number, meeting number
Error Conditions:
Function: Deletes a doctor from an operation.
Inputs : doctor ID, doctor name (opt), meeting number
Error Conditions:
Function: Assign a nurse to an operation. Checks for nurse schedule conflicts.
Inputs : nurse ID, nurse name (opt), operation date/time, operation room number, meeting number
Error Conditions:
Function: Removes a nurse from an operation.
Inputs : nurse ID, nurse name (opt), meeting number
Error Conditions:
Function: a report is generated for operation rooms.
Inputs : room number, start date, finish date(optional)
Outputs : Reports operations to be done in the operation room listing in order of date and time of operation. Reports can be done daily, weekly, or any other length of time determined by start date and finish date of the search.
If no finish date is entered only a daily report is done for the room. This report will also list:
Error Conditions:
Function: generates report for employees' schedule
Inputs : ID number, start date, name (opt), finish date (opt)
Outputs : Reports a doctor/nurse's schedule ordered by date and time. The report will be as long as is specified by start date and finish date. As well, if a finish date is not specified the function does a daily schedule for the employee.
The report will also list:
Error Conditions:
Function: generates report of patients for the day (for O/R)
Inputs : date
Outputs : lists patients for the day, alphabetically by name.
Also reports:
Error Conditions:
Function: generates report for patient (query)
Inputs : patient name (opt), patient ID
Outputs : lists a patient's operation and appointments, listed in order of date. Searches on both patient's name and ID.
Also lists:
Error Conditions:
Function: Assigns a patient to the wait list
Inputs : patient ID, patient name(opt), duration, treatment, priority number
Outputs: adds a patient to the wait list datastore
Error Conditions:
Error Condition: Patient name already in use. -There may be two John Smith's who are patients at the hospital. System must allow for both to be on the waiting list at the same time. Please look at this guys.
Function: Removes patient from the wait list.
Inputs: patient ID, patient name (opt)
Outputs: Removes a patient from the wait list datastore
Error Conditions:
Are the operation schedule (1.1) and the waiting list connected? Meaning, does the patient automatically get removed from the waiting list when they are scheduled for an operation, or is it a manual entry done by the staff? - It's very nice if we can have this done automatically.
Function: Changes Priority number or treatment, duration for a given patient.
Inputs : patient ID, patient name (opt), priority number, treatment, duration
Output: Modified patient to datastore
Error Conditions:
A superb job on the reports guys.
Inputs : none
Outputs : Lists of records containing patient ID, patient name, duration of wait, treatment, priority number
Error Conditions: none
Function: Displays a patient's current waiting status for an operation(s).
Inputs : Patient ID, patient name (opt)
Outputs : Patient's record including his priority number
Error Conditions:
The following is a listing of reports which can be generated for operating room information. These include reports for: operation room schedules, employee schedules in O/R, daily patient reports in O/R, and patient operation reports.
The next section details the functions deemed to be necessary for the HSS to monitor and manipulate data regarding wards other than the operating and recovery wards. This includes data regarding the three principle members of any hospital situation: patient, nurse and doctor.
Patient subsystem:
This is a superb job. We are very pleased with the work done on this section. Way to
go guys.
Input: - Patient name, street, city, province, postal code, phone number, history, phone number 2 (opt)
Output: - A unique identification number is assigned - Patient is added to the database
Error Conditions:
Input: - Patient ID, (patient name, street, city, province, postal code, phone number, history , phone number 2)- opt
Output: - Displays patient information - User able to change information in field(s)
Error Conditions:
Input: - Patient ID, patient name (opt)
Output: - Displays all information in patient fields (incl. ID name, street, city, province, postal code, phone number, history, phone number 2 (opt))
Error Conditions:
Input: - Patient ID, patient name (opt)
Output: - Displays appointments with doctors or operation date/time(s)
Error Conditions:
Input: - Specify a particular ward(s) or entire hospital
Output: - Listing of all patients; their identification number, name, and location (ward number)
Error Conditions:
Input: - patient ID
- patient name(opt)
- ward #
- room #
If patient is new then, Add a patient. If patient is in database then, Modify a patient. Specify ward that patient will stay in
Output: - Assigns patient a room and bed specific to the ward
Error Conditions:
Input: - Patient ID, patient name (opt), released by(name), patient history update(opt)
Output: - Displays patient information
Entered by user, an update of medical history Makes specified bed available Calculates total cost incurred (days of stay * cost per day)
Error Conditions:
Each of the identified functions required for doctor information is listed below in detail, including the generation of reports.
Input: - ward number, room number, bed ID (Capital letter ie A, B...)
Can be added to any ward or room
Error conditions:
For error conditions, it should include a case where the bed already exists.
Input: - Ward number, Room number, Bed ID
Output: - Will remove a bed from system
Error conditions:
Input: - Ward number, Room number, Bed ID
Output: - Modifies bed information
Used when beds moved around in the hospital
Also used to manually modify bed availability
Error conditions:
For error conditions, it should include a case where ward number and room number don't exist.
Input: - Ward number, Room number (Optional), Bed ID (Optional)
Output: - Displays bed information for any particular bed specified
Will display info based on parameters passed:
Option 1 will list bed info for all beds in the ward.
Option 2 will list bed info for all beds in a particular room.
Option 3 will list bed info for a specific bed.
Error conditions:
Input: - Ward number
Output: - list of beds still available in a certain ward specified by user
- also includes a total of the number of beds still available in the ward
Error conditions:
Input: - (none)
Output: - list of available beds for entire hospital separated by wards
also includes a total of the number of beds still available broken down by ward and the entire hospital
Input: - Room type, ward number
Output: - lists all rooms of certain type specified by the user that still have available beds
- also lists the specific beds which are available
Error conditions:
Input: - Room type
Output: - as above, except for the entire hospital, and broken down by ward
Error conditions:
The functions listed below outline the basic functions needed to manipulate and keep track of information regarding nurses within wards.
General Comment:
We are sure that you have taken this into consideration; however, just to make sure, it's
very convenient if a nurse/doctor can be refered to EITHER by name OR by ID.
Input: - nurse name, street, city, province, postal code (opt), phone number 1, phone number 2 (opt)
Output: - adds a nurse into the database
- assigns a unique nurse number to each nurse
Error conditions:
You might have covered this case already, but just to make sure: Will the system be
able to handle collision? - What if we have two personnel who have identical records?
This will unlikely happen, but just to be on a safe note.
Input: - nurse ID, nurse name(opt)
Output: - removes a nurse from the database
Error conditions:
Input: - nurse ID, (nurse name, street, city, province, postal code, phone number 1, phone number 2)-opt Output: - modifies any nurse info fields except nurse ID
Error conditions:
Input: - nurse ID, nurse name (opt)
Output: - displays a nurse's whole record
Error conditions:
Nurse Reports
Input: - date or (none)
Output: - outputs a schedule for a particular day listing the nurses working that day - default is current day (nurse names and IDs )
Error conditions:
Input: - date or (none)
Output: - as above, except for an entire week, broken down by day - default is current week
Error conditions:
Input: - date or (none)
Output: - as above, except for an entire month, broken down by week and day - default is current month
Error conditions:
Input: - date or (none)
Output: - as above, except for an entire year, broken down by month, week and day - default is current year
Error conditions:
Input: - nurse ID - nurse name(opt) - date (default: current day)
Output: - outputs a list of a nurse's schedule for any given day in the system
Error conditions:
Input: - ward number or (none)
Output: - outputs a list of all nurses in a particular ward, or the entire hospital if no input is given (nurse IDs and nurse names)
Error conditions:
Input: - (none)
Output: - generates output listing all nurses that are on call currently (nurse name, nurse id, and phone # are listed)
There are two types of patients who may stay at the hospital: a patient who has checked-in because of medical reasons, or the patient who is scheduled for an operation. The following set of functions allow for this distinction, as well as the ability to generate patient reports as specified below.
Input: - name, street, city, province, postal code (opt), phone number, pager number
Output: - A unique identification number is assigned - Doctor is added to the database
Error Conditions:
Input: - ID number, name (opt), appointments and O/R schedules for the doctor from the database
Output: - Remove the doctor from the database, re-assign doctor's schedule to another doctor but asks for confirmation before doing so.
Error Conditions:
Input: - ID number, (name, street, city, province, postal code, phone number, pager number)-opt
Output: - Displays doctor information, user able to change information in field(s)
Error Conditions:
Input: - ID number, name (opt), doctor information from database
Output: - Displays all information in doctor fields
Error Conditions:
Input: - Specify a particular ward(s) or entire hospital
Output: - Listing of all doctors, their identification number, name, and their specialization
Error Conditions:
Input: - ID number, name (opt), date (default is current date), schedule from database
Output: - Display the specified day schedule for the specified doctor
Error Conditions:
Input: - ID number, doctor name (opt), date (default is current week - Sunday to Saturday), schedule from database
Output: - Display the specified weekly schedule for the specified doctor
Error Conditions:
Input: - ID number, doctor name (opt), date (default is current month), schedule from database
Output: - Display the specified monthly schedule for the specified doctor
Error Conditions:
Input: - ID number, doctor name (opt), patients from database
Output: - Display the patient list for the doctor
Error Conditions:
You guys have done a super job on this. Thanks for your work.
This is a very in-depth analysis, we appreciate your philosophy of "users first". Thanks for your work, and we at the committee have agreed to give you the freedom to choose the approach that you think appropriate. We may train some of our staff to be familiar with MS-Access, and the package in particular.
Today's computing environments offer excellent graphical environments which can dramatically enhance convenience and flexibility, and they can be run on inexpensive hardware without sacrificing performance. Thus ISIS Development has chosen to use a Graphical User Interface.
A system such as this one has important data manipulation features not visible to the user which will affect system performance dramatically. Additionally, data design must be relatively quick and totally reliable. Relational databases are a well established solution to such a problem, and so Hospital 2000's system will be implemented using such a tool. Which one is to be used is another issue, dependent on hardware and expected data volume. Please see recommendations below.
For the end-user computers, again either Windows is possible, and in this case it doesn't really matter which is chosen. Windows would be sufficient and is cheaper, thus this is what the prototype will be developed in.
In Conclusion, ISIS Development recommends a graphical user interface using Windows on PCs, and a separate data server computer using MS-Access on Windows NT. The interface prototypes that will be presented will be done in MS-Access.
By far, the most cost-effective setup for this system is to implement a system that will work with Windows PCs. The hardware for these is universally available and cheap, and also offers more than adequate power for Hospital 2000's system's needs, and expandability for the future. Thus we will be using some form of Windows PC for the user interface computers.
For the database, Windows PCs can be equipped for high-volume data throughput and are reasonably affordable. As such, we will be using PCs as the database, set up with special hardware to ensure that the system will be more than adequate for the Hospital 2000's system.