2. HOSPITAL
A hospital is a health care institution providing patient treatment with specialized
staff and equipment. Hospitals are usually funded by public sector by health
organisations (for profit or non-profit), by health insurance companies, or by
charities, including direct charitable donations. Hospitals have a range of
departments (e.g., surgery, and urgent care etc).
HOSPITAL MANAGEMENT SYSTEM
A hospital management system is an information system that manages the aspects
of a hospital. This may include the administrative, financial, and medical
processing. It is an integrated end-to-end Hospital Management System that
provides relevant information across the hospital to support effective decision
making for patient care, hospital administration and critical financial accounting, in
a seamless flow. This program can look after Inpatients, OPD patients, records,
database treatments, status illness, billings etc. it also maintains their hospital info
such as ward id, Doctor in Charge, Department administering etc. Now with a
laboratory module to handle all lab operations...!!! Not only has this it also looked
after doctor and staff records and payments. Now with advanced features like LAN
connectivity, ICD10 disease database, Webcam support.
NEED OF HMS
1. Minimized documentation and no duplication of records.
2. Reduced paper work.
3. Improved Patient Care
4. Better Administration Control
5. Faster information flow between various departments
6. Smart Revenue Management
7. Effective billing of various services
8. Exact stock information
3. Software Requirement Specification (SRS)
A Software requirements specification (SRS), a requirements specification for a
software system, is a complete description of the behavior of a system to be
developed and may include a set of use cases that describe interactions the users will
have with the software. In addition it also contains non-functional requirements.
Non-functional requirements impose constraints on the design or implementation
(such as performance engineering requirements, quality standards, or design
constraints).
1. Introduction
The SRS is produced at the culmination of the analysis task. The function and
performance allocated to software as part of the system engineering and refined by
establishing a complete information description, a detailed functional description, a
representation of system behavior, indication of performance requirements and
design constrains, appropriate validation criteria and the other information related to
requirements.
The SRS is technical specification of requirement of Hospital
Management system. This specification describes what the proposed system should
do without describing how it will do it. It also describes complete external behavior
of proposed system.
1.1. Purpose:-
The main purpose of our system is to make hospital task easy and is to develop
software that replaces the manual hospital system into automated hospital
management system. This document serves as the unambiguous guide for the
developers of this software system.
1.2. Scope:-
The document only covers the requirement specification for the hospital
management system. This document does not provide any references to the other
component of the hospital management system. All the external interfaces and the
dependencies are also identified in this document.
4. 1.3. Feasibility Study:-
The overall scope of the feasibility study was to provide sufficient information
to allow a decision to be made as to whether the hospital management system project
should proceed and so, its relative priority in the context of the other existing hospital
management system.
The feasibility study of this project had undergone through various steps
which as describe as under:
a) Identify the origin of the information at different level.
b) Identify the expectation of user from computerized system.
c) Analyze the drawback of existing system.
1.4. Definition , Acronyms , Abbreviations:-
CFD: - Context Flow Diagram
DFD: - Data Flow Diagram
IDE: - Integrated Development Environment
C++:-Platform Independent And Object_oriented programming language
SRS: - Software Requirement Specification.
1.5. Reference:-
1) An integrated approach to software engineering, Third edition by Pankaj
Jalote
2) OOP in C++ – E Balaguruswamy
3) Software engineering By Ian Sommerville
1.6. Overview:-
Hospital Management System is a process of implementing all the activities
of the hospital in a computerized automated way to fasten the performance.
5. This project is to maintain the patient details, lab reports and to calculate the
bill of the patient. You can also manually edit any patient details and issue bill receipt
to patient within few seconds.
2. OVERALL DESCRIPTION
2.1. Product perspectives:-
This project gives the procedural approach how a patient gets treatment,
details about date of treatment and finally depending on different criteria like room
allocated, lab reports, treatment and medicine taken…..etc,how billing is calculated.
During billing health card facility is also considered.
2.2. Product Function:-
The data represented in hospital management application will perform the
following major function:-
Patient Details: - It includes inpatient and outpatient details.
Tasks:- It includes the various tasks which are used in hospital
Billing Details:-This software will help to calculate the bill much quicker and
simpler way. This enables the organization to keep the information in efficient
and systematic way.
2.3. User Characteristics:-
This software is developed such that total appearance of the product to make it more
user friendly. The operator will be provided with login id and password. General
users with basic computer skills can use this software.
2.4. General Constraints:-
Any update regarding the patient’s information from the hospital are to be
recorded to have updated and correct values.
6. 2.5. Assumption and Dependencies:-
All the data entered will be correct and up to date. This software package is
developed using java as front end which is supported by sun micro system, MS SQL
server 2005 as the back end which is supported by Microsoft windows XP.
3. SPECIFIC REQUIREMENTS
It describes all the details that the software developer need to know for designing
and developing the system. This is typically the largest and most important part of
the document.
3.1. External Interface Requirements:-
3.1.1. User Interface:-
User interface is designed in a user friendly manner and the user, in
another end he has to give the order, for that he will interface with keyboard and
mouse.
3.1.2. Hardware Interface:-
1) OS – windows
2) Hard disk – 80 GB
3) RAM – 1 GB
4) Keyboard – Standard QWERTY keyboard for interface
5) Mouse – Standard mouse with 2 buttons
3.1.3. Software Interface:-
1) Front end – OOP using C++
2) OS – Net Beans IDE 6.9.1
3) .Net Firmware
3.1.4. Communication Interface:-
Windows
7. 3.2. Functional Requirements:-
3.2.1. Administration module:-
This module enables the user to insert, update, view, search and delete
the patient information.
3.2.2. Patient module:-
Data Members :- PatientId, Name, Age, Sex, BloodGroup, Marital Status
,Address, Phone Number.
3.2.3. Task module:-
This module is used by system admin to manage the system.
It has following sub modules.
Add New Patient :- This module is used to add a new patient.
View Details :- This module is used to view the details of a previously admitted
patient.
Search :- This module searches the record of desired patient using his ID,
Name, City or Blood Group.
Delete :- This module deletes the entry of a patient.
Recycle bin :- This module retrieves the deleted patient data.
3.2.4. Billing Module:-
It requires following data members.
Patient ID ,Patient Name, Treatment Charges, Bed Charges and Other Charges
Total Amount which gives the total amount which the patient has to pay.
8. 3.2.5. Updation module:-
This module used to store or produce the patient reports .This updates
patient info after each task.
3.3. Performance Requirements:-
The capability of the computer depends on the performance of the software.
The software can take any number of input provided the database size is large
enough. This would depend on the available memory space.
3.4. Design Constraints:-
This will help the doctors or users to view the records of the patients
immediately whenever necessary. They can also calculate the bill of the particular
patients. This software also has the ability to add, update and delete the record
whenever needed. This project will help to smoother the process of the hospital
activites.
4. SYSTEM FEATURES:
The users of the system should be provided the surety that their account is
secure. This is possible by following:
User authentication and validation of members using their member ID.
Proper monitoring by the administrator which includes account status,
showing a popup if wrong data is entered more than a required limit.
Privacy of personal details of patient maintained properly.
9. 5. ATTRIBUTES:
5.1
Reliability:
This application is a reliable product that produces fast and verified output of all its
processes.
Availability:
This application will be available to use and help them to carry out their operations
conveniently.
Security:
The application will be password protected. User will have to enter correct
username, password and role in order to access the application.
Maintainability:
The application will be designed in a maintainable manner. It will be easy to to
incorporate new requirements in the individual modules.
Portability:
The application will be easily portable on any windows-based system that has
oracle installed.
10. 5.2 Data Dictionary:-
CLASS
NAME
DATA MEMBERS MEMBER
FUNCTIONS
ADMIN:
task()
PATIENT:
Name: string Get_address()
ID: int Pay_bill()
Age: int
Maritial_status: string
Sex: string
Blood_group: string
TASK:
Add_patient()
View_details()
Search()
Discharge()
Prepare_bill()
ADDRESS:
House_no: int
Street: int
City: string
State: string
Country: string
BILL:
Treatment_charges: float Total_amount()
Bed_charges: float
Other_charges: float
Amount: float
11. 6. SYSTEM DESIGN:
The principles used in design are described below :-
1. DATA FLOW DIAGRAM:
Symbol Name Function
Data Flow Used to connect processes to each other. The
arrowhead indicates direction of data flow.
Process Performs some transformation to input data to
output data.
Source or
sink.(external
entity)
A source of system inputs or sink of system
outputs.
Data Store A repository of data. Arrowheads indicate net
inputs or net outputs to the store.
12.
13.
14. 2. ENTITY RELATIONSHIP DIAGRAM:-
Symbol Name Description
Entity
An entity can be any object, place, person
or anything.
Attribute
An Attribute Describes a property or
characteristics of an entity.
Relationship
A Relationship Describes relation
between entities.
19. CONCLUSION:-
The project Hospital Management System (HMS) is for computerizing the
working in a hospital. It is a great improvement over the manual system. The
computerization of the system has speed up the process. In the current system,
the front office managing is very slow. The hospital managing system was
thoroughly checked and tested with dummy data and thus is found to be very
reliable. 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.
It generates test reports and also provides the facility for searching the details of
the patient. It also provides billing facility on the basis of patient’s status
whether it is an indoor or outdoor patient. The system also provides the facility
of backup as per the requirement.
FUTURE ENHANCEMENTS:
The proposed system is Hospital Management System. We can enhance this
system by including more facilities like pharmacy system for the stock details
of medicines in the pharmacy.
Providing such features enable the users to include more comments into the
system.
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.
20. REFERENCES:-
1) An integrated approach to software engineering, Third edition by
Pankaj Jalote
2) OOP in C++ – E Balaguruswamy
3) Software engineering By Ian Sommerville
WEB REFERENCES:
1 .www.google.com
2. www.stackoverflow.com
21. CODE FOR HMS:::
/* HOSPITAL MANAGEMENT SYSTEM
PROGRAMMING LANGUAGE C++
Please enter the input data in specified format only
*/
#include<iostream> //for input and output stream regulation
#include<process.h> //for exit()
#include<string.h> //for strlen() and strcmp()
#include<conio.h> //for getch() and clrscr()
#include<stdio.h>
using namespace std;
class all //declaration for class "all"
{
private:
struct address
{
int house;
char city[30];
char state[30];
char street[30];
23. void delete_entry();
void billing();
void after_delete_options();
int s_group;
int s_choice;
int en_del_index;
int delete_choice;
char ch;
char answer;
char answer1;
char s_city[30];
char exit_answer;
char delete_confirm;
char after_search_answer;
}; //end of class "all"
class temp1 //declaration for class "temp"
{
public:
int m,i,j,k,d,e,f,rem,temp,count,regis,entry,serial,attempt,current,index;
int
d_index,ssi_count,show_count,delete_show,search_index,search_count,current_ye
ar,delete_count;
int
search_number,restore_serial,entry_index[100],after_search_choice,after_restore_c
hoice;
25. T1.entry_index[T1.m]=-1;
}
cout<<"tttt WELCOME TO"<<"n";
cout<<"nnttt***HOSPITAL MANAGEMENT SOFTWARE***"<<"n";
cout<<"nttt BY SAKSHI,SHWETA AND SANJIT "<<"n";
A1.tasks();
} //end of main function
void all::tasks()
{
T1.attempt=0;
T1.d_index=0;
cout<<"nnttt ***Hospital Management Tasks***"<<"n";
cout<<"n";
cout<<"nntPlease select a task to do..."<<"n";
cout<<"nnt1. Enter a new patient information "<<"n";
cout<<"t2. View detail of existing patient "<<"n";
cout<<"t3. Search by city or blood group"<<"n";
cout<<"t4. Delete entry "<<"n";
cout<<"t5. Recycle Bin "<<"n";
cout<<"t6. Prepare Bill "<<"n";
cout<<"t7. Exit "<<"nnn";
cout<<"a Enter your task serial : ";
cin>>task;
27. }
case 7:{
A1.exit_function();
break;
}
default:
cout<<"nnnnntInvalid task serial !!!"<<"n";
cout<<"tValid options are 1-6 !!!"<<"n";
cout<<"tPress any key to return to the main task menu....a"<<"n";
getch();
A1.tasks();
}
return ; //end of switch for task
} //end of function
void all::enter_patient_info()
{
if(T1.current==100) //to avoid overflow of data in the database
{
cout<<"nnnt Database is full !!! ";
cout<<"nt Sorry, you cannot enter any more information !!! ";
cout<<"nt Information of maximum 100 patients can be entered !!!! ";
cout<<"nt Press any key to return to the main menu....a ";
getch();
A1.tasks();
29. for(T1.k=1;T1.k<T1.serial;T1.k++) //loop to avoid duplicate entries
{
if(strcmp(PI[T1.i].name,PI[T1.k].name)==0) //if match is found
{
if(T1.entry_index[T1.k]==0) //if entry is already deleted
continue;
else //if entry still exists
{
T1.current-=1; //current no. of entries remains same
cout<<"nnntThe patient is already admitted in the hospital !!!";
cout<<"ntWant to view info of this registration number in detail (Y/N) : a";
cin>>T1.duplicate_answer;
while(T1.duplicate_answer!='Y'&&T1.duplicate_answer!='y'&&T1.duplicate_ans
wer!='N'&&T1.duplicate_answer!='n')
{
cout<<"ntaPlease re enter a correct option (Y/N) : ";
cin>>T1.duplicate_answer;
}
if(T1.duplicate_answer=='y'||T1.duplicate_answer=='Y')
{
T1.entry_index[T1.i]=-1;
T1.regis=T1.k;
T1.d_index=1;
A1.show_patient_detail();
}
30. else
{
A1.tasks();
}
}
}
} //end of "for loop" to prevent duplicate entries
cout<<"nSex ( 1-Male , 2-Female ) : ";
cin>>PI[T1.i].sex;
while(PI[T1.i].sex!=1&&PI[T1.i].sex!=2)
{
cout<<"anInvalid input for sex of patient !!!";
cout<<"nSex : ";
cin>>PI[T1.i].sex;
}
cout<<"nMartial status( 1-Married , 2-Single ) : ";
cin>>PI[T1.i].martial_status;
while(PI[T1.i].martial_status<1||PI[T1.i].martial_status>2)
{
cout<<"anInvalid input for martial status !!!"<<"n";
cout<<"Enter a valid martial status : "<<"n";
31. cin>>PI[T1.i].martial_status;
}
cin.get(ch);
cout<<"n *** Blood group ***"<<"n";
cout<<" 1. A+ "<<"n";
cout<<" 2. A- "<<"n";
cout<<" 3. B+ "<<"n";
cout<<" 4. B- "<<"n";
cout<<" 5. AB+ "<<"n";
cout<<" 6. AB- "<<"n";
cout<<" 7. O+ "<<"n";
cout<<" 8. O- "<<"n";
cout<<"nEnter a blood group : ";
cin>>PI[T1.i].bld_group;
switch(PI[T1.i].bld_group)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
33. }
cin.get(ch);
cout<<"Street : ";
cin.getline(PI[T1.i].AD1.street,30);
while(strlen(PI[T1.i].AD1.street)==0)
{
cout<<"anPlease enter a street : "; //if enter is pressd before input for street
cin.getline(PI[T1.i].AD1.street,50);
cout<<"n";
}
cout<<"City : ";
cin.getline(PI[T1.i].AD1.city,30);
while(strlen(PI[T1.i].AD1.city)==0)
{
cout<<"anPlease enter a city : "; //if enter is pressd before input for city
cin.getline(PI[T1.i].AD1.city,50);
cout<<"n";
}
cout<<"State : ";
cin.getline(PI[T1.i].AD1.state,30);
while(strlen(PI[T1.i].AD1.state)==0)
{
cout<<"anPlease enter a state : "; //if enter is pressed before input for state
cin.getline(PI[T1.i].AD1.state,50);
cout<<"n";
34. }
cout<<"Country : ";
cin.getline(PI[T1.i].AD1.country,30);
while(strlen(PI[T1.i].AD1.country)==0)
{
cout<<"anPlease enter a country : "; //if enter is pressd before input for
country
cin.getline(PI[T1.i].AD1.country,50);
cout<<"n";
}
cout<<"nnWant to enter information for another patient (Y/N) ? ";
cin>>answer;
while(answer!='Y'&&answer!='y'&&answer!='N'&&answer!='n')
{
cout<<"anPease re-enter a correct option (Y/N) : ";
cin>>answer;
}
cout<<"n";
T1.count++;
T1.serial++;
} //end of "for loop" for entering information
A1.tasks();
} //end of function
void all::show_patient_detail()
{
35. if(T1.d_index==1)
{
T1.d_index=0;
cout<<"nn";
goto direct;
}
if(T1.current==0)
{
cout<<"nnn";
cout<<"tDatabase is empty !!!"<<"n";
cout<<"tPlease enter some information first. "<<"n";
cout<<"nntDo you want to enter now (Y/N) : a";
cin>>T1.enter_now;
while(T1.enter_now!='Y'&&T1.enter_now!='y'&&T1.enter_now!='N'&&T1.enter
_now!='n')
{
cout<<"antPlease enter a correct option (Y/N) : ";
cin>>T1.enter_now;
}
if(T1.enter_now=='y'||T1.enter_now=='Y')
A1.enter_patient_info();
else
A1.tasks();
}
cout<<"ntt****** CURRENT DATEBASE ENTRIES ******nn";
36. cout<<"ttRegistration no. Name of patientnn";
for(T1.j=1;T1.j<100;T1.j++)
{
if(T1.entry_index[T1.j]==1)
cout<<"tt "<<T1.j<<" "<<PI[T1.j].name<<"n";
else
continue;
}
cout<<"nnttPress 0 to return to main menu.... ";
cout<<"nnnEnter registration number whose details you want to see : ";
cin>>T1.regis;
cout<<"nn";
cin.get(ch);
if(T1.regis==0)
A1.tasks();
T1.show_count++;
direct: //label for "goto" jump statement
if(T1.regis<=0)
{
cout<<"nntSorry, invalid registration number ";
cout<<"ntRegistration number starts from 1. ";
cout<<"nntPress any key to continue..... a";
getch();
A1.show_patient_detail();
37. }
if(T1.regis>0&&T1.regis<T1.serial&&T1.entry_index[T1.regis]==0)
{
cout<<"ntSorry, the patient has left the hospital.";
cout<<"ntPress any key to continue..."<<"n";
getch();
}
if((T1.regis<0||T1.regis>=T1.serial)&&T1.entry_index[T1.regis]==-1)
{
cout<<"nntSorry, the registration number is invalid ."<<"n";
T1.entry=T1.serial-1;
if(T1.entry==1)
cout<<"tOnly 1 record has been added .n";
else
cout<<"tOnly "<<T1.entry<<" records have been added .n";
}
if(T1.regis>0&&T1.regis<T1.serial&&T1.entry_index[T1.regis]==1)
{
cout<<"nt ***INFORMATION FOR PATIENT REGISTRATION NUMBER
"<<T1.regis<<"***nn";
cout<<"tName : "<<PI[T1.regis].name<<"n";
cout<<"tSex : ";
if(PI[T1.regis].sex==1)
cout<<"Male "<<"n";
if(PI[T1.regis].sex==2)
38. cout<<"Female "<<"n";
cout<<"tBlood Group : ";
switch(PI[T1.regis].bld_group)
{
case 1:
cout<<"A+n";
break;
case 2:
cout<<"A-n";
break;
case 3:
cout<<"B+n";
break;
case 4:
cout<<"B-n";
break;
case 5:
cout<<"AB+n";
break;
case 6:
cout<<"AB-n";
break;
case 7:
cout<<"O+n";
39. break;
case 8:
cout<<"O-n";
} //end of switch
cout<<"tMarital Status : ";
if(PI[T1.regis].martial_status==1)
cout<<"Married "<<"n";
else
cout<<"Single "<<"n";
cout<<"nt **ADDRESS**"<<"n";
cout<<"ntHouse no. : "<<PI[T1.regis].AD1.house;
cout<<"ntStreet : "<<PI[T1.regis].AD1.street;
cout<<"ntCity : "<<PI[T1.regis].AD1.city;
cout<<"ntState : "<<PI[T1.regis].AD1.state;
cout<<"ntCountry : "<<PI[T1.regis].AD1.country;
}
T1.d_index=0;
cout<<"nnnntWant to view detail of another patient(y/n) : ";
cin>>answer1;
while(answer1!='Y'&&answer1!='y'&&answer1!='N'&&answer1!='n')
{
cout<<"atPease re-enter a correct option (Y/N) ? ";
cin>>answer1;
}
40. if(answer1=='Y'||answer1=='y')
A1.show_patient_detail();
else
A1.tasks();
} //end of function
void all::billing()
{
char pn[25];
float bc,tc,oc,tot;
cout<<"nPatient Name :t";
cin>>pn;
cout<<"nBed Charge :t";
cin>>bc;
cout<<"nTreatment Charge:t";
cin>>tc;
cout<<"nOther Charges :t";
cin>>oc;
tot=bc+tc+oc;
cout<<"nnnTotal Billing Charges :t"<<tot;
cout<<"annntPress any key to return to the main task menu......."<<"n";
getch();
A1.tasks();
} //end of function
41. void all::search_menu()
{
T1.ssi_count=0;
if(T1.current==0)
{
cout<<"nnn";
cout<<"tDatabase is empty !!!"<<"n";
cout<<"tPlease enter some information first. "<<"n";
cout<<"nntDo you want to enter now (Y/N) : a";
cin>>T1.enter_now;
while(T1.enter_now!='Y'&&T1.enter_now!='y'&&T1.enter_now!='N'&&T1.enter
_now!='n')
{
cout<<"antPlease enter a correct option (Y/N) : ";
cin>>T1.enter_now;
}
if(T1.enter_now=='y'||T1.enter_now=='Y')
A1.enter_patient_info();
else
A1.tasks();
}
T1.search_number=0;
cout<<"nntt ***SEARCH MENU***"<<"n";
cout<<"nntt 1. Search by city "<<"n";
42. cout<<"tt 2. Search by blood group "<<"n";
cout<<"tt 3. Return to main menu "<<"n";
cout<<"nnt Enter your choice : a";
cin>>s_choice;
cin.get(ch);
cout<<"nnn";
switch(s_choice)
{
case 1:
T1.search_index=1;
cout<<"nntt***SEARCHING BY CITY***n";
cout<<"nntEnter city : ";
cin.getline(s_city,30);
cout<<"nnn";
while(strlen(s_city)==0) //if enter is pressed before input for city
{
cout<<"ntPlease enter a city : a";
cin.getline(s_city,30);
}
A1.search_city();
break;
case 2:
T1.search_index=2;
cout<<"nntt***SEARCHING BY BLOOD GROUP***n";
43. cout<<"nntt ***BLOOD GROUP MENU***nn";
cout<<"t1. A+ "<<"n";
cout<<"t2. A- "<<"n";
cout<<"t3. B+ "<<"n";
cout<<"t4. B- "<<"n";
cout<<"t5. AB+ "<<"n";
cout<<"t6. AB- "<<"n";
cout<<"t7. O+ "<<"n";
cout<<"t8. O- "<<"n";
cout<<"nn Enter the serial of your required group : ";
cin>>s_group;
while(s_group!=1&&s_group!=2&&s_group!=3&&s_group!=4&&
s_group!=5&&s_group!=6&&s_group!=7&&s_group!=8)
{
cout<<"n";
cout<<"tInvalid search criteria !!!"<<"n";
cout<<"tValid serials are 1 to 8."<<"n";
cout<<"tEnter a valid blood group : a";
cin>>s_group;
}
cout<<"nnn";
A1.search_blood_group();
break;
case 3:
44. A1.tasks();
break;
default:
cout<<"ann Invalid search criteria !!!"<<"n";
cout<<" Valid options are 1 and 2 !!!"<<"n";
cout<<" Press any key to return to the main searching menu....."<<"n";
getch();
A1.search_menu();
} //end of switch
} //end of function
void all::search_city()
{
T1.search_count=0;
T1.search_number++;
cout<<"nnn";
for(T1.index=1;T1.index<T1.serial;T1.index++)
{
if((strcmp(PI[T1.index].AD1.city,s_city))==0)
{
if(T1.entry_index[T1.index]==0)
continue;
if(T1.search_count==0)
cout<<"ttRegistration no. Name of patientnn";
cout<<"ntt "<<T1.index<<"tt"<<PI[T1.index].name;
45. T1.search_count++;
}
}
if(T1.search_number==1)
{
cout<<"annntt Search is complete !!! "<<"n";
if(T1.search_count==0)
{
cout<<"tt No result found !!!"<<"nnn";
cout<<"tt Press any key to continue.....";
getch();
A1.after_search_options();
}
if(T1.search_count>1)
cout<<"tt "<<T1.search_count<<" results found !!! "<<"nnn";
if(T1.search_count==1)
cout<<"tt "<<T1.search_count<<" result found !!! "<<"nnn";
}
if(T1.search_number==1)
{
cout<<"nnttWant to view in detail : ";
cin>>after_search_answer;
48. getch();
A1.after_search_options();
}
if(T1.search_count>1)
cout<<"tt "<<T1.search_count<<" results found !!! "<<"nnn";
if(T1.search_count==1)
cout<<"tt "<<T1.search_count<<" result found !!! "<<"nnn";
}
if(T1.search_number==1)
{
cout<<"nnttWant to view in detail (y/n): ";
cin>>after_search_answer;
while(after_search_answer!='y'&&after_search_answer!='Y'&&after_search_answ
er!='N'&&after_search_answer!='n')
{
cout<<"annttPlease enter a correct option (y/n)";
cout<<"nttDo you want to view in detail : ";
cin>>after_search_answer;
}
if(after_search_answer=='y'||after_search_answer=='Y')
{
cout<<"nnnttWhich registration number : ";
cin>>T1.index;
A1.search_show_info();
}
49. else
A1.after_search_options();
}
else
{
cout<<"nnnttWhich registration number : ";
cin>>T1.index;
A1.search_show_info();
}
} //end of function
void all::search_show_info()
{
T1.ssi_count++;
cout<<"nn";
if(T1.index<=0)
{
cout<<"nntSorry, invalid registration number !!!";
cout<<"ntRegistration number starts from 1 ";
cout<<"ntPress any key to continue.........n";
getch();
switch(T1.search_index)
{
case 1:
A1.search_city();
50. break;
case 2:
A1.search_blood_group();
break;
} //end of switch
}
if(T1.entry_index[T1.index]==0)
{
cout<<"nntSorry, the patient has left the hospital ."<<"n";
cout<<"tPress any key to continue ....a"<<"n";
getch();
switch(T1.search_index)
{
case 1:
A1.search_city();
break;
case 2:
A1.search_blood_group();
break;
} //end of switch
}
if(T1.entry_index[T1.index]==-1||T1.index>=T1.serial)
{
cout<<"nnttSorry, the registration number in invalid ."<<"n";
T1.entry=T1.serial-1;
51. if(T1.entry==1)
cout<<"ttOnly 1 record has been added .n";
else
cout<<"ttOnly "<<T1.entry<<" records have been added .n";
cout<<"ttPress any key to continue....a"<<"n";
getch();
switch(T1.search_index)
{
case 1:
A1.search_city();
break;
case 2:
A1.search_blood_group();
break;
} //end of switch
}
cout<<"n";
T1.ssi_count=0;
cout<<"nt ***INFORMATION FOR PATIENT REGISTRATION NUMBER
"<<T1.index<<"***nn";
cout<<"tName : "<<PI[T1.index].name<<"n";
cout<<"tSex : ";
if(PI[T1.index].sex==1)
cout<<"Male "<<"n";
if(PI[T1.index].sex==2)
52. cout<<"Female "<<"n";
cout<<"tBlood Group : ";
switch(PI[T1.index].bld_group)
{
case 1:
cout<<"A+n";
break;
case 2:
cout<<"A-n";
break;
case 3:
cout<<"B+n";
break;
case 4:
cout<<"B-n";
break;
case 5:
cout<<"AB+n";
break;
case 6:
cout<<"AB-n";
break;
case 7:
cout<<"O+n";
53. break;
case 8:
cout<<"O-n";
break;
} //end of switch
cout<<"tMarital Status : ";
if(PI[T1.index].martial_status==1)
cout<<"Married "<<"n";
else
cout<<"Single "<<"n";
cout<<"nt **ADDRESS**"<<"n";
cout<<"ntHouse no. : "<<PI[T1.index].AD1.house;
cout<<"ntStreet : "<<PI[T1.index].AD1.street;
cout<<"ntCity : "<<PI[T1.index].AD1.city;
cout<<"ntState : "<<PI[T1.index].AD1.state;
cout<<"ntCountry : "<<PI[T1.index].AD1.country;
cout<<"nnntWant to view info of another patient within search results (Y/N) ?
";
cin>>after_search_answer;
while(after_search_answer!='Y'&&after_search_answer!='y'&&after_search_answ
er!='N'&&after_search_answer!='n')
{
cout<<"antPlease enter a correct option (Y/N) : ";
56. cout<<"nntDo you want to enter now (Y/N) : a";
cin>>T1.enter_now;
while(T1.enter_now!='Y'&&T1.enter_now!='y'&&T1.enter_now!='N'&&T1.enter
_now!='n')
{
cout<<"antPlease re-enter a correct option (Y/N) : ";
cin>>T1.enter_now;
}
if(T1.enter_now=='y'||T1.enter_now=='Y')
A1.enter_patient_info();
else
A1.tasks();
}
cout<<"ntt ***CURRENT DATABASE ENTRIES***nn";
cout<<"ttRegistration no. Name of patientnn";
for(T1.j=1;T1.j<T1.serial;T1.j++)
{
if(T1.entry_index[T1.j]==0)
continue; //to ignore deleted items
if(T1.entry_index[T1.j]==1)
{
T1.delete_show++;
cout<<"tt "<<T1.j<<" "<<PI[T1.j].name<<"n";
}
}
57. if(T1.delete_show==0)
{
cout<<"ntDatabase is currently empty!!!a";
cout<<"ntPress any key to continue....";
getch();
A1.tasks();
}
cout<<"nntPress 0 to return to main menu and 101 to delete all entries... ";
cout<<"nnnt Or enter the registration no. from 1 to 100 you want to delete ? ";
cin>>en_del_index;
if(en_del_index==101)
{
cout<<"ntWarning : You are about to delete all entries !!!a";
cout<<"ntAre you sure you want to do this : ";
cin>>T1.delete_all_confirm;
while(T1.delete_all_confirm!='Y'&&T1.delete_all_confirm!='y'&&T1.delete_all_c
onfirm!='N'&&T1.delete_all_confirm!='n')
{
cout<<"ntSorry, wrong input !!!";
cout<<"ntPlease enter a valid choice (Y/N) : a";
cin>>T1.delete_all_confirm;
}
if(T1.delete_all_confirm=='y'||T1.delete_all_confirm=='Y')
{
for(T1.f=1;T1.f<=100;T1.f++)
58. {
if(T1.entry_index[T1.f]==1)
{
T1.current--;
T1.entry_index[T1.f]=0;
}
}
cout<<"nntAll entries have been succesfully deleted!!!";
cout<<"ntPress any key to return to the main menu...a";
getch();
A1.tasks();
}
else
{
cout<<"ntNo entries have been deleted.";
cout<<"ntPress any key for more options....";
getch();
A1.after_delete_options();
}
}
if(en_del_index==0)
A1.tasks();
if(en_del_index>0&&en_del_index<T1.serial&&T1.entry_index[en_del_index]==
1)
{
59. cout<<"nntAre you sure you want to delete entry "<<en_del_index<<" (Y/N) ?
";
cin>>delete_confirm;
while(delete_confirm!='Y'&&delete_confirm!='y'&&delete_confirm!='N'&&delet
e_confirm!='n')
{
cout<<"antPease re-enter a correct option (Y/N) ? ";
cin>>delete_confirm;
}
if(delete_confirm=='y'||delete_confirm=='Y')
{
T1.entry_index[en_del_index]=0; //entry now deleted. index value set to 0
T1.current--;
cout<<"ntEntry succesfully deleted.n";
cout<<"tPress any key to continue.....a";
getch();
A1.after_delete_options();
}
else
{
T1.entry_index[en_del_index]=1; //entry not deleted. default index value(1) kept
cout<<"ntEntry not deleted ";
cout<<"ntPress any key to continue.......";
getch();
A1.after_delete_options();
60. }
}
if(en_del_index>0&&en_del_index<T1.serial&&T1.entry_index[en_del_index]==
0)
{
cout<<"nntSorry, the patient has already left the hospital ."<<"n";
cout<<"ntPress any key to continue...a"<<"n";
getch();
A1.delete_entry();
}
else
{
cout<<"nntSorry, Invalid registration number ."<<"an";
T1.entry=T1.serial-1;
if(T1.entry==1)
cout<<"tOnly 1 record has been added .n";
else
cout<<"tOnly "<<T1.entry<<" records were added and "<<T1.current<<" are
present now.n";
cout<<"tPress any key to continue..."<<"n";
getch();
A1.delete_entry();
}
} //end of function
61. void all::after_delete_options()
{
cout<<"nttWHAT DO YOU WANT TO DO NOW ?";
cout<<"ntt1. Delete more entries ";
cout<<"ntt2. Return to main menu "<<"n";
cout<<"nttPlease enter your choice : ";
cin>>delete_choice;
while(delete_choice!=1&&delete_choice!=2)
{
cout<<"anntSorry, wrong choice .";
cout<<"ntValid choices are 1 and 2. ";
cout<<"ntPlease re-enter your choice : ";
cin>>delete_choice;
}
switch(delete_choice)
{
case 1:
A1.delete_entry();
break;
case 2:
A1.tasks();
} //end of switch
} //end of function
void all::recycle_bin()
62. {
T1.delete_count=0;
if(T1.serial==0)
{
cout<<"nnn";
cout<<"tDatabase is empty !!!"<<"n";
cout<<"tPlease enter some information first. "<<"n";
cout<<"nntDo you want to enter now (Y/N) : a";
cin>>T1.enter_now;
while(T1.enter_now!='Y'&&T1.enter_now!='y'&&T1.enter_now!='N'&&T1.enter
_now!='n')
{
cout<<"antPlease enter a correct option (Y/N) : ";
cin>>T1.enter_now;
}
if(T1.enter_now=='y'||T1.enter_now=='Y')
A1.enter_patient_info();
else
A1.tasks();
}
cout<<"ntt ****** DELETED ENTRIES ******nn";
cout<<"ttRegistration no. Name of patientnn";
for(T1.d=1;T1.d<T1.serial;T1.d++)
{
if(T1.entry_index[T1.d]==0)
64. while(T1.restore_all_confirm!='Y'&&T1.restore_all_confirm!='y'&&T1.restore_al
l_confirm!='N'&&T1.restore_all_confirm!='n')
{
cout<<"nntPlease re-enter a corrent option : ";
cin>>T1.restore_all_confirm;
}
if(T1.restore_all_confirm=='y'||T1.restore_all_confirm=='Y')
{
for(T1.e=1;T1.e<=100;T1.e++)
if(T1.entry_index[T1.e]==0)
{
T1.current++;
T1.entry_index[T1.e]=1;
}
cout<<"ntAll deleted items have been succesfully restored.";
cout<<"ntPress any key to return to the main menu...";
getch();
A1.tasks();
}
else
{
cout<<"nntNo entry has been restored.";
cout<<"ntPress any key to view the recycle bin...a";
getch();
A1.recycle_bin();
65. }
}
if(T1.entry_index[T1.restore_serial]==0)
{
cout<<"ntAre you sure you want to restore entry "<<T1.restore_serial<<" : ";
cin>>T1.restore_confirm;
while(T1.restore_confirm!='Y'&&T1.restore_confirm!='y'&&T1.restore_confirm!
='N'&&T1.restore_confirm!='n')
{
cout<<"nntInvalid input !!! ";
cout<<"ntPease re-enter a correct option (Y/N) : a";
cin>>T1.restore_confirm;
}
if(T1.restore_confirm=='Y'||T1.restore_confirm=='y')
{
T1.current++;
T1.delete_count=0;
T1.entry_index[T1.restore_serial]=1; //index value set to 1
cout<<"ntEntry succesfully restored!!!";
cout<<"ntPress any key to continue....a";
getch();
A1.after_restore();
}
else
{
66. cout<<"ntEntry not restored!!!"; //index value kept 0
cout<<"ntPress any key to continue...na";
getch();
A1.after_restore();
}
}
if(T1.entry_index[T1.restore_serial]==1)
{
cout<<"ntThe entry is already present in the database.";
cout<<"ntPress any key to continue...";
getch();
A1.recycle_bin();
}
if(T1.restore_serial<0||T1.restore_serial>100||T1.entry_index[T1.restore_serial]==-
1)
{
cout<<"ntInvalid serial number";
cout<<"ntPress any key to continue...";
getch();
A1.recycle_bin();
}
} //end of function
void all::after_restore()
{
67. cout<<"nnnttWHAT DO YOU WANT TO DO NOW? ";
cout<<"ntt1. Restore more entries ";
cout<<"ntt2. Return to main manu ";
cout<<"nnttPlease enter your choice : ";
cin>>T1.after_restore_choice;
switch(T1.after_restore_choice)
{
case 1:
A1.recycle_bin();
break;
case 2:
A1.tasks();
break;
default:
cout<<"nnntSorry, wrong choice ";
cout<<"ntValid choices are 1 and 2 ";
cout<<"ntPress any key to continue......";
getch();
A1.after_restore();
}
} //end of function
void all::exit_function()
{
if(T1.serial==0)
68. {
cout<<"nnnntYou have not used the software.";
cout<<"ntIt is recommended that you should not exit.";
cout<<"ntPress any key to continue......a";
getch();
cout<<"nnntAre you sure you want to exit (Y/N) ? ";
cin>>exit_answer;
while(exit_answer!='Y'&&exit_answer!='y'&&exit_answer!='N'&&exit_answer!='
n')
{
cout<<"nntInvalid input !!! ";
cout<<"ntPease re-enter a correct option (Y/N) : a";
cin>>exit_answer;
}
if(exit_answer=='y'||exit_answer=='Y')
{
cout<<"a";
exit ;
}
else
A1.tasks();
}
cout<<"nnnttt ***SOFTWARE DETAILS***n";
cout<<"nntDeveloper : Sakshi , Shweta , Sanjit "<<"n";
cout<<”n NATIONAL INSTITUTE OF TECHNOLOGY KURUKSHETRAn”;
69. cout<<"tProgramming Language : C++ "<<"n";
cout<<"ntHope you like it..."<<"n";
cout<<"nntThanks for trying this "<<"n";
cout<<"nnntPress any key to continue........"<<"n";
getch();
exit(0);
} //end of function