time schedule required for the developed of this project is very important since more development time effect machine time, cost and cause delay in the development of other systems. A reliable Hospital Management System can be developed in the considerable amount of time.
2.3 PROJECT PLAN
We have two members as a team:
- Parul V. Desai
- Mitali P. Shrivastava
Our team is guided by Mr. SapanNaik.
Our team structure is Democratic Decentralized. We have distributed the task and have performed it within time limits.
Table 2.1 Project Planning
2.4 SCHEDULE REPRESENTATION
Generalized project scheduling tools and techniques can be applied with little modifications to software projects.
Project evolution and review techniques(PERT) and Critical path method (CPM) are the two project scheduling methods that can be applied to the software development. Both techniques are driven by the information already developed in earlier project planning activities:
- Estimate of efforts
- A decomposition of the product function
- The selection of an appropriate project model and task set
- Decomposition of tasks.
Table 2.2 Detailed table for Scheduling
Gantt Chart
Table 2.3 Gantt Chart
2.5 RISK MANAGEMENT
Many problems we come across while developing a software project. A risk is something that may happen and if it does, it will have an adverse impact on the project. A risk is the probability of loss or something bad which can happen to the project. Secondly we can consider that it will have an adverse impact because if not then it is not termed as a risk. A risk implies a probability of between 0 to 100%. Especially in software world it is important because most of the software after it has been destroyed; it was found that it could have been solved if the reason would have been found earlier.
2.5.1 Risk Management
Basically, risk management is the sum of all proactive management directed activities within a program that are intended to acceptably accommodate the possibility of failures in elements of the program. To identify, address & eliminate risk items before they become either threats to successful software operation or major sources of software rework.
2.5.2 ·Risk Identification
In this stage, we identify and name the risks. The best approach is a meeting with business and IT people to carry out the identification. We may say that it is a combination of brainstorming and reviewing of standard risk lists. There are different sorts of risks and we need to decide on a project by project basis what to do about each type. Risks may be defined in two parts. The first is the cause of the situation (Vendor not meeting deadline, Business users not available, etc.). The second part is the impact (Budget will be exceeded, Milestones not achieved, etc.).
- Risk Response
There are four things which you can do about a risk. They are: -
Avoid the risk: Use an alternate approach that does not have any risk, but this is not a sure option for always. However, this is the most effective risk management technique if it can be applied. Transfer the risk: An attempt to pass the risk to another program element. This means that anyone else can be made responsible for that risk.
Mitigate the risk: Take actions to reduce the impact or chance of the risk occurring. If the risk relates to availability of resources, draw up an agreement and get sign-off for the resource to be available.
Accept the risk: The risk might be so small the effort to do anything is not worthwhile. In these cases we can accept the risk and carry on our work as it is.
- Risk Monitoring and Control
The final step is to continually monitor risks to identify any change in the status, or if they turn into an issue. It is best to hold regular risk reviews to identify actions outstanding, risk probability and impact, remove risks that have passed, and identify new risks.
CHAPTER: 3
SOFTWARE REQUIREMENT SPECIFICATION
3.1 INTRODUCTION
HMS is a comprehensive solution designed to automate the activities of the Hospital. It is designed with a easy-to-use user interface. System has the capability to administer the total enterprise & efficiently manage information. The system is designed modularly.
3.1.1 PURPOSE
A Hospital is a place where Patients come up for general diseases. Hospitals provide facilities like:-
- Consultation by Doctors on Diseases.
- Diagnosis for diseases.
- Providing treatment facility.
- Facility for admitting Patients (providing beds, nursing, medicines etc.)
- Immunization for Patients/Children.
- Various operational works that are done in a Hospital are:-
- Recording information about the Patients that come.
- Generating bills.
- Recording information related to diagnosis given to Patients.
- Keeping record of the Immunization provided to children/patients.
- Keeping information about various diseases and medicines available to cure them.
These are the various jobs that need to be done in a Hospital by the operational staff and Doctors. All these works are done on papers.
The work is done as follows:-
- Information about Patients is done by just writing the Patients name, age and gender.
- Whenever the Patient comes up his information is stored freshly.
- Bills are generated by recording price for each facility provided to Patient on a separate sheet and at last they all are summed up.
- Diagnosis information to patients is generally recorded on the document, which contains Patient information. It is destroyed after some time period to decrease the paper load in the office. Immunization records of children are maintained in pre-formatted sheets, which are kept in a file.
- Information about various diseases is not kept as any document. Doctors themselves do this job by remembering various medicines.
All this work is done manually by the receptionist and other operational staff and lot of
papers are needed to be handled and taken care of. Doctors have to remember various medicines available for diagnosis and sometimes miss better alternatives as they can’t remember them at that time.
3.1.2 SCOPE
- Office staff can perform various functions like appointment scheduling, billing, entering prescriptions, lab results, patient charts, etc. through the Web.
- Doctors can look up their schedules, enter schedule changes, review patient charts, look at lab results and enter prescriptions.
- Patients can look up appointments, cancel them, request new appointments, look up statements, enter credit card payments, look up their medications, receive notifications of their lab results and change their addresses. New patients may look up physicians by their specialty, request appointments, and register themselves on line. Direct Electronic Billing avoids paper.
- Patients can review statements & make payments over the internet. Pharmacists can receive notifications regarding prescriptions; request re-fills or re-works on a prescription.
3.2 OVERALL DESCRIPTION
3.2.1 USER CHARACTERISTICS
Every user should be:
• Comfortable of working with computer.
• He must have knowledge in medical field.
• He must also have basic knowledge of English too.
3.2.2 CONSTRAINS
• GUI is only in English.
• Login and password is used for identification of user and there is no facility for guest.
3.3 SPECIFIC REQUIREMENTS
Hardware Requirements: -
Processor : Intel Pentium processor or higher processor
Ram : 256 MB or Higher
Software Required For:-
Development
Front-end : Microsoft Visual Studio (ASP.Net with VB.Net)
Back-end: MS SQL Server-2005
Additional : Photoshop 2.0
Platform Required For Implementation:
Windows-Xp/Windows-2000 or higher
3.3.1 User Interface Requirement
- Screen resolution of at least 800 X 600 required for proper and complete viewing of screen. Higher resolution will not be a problem.
3.3.2 Non- Functional Requirement:
- Expandable
This project is expandable in the sense that as per requirement of the hospital it can be
Varied in size.
- Testability
This project is testable in the sense that is any condition it can be tested as per
User requirement.
- Readable
Any non-technical person can also use this system.
- Portable
This project can be used on any pc.
- User-Friendly
Any non-technical person can also use the system.
3.4 DATA DICTIONARY
(1)Table for User Login & Registration (Table Name: userreg)
Description:
This table stores all the information about the users of the system along with the userid and password and the other related information of the user, also the type of the user for security and authentication. This table is maintained by the Admin Group.
(2)Table for OPD Bills (Table Name: masterbill)
Description:
This table stores the information related to bills generated in the OPD department along with the lab tests and their charges. The bill list is then generated as the report for the daily records. This database is maintained by the Management Group.
(3)Table for OPD Bill Details (Table Name: billdetail)
Description:
This table includes the detailed information in concern with the main bill. These details are not generated in the bill report. This database is maintained by the Management Group.
(4)Table for OPD Bill Receipt (Table Name: receiptopd)
Description:
This table includes the information of the receipt that s to be given to the patient after the payment of the bill. The daily report for the records is also generated for this bill receipt for the OPD Department .This database is maintained by the Management Group.
(5)Table for IND Bill (Table Name: masterindoorbill)
Description:
This table stores the information related to bills generated in the Indoor (IND) Department along with the lab tests and their charges. The bill list is then generated as the report for the daily records .This database is maintained by the Management Group.
(6)Table for Indoor Bill Details (Table Name: indoorbilldetail)
Description:
This table includes the detailed information in concern with the main bill. These details are not generated in the bill report. This database is maintained by the Management Group.
(7)Table for Indoor Bill Receipt (Table Name: receiptind)
Description:
This table includes the information of the receipt that s to be given to the patient after the payment of the bill. The daily report for the records is also generated for this bill receipt for the OPD Department. This database is maintained by the Management Group.
(8)Table for Indoor Patient Registration (Table Name: indoorreg)
Description:
This table includes the detailed information related to the patient’s registration in the Indoor Department. This database is managed by the Staff Group of the hospital.
(9)Table for Appointment details (Table Name: masterappointments)
Description:
This table includes the detailed information related to the patient’s appointments date and the time and also the day-to-day report is generated. This table is maintained by the Staff Group.
(10)Table for OPD Patient Registration (Table Name: masterpatientreg)
Description:
This table includes the detailed information related to the patient’s registration in the OPD Department. This database is managed by the Staff Group of the hospital.
(11)Table for Room Details (Table Name: masterroom)
Description:
This table includes the detailed information related to the different rooms and wards ,their numbers and the status of the rooms in the hospitals.
(12)Table for Nurse Details (Table Name: masternurse)
Description:
This table includes the detailed information related to the nurses, their details, designation and their Schedules.
(13)Table for Doctor’s Prescription (Table Name: masterprescription)
Description:
This table includes the details about the prescriptions given by the doctors to the patients. The database is stored by the Doctors Group. The details are then retrieved for the next prescriptions.
(14)Table for Prescription Details (Table Name: prescriptiondetail)
Description:
This table includes the details about the prescription but they are not the part of the master prescription details.
(15)Table for Case Details (Table Name: mastercase)
Description:
This table includes the detail in the case generated for the patient’s by the doctor. Even the report for the records can be generated daily
(16)Table for City (Table Name: mastercity)
Description:
This table includes cities for the retrievals at the other forms. This is maintained by the Admin Group.
(17)Table for Medicine Details (Table Name: mastermedicine)
Description:
This table includes the details about the medicines that are stored in the hospital database. This table is maintained by the Admin group.
(18)Table for Diagnosis (Table Name: masterdiagnosis)
Description:
This table includes the details about the diagnosis stored and retrieved the from hospital database. This table is maintained by the Admin group.
(19)Table for Generic(Brand) (Table Name: mastergeneric)
Description:
This table includes the details about the medicines and their brand name, also the generic names of the medicines that are stored in the hospital database. This table is maintained by the Admin group.
(20)Table for Group (Table Name: mastergroup)
Description:
This table includes the details about the medicines, as in to which group the medicine belongs to and are stored in the hospital database. This table is maintained by the Admin group.
(21)Table for Packing (Table Name: masterpacking)
Description:
This table includes the details regarding the packing types for the medicines. This would reduce the work and would be very helpful for the future enhancement. This is to be maintained by the Admin Group.
(22)Table for Medical Item Supplier (Table Name: mastersupplier)
Description:
This table includes the details about the suppliers of the medical items as per the requirements of the hospitals. The detailed information of the suppliers is maintained in the database by the Admin Group.
(23)Table for Medical Items (Table Name: masteritem)
Description:
This table includes the details about the medical items as per the requirements of the hospitals. The detailed information of such items is maintained in the database by the Admin Group.
(24)Table for Category (Table Name: mastercategory)
Description:
This table includes the details about the categories of the medical items as per the requirements of the hospitals. The detailed information of such categories is maintained in the database by the Admin Group.
(25)Table for Units (Table Name: masterunit)
Description:
This table includes the details regarding the unit types for the medicines. This would reduce the work and would be very helpful for the future enhancement. This is to be maintained by the Admin Group.
(26)Table for Services & Charges (Table Name: masterservicecharge)
`
Description:
This is an important table including the various services regarding the lab tests in the hospitals. These details are manipulated according to the changes by the Admin Group.
(27)Table for Doctor Details (Table Name: masterdoctor)
Description:
This table includes the details of the various doctors in the hospitals. This important table is manipulated by the Admin Group.
(28)Table for Reference Doctors (Table Name: refdoc)
Description:
This table includes the details of the various reference doctors as suggested by the doctors to the patients. This important table is manipulated by the Admin Group.
(29)Table for Reference Hospitals (Table Name: masterhospital)
Description:
This table includes the details of the various hospitals as suggested by the doctors to be referred by the patient’s. This table is manipulated by the Admin Group.
CHAPTER: 4
SYSTEM ANALYSIS MODELING
4.1 USE CASE MODELING
Figure: 4.1 Use Case Diagram of HMS
- A Use Case diagram captures use cases and actor interactions. It describes the functional requirement of the system, the manner that outside thing interact at the system boundary and the response of the system.
- Use case diagrams specify the behavior of the system.
- Use case diagram shows the various actors and their roles which they have to perform in the system.
In our System there are mainly five actors and they perform various roles which are shown in the fig 4.1.
4.1.1 Use Case Documentation:
ADMIN:
Table 4.1.1 Detailed table for Admin
DOCTOR:
Table 4.1.2Detailed table for Doctor
MANAGEMENT:
Table 4.1.3Detailed table for Management
STAFF:
Table 4.1.4 Detailed table for Staff
VISITOR/PATIENT:
Table 4.1.5 Detailed table for Visitor/Patient
4.2 Data Modeling
4.2.1 Class Diagram:
Figure: 4.2 Class Diagram for HMS(1)
Figure: 4.3 Class Diagram for HMS(2)
Figure: 4.4 Class Diagram for HMS(3)
4.3 FUNCTIONAL MODELING
4.3.1 Context Diagram (DFD Level 0 )
Figure: 4.5 Context Diagram for HMS
4.3.2 DATA FLOW DIAGRAM (LEVEL 1)
Figure: 4.6 Data Flow Diagram (Level 1) for HMS
4.3.3 Process Specification:
ADMIN:
Figure: 4.7.1 Process Specification for Admin
DOCTOR:
Figure: 4.7.2 Process Specification for Doctor
STAFF:
Figure: 4.7.3 Process Specification for Staff
MANAGEMENT:
Figure: 4.7.4 Process Specification for Management
PATIENT/VISITOR:
Figure: 4.7.4 Process Specification for Management
-
BEHAVIORAL MODELING
- ACTIVITY DIAGRAM
Figure: 4.8 Activity Diagram of HMS
4.4.2 STATE DIAGRAM
Figure: 4.9 State Diagram for HMS
4.5 SEQUENCE DIAGRAM
Sequence diagram is a structured representation of behavior as a series of sequential steps over time. It is used to depict work flow, message passing and how elements in general cooperate over time to achieve a result. It is an interaction that emphasizes the time ordering of messages. These diagrams are not only important for modeling the dynamic aspects of a system, but also for constructing executable systems through forward and reverse engineering.
Below are the Sequence diagrams for common activities...
Login Sequence for Admin/Staff/Doctor/Management
Figure: 4.10.1 Login Sequence of all Users
Sequence Diagram of Admin:
Figure: 4.10.2 Sequence Diagram of Admin Module
Sequence Diagram of Doctor:
Figure: 4.10.3 Sequence Diagram of Doctor Module
Sequence Diagram of Staff:
Figure: 4.10.4 Sequence Diagram of Staff Module
Sequence Diagram of Management:
Figure: 4.10.5 Sequence Diagram of Management Module
Sequence Diagram of Patient/ Visitor:
Figure: 4.10.6 Sequence Diagram of Patient/Visitor Module
CHAPTER: 5
SYSTEM DESIGN
- INPUT/ OUTPUT INTERFACE
- SAMPLES OF FORMS
-
Doctor Entry Form
Figure: 5.2.1 Sample form of Doctor Entry
(2) Indoor Billing Form
Figure: 5.2.2 Sample form of Indoor Bill
5.2 APPLICATION ARCHITECTURE
This is web-enabled software that will run on main server. In the proposed Networking Architecture a user from any center would access the local server and database. This architecture has been proposed taking into consideration the networking constraint throughout the state. In this network, the program runs on main server and other client will access the site synchronously.
This site is not platform dependent, it require windows platform to run on server. Although, client run on any platform.
CHAPTER-6
IMPLEMENTATION PLANNING AND DETAILS
6.1 IMPLEMENTATION ENVIRONMENT
6.1.1 Hardware Selection: -
Minimum hardware requirement, which are needed for the system development, is given here. They are divided into two categories, which are.
- Minimum Pentium IV processor
- Minimum 256MB RAM and 512MB RAM recommended
- Color monitor
- Printer
- Scanner
6.1.2 Software Selection: -
Software which are used for system are listed here. There are two categories for software as follows.
- Front-end:- ASP.Net
- Back-end: - SQL Server 2005
Here are some other software that we have used to develop the system and its documentation.
- Any windows-based operating system (windows XP or higher)
- Microsoft Visual Studio 2008
- Internet Information Services (IIS)
- Microsoft SQL Server Express Edition
- SQL Server 2005
- Microsoft explorer 4.0 or higher version.
- Mozilla Firefox
- Adobe Photoshop
- Edraw Max
6.1.3 Implementation Environment
The project is a result of a group consensus. The team is having two members. The team structure depends on the management style of the organization, the number of people in the team, their skill levels and the problem or difficulties.
Considering all these points our Team organization was Democratic Decentralized in which there is no team leader. Decision on the problem was made by group consensus. Communication among the team member was horizontal.
The work was divided among both the members. The modules were distributed among the entire member and we had teamwork on the modules simultaneously.
6.1.3.1 Single vs. Multi User
The system is multi-user; as it is web-based project any person can use it. All the Members of the Hospital want to access the system to obtain one or more information about Transactions. And also Administrator wants to access all the details regarding the Hospital.
6.1.3.2 GUI vs. Non-GUI
The system is completely GUI. This is because today people feel comfortable while working with System. As the project is web based, it can be used by any end-user. Thus user should feel convenient while working with the system. Thus system is user-friendly.
6.1.4 Description of Tools and Technology used in the System
6.1.4.1 ASP.Net
ASP.NET, together with Visual Studio, includes a number of features to make your life as a Web developer easier. For example, Visual Studio starts you off with several useful project templates from which to develop your site. Visual Studio also supports a number of development modes, including using Internet Information Services (IIS) directly to test your site during development, using a built-in Web server, or developing your site over an FTP connection. The debugger in Visual Studio lets you run the site and step through the critical areas of your code to find problems. The Visual Studio designer enables effective user interface development, allowing you to drop control elements onto a canvas to see how they appear visually. These are but a few of the features built into the ASP.NET framework when paired with Visual Studio.
6.1.4.2Microsoft SQL Server 2005
We have kept Microsoft SQL Server 2005 as our back end tool. Let’s explore some details about SQL Server.
Fundamentals of SQL Server 2005 Architecture
Microsoft® SQL Server™ 2005 is a family of products that meet the data storage requirements of the largest data processing systems and commercial Web sites, yet at the same time can provide easy-to-use data storage services to an individual or small business.
The data storage needs of a modern corporation or government organization are very complex. Some examples are:
- Online Transaction Processing (OLTP) systems must be capable of handling thousands of orders placed at the same time.
- Increasing numbers of corporations are implementing large Web sites as a mechanism for their customers to enter orders, contact the service department, get information about products, and for many other tasks that previously required contact with employees. These sites require data storage that is secure, yet tightly integrated with the Web.
- Organizations are implementing off-the-shelf software packages for critical services such as human resources planning, manufacturing resources planning, and inventory control. These systems require databases capable of storing large amounts of data and supporting large numbers of users.
- Organizations have many users who must continue working when they do not have access to the network. Examples are mobile disconnected users, such as traveling sales representatives or regional inspectors. These users must synchronize the data on a notebook or laptop with the current data in the corporate system, disconnect from the network, record the results of their work while in the field, and then finally reconnect with the corporate network and merge the results of their fieldwork into the corporate data store.
-
SECURITY FEATURES
- The admin has got the rights like add, delete, modify and search any particular records in the master details of the Hospital.
- The Doctors are given rights like add, delete, modify and search the particular records in transaction.
- The Staff members are given rights like add and search any records regarding the patients into the system.
- The Management members can modify the account details as required per bills in the OPD and Indoor Department.
- CODING STANDARDS
The coding standard is the well-defined and standard style of coding. With the help of the coding standards any person can go through any code and figure out what’s going on and new people can get up to speed quickly.
A coding standard is a way of doing several things such as variables are to be named, the code is to be laid out, the comments are to be described, the work of function are need to be carried out.
A coding is fully depending on the Object oriented concept. For that all the classes are defined. From those classes all the procedures are called.
This section describes the coding standards, which we have used in the program. In the context of coding standard the tag consists.
6.4 TESTING
Software Testing has a dual function; it is used to establish the presence of defects in program and it is used to help judge whether or not the program is usable in practice. Thus software testing is used for validation and verification, which ensure that software conforms to its specification and meets the need of the software customer.
The main objective of doing testing is to identify all defects existing in software. Basically the testing software consists of providing the program with a set of test inputs (test case) and observing that whether the software behaves as expected.
Testing is the process of executing a program with the explicit intention of finding errors, which makes the program fail. The tester is actually trying to, make the program fail. A successful test is the one that finds errors.
Regardless of which strategies the analysis follows, there are preferred practices to ensure that the testing is useful. The levels of tests and types of test data, combined with testing libraries are important aspects of the actual test process. Among the various testing practices or strategies that are followed by analysis, the two important ones are unit testing and system testing.
6.4.1 TESTING PLAN
6.4.1.1 The Testing Process
Developer tests the software process activities such as Design, Implementation, and Requirement Engineering. Because design errors are very costly to repair once system has been started to operate. Therefore, it is quite obvious to repair them at early stage of the system. So analysis is the most important process of any project.
6.4.1.2 Testing Schedule
Developer has tested each procedure back-to-back so that errors and omissions can be found as early as possible. Once the system has been developed fully Developer tested it on other machines, which differs in configuration.
6.4.2 TESTING STRATEGY
Designing effective test cases is important, but so is the strategy you use to execute them. Should you develop a page plan for your tests? Should you test the entire system as a whole or run tests only on a small part of it? Should you rerun tests you've already conducted as you add new components to your large system? When should you involve the user? These and many other questions are answered when you develop a testing strategy.
Top-Down Integration
Top-down integration testing is an incremental approach to construction of software architecture. Module is integrated by moving downward through the control hierarchy. Beginning with the main control module. Module subordinate to the main control module is incorporated into the structure in either a depth first or breadth first manner.
The Top-down approach has five steps.
- The main control module is used as a test driver, and stubs are substituted for all components directly subordinate to the main control module.
- Depending on the integration approach selected, subordinate stub are replaced one at a time with actual components.
- Tests are conducted as each component is integrated.
- On completion of each set of tests, another stub is replaced with the real component.
- Regression testing may be conducted to ensure that new error has not been introduced.
White Box Test: Test cases are derived from the internal structure (of the unit or the whole program) and the specification (to compare the actual vs the expected results). This strategy assumes that many faults are hidden in individual expressions, statements, and conditions. Test cases are developed to cover all statements, possible branches, conditions, and/or paths.
Black Box Test: The tester views the program (or the unit to be tested) as black box whose internals are not known. The test cases are solely derived from the specification but not from in pageations about the implementation.
6.4.3 TESTING METHODS
It involves executing an implementation of the software with test data and examining the outputs of the software and its operational behavior to check that it is performing the task as required.
Statistical Testing
Used to test the program’s performance and reliability and to check how it works under operational conditions. Tests are reflecting the actual user inputs and their frequency.
The stages involved in the static analysis for this system are as follows: -
- Control flow analysis
- Unreachable code
- Unconditional branches into loops
- Data use analysis
- Variable used before initialization
- Variables declared but never used
- Variables assigned twice but never used between assignments
- Possible array bound violations
- Declared variables
- Interface analysis
- Parameter type mismatches
- Parameter number mismatches
- Non-usage of the results of functions
- Uncalled functions and procedures
- Storage management faults
- Images not stored in resources
- Out of bound -> program’s non-volatile memory
Defect testing
It intended to find inconsistencies between a program and its specification. These inconsistencies are usually due to program faults or defects.
White-box Testing
White-box testing, often called glass-box testing is a test case design method that uses the control structure of the procedural design to derive test cases. Using white-box testing methods, the software engineer can derive test cases that
- Guarantee that all independent paths within a module have been exercised at least once.
- Exercise all logical decisions on their true and false sides,
- Execute all loops at their boundaries and within their operational bounds, and
- Exercise internal data structures to ensure their validity.
Black-box Testing
- We have tested our functions of component to check the specification of our components.
- We selected input set to test the components like in query process we gave the different kinds of inputs to examine their output.
- We test software with sequence that have only a single value.
- We used different sequences of different sizes in different test.
- Derived tests so that the first, middle and last elements of the sequences and accessed to reveal the problems at partition boundaries.
Structural Testing
We have done path testing to exercise every independent execution path through a component or program. If every independent execution path is executed then all statements in the components must have been executed at least once.
Integration Testing
After our individual modules were tested out we go to the integrated to create a complete system. This integration process involves building the system and testing the resultant system for problems that arise from component interactions.
We have applied top-down strategy to validate high-level components of a system before design and implementation have been implemented. Because our development process started with high-level components and we worked down the component hierarchy.
Performance Testing
Performance testing is designed to test the runtime performance of the system within the context of the system. These tests were performed as module level as well as system level. Individual modules were tested for required performance.
In performance testing we counted the processing time and response from the system with respect to request.
We also checked out the total-execution time, which takes 10 to 15 seconds for loading.
Condition Testing
Condition testing is the test case design method that exercise the conditions contained in a program module. If the condition is incorrect, then at least one of component of the condition is incorrect. It may include:
- Boolean variable error
- String index out of bound error
- Null pointer assignment
- Input output connection exception
- Parsing (conversion) errors
- Arithmetic expression error
Interface Testing
Interface testing is integral part on Integration testing. Therefore we checked for
- Interface misuse
- Interface misunderstanding
We examined the code to be tested and explicitly list each call to an external component. In the system, standard tests for GUIs have been performed, which are as follows: -
- The position and related labels for all controls were checked.
- Name of the form is also given appropriately.
- All menu functions and sub functions were verified for correctness.
- Validations for all inputs were done.
- Each menu function was tested, whether it invokes the corresponding functionality properly.
- Pull down controls was verified for proper functionality.
- Whether the non-editable text control is disabling and it was also verified that it doesn’t exceed the maximum allowed length.
- Whether the system prompts the user with appropriate message as and when invalid information is entered.
Stress Testing
Stress testing is to test the system for emergent properties such as performance and reliability. Performance tests have to be designed to ensure that the system can process its intended load.
Object Testing
Object testing is to test objects as individual components, which are often larger than single functions. Here following activities have taken place.
- Testing the individual operations associated with objects.
- Testing individual object classes.
- Testing clusters of object.
6.4 .4 TEST CASES
6.4.4.1 Unit Testing
This testing is focuses verification effort on the smallest unit of software design-the software component or module. Using the component-level design description as a guide. Important control paths are tested to uncover errors within the boundary of the module. The relative complexity of tests and the error those tests uncover is limited by the constrained scope established for the unit testing. The unit test focuses on the internal processing logic and data structure with boundaries of the component. This type of testing can be conducted in parallel for multiple components
6.5 SAMPLE CODING
(1) Entry Medicine Form (From Admin Module)
Source
<%@ Page Language="VB" MasterPageFile="~/Hospital.master"AutoEventWireup="false" CodeFile="EntryMedicine.aspx.vb" Inherits="EntryMedicine" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div>
<br />
<br />
<table style="width:100%;">
<tr>
<td class="style1">
<asp:Label ID="med_medicine" runat="server" Text="Medicine No."></asp:Label>
</td>
<td>
<asp:TextBox ID="txt_medicine" runat="server" Width="150px" Height="25px"></asp:TextBox>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1">
<asp:Label ID="lab_group" runat="server" Text="Group Name"></asp:Label>
</td>
<td>
<asp:DropDownList ID="dd_group" runat="server" Width="150px" Height="26px">
</asp:DropDownList>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1" style="margin-left: 120px">
<asp:Label ID="dd_generic" runat="server" Text="Generic Name"></asp:Label>
</td>
<td>
<asp:DropDownList ID="dd_gen" runat="server" Width="150px" Height="26px">
</asp:DropDownList>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1" style="margin-left: 120px">
<asp:Label ID="lab_brand" runat="server" Text="Brand Name"></asp:Label>
</td>
<td>
<asp:TextBox ID="txt_brand" runat="server" Width="150px" Height="26px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txt_brand" ErrorMessage="*Please enter a Brand Name"></asp:RequiredFieldValidator>
</td>
<td>
</td>
</tr>
<tr>
<td class="style2" style="margin-left: 120px">
<asp:Label ID="lab_packing" runat="server" Text="Packing Type"></asp:Label>
</td>
<td class="style3">
<asp:DropDownList ID="dd_packing" runat="server" Width="150px" Height="26px">
</asp:DropDownList>
</td>
<td class="style3">
</td>
</tr>
<tr>
<td class="style1" style="margin-left: 120px">
<asp:Label ID="lab_desc" runat="server" Text="Medicine Description"></asp:Label>
</td>
<td>
<asp:TextBox ID="txt_desc" runat="server" TextMode="MultiLine" Width="150px"></asp:TextBox>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1" style="margin-left: 120px">
<asp:Label ID="lab_instruct" runat="server" Text="Instruction"></asp:Label>
</td>
<td>
<asp:TextBox ID="txt_instruct" runat="server" Width="150px" Height="25px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ControlToValidate="txt_instruct" ErrorMessage="*Instruction is required"></asp:RequiredFieldValidator>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1" style="margin-left: 120px">
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1" style="margin-left: 120px">
</td>
<td>
<asp:Button ID="but_save" runat="server" Text="SAVE" Width="81px"
BackColor="#FF9933" />
<asp:Button ID="but_back" runat="server" Text="BACK" Width="81px"
BackColor="#FF9933" />
</td>
<td>
</td>
</tr>
</table>
</div>
<%-- </asp:Content>
Coding
Imports System.Data
Imports System.Data.SqlClient
Imports DAL
Partial Class EntryMedicine
Inherits System.Web.UI.Page
Dim objmedicine As Clsmedicine
Dim objmedgroup As Clsmedgroup
Dim objmedgeneric As Clsmedgeneric
Dim objpacking As Clsmedpacking
Dim sSQL As String
Dim mCode As Integer
Dim sCOM As Common
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("flag") = "" Then
Response.Redirect("UserLogin.aspx")
End If
dd_group.Focus()
sCOM = New Common
If Not IsPostBack Then
objmedicine = New Clsmedicine
sSQL = "select * from medicinegroup"
sCOM.setDropDownList(dd_group, sSQL, "groupname", "groupname")
sSQL = "select * from medicinegeneric"
sCOM.setDropDownList(dd_gen, sSQL, "genname", "genname")
sSQL = "select * from medicinepacking"
sCOM.setDropDownList(dd_packing, sSQL, "packname", "packname")
If Request.QueryString("editmode") = "Add" Then
txt_medicine.Text = Convert.ToString(sCOM.setAutoID("mastermedicine", "medno"))
ElseIf Request.QueryString("editmode") = "Edit" Then
mCode = Request.QueryString("mCode")
sSQL = objmedicine.dispDataByCode(mCode)
objmedicine = objmedicine.setData(sSQL)
With objmedicine
txt_medicine.Text = .MedNo
dd_group.SelectedValue = .GroupName
dd_gen.SelectedValue = .GenericName
txt_brand.Text = .BrandName
dd_packing.SelectedValue = .PackType
txt_desc.Text = .Description
txt_instruct.Text = .Instruction
End With
End If
End If
End Sub
Protected Sub but_save_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles but_save.Click
If txt_medicine.Text = "" Then
MsgBox("Code Not Found")
txt_medicine.Focus()
Exit Sub
End If
objmedicine = New Clsmedicine
With objmedicine
.MedNo = txt_medicine.Text
.GroupName = dd_group.SelectedValue
.GenericName = dd_gen.SelectedValue
.BrandName = txt_brand.Text
.PackType = dd_packing.SelectedValue
.Description = txt_desc.Text
.Instruction = txt_instruct.Text
End With
If (Request.QueryString("editmode") = "Add") Then
objmedicine.InsertData(objmedicine)
Response.Redirect("ListMedicine.aspx")
Else
objmedicine.UpdateData(objmedicine, txt_medicine.Text)
Response.Redirect("ListMedicine.aspx")
End If
End Sub
Protected Sub but_back_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles but_back.Click
Response.Redirect("ListMedicine.aspx")
End Sub
Protected Sub dd_packing_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dd_packing.SelectedIndexChanged
End Sub
End Class
(2) OPD Bills (From Management Module)
Coding
Imports System.Data
Imports System
Imports System.Data.SqlClient
Imports DAL
Partial Class EntryBill
Inherits System.Web.UI.Page
Dim acode As Integer
Dim bCode As Integer
Dim consultchrg As Integer
Dim servicechrg As Integer
Dim amount As Integer
Dim total As Integer
Dim quantity As Integer
Dim objbilldetail As Clsbilldetail
Dim objpatientreg As Clspatientreg
Dim objservice As Clsservicechrge
Dim objbill As Clsbill
Dim sSQL As String
Dim sCOM As Common
Dim dt As New DataTable()
Dim dr As DataRow
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session("flag") = "" Then
Response.Redirect("UserLogin.aspx")
End If
txt_billdate.Focus()
sCOM = New Common
If Not IsPostBack Then
objbill = New Clsbill
sSQL = "select * from masterservicecharge"
sCOM.setDropDownList(dd_service, sSQL, "service", "service")
If Request.QueryString("editmode") = "Add" Then
txt_billno.Text = Convert.ToString(sCOM.setAutoID("masterbill", "billno"))
ElseIf Request.QueryString("editmode") = "Edit" Then
sSQL = "select * from masterpatientreg "
sCOM.setDropDownList(dd_name, sSQL, "fullname", "regno")
objbilldetail = New Clsbilldetail
sCOM = New Common
bCode = Request.QueryString("bCode")
sSQL = objbill.dispDataByCode(bCode)
objbill = objbill.setData(sSQL)
With objbill
txt_billno.Text = .BillNo
txt_billdate.Text = .BillDate
txt_regno.Text = .RegNo
dd_service.SelectedValue = .Service
txt_charge.Text = .ServiceCharge
txt_total.Text = .TotalAmount
txt_consult.Text = .ConsultCharge
txt_bill.Text = .TotalBill
acode = txt_billno.Text
sSQL = "select * from billdetail where billno= " & acode & ""
sCOM.setGridView(GridView1, sSQL)
End With
End If
End If
End Sub
Protected Sub txt_billdate_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_billdate.TextChanged
sSQL = "select * from masterpatientreg where regdate = '" & txt_billdate.Text & "'"
sCOM.setDropDownList(dd_name, sSQL, "fullname", "regno")
End Sub
Protected Sub dd_name_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dd_name.TextChanged
objpatientreg = New Clspatientreg
Dim regcode As String
regcode = dd_name.SelectedValue
sSQL = objpatientreg.dispDataByCode(regcode)
objpatientreg = objpatientreg.setData(sSQL)
txt_regno.Text = objpatientreg.RegNo
End Sub
Protected Sub dd_service_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dd_service.TextChanged
objservice = New Clsservicechrge
Dim secode As String
secode = dd_service.SelectedItem.ToString
sSQL = objservice.dispDataByName(secode)
objservice = objservice.setData(sSQL)
txt_charge.Text = objservice.Servicecharge
End Sub
Protected Sub txt_quantity_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_quantity.TextChanged
servicechrg = txt_charge.Text
quantity = txt_quantity.Text
amount = (servicechrg * quantity)
txt_amnt.Text = amount
End Sub
Protected Sub txt_consult_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_consult.TextChanged
consultchrg = txt_consult.Text
txt_bill.Text = txt_total.Text + consultchrg
End Sub
Protected Sub but_add_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles but_add.Click
servicechrg = Val(txt_charge.Text)
quantity = Val(txt_quantity.Text)
amount = (servicechrg * quantity)
txt_total.Text = Val(txt_total.Text) + Val(txt_amnt.Text)
If ViewState("CurrentData") IsNot Nothing Then
Dim dt As DataTable = DirectCast(ViewState("CurrentData"), DataTable)
Dim count As Integer = dt.Rows.Count
BindGrid(count)
Else
BindGrid(1)
End If
sCOM = New Common
objbilldetail = New Clsbilldetail
With objbilldetail
.BillNo = txt_billno.Text
.SrNo = txt_srno.Text
.Service = dd_service.SelectedValue
.Charge = txt_charge.text
.Quantity = txt_quantity.text
.Amount = txt_amnt.text
End With
objbilldetail.InsertData(objbilldetail)
End Sub
Private Sub BindGrid(ByVal rowcount As Integer)
dt.Columns.Add(New System.Data.DataColumn("billno", GetType([String])))
dt.Columns.Add(New System.Data.DataColumn("srno", GetType([String])))
dt.Columns.Add(New System.Data.DataColumn("service", GetType([String])))
dt.Columns.Add(New System.Data.DataColumn("charge", GetType([String])))
dt.Columns.Add(New System.Data.DataColumn("quantity", GetType([String])))
dt.Columns.Add(New System.Data.DataColumn("amount", GetType([String])))
If ViewState("CurrentData") IsNot Nothing Then
For i As Integer = 0 To rowcount
dt = DirectCast(ViewState("CurrentData"), DataTable)
If dt.Rows.Count > 0 Then
dr = dt.NewRow()
dr(0) = dt.Rows(0)(0).ToString()
End If
Next
dr = dt.NewRow()
dr(0) = txt_billno.Text
dr(1) = txt_srno.Text
dr(2) = dd_service.SelectedValue
dr(3) = txt_charge.Text
dr(4) = txt_quantity.Text
dr(5) = txt_amnt.Text
dt.Rows.Add(dr)
Else
dr = dt.NewRow()
dr(0) = txt_billno.Text
dr(1) = txt_srno.Text
dr(2) = dd_service.SelectedValue
dr(3) = txt_charge.Text
dr(4) = txt_quantity.Text
dr(5) = txt_amnt.Text
dt.Rows.Add(dr)
End If
If ViewState("CurrentData") IsNot Nothing Then
GridView1.DataSource = DirectCast(ViewState("CurrentData"), DataTable)
GridView1.DataBind()
Else
GridView1.DataSource = dt
GridView1.DataBind()
End If
ViewState("CurrentData") = dt
End Sub
Protected Sub but_save_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles but_save.Click
If txt_billno.Text = "" Then
MsgBox("Code Not Found")
txt_billno.Focus()
Exit Sub
End If
objbill = New Clsbill
With objbill
.BillNo = txt_billno.Text
.BillDate = txt_billdate.Text
.RegNo = txt_regno.Text
.Service = dd_service.SelectedValue
.ServiceCharge = txt_charge.Text
.TotalAmount = txt_total.Text
.ConsultCharge = txt_consult.Text
.TotalBill = txt_bill.Text
End With
If (Request.QueryString("editmode") = "Add") Then
objbill.InsertData(objbill)
Response.Redirect("ListBill.aspx")
Else
objbill.UpdateData(objbill, txt_billno.Text)
Response.Redirect("ListBill.aspx")
End If
End Sub
Protected Sub but_back_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles but_back.Click
Response.Redirect("ListBill.aspx")
End Sub
End Class
CHAPTER: 7
SNAPSHOTS AND USER MANUAL
- This the Home Page of our System which contains various links in the system.
- This is the login page of the system. The different users (Admin/Staff/Doctor or the Management) have their own userid and password to manipulate or view their relative concerned area.
- This is the User Registration Form to Login in their own sections & which collects all the required information of the users.
- This is the form for the patient’s registration at the Indoor Department which collects all the required information of the patients.
- This the Entry form for the OPD Bill Details and it collects all the detailed information for the various test charges and bill amount.
- This is the entry for the receipt that is to be given to the patient after the payment of the bill.
- This is the entry form for the prescription given by the doctor to the patient’s along with the details of the medicine that are prescribed.
- This is the entry form of the entries of the doctors in the hospital which collects the detailed information of the doctors. It is maintained & manipulated by the Admin.
- This is the form which gathers the detailed information about the stock of the medical items as used in the hospital according to the category of the item along with its prices, closing and opening stock etc..
- This form collects all the information regarding the various other hospitals that are suggested or referred to be visited by the patients and it is also maintained by the Admin.
- This is the form for the entries of the case prepared for the patients by the doctor at the time of new visit. The patient’s health detail is collected through this form and is maintained by the Doctor.
- This is the form for changing the old password if in case someone needs to do so.
CHAPTER: 8
LIMITATIONS AND FUTURE ENHANCEMENT
8.1 LIMITATIONS
We have tried to make a general website like the other Online Hospital Websites and have added much features to make the application as real as the original Hospital Websites but being a big area a perfect Hospital website contains many more features which was difficult to create within a short time and hence there are some limitations in this application.
- In our project we have included the Admin, Staff/ Reception, Management and the Doctor Department modules.
- The Admin Module maintains the Medicine details and the Services database and hence we have not included the Laboratories and pharmacist’s Department.
- The application is accessible to the patient only in the terms of viewing hospital details. The patient or any visitor cannot register or pay bills online.
- We have not included the maintenance of the stock of various materials required in the hospitals and the stock of medicines.
- We have also not included the online complaints of the patients, and the advices from doctors to patients.
8.2 FUTURE ENHANCEMENT
On the basis of the study of an analysis and specification phases, the Hospital website should be designed keeping in mind various factors like.
- In this site, the doctor can only write prescription and cases for the patients. While for future enhancement the doctor can give online advices and health tips or the medicine prescription.
- Here the patients can only view details, and for the future this can be extended as; the patient can get online suggestions, can register online, can fix appointment online, can get the next visit dates alerts, and many more.
- The various Stocks of hospital and the supplier details can be widely maintained.
- Also the Food Nutrition and Dietician’s Department can be maintained.
CHAPTER: 9
CONCLUSION
Finally we like to conclude that working with this project was much more helpful to us to learn in the field of ASP.Net and SQL Server basically dealing with server connectivity. Having working at such a big application has also helped us to improve our state of thinking about new ideas. And we hope that this work may prove helpful to others. System follows the same conventional rules and processes that are being used since a long time so nothing new to be learned. No special training is required. All operations are much faster and accurate than the manual system. Data retrieval process becomes easy when it is needed if we use computer management instead of manually.
REFERENCES
For ASP.Net
- Complete Reference ASP.Net Book
- Unleashed ASP.Net 2.0
For Documentation
- Software Engineering (Roger Pressman)
Help from Web
- Google & Yahoo Search Engine