The Hospital Management System (HMS) is a robust and efficient solution designed to streamline the processes within a healthcare facility. This project is built using PHP and MySQL, offering a user-friendly interface for managing patient information, appointments, and other essential aspects of hospital administration.
Preview
Approach
The approach involves creating a web-based system that utilizes PHP for server-side scripting and MySQL for the database. PHP handles the backend logic, while MySQL stores and retrieves data efficiently.
Steps to Create & Configure the Project
Step 1: Set Up a Local Development Environment.
- Install a web server (XAMPP, WampServer) to run PHP scripts.
- Set up a MySQL database for storing hospital data.
Step 2: Create Database and Tables
- Design the database schema to store patient information. In MySQL, create a database named hospital_management. Design tables, such as patients, to store relevant data like patient names, ages, and admission dates. Ensure to define appropriate data types, primary keys, and relationships.
CREATE DATABASE hospital_management;
USE hospital_management;
CREATE TABLE patients (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT NOT NULL,
gender VARCHAR(10) NOT NULL,
address TEXT,
admission_date DATE NOT NULL
);
Step 3: Build PHP Scripts
- Develop PHP scripts to handle various functionalities. Create separate PHP files for different features, such as adding patients (add_patient.php) and viewing patient information (view_patients.php). Implement the logic for interacting with the database, processing form submissions, and rendering dynamic content.
// index.php <!DOCTYPE html> <html lang= "en" >
<head> <meta charset= "UTF-8" >
<meta name= "viewport" content=
"width=device-width, initial-scale=1.0" >
<title>Hospital Management System</title>
<style>
body {
background-color: #606060FF;
color: #D6ED17FF;
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
text-align: center;
}
h1 {
background-color: #D6ED17FF;
color: black !important;
padding: 20px;
margin-bottom: 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 10px;
}
a {
text-decoration: none;
color: #606060FF;
background-color: #D6ED17FF;
padding: 10px 20px;
border-radius: 5px;
}
a:hover {
background-color: #606060FF;
color: #D6ED17FF;
}
</style>
</head> <body> <h1>Hospital Management System</h1>
<ul>
<li>
<a href= "add_patient.php" >Add Patient</a>
</li>
<li>
<a href= "view_patients.php" >View Patients</a>
</li>
</ul>
</body> </html> |
- Defines the HTML structure for the home page. Provides links to “add_patient.php” and “view_patients.php.” The embedded CSS styles enhance the appearance of the page.
// add_patient.php <?php if ( $_SERVER [ 'REQUEST_METHOD' ] === 'POST' ) {
$name = $_POST [ 'name' ];
$age = $_POST [ 'age' ];
$gender = $_POST [ 'gender' ];
$address = $_POST [ 'address' ];
$admission_date = $_POST [ 'admission_date' ];
$conn = new mysqli( 'localhost' , 'root' , '' , 'hospital_management' );
if ( $conn ->connect_error) {
die ( "Connection failed: " . $conn ->connect_error);
}
$sql = "INSERT INTO patients (name, age, gender, address, admission_date)
VALUES ( '$name' , $age , '$gender' , '$address' , '$admission_date' )";
if ( $conn ->query( $sql ) === TRUE) {
echo "Patient added successfully!" ;
} else {
echo "Error: " . $sql . "<br>" . $conn ->error;
}
$conn ->close();
} ?> <!DOCTYPE html> <html lang= "en" >
<head> <meta charset= "UTF-8" >
<meta name= "viewport" content=
"width=device-width, initial-scale=1.0" >
<title>Add Patient</title>
<style>
body {
background-color: #606060FF;
color: black;
font-weight: bolder;
font-family: Arial, sans-serif;
text-align: center;
margin: 0;
padding: 20px;
}
form {
max-width: 600px;
margin: 0 auto;
background-color: #D6ED17FF;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h2{
background-color:#D6ED17FF;
padding: 1%;
border-radius: 35px;
}
label {
display: block;
margin: 10px 0;
text-align: left;
}
input[type= "text" ],
input[type= "number" ],
select,
textarea,
input[type= "date" ],
input[type= "submit" ] {
width: 100%;
margin: 5px 0;
padding: 10px;
border-radius: 5px;
border: 1px solid #606060FF;
box-sizing: border-box;
}
input[type= "submit" ] {
background-color: #606060FF;
color: #D6ED17FF;
cursor: pointer;
}
input[type= "submit" ]:hover {
background-color: #D6ED17FF;
color: #606060FF;
}
</style>
</head> <body> <h2>Add Patient</h2>
<form method= "post" action= "" >
<label for = "name" >Name:</label>
<input type= "text" name= "name" required>
<label for = "age" >Age:</label>
<input type= "number" name= "age" required>
<label for = "gender" >Gender:</label>
<select name= "gender" >
<option value= "Male" >Male</option>
<option value= "Female" >Female</option>
</select>
<label for = "address" >Address:</label>
<textarea name= "address" ></textarea>
<label for = "admission_date" >Admission Date :</label>
<input type= "date" name= "admission_date" required>
<input type= "submit" value= "Add Patient" >
</form>
</body> </html> |
- Contains PHP code to handle form submissions. Retrieves data from the submitted form (name, age, etc.) using the $_POST superglobal. Connects to the MySQL database, constructs an SQL query, and inserts the new patient record. The HTML part includes a form with input fields for patient details.
//view_patients.php <?php $conn = new mysqli( 'localhost' , 'root' , '' , 'hospital_management' );
if ( $conn ->connect_error) {
die ( "Connection failed: " . $conn ->connect_error);
} $sql = "SELECT * FROM patients" ;
$result = $conn ->query( $sql );
?> <!DOCTYPE html> <html lang= "en" >
<head> <meta charset= "UTF-8" >
<meta name= "viewport" content=
"width=device-width, initial-scale=1.0" >
<title>View Patients</title>
<style>
body {
background-color: #606060FF;
color: black;
font-family: Arial, sans-serif;
text-align: center;
margin: 0;
padding: 20px;
}
h2{
background-color:#D6ED17FF;
padding: 1%;
border-radius: 35px;
}
table {
background-color: #D6ED17FF;
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
th, td {
border: 5px solid #606060FF;
padding: 10px;
color:black;
}
th {
background-color: #D6ED17FF;
}
</style> </head> <body> <h2>View Patients</h2>
<table border= "1" >
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
<th>Address</th>
<th>Admission Date </th>
</tr>
<?php
while ( $row = $result ->fetch_assoc()) {
echo "<tr>
<td>{ $row [ 'id' ]}</td>
<td>{ $row [ 'name' ]}</td>
<td>{ $row [ 'age' ]}</td>
<td>{ $row [ 'gender' ]}</td>
<td>{ $row [ 'address' ]}</td>
<td>{ $row [ 'admission_date' ]}</td>
</tr>";
}
?>
</table>
</body> </html> |
- Connects to the MySQL database and executes an SQL query to fetch all patient records. Utilizes a while loop to iterate through the result set and dynamically generates an HTML table displaying patient information.
Step 4: Adding Data to the Table
If you want to insert dummy data through mysql, You can us ethe following code:
INSERT INTO patients (name, age, gender, address, admission_date) VALUES
('John Doe', 35, 'Male', '123 Main St, Cityville', '2022-01-15'),
('Jane Smith', 28, 'Female', '456 Oak St, Townsville', '2022-01-16'),
('Bob Johnson', 45, 'Male', '789 Pine St, Villagetown', '2022-01-17'),
('Alice Brown', 32, 'Female', '987 Cedar St, Hamletville', '2022-01-18'),
('Charlie Wilson', 50, 'Male', '654 Birch St, Countryside', '2022-01-19');
Project Structure
Steps 5: Run the Application
- Start your local web server and MySQL database.
- Place the project files in the root directory of your web server.
- Access the application through the web browser (e.g., http://localhost/Hospital management/index.php).
Output: