Escolar Documentos
Profissional Documentos
Cultura Documentos
Guided by
Prof. Gaurav Shrivastava
Submitted by
Aditi Trivedi
Anand Pandey
Tapan Jain
RECOMMENDATION
This is to certify that Miss. Aditi Trivedi, Mr. Anand Pandey and Mr. Tapan Jain, students
of fourth year B.E., in the year 2014-15 of Computer Science and Engineering Department
of this institute has completed their work on HOSPITAL MANAGEMENT SYSTEM for
Industrial Training project based on syllabus and has submitted a satisfactory account of
their work in this report which is recommended for the partial fulfillment of the degree of
Bachelor of Engineering in Computer Science.
HOD,
Project Guide,
Computer Science
Engineering Department
M.I.T.M. Ujjain
Computer Science
Engineering Department
M.I.T.M. Ujjain
Director,
M.I.T.M. Ujjain
MAHAKAL INSTITUTE OF
TECHNOLOGY&MANAGEMENT, UJJAIN
CERTIFICATE
This is to certify that the Minor Project report entitled HOSPITAL MANAGEMENT
SYSTEM submitted by Miss. Aditi Trivedi, Mr. Anand Pandey and Mr. Tapan Jain,
students of B.E. VII sem, Computer Science and Engineering department in the year 201415, is a satisfactory account of their work based on syllabus which is accepted in partial
fulfillment of degree of Bachelor of Engineering in Computer Science .
INTERNAL EXAMINER
EXTERNAL EXAMINER
Date:
Date:
ABSTRACT
Our project "Patient Record System" includes registration of patients, storing their detail into
the system. Our software has facility to give a unique id for every patient and stores the details
of every patient and the staff automatically. It includes a search facility to know the current
status of each room. User can search availability of a doctor and the details of the patient using
the id.
This patient record system can be entered using a username and password. It is accessible
either by an administrator or receptionist. Only they can add data into the database. The data
can be retrieved easily. The data are well protected for personal use and makes the data
processing very fast.
Keeping track of all the activities and their records on paper is very cumbersome and error
prone. It also is very inefficient and a time-consuming process Observing the continuous
increase in population and number of people visiting the hospital.
The main aim of our project is to provide a paper-less hospital up to 90%. It also aims at
providing low-cost reliable automation of the existing systems. The system also provides
excellent security of data at every level of user-system interaction and also provides robust
& reliable storage and backup facilities.
TABLE OF CONTENTS
1.
Introduction .............................................................................................
.......................1
7. References.............33
Chapter 1
Introduction
Hospital are the essential part of our lives, providing best medical facilities to
people suffering from various ailments, which may be due to change in climatic
conditions, increased work-load, emotional trauma stress etc. It is necessary for the
hospitals to keep track of its day-to-day activities & records of its patients, doctors, nurses,
ward boys and other staff personals that keep the hospital running smoothly &
successfully.
But keeping track of all the activities and their records on paper is very cumbersome and
error prone. It also is very inefficient and a time-consuming process Observing the
continuous increase in population and number of people visiting the hospital.
The main aim of our project is to provide a paper-less hospital up to 90%. It also aims at
providing low-cost reliable automation of the existing systems. The system also provides
excellent security of data at every level of user-system interaction and also provides robust
& reliable storage and backup facilities.
The outpatient management system can be entered using a username and password. It can
be accessible only by a doctor or a receptionist. Only they can add data into the database.
The data can be retrieved easily. The interface is very user friendly. The data are well
protected for personal use and makes the data processing very fast.
1.1Existing System
Existing system refers to the system that is being followed till now.
Presently all the hospital functionalities are done manually. That is if patient
want to consult a doctor he need to wait their till his chance called. This is very
difficult process.
Outpatient tickets are distributed directly. The main disadvantage is time
consuming.
Time consuming.
Consumes large volume of paper work.
To avoid all these limitations and make the system working more accurately it
needs to be computerized.
1.2 Objectives of Proposed System
The main objectives of the proposed system can be enumerated as follows:
Chapter 2
Software development Life Cycle
The systems development life cycle (SDLC), also referred to as the application
development life-cycle, is a term used in systems engineering, information systems and
software engineering to describe a process for planning, creating, testing, and deploying
an information system. The systems development life-cycle concept applies to a range of
hardware and software configurations, as a system can be composed of hardware only,
software only, or a combination of both.
An iterative life cycle model does not attempt to start with a full specification of
requirements. Instead, development begins by specifying and implementing just part of the
software, which can then be reviewed in order to identify further requirements. This
process is then repeated, producing a new version of the software for each cycle of the
model.
Chapter 3
Analysis
3.1 Requirement Analysis
Requirements analysis in systems engineering and software engineering, encompasses
those tasks that go into determining the needs or conditions to meet for a new or altered
product or project, taking account of the possibly conflicting requirements of the
various stakeholders, analyzing, documenting, validating and managing software or
system requirements.
Requirements analysis is critical to the success of a systems or software project. The
requirements should be documented, actionable, measurable, testable, traceable, related to
identified business needs or opportunities, and defined to a level of detail sufficient for
system design.
Requirements analysis includes three types of activities:
Chapter 4
Design
4.1 Data Flow Diagram
A Data Flow Diagram (DFD) is a graphical representation of the "flow" of data through an
information system, modeling its process aspects. A DFD is often used as a preliminary
step to create an overview of the system, which can later be elaborated. DFDs can also be
used for the visualization of data processing (structured design). A DFD shows what kind
of information will be input to and output from the system, where the data will come from
and go to, and where the data will be stored. It does not show information about the timing
of process or information about whether processes will operate in sequence or in parallel
(which is shown on a flowchart).
patientRegistration
patientID
PatientName
Login
FatherName
username
<<includes>> Address
password
ContactNo
Email
Login()
Age
Gender
BG
Remarks
admitPatient
AdmitID
patientID
disease
RoomNo
AdmitDate
DoctorID
AP_Remark
dischargePatient
ID
AdmitID
DischargeDate
DP_Remarks
dischargePatient()
doctor()
Ward()
Room
roomNo
roomType
roomCharges
roomStatus
allotment()
checkAvaliability()
admitPatient()
<<includes>>
patientRegistration()
doctor
DoctorID
DoctorName
FatherName
Address
ContctNo
Email
Qualification
Specialization
Gender
BloodGroup
DateOfJoining
Ward
wardName
wardType
NoOfBeds
Charges
BillRoom
BillNo
DischargeID
BillingDate
NoOfDays
RoomCharges
TotalRoomCharges
ServiceCharges
TotalCharges
PaymenetMode
PaymentModeDetails
BillWard
billNo
discharge
billingDate
<<includes>>noOfDays
totalBedCharge
serviceCharges
totalCharges
paymentMode
paymentModeDetails
<<depends on>>
chargesPaid
dueCharges
bill()
generateBill()
addBillWard()
availabiltiy()
E-R Diagram:
Database designs also include ER (entity-relationship model) diagrams. An ER diagram is
a diagram that helps to design databases in an efficient way.
Attributes in ER diagrams are usually modeled as an oval with the name of the attribute,
linked to the entity or relationship that contains the attribute.
Within the relational model the final step can generally be broken down into two further
steps, that of determining the grouping of information within the system, generally
determining what are the basic objects about which information is being stored, and then
determining the relationships between these groups of information, or objects. This step is
not necessary with an Object database.
Patient Registration:
This module records basic patient related information, which is collected When the
patient visits the hospital for the first time. Each patient is allocated a unique
patient identification numbers.
Patient id, patient name, address, admitted date, doctor name, room number are
entered in a form and stored for future reference. Also particular patient details can be
viewed in the table using a separate form with a attribute patient id.
Doctor Details:
It keeps track of all details about doctors of the hospital Doctors, Doctor id , address
Qualification, cell number, e-mail are entered and stored in a separate form.
This module enters and stores the details about each ward of the hospital for future
reference. Individual ward detail can be viewed in the table using ward id .The
attributes used in storing award detail is ward id, ward name, floor number, number of
rooms.
Patient Discharge:
This module will record the details of the patient with respect to the room/ward
allotted their admitted date, services provided till the patient is discharged from the
hospital.
Billing:
This module will provide the service of computerized billing when the patient is
discharged from the hospital. This will contain the patient details, services provided till
the patient is discharged and calculates the bill according to that.
Chapter 5
Implementation
5.1 Platform Used
Software Used
MySQL-5.7.5.1
MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open source web application software stack (and
other 'AMP' stacks).
LAMP
is
an
acronym
for
"Linux, Apache,
MySQL, Perl/PHP/Python." Free-software-open source projects that require a fullfeatured database management system often use MySQL.
MySQL can be built and installed manually from source code, but this can be tedious so it
is more commonly installed from a binary package unless special customizations are
required. On most Linux distributions the package management system can download and
install MySQL with minimal effort, though further configuration is often required to adjust
security and optimization settings.
Though MySQL began as a low-end alternative to more powerful proprietary databases, it
has gradually evolved to support higher-scale needs as well. It is still most commonly used
in small to medium scale single-server deployments, either as a component in a LAMPbased web application or as a standalone database server. Much of MySQL's appeal
originates in its relative simplicity and ease of use, which is enabled by an ecosystem of
open source tools such as phpMyAdmin. In the medium range, MySQL can be scaled by
deploying it on more powerful hardware, such as a multi-processor server with gigabytes
of memory.
There are however limits to how far performance can scale on a single server ('scaling
up'), so on larger scales, multi-server MySQL ('scaling out') deployments are required to
provide improved performance and reliability. A typical high-end configuration can
include a powerful master database which handles data write operations and
is replicated to multiple slaves that handle all read operations. The master server
synchronizes continually with its slaves so in the event of failure a slave can be promoted
to become the new master, minimizing downtime. Further improvements in performance
can be achieved by caching the results from database queries in memory
using memcached, or breaking down a database into smaller chunks called shards which
can be spread across a number of distributed server clusters.
Java:
Java is a set of several computer software and specifications developed by Sun
Microsystems, later acquired by Oracle Corporation that provides a system for developing
application software and deploying it in a cross-platform computing environment. Java is
used in a wide variety of computing platforms from embedded devices and mobile phones
to enterprise servers and supercomputers. While less common, Java applets run in secure,
sandboxed environments to provide many features of native applications and can be
embedded in HTML pages.
Writing in the Java programming language is the primary way to produce code that will be
deployed as byte code in a Java Virtual Machine (JVM); byte code compilers are also
available for other languages, including ADA, JavaScript, Python, and Ruby. In addition,
several languages have been designed to run natively on the JVM, including Scale,
Closure and Groovy. Java syntax borrows heavily from C and C++, but object-oriented
features are modeled after Smalltalk and Objective-C. Java eschews certain low-level
constructs such as pointers and has a very simple memory model where every object is
allocated on the heap and all variables of object types are references. Memory
management is handled through integrated automatic garbage collection performed by the
JVM.
The Java platform is a suite of programs that facilitate developing and running programs
written in the Java programming language. The platform is not specific to any one
processor or operating system; rather an execution engine (called a virtual machine) and a
compiler with a set of libraries are implemented for various hardware and operating
systems so that Java programs can run identically on all of them.
The heart of the Java platform is the concept of a "virtual machine" that executes Java byte
code programs. This byte code is the same no matter what hardware or operating system
the program is running under. There is a JIT (Just In Time) compiler within the Java
Virtual Machine, or JVM. The JIT compiler translates the Java byte code into native
processor instructions at run-time and caches the native code in memory during execution.
SQL Server:
SQL server is a client/server relational database management system (RDBMS) that uses
transact-SQL to send request between a client and SQL server.
Client/server Architecture
SQL server is designed to be a client/server system. Client/server systems are constructed
so
that the database can reside on a central computer, know as a server, and be shared
among several users. When users want to access the date in SQL server, they run an
application on their local computer, know as a client that connects over a network to the
server running SQL server.
SQL server can work with thousands of client applications simultaneously. The server has
features to prevent the logical problems that occur if a user tries to read or modify data
currently being used by others.
While SQL server is designed to work as a server in a client/server network. It also
capable of working as a stand-alone database directly on the client. The scalability and
ease-of-use features of SQL server allow it to work efficiently on a client without
consuming too many resources. SQL server efficiently allocates the available resources,
such as memory, network bandwidth, and disk I/O, among the multiple users.
Codes 12 rules are satisfied. That is,
Data Representation
Rule of guaranteed access
Proper treatment of null value
Security
Versioning
Physical Independence
Logical Independence
Integrity constraint independence
View Updating
Data Description
Comprehensive data sub language
Insert and update rule
Distribution
5.1.1 Hardware recommended
Processor
: Intel CORE i5
System Type
: 64 bit O.S.
Memory Capability : 2 GB
Hard Disk Capability: 20 GB
Monitor Make
: DELL
5.1.2 Software recommended
Operating System
Database
.Programming Language
: Windows 7
: My SQL Server
: Java
5.2.2 Screenshots
Here, some screenshots of that module are presented.
User login window:
Login:
public Login() {
initComponents();
setLocationRelativeTo(null);
}
private void initComponents() {
jMenuItem1 = new javax.swing.JMenuItem();
filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new
java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
jSplitPane1 = new javax.swing.JSplitPane();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
txtUserName = new javax.swing.JTextField();
txtPassword = new javax.swing.JPasswordField();
btnOK = new javax.swing.JButton();
btnCancel = new javax.swing.JButton();
filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new
java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
jMenuItem1.setText("jMenuItem1");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Login Form");
setResizable(false);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowOpened(java.awt.event.WindowEventevt) {
formWindowOpened(evt);
}
});
jLabel1.setText("User Name");
jLabel2.setText("Password");
txtUserName.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEventevt) {
txtUserNameMouseClicked(evt);
}
});
txtUserName.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
txtUserNameActionPerformed(evt);
}
});
txtPassword.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEventevt) {
txtPasswordKeyPressed(evt);
}
});
btnOK.setText("OK");
btnOK.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEventevt) {
btnOKMouseClicked(evt);
}
});
btnOK.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
btnOKActionPerformed(evt);
}
});
btnCancel.setText("Cancel");
btnCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
btnCancelActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(layout.createSequentialGroup()
.addGap(89, 89, 89)
.addComponent(filler2, javax.swing.GroupLayout.PREFERRED_SIZE, 86,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(32, 32, 32)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignmen
t.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(35, 35, 35)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
.addGroup(layout.createSequentialGroup()
.addComponent(btnOK,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacemen
t.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnCancel))
.addComponent(txtPassword,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(29, 29, 29)
.addComponent(txtUserName,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addContainerGap(32, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(35, 35, 35)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(jLabel1)
.addComponent(txtUserName,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtPassword))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(btnOK)
.addComponent(btnCancel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(filler2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(20, 20, 20))
);
pack();
}
private void txtUserNameMouseClicked(java.awt.event.MouseEventevt) {
}
private void btnOKMouseClicked(java.awt.event.MouseEventevt) {
if (txtUserName.getText().equals("")) {
JOptionPane.showMessageDialog(
this,
"Please
enter
user
name","Error",
JOptionPane.ERROR_MESSAGE);
return;
}
String Password= String.valueOf(txtPassword.getPassword());
if (Password.equals("")) {
JOptionPane.showMessageDialog(
this,
"Please
enter
password","Error",
JOptionPane.ERROR_MESSAGE);
return;
}
con=Connect.ConnectDB();
String sql= "select * from users where UserName= '" + txtUserName.getText() + "' and
user_Password ='" + txtPassword.getText() + "'";
try
{
pst=con.prepareStatement(sql);
rs= pst.executeQuery();
if (rs.next()){
this.hide();
MainMenufrm=new MainMenu();
frm.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null,
"Login
denied",JOptionPane.ERROR_MESSAGE);
}
}catch(SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null, e);
Failed..Tryagain
}
}
private void btnCancelActionPerformed(java.awt.event.ActionEventevt) {
System.exit(0);
}
private void formWindowOpened(java.awt.event.WindowEventevt) {
!","Access
}
private void txtUserNameActionPerformed(java.awt.event.ActionEventevt) {
// TODO add your handling code here:
}
private void txtPasswordKeyPressed(java.awt.event.KeyEventevt) {
if (evt.getKeyCode()==KeyEvent.VK_ENTER){
con=Connect.ConnectDB();
String sql= "select * from users where UserName= '" + txtUserName.getText() + "' and
user_Password ='" + txtPassword.getText() + "'";
try
{
pst=con.prepareStatement(sql);
rs= pst.executeQuery();
if (rs.next()){
this.hide();
MainMenufrm=new MainMenu();
frm.setVisible(true);
}
else
{
JOptionPane.showMessageDialog(null,"Login
Failed..Tryagain
!","Access
denied",JOptionPane.ERROR_MESSAGE);
txtUserName.setText("");
txtPassword.setText("");
txtUserName.requestDefaultFocus();
}
}catch(SQLException | HeadlessException e)
{
JOptionPane.showMessageDialog(null, e); } } }
5.3 Testing
Testing is the process of evaluating a system or its component(s) with the intent to find
that whether it satisfies the specified requirements or not. This activity results in the
actual, expected and difference between their results. In simple words testing is executing
a system in order to identify any gaps, errors or missing requirements in contrary to the
actual desire or requirements.
According to ANSI/IEEE 1059 standard, Testing can be defined as A process of
analyzing a software item to detect the differences between existing and required
conditions (that is defects/errors/bugs) and to evaluate the features of the software item.
It involves the execution of a software component or system component to evaluate one or
more properties of interest. In general, these properties indicate the extent to which the
component or system under test:
is sufficiently usable,
modules and proceeding one at a time. For each module in a bottom-up testing, a short
program executes the module and provides the needed data.
Integration Testing:
Integration testing is a systematic technique for constructing the program structure while
conducting test to uncover errors associate with interfacing. Objectives are used to take
unit test modules and built program structure that has been directed by design. The
integration testing is performed for this Patient Record System when all the modules
where to make it a complete system. After integration the project works successfully.
Validation Testing:
Tests were performed to find conformity with the requirements. Plans and procedures
were designed to ensure that all functional requirements are satisfied. The software was
alpha-tested. There are two goals in preparing test plans. Firstly, a properly detailed test
plan demonstrates that the program specifications are understood completely. Secondly,
the test plan is used during program testing to prove the correctness of the program.
5.3.2 Test Cases:
Well come up with our own requirement set for the login screen. Well write the scenario
based
Username should contain letter, number and period.
Username should not be left blank.
Username should not start with or contain any symbols.
User Interface
Here are some of the questions that can help you form test cases.
Where is the cursor focus in text area when you load the page?
Does enter key works as a substitute for the sign in button action?
Does username and password text field appears in order?
Does remember me check box selected by default?
Does the login page has register link for new users?
Does the user interface look as per the design specification?
Positive test cases:
Enter valid username and password.
Click on register link and fill out the form and register username and password.
Use enter button after typing correct username and password.
Use tab to navigate from username textbox to password textbox and then to login
button.
Negative test cases:
Enter valid username and invalid password.
Enter valid password but invalid username.
Keep both field blank and hit enter or click login button.
Chapter 6
Conclusion
The project Patient Record System is for computerizing the working in a hospital. The
software takes care of all the requirements of an average hospital and is capable to provide
easy and effective storage of information related to patients that come up to the hospital.
6.1 Important Feature:
Can be used in any Hospital, Clinic labs for maintaining patient details and their test
results.
6.2 Limitations
The size of the database increases day-by-day, increasing the load on the database
back up and data maintenance activity.
Training for simple computer operations is necessary for the users working on the
system.
6.3 Future work
There can be many improvements possible in any new or old system.
It could be made online on internet which expands its service to whole world.
Also we will keep tracks of bugs found while testing.
References:
1.
2.
3.
4.
5.
6.
7.
8.
www.google.com
www.slideshare.com
Software Engineering by K.K.Aggrawal, Singh, Yogesh.
Ian Somerville, Software Engineering, Third Edition.
alexgorbatchev.com/SyntaxHighlighter/manual/brushes/xml.htm
www.tutorialspoint.com/java/java_multithreading.html
www.tutorialspoint.com/mysql/
java-sl.com