|XYZ Hospital Management System|
Table of Contents
XYZ Hospital Management System is a Visual Basic based desktop software developed as part of the programming project. This document presents a detailed overview on each of the stages involved in the Software Development Life Cycle (SDLC) of the project including system analysis, design, development, testing, implementation and maintenance. Under system analysis, the problem for which the software is developed, its objectives, limitations and other alternative solutions will be discussed along with a brief analysis of the current system and its limitations. Design section discusses the database design, process flow and data flow and file organization of the project along with a detailed algorithm of the proposed solution. The creation of actual physical database and the forms will be discussed in the development section. In the testing section, test plan, test data and the steps involved in testing along with expected and actual results will be documented. Installation procedures, user manual and technical documentation will be discussed in the implementation part of the report. In addition, a short self-appraisal of the developed system and scope for future enhancements will be produced in the final section presented for conclusion and future enhancements.
XYZ hospital is a mid-sized hospital located in a well-known locality of the town. The hospital handles both in patients and out patients. The hospital employs different types of staffs including Doctors, Nurses, Receptionists, Pharmacists, System Admin, House Keeping Staffs, Lab Technicians and Management Staffs The management may decide to include additional staff types in the future. The working hours of the staffs are 8 hours and they work in alternating shifts so that services will be available 24 X 7 in the hospital. There are about 15 rooms available in the hospital under three categories: general, economy and luxury each with its own cost.
Patients are registered for the first time they visit the hospital and a unique patient ID will be provided to them. For each visit/admission, they can provide their patient ID to book appointment and to avail service. For outpatient consultancy, appointments will be booked based on the availability of the requested specialist. No more than 40 appointments should be booked for each doctor. Similarly, admissions will be accepted based on the availability of the rooms except in case of emergency scenarios. Both inpatients and outpatients Patients can avail laboratory and pharmacy services.
All the staffs will be registered in the system and they can login to the system using their staff ID and the given password. However, each type of staff will be presented with different entry screens such that each staff will be able to perform only the actions that are intended for them. For example, a doctor can only view his/her profile, view appointments and add remarks to the patient’s visit while a receptionist can only add/update appointments.
Invoices are generated based on the type of patient. Outpatients will receive invoice separately for each service while inpatients will pay an initial advance and an adjusted final invoice will be generated during the time of discharge.
The hospital currently uses Excel workbooks to manage their operations. For each operation (appointments, admissions, services, etc), they maintain a sheet and update them after each service. As there were no databases and their relations were defined, many redundant data were found in the system. In addition, if the staff has updated a record and missed to update any of its related record, then there will be loops in the data flow, which may show incorrect information during report generation. Further, there was no well-designed GUI for the staffs to navigate through the data. Doctors or nurses will not open up Excels to view patient history or add remarks owing to the complexity involved in updating the data during their busy schedule.
Searching for information about a doctor or a patient is also not very easy as there was no unique ID involved. Booking appointments based on the availability of doctors and admitting patients based on the availability of rooms also requires complex manual processing. Above all, inter department communication is highly impossible with this type of system as each department maintains its own Excel workbooks. This makes invoice generation very complicated and involves lot of manual works.
Thus, in order to eliminate the complexities involved in the current system and to streamline the business operations in much efficient manner, XYZ Hospital Management System will be designed, developed and implemented.
XYZ Hospital Management System can register staffs and patients, book appointments, admit patients and generate invoice in a much simpler and effective manner. Further, doctors can use this system to view all the appointments pending for the day, patient history and add remarks to patients if required. Further, Pharmacist and lab technicians can use the system to calculate the amount to be paid quickly by adding data from pre-loaded services along with their corresponding costs. Access to the system will be completely restricted only to the hospital staffs using unique ID and password. Access within the system is also restricted based on the type of staff and the action he is she is intended to perform.
The objective of the proposed software is to perform as per the below requirements:
- Enable staffs to login to the system using their unique staff ID and password
- Enable System admin to perform add/update/view staffs, add/update/view patients, add new roles/departments/services and schedule jobs for the staffs.
- Enable Receptionists to perform add/update/view appointments, add/update/view admissions and generate invoice.
- Enable Doctors/Nurse to view appointments and view/add patient history only for the patients booked under him/her.
- Enable Pharmacists to generate invoice for the medicines obtained.
- Enable Lab technicians to generate invoice for the services availed.
- By default, all staffs should be able to view their own profile
- No staff will be allowed to perform any operations outside the ones described for them.
- No more than 40 appointments should be booked for each doctor.
- Patients can be searched either using patient ID or mobile number.
- If more than one patient is returned for the given search criteria, user should be able to pick one from the list of matching patients.
The XYZ Hospital Management System is designed to handle almost all the operations involved in real time hospitals. However, owing to system complexity and insufficient time, the below functionalities are not included in the system:
- System will not handle insurance details. In other words, it is assumed that the XYZ hospital does not accept insurance cards.
- System does not handle credit/debit card details. Hence, it is assumed that all the transactions are paid only by cash.
- System does not handle payroll for the hospital staffs.
Upon deciding to replace the current hospital management system with a more efficient and user-friendly system, many options were analyzed. There were many ready-to-use hospital management software are available in the market. Livehealth, Administrator Plus, Medismart and Visual Hospital Management are some of available softwares. These softwares can be purchased online and can be installed by following their instruction manual. However, the costs of these softwares are expensive and may exceed the budget allocated for building a new system.
The second option was to update the existing system to meet the requirements. However, this may increase the complexity of the work and consume more time. Further, the system would again be not much user friendly. Hence, in order to reduce the cost, complexity and labor involved, the company has decided to build a new system that would satisfy all the requirements mentioned in the objective section.
The database design for the XYZ Hospital Management System is shown in figure 1. The database consists of 11 entities. Staff entity is identified by a unique staff ID and holds detail about staff name, gender, date of birth, qualification, date of joining, contact number, address, email, password, role, and department. Patient entity is identified by a unique patient ID and holds information regarding name, gender, date of birth and contact details. Entity for Role, Service and Department are added to facilitate addition of roles, services and departments to the hospital in the future. They contain name and description of their type. Appointment entity is used to hold information about patient ID, appointment date and time, reason for appointment and doctor to be visited. Admission entity holds information about patient ID, admission date, discharge date, reason for admission and room number. In addition, appointment and admission entity has a column for remarks, which will be filled up the doctor/nurse during or after the course of treatment/consultation. Room entity contains a unique ID, room number, room type, room description, no of beds and no of patients occupied. Entity for Invoice contains list of services availed by inpatients and outpatients respectively. Work entity is used as a look up to find the availability of the staff at any point of time and it contains staff ID, date, from and to hours of their working duration.
Figure 1: Database diagram for XYZ Hospital Management System
The data inputs to the system will be through window forms. Users type the requested input in the text fields or select a value from combo boxes (if available). Date picker will also be available in certain forms; user may choose a date from the calendar shown. Users may use the forms to either register new record or view/update the existing one by entering the respective ID in the search field. Except login form (figure 2), all the other forms are provided with search option as shown in figure 3. There would be different types of forms for each operation: staff, patient, appointment, admission, services, roles, department and patient history. The navigation to these forms will be via individual personal panel, which contains links to these operations based on their role.
Figure 3: Login screen of XYZ Hospital Management System
Figure 3: Staff registration form showing search option
Based upon the user input, 3 different types of output would be displayed by the system: notifications, data for update and read-only data. Notifications (figure 4) are read only messages that will be displayed for every successful/unsuccessful operations performed by the user. Data for update are the result of search operations. This type of form will be have the disabled text fields for non-updatable data and editable text fields for updatable fields as shown in figure 5. Read only outputs (figure 6) are result of reports. Reports do not contain any text fields and cannot be editable.
Figure 4: Notification Output
Figure 5: Output data for update
Figure 6: Read only output data
MS access database is used as a backend for this software. The database would be stored in D: // and the address will be hard coded in the program. For each service in tblService, there will be a corresponding text file in D://services which holds service items with their corresponding cost. For example, for pharmacy service, pharmacy text file will hold list of medicines and their cost. File system is being used for service items for retrieval during form entry.
Figure 7 shows the process flow of the project. Upon loading, the user will be asked to enter the system by logging in.
Figure 7: Process flow diagram of XYZ Hospital Management System
On successful login, user will be directed to different types of screen based on the type (Role) of the user. Admin users will be presented with options to view/add/update staffs and patients, assign work schedule to staffs and add new roles, services and departments to the existing system. Receptionist will be presented with options to view/add/update appointments and generate invoice, doctors/nurse will have options to view appointments assigned for them and add remarks/view previous remarks for the patient if required. Pharmacist and lab technicians can only add availed service to the patient.
Based on the proposed process flow of the XYZ Hospital Management System defined above, the algorithm for the program is written as shown below:
Step 1: Get username and password from user.
Step 2: Fetch the user type of the requested user based on the provided username and password from the table.
Step 3: If result is unsuccessful, notify user about unsuccessful login and go to step 1.
Step 4: If user type is System Admin, show Admin panel containing links to add/update/view staffs, add/update/view patients, schedule work to staffs and add roles/departments.
Step 5: If user type is receptionist, show Customer Care panel containing links to add/update/view appointments, and add services availed by patients to the list of availed services.
Step 6: Include logic to ensure that no more than 40 appointments are booked for a doctor.
Step 7: If user type is doctor/nurse, show Physician panel containing links to view appointments assigned to him/her, view and add history of patient listed in the appointment.
Step 8: If user type is pharmacist or lab technician, show Services panel containing links to add services availed by patients to the list of availed services.
As per the database model designed in the database design section, the physical database named HospitalManagementSystem and its associated tables are created using Microsoft Access. The created tables are shown in figure 8.
Figure 8: The physical tables in MS Access
The list of variables, its data type and description are given below:
All the forms that are developed as a part of this system are shown below:
Staff Operations Panel (Add/search/update/schedule work timings):
After providing staff ID in the search field, the screen changes as shown below:
Patient Operations Panel (Add/search/update):
After entering patient id or mobile no, all the patients corresponding to the given mobile number will be displayed as shown below:
After selecting a patient from the list and click go, the screen changes as shown below:
Expand Business operations:
All the designed forms in the XYZ Hospital Management System will be tested in the testing phase. The testing approach is summarized below:
Unit Testing: Each of the forms in the system will be tested individually for the design of user interface, spellings of the labels in the forms, adherence with the requirements and navigation buttons to make the user proceed to the next level of processing.
System Testing: End to end testing of each of the functionality given in the requirements will be done. Display of appropriate notification messages for every successful and unsuccessful operation will be verified. Navigations from one to another form will be tested for its correctness as per the given requirements. Update functionalities will be tested by re-running the search for the updated record and check if it is reflected in the displayed form. Above all, missing forms between operations will be also identified if any.
Performance Testing: The system will be run under varied amount of loads and tested for its performance in terms of loading time, updating time and searching time.
In order to perform the testing as per the test approach, the following environment should be available:
- MS Access Database HospitalManagementSystem.mdb with all the necessary tables created
- Access to the database tables
- Location of the database updated in the public variable myDB located in module myCommonvariables.
In order to carry out the testing process, the database tables should be populated with imaginary data. Hence, tblStaff, tblPatient, tblWork, tblServices, tblRole, tblDepartment and tblRooms will be populated with few rows of sample data. The populated tables are shown below:
The actual testing is carried out based on the given requirements and the planned testing approach. The testing procedure, results and the date the result was verified are tabulated below:
|Test ID||Functionality to be tested||Test Procedure||Expected Result||Test Result (Pass/Fail||Date Completed|
|1.||Login with incorrect ID||Open the XYZ Hospital System. Go to login screen and enter any invalid user Id and password
|Notification for invalid login details should be displayed||Pass||01-11-2015|
|2.||Login as Admin||Enter username and password of admin user
(staff ID: 1 and password=admin)
|Admin panel with option to handle Staffs, Patients, Work schedules and Expand Operations should be displayed||Pass||01-11-2015|
|3.||Login as Doctor||Enter username and password of a doctor
(staff ID: 2 and password=doctor)
|Doctors panel with option to view list of appointments should be displayed||Pass||01-11-2015|
|4.||Login as Receptionist||Enter username and password of a receptionist
(staff ID: 5 and password=staff)
|Customer care panel with option to handle appointments and invoice should be displayed||Pass||01-11-2015|
|5.||Login as Pharmacist||Enter username and password of a pharmacist
(staff ID: 6 and password=staff)
|Billing panel to be displayed with option to add services to bill of the patient||Pass||01-11-2015|
|6.||Add Staff||Login as admin, choose staff option, enter the details of staff and click Add button||Notification for successful registration should be displayed
Check tblStaff table for update
|7.||Search for a staff||Login as admin, choose staff option, enter a staff ID in the search option and click search||The textboxes of the staff form should be filled with data and the non-updatable text fields should be disabled for editing||Pass||01-11-2015|
|8.||Update Staff||Login as admin, choose staff option, enter a staff ID in the search option and click search. Edit some data in the displayed form and click update||Notification message for successful update to be displayed
Check tbStaff table for update
|9.||Add working hours to staff||Login as admin, choose Manage work schedule option and enter staff Id and working hours||Notification message for successful operation to be displayed
Check tblWork table for update
|10.||Add department||Login as admin, choose Expand operations, choose Add new department, enter the necessary details and click add.||Notification message for successful operation to be displayed
Check tblDepartment table for update
|11.||Add role||Login as admin, choose Expand operations, choose Add new role, enter the necessary details and click add.||Notification message for successful operation to be displayed
Check tblRole table for update
|12.||Add service||Login as admin, choose Expand operations, choose Add new service, enter the necessary details and click add.||Notification message for successful operation to be displayed
Check tblService table for update
|13.||Add patient details||Login as admin, choose patient option, enter the details of patient and click Add button||Notification message for successful operation to be displayed
Check tblpatient table for update
|14.||Search for a patient||Login as admin, choose patient option, enter a patient ID in the search option and click search||Notification message for successful operation to be displayed||Pass||02-11-2015|
|15.||Update Patient Details||Login as admin, choose patient option, enter a patient ID in the search option and click search. Edit some data in the displayed form and click update||Notification message for successful operation to be displayed
Check tblPatient table for update
|16.||Book appointment||Login as receptionist, choose appointments, enter the appointment details in the form and click add||Notification message for successful operation to be displayed
Check tblAppointment table for update
|17.||Admit a patient||Login as receptionist, choose admissions, enter the admission details in the form and click add||Notification message for successful operation to be displayed
Check tblAdmission table for update
|18.||Generate invoice||Login as receptionist/pharmacist/lab staff, choose invoice and add all the availed services and click generate invoice||Invoice showing all the services should be displayed for the patient with option to print||Pass||03-11-2015|
|19.||View appointments||Login as doctor/nurse, choose my appointments||All outpatient appointments and inpatient visits assigned to the doctor should be displayed
|20.||Add remarks for patient history||Login as doctor/nurse, view appointments, select an appointment to update, add remarks in the editable remarks field and click update||Notification message for successful operation to be displayed
Check tblAppointment table for update
The following steps should be followed in order to install the XYZ Hospital Management System:
- Download and extract XYZHospitalManagementSystem.rar file
- Open setup.exe file
- Accept the security warning and click install as shown in below figure
- The application will be installed in user’s computer and will open up automatically
- From the next time, the application can be opened up in the installed computer from the start menu as shown below
The Hospital Management system can be opened from the start menu of the user’s desktop. In order to login, user has to click on CLICK HERE TO LOGIN button situation in the main screen that is opened up as soon as the software is loaded. The steps to be taken to perform each operation are summarized below:
Enter staff ID and the password provided in the login screen and click LOGIN
Add Staff details:
Login as admin -> Click Staff button -> Enter details -> click add
Search staff details:
Login as admin -> Click Staff button -> Enter staff ID in search field -> click search
Update staff details:
Login as admin -> Click Staff button -> Enter staff ID in search field -> click search -> make necessary changes in the displayed form -> click Update
Add patient details:
Login as admin -> Click Patient button -> Enter details -> click add
Search staff details:
Login as admin -> Click Patient button -> Enter patient ID in search field -> click Search
Update staff details:
Login as admin -> Click Patient button -> Enter patient ID in search field -> click search -> make necessary changes in the displayed form -> click Update
Login as receptionist -> Click Appointment button -> Enter requested data -> click Add
Login as receptionist -> Click Admission button -> Enter requested data -> click Add
Login as receptionist/pharmacy/lab staff -> Click Invoice button -> Add services -> click Generate
Login as doctor -> click My Appointments
Add Remarks to appointments:
Login as doctor -> click My Appointments -> select Patient History -> Enter remarks in the editable text field-> click Add
Login as admin -> click -> Expand Operations -> choose Role/Department/Service -> Enter required details -> Click Add
The XYZ Hospital Management System is software written in Visual basic programming language. Visual Studio 2010 was used to code, build and test the software throughout its life cycle. MS Access 2007 was used to develop the backend database. Four text files were used namely consultation, treatments, pharmacy and lab, all with .txt extensions. After successful testing of the program, the software was implemented into executable software using the Publish option of the visual studio IDE. The original visual studio solution (.sln), the physical database (.mdb) and the text files (.txt) are stored in the project folder under DEVELOPMENT sub-folder. The database connection details along location of the database are stored in public variables defined in myCommonVariables module. All the forms refer to these public variables for their database operations.
The XYZ Hospital Management System is hospital management software that can replace many of the manual file-based procedures involved in day-to-day operations of hospitals. The system enables user to register/update hospital staffs, patients, book and manage appointment and admissions, bill patients for consultation, treatments, pharmacy and laboratory services, generate invoice and schedule work timing for hospital staffs. As relational database is used as the backend, no multiple table updates are required for any operation. Further, data redundancy is also reduced which in turn saves memory usage. In addition to the database files, the costs of individual items under each service are maintained in text files for faster retrieval. Above all, most of the fields in the form are combo boxes with minimal values filtered based on user requirement. User can select appropriate value instead of typing or copy and pasting.
Based on the above advantages of new system as compared to the current system, it can be mentioned that the new system has reduced the processing time of individual operations by more than 70%. Moreover, the system is very flexible as it is extendible with expansions in business without the need for altering the software. User can add roles, department and services at any point of time.
Though the XYZ Hospital Management System offer many advantages and meets the entire objectives defined in the requirements section, it is still not an end-to-end solution to a complete hospital management system. It has its own limitations when compared with real time hospital operations. In general, most of the patients hold health insurance cards and hospitals accept them for all the covered services and adjust invoice accordingly. Hospitals will also need to submit claims to the insurance companies to get the payment for the services offered for the patients. Further, patients may pay the bill either by cash or by debit/credit cards. Nowadays, most of the transactions are through cards.
In order to reduce the complexity of the system, both of these functionalities are not added in the current version. However, they are considered as future enhancements and will be added in the next version to be released shortly.
Thus, the XYZ Hospital Management System was analyzed, designed, developed and tested successfully. Initially, the current system being utilized in XYZ hospital was analyzed and its limitations were discussed. Various solutions that would address the identified limitations were identified and a best option was finalized. The proposal was to build a new system that would completely replace the existing one in a most efficient and user-friendly manner. The requirements of the hospital were summarized and the objectives of the new software were defined. Database design, System flow charts and algorithm were developed. These designs were then converted to physical database, forms and VB programs. The developed system was testing for all the given requirements and the test results were documented in the testing and results section of the report. Upon successful testing, the program was published into an executable file to be installed at the user’s end. The installation steps, user manual and the technical documentation were also provided.
Self-evaluation of the software was also performed and it was noted that the system has reduced the effort by more than 70% as compared to the previous system. The new system is very flexible and the hospital can adjust the system to adhere to the expansions in operation in terms of departments, roles and services offered at any point of time without making any changes in the software. Above all, the system was found to meet all the given requirements and has passed all the test cases. However, the missing functionalities for insurance handling and credit/debit card handling makes it limited in terms of real time hospital management services but these services will be added in the next version to be released shortly.