System Overview
2.1 General Description:
The HMS (Hospital Management system) deals primarily with the
scheduling and tracking of various hospital resources and patients.
HMS schedules doctors and nurses to perform surgical procedures
or to staff a given ward. HMS also admits patients, assigns them
a room [in an appropriate ward] if one is available or assigns
the patient to an admissions waiting list.
HMS is grouped into 3 major components:
Each component contains task related functions.
2.2 Summary of Required System Functions:
The patient administration module provides all the information
regarding patients. Such information includes name, hospital insurance
#, address and phone number, treatment information, admission
date, room occupied and operation information if any. This module
deals with adding, updating and deleting patient information.
This module also handles admissions wait list features that include
additions, deletions and updates to the waiting list.
Click here for a complete listing of patient attributes.
2.2.1.1 User admits new patientUser: authorized
administrator/admitting nurse
- Function: A patient is entered into the system
if this the patient's first visit to this hospital. The patient
will then either be assigned a room and/or an operating room,
or wait-listed. Wait-listed patients will be assigned a wait list
number along with a priority code while patients admitted will
be issued a treatment number.
- Inputs: hospital number, first name, last
name, treatment number, ward, room number or wait list priority
code, date admitted, length of treatment, position on waiting
list
- Error Conditions:
- syntactically incorrect inputs
- hospital number corresponds to someone in the system but with
a different name
- treatment number corresponds to one already in the system
- At the incidence of an error condition the user is given an
opportunity to correct the input data.
2.2.1.2 User admits previous patientUser:
authorized administrator/admitting nurse
- Function: A patient (with previous visits
to the hospital) will either be assigned a room and/or an operating
room or wait-listed. Wait listed patients will be assigned a wait-list
number and a priority code. Upon entry of the hospital insurance
number, the patient information will be retrieved from the database.
It is then the responsibility of the user to verify the validity
of the patient information.
- Inputs: Hospital number, treatment number,
room number or wait list priority code, date admitted, length
of treatment, position on waiting list
- Error Conditions:
- syntactically incorrect inputs - user flagged and allowed
to correct the input
- patient not found in previous patient file - user queried
for a new and hopefully correct patient number
- treatment number corresponds to one already in the system
- user flagged and prompted for a correct treatment number
- patient has been previously admitted for this treatment (i.e.
done twice) - user flagged and prompted for correct treatment
number
2.2.1.3 User changes treatment for patientUser:
authorized administrator/doctor/nurse.
- Function: A doctor or nurse can change the
treatment for a patient (i.e. cancel operation, or alter operation
date, even re-book-book for a different operation).
- Inputs: Hospital number, first name, last
name, treatment number, ward, room number/wait list code, date
admitted, length of treatment, position on waiting list.
- Error Conditions:
- syntactically incorrect inputs - user flagged and prompted
to repeat incorrect inputs
- patient not found in patient file - user flagged and prompted
to re-enter patient data
- treatment number not found in the system - user flagged and
prompted to re-enter correct treatment number
- treatment already the same as change - user flagged and prompted
to edit input information
2.2.1.4 User takes patient off Waiting listUser:
Authorized administrator, Admitting nurse, nurse/doctor.
- Function: A patient can be canceled from
wait-list for different reasons:
- patient changes mind.
- treatment alters
- another valid reason from Administration with explanation.
- Inputs: Hospital number, first name, last
name, treatment number, ward, room number/wait list code, date
admitted, length of treatment, position on waiting list.
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- patient not found in patient file - user flagged and prompted
to re-enter patient information
- treatment number not found in the system - user flagged and
prompted to re-enter correct treatment number
- patient has been previously discharged for this treatment
(i.e. done twice) - user prompted to re-enter input information
2.2.1.5 User discharges patient.User: nurse/doctor
or authorized administrator
- Function: When treatment is complete a doctor
issues discharge approval. A discharge note will be printed.
- Inputs: Hospital number, treatment number,
date of discharge, first name, last name.
- Outputs: (on invoice to patient) date of
admittance, date of discharge, total length of stay, ward stayed
in, room number
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- patient not found in patient file - user flagged and prompted
to re-enter patient information
- treatment number not found in the system - user flagged and
prompted to re-enter correct treatment number
- patient has been previously discharged for this treatment
(i.e. done twice) - user flagged and prompted to re-enter input
information
2.2.1.6 User inquires about patient informationUser:
nurse/doctor/authorized administrator
- Function: Query patient information (old,
current or wait-listed) for the following purposes:
- find out about current treatment
- find how to contact patient
- find out about patient wait-list status
- Inputs: (one or more of) hospital number,
first name, last name, street, city, province/state, country,
postal code, treatment number, ward, room number/wait list code,
date admitted, length of treatment, position on waiting list
- Outputs: (on screen) all patient records
corresponding to the given inputs.
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- no patient exists for the given input - user flagged and prompted
to re-enter input information
2.2.1.7 User generates notification to patientUser:
authorized administrator
- Function: Print out an admittance date notification
for patients on the waiting list. These are patients that in two
weeks time will be admitted to the hospital.
- Inputs: Hospital number, first name, last
name, street, city, province/state, country, postal code, treatment
number, ward, room number / wait list code, date admitted, length
of treatment, position on waiting list
- Outputs: (on notice mailed to patient) date
of admittance, ward, floor of ward, room number
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- hospital number does not correspond to a patient in the system
- flag user and prompt for re-entry
- hospital number does not correspond to a patient on a waiting
list - flag user and prompt for re-entry
The staff administration module deals with staff information and
scheduling. This module allows the user to add, delete and update
staff records. The user may also view a particular staff record
on demand.
Click here to see a complete list of staff attributes.
2.2.2.1 User hires staffUser: Authorized
administrator
- Function: Information about new nurse/doctor
is entered into system (ex: name, address, phone #, specialty...)
- Inputs: Staff number, staff first name, staff
last name, phone number, street, city, province/state, country,
postal code, staff title, specialty.
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- staff number already corresponds to someone in the system
but with a different name - flag user and prompt for confirmation
or re-entry
2.2.2.2 User terminates staff memberUser:
authorized administrator
- Function: doctor/nurse is terminated from
staff list
- Inputs: staff number
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- staff number not found - flag user and prompt for re-entry
2.2.2.3 User updates staff informationUser:
authorized administrator
- Function: doctor/nurse information is updated
(e.g. new phone #, new address ...)
- Inputs: staff number, staff first name, staff
last name, phone number, street, city, province/state, country,
postal code, staff title, specialty
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- staff number not found - flag user and prompt for re-entry
2.2.2.4 User inquires about staff informationUser:
authorized administrator/doctor/nurse
- Function: A person queries a staff record
for a reason like:
- notification of shift change
- contact staff for an emergency
- Inputs: (one or more of) staff number, staff
first name, staff last name, phone number, street, city, province/state,
country, postal code, staff title, specialty.
- Outputs: (on screen) all staff records corresponding
to the given inputs.
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- no staff member exists for the given input - flag user and
prompt for re-entry of correct input information
Customer Comment
Certain basic features of the organization of the hospital
should be relatively easy to change. For example if we want to
expand a particular ward we should be able to do it without requiring
a major software rewrite. In addition, the algorithm and tasks
of the system are well thought out and organized. This has been
demonstrated by the possible errors that were presented.
2.2.3 Scheduling:
The scheduling module, schedules staff into wards and operating
rooms according to specific requirements. The scheduling module
can be also used to schedule operating theaters and recovery rooms
for surgical procedures.
Click here for a list of staff scheduling rules.
2.2.3.1 User books an operation
2.2.3.1.1 User books an operating roomUser:
authorized administrator/doctor/nurse
- Function: an operating room is booked for
a specific treatment.
- Inputs: hospital number, date of operation,
operating room number, treatment number
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- schedule conflict for operating theater - flag user and prompt
for re-entry
2.2.3.1.2 User schedules staff for operationUser:
authorized administrator
- Function: A schedule is issued for each booked
operation in 3.1.1. according the specified guidelines (ex: 2
doctors, 2 nurses are associated with each operation).
- Inputs: Hospital number, treatment number,
patient first name, patient last name, operating room, recovery
room, day, month, year, start time, completion time, attending
doctors, attending nurses
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- patient not found in patient file - flag user and prompt for
re-entry
- treatment number not found in system - flag user and prompt
for re-entry
- operating room does not exist - user flagged and prompted
to enter correct operating theater
- recovery room does not exist - user flagged and prompted to
enter correct recovery room
- operating room not available for time specified - user flagged
and prompted for re-entry of input information
- recovery room not available for time specified - user flagged
and prompted for re-entry of input information
- attending doctor(s) not available at specified time - user
flagged and prompted to select different doctor(s)
- attending nurse(s) not available at specified time - user
flagged and prompted to enter new nurse(s)
- patient booked on other operation - user flagged
- operation previously booked for this treatment number - user
flagged
2.2.3.2 User changes scheduled operationUser:
authorized administrator/doctor/nurse
- Function: An operation can be rescheduled
for another room, or date. Staff operation schedule can be updated.
- Inputs: hospital number, treatment number,
patient first name, patient last name, operating room, recovery
room, day, month, year, start time, completion time, attending
doctors, attending nurse.
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- patient not found in patient file - flag user and prompt for
re-entry
- treatment number not found in system - flag user and prompt
for re-entry
- operating room does not exist - user flagged and prompted
to enter correct operating theater
- recovery room does not exist - user flagged and prompted to
enter correct recovery room
- operating room not available for time specified - user flagged
and prompted for re-entry of input information
- recovery room not available for time specified - user flagged
and prompted for re-entry of input information
- attending doctor(s) not available at specified time - user
flagged and prompted to select different doctor(s)
- attending nurse(s) not available at specified time - user
flagged and prompted to enter new nurse(s)
- patient booked on other operation - user flagged
2.2.3.3 User cancels an operationUser: authorized
administrator/doctor/nurse
- Function: An operation can be canceled along
with related schedules.
- Inputs: Hospital number, treatment number,
patient first name, patient last name, operating room, recovery
room, day, month, year, start time, completion time, attending
doctors, attending nurses
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- patient not found in patient file - flag user and prompt for
re-entry
- treatment number not found in system - flag user and prompt
for re-entry
- operating room does not exist - user flagged and prompted
to enter correct operating theater
- recovery room does not exist - user flagged and prompted to
enter correct recovery room
- operating room not available for time specified - user flagged
and prompted for re-entry of input information
- recovery room not available for time specified - user flagged
and prompted for re-entry of input information
- attending doctor(s) not available at specified time - user
flagged and prompted to select different doctor(s)
- attending nurse(s) not available at specified time - user
flagged and prompted to enter new nurse(s)
- treatment number not found in system - user flagged and prompted
for re-entry
2.2.3.4 User makes up work scheduleUser:
authorized administrator
- Function: A work schedule is made for each
ward. This function also checks for staffing conflicts with the
operating room schedules.
- Inputs: ward, date, start time, stop time,
staff number
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- staff number does not correspond to a person in the system
- user flagged and prompted to enter correct staff number
- given shift is already covered - user flagged
- staff specialty or type does not match shift requirements
- user flagged
- all shifts are not covered according to specified criteria
- user flagged
2.2.3.5 User updates work scheduleUser: authorized
administrator
- Function: Work schedule is updated for a
particular time slot and ward.
- Inputs: ward, date, start time, stop time,
staff number
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- staff number does not correspond to a person in the system
- user flagged and prompted to enter correct staff number
- given shift is already covered - user flagged
- staff specialty or type does not match shift requirements
- user flagged
- all shifts are not covered according to specified criteria
- user flagged
2.2.3.6 User views own work schedule scheduleUser:
doctors/nurses
- Function: A work schedule is displayed for
a particular staff member for a specified date. This work schedule
may include either ward shifts or operating room shifts.
- Inputs: staff number
- Output: (on screen) The staff member's individual
schedule.
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- staff number not found - user flagged and prompted to enter
correct staff number
2.2.3.7 User views ward scheduleUser: authorized
administrator/nurses/doctors
- Function: A ward staffing schedule is displayed
for a specified time and date.
- Inputs: ward.
- Outputs: (on screen) Schedule for the given
ward.
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- input ward does not exist - user flagged and prompted to enter
correct ward number
2.2.3.8 User queries operation scheduleUser:
Authorized Administrator/Nurses/Doctors
- Function: Schedule is displayed for a specified
operating room and date.
- Inputs: (one or more of) hospital #, treatment
#, patient first name, patient last name, operating room, recovery
room, day, month, year, start time, completion time, attending
doctors, attending nurses
- Outputs: (on screen) all operations corresponding
to the given inputs
- Error Conditions:
- syntactically incorrect inputs - user flagged for re-entry
of inputs
- no operation exists for the given input - user flagged
Customer Comment
We have noticed that many of these functions are aimed at
certain members of the staff. This is something that we overlooked,
but now that it has been pointed out we will require certain other
features. a) Administrator Information Storage. e.g. Title, ...
with the rest same as other staff. b) Functions acting on administrators.
e.g. Add administrators, delete, change info. c) Each user must
be assigned a password, which can be changed by the user or administrator.
d) There will be 1 special administrator called the "SUPER
ADMINISTRATOR" he/she is the only one able to alter information
about administrators. e) The "SUPER ADMINISTRATOR'S"
password is to be INITIALLY hardwired into the system by the developers.
We realize this does have the danger where the "SUPER ADMIN"
forgets his/her password, so we ask that the developer suggest
a method or keep some backdoor feature of which only the developer
is aware. In summary, all the systems functions should have a
certain priority level, where higher levels can access all functions
of the same and lower levels. The hierarchy at present would look
like: "SUPER ADMINISTRATOR"->adminstrators->doctors/nurses.
NOTE: (JUST PART OF WISH LIST) At the present, we do not have
at horizontal differentiation. (i.e. doctors and nurses can all
access the same functions.) If at all possible we would like the
system implemented in such a way, that if in the future we do
add new forms off staff and require some form of horizontal differentiation,
this will not require a complete revamp of current functions and
data structures.
Next Section
Previous Section
Back to the Functional Specification titlepage
Back to Sirius Software Product's Home Page
Last Modified Jan. 30, 1996 by
Howell Cobb