Professional Documents
Culture Documents
Abstract
Life is becoming too busy to get medical appointments in person and to maintain a proper
health care. Also, if we are at an unknown location, it is very difficult to find the proper
hospital. Even maintaining our all paper-bound health care record is inconvenient. To ad-
dress all the above problems we propose a system, Dr on click. It is a combined system
consisting of an android app for patient and web app for the doctor to digitize the doctor
patient communication. The android application will help the patient to search doctors, book
appointment, maintain digital health-care records. The web portal will help the doctor to set
his/her availability, manage patients, give digital prescription,etc.
Acknowledgement
“Dr on Click” has been a subject with tremendous scope to research upon, which leads
one’s mind to explore new heights in the field of Computer Engineering, and its miscella-
neous applications. We dedicate all our project work to our esteemed guide Dr. D. B. Kshir-
sagar(H.O.D. Computer Department) whose interest and guidance helped us to complete
the work successfully as well as he has provided facilities to explore the subject with more
enthusiasm. This experience will always encourage us to do our work perfectly and pro-
fessionally. We also extend our gratitude to Dr. A. B. Pawar (Project Coordinator). We
express our immense pleasure and thankfulness to all the teachers and staff of the Depart-
ment of Computer Engineering, Sanjivani College Of Engineering, Kopargaon for their co-
operation and support. Last but not the least, we thank all others, and especially our friends
who in one way or another who helped us in the successful completion of this project.
Contents
1 INTRODUCTION 1
1.1 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Review of Conference/Journal Papers and Relevant Theory . . . . . . . . . 1
1.3 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 REQUIREMENT ANALYSIS 4
2.1 Requirement Specification . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Normal Requirements . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Expected Requirements . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 Excited Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Requirement Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1 Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.2 Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . 8
3 SYSTEM MODEL 9
3.1 Process Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 System Breakdown Structure(Modules) . . . . . . . . . . . . . . . . . . . 12
3.3 Project Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.1 Estimation in KLOC . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.2 Efforts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.3 Development time in months . . . . . . . . . . . . . . . . . . . . . 13
3.3.4 Total Time Required for Project Development . . . . . . . . . . . . 14
3.3.5 Number of Person Required(N) . . . . . . . . . . . . . . . . . . . 14
4 SYSTEM DESIGN 15
4.1 Project Scheduling and Tracking . . . . . . . . . . . . . . . . . . . . . . . 15
4.1.1 Project work breakdown structure(Analysis) . . . . . . . . . . . . . 15
4.1.2 Project work breakdown Structure(Implementation) . . . . . . . . . 16
4.2 Task Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5 RISK MANAGEMENT 41
5.1 Risk Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2 Strategies Used To Reduce Risk . . . . . . . . . . . . . . . . . . . . . . . 42
5.3 Risk Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4 Feasibility Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6 TECHNICAL SPECIFICATION 45
6.1 Technology Details Used in Project . . . . . . . . . . . . . . . . . . . . . 45
6.1.1 Front-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.1.2 Back-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.1.3 Installing Android Studio . . . . . . . . . . . . . . . . . . . . . . . 45
6.1.4 Installing Sublime Text . . . . . . . . . . . . . . . . . . . . . . . . 46
6.1.5 cPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7 IMPLEMENTATION DETAILS 48
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2 Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2.1 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2.2 MySQL and PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.3 Important Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.4 Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.4.1 Decision Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.5 Major Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8 SOFTWARE TESTING 59
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.1.1 Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.1.2 Integration Testing . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.1.3 Testing Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2 Test Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.1 Unit Testing Test Cases . . . . . . . . . . . . . . . . . . . . . . . . 61
9 EXPERIMENTAL RESULTS 65
10 USEFULNESS OF PROJECT 76
REFERENCES 78
List of Figures
List of Tables
C HAPTER 1
INTRODUCTION
Paper:
Appointment scheduling algorithm considering routine and urgent patients.[1]
Authors: Jiafu Tang, Chongjun Yan, Pingping Cao
This paper derives a solution approach to solve the outpatient appointment schedule prob-
lem for given numbers of routine and urgent patients considering a no-show probability to
minimize the weighted sum of average patient wait time, physician idle time and overtime.
An exact deterministic service time method is proposed to find the optimal schedule. A
heuristic algorithm based on two kinds of shifting policies (HE-TKS) is developed to solve
the appointment schedule, which gives a local optimal solution as an upper bound for the
optimal schedule.
Paper:
Whats Up Doc: A Doctor Appointment Application System Using Android.[2]
Authors: Dharani Kantilal Prajapati
This paper proposes an android application for taking appointment. The patient can book
the appointment through his/her mobile phone. The doctor will come to know the number of
patients he has to attend whole day.
Paper:
Mr. Doc: A Doctor Appointment Application System.[3]
Authors: Shafaq Malik, Nargis Bibi, Sehrish Khan, Razia Sultana, Sadaf Abdul Rauf
This paper proposes a system of android application and web application. The android
application Mr. Doc acts as a client whereas the database containing the doctors details,
patients details and appointment details is maintained by a website that acts as a server.
Paper:
Survey on Data Mining Technique for disease Prediction.[4]
Authors: Durga Hinge, S. K. Gaikwad
In this paper, Various Data Mining algorithm like Decision Trees, Bayesian Classifier, mul-
tilayer perceptron, Single Logistic and Ensemble technique are utilized to determine heart
ailments. Also, different data mining classification procedure are analyzed for testing their
precision ad execution.
Paper:
Multi diseases prediction using Data Mining Technique.[5]
Authors: K. Gomathi, Dr. D. Shanmuga Priyaa.
This paper analyzes data mining techniques which can used for predicting different disease.
This paper revived the research paper which mainly concentrate on predicting heart disease,
Diabetics and Breast cancer.
Paper:
Disease Predicting system using data Mining Techniques.[6]
Authors: M. A. Nishara Banu, B. Gomathy.
In this paper, heart disease is predicted using different classification algorithm. Using the
medicinal data (Data mining over a health care record). The technique used are data mining
techniques like Association rule, Clustering, Decision Tree, Once the adequate amount of
data is available after the data mining then Algorithms like decision tree algorithm is im-
plemented to analysis the different kind of heart base problems. Clustering algorithm like
K-means are the data mining techniques which can be used to validate the accuracy of pre-
dicted disease.
1.3 Scope
1. Health care provider have an opportunity to connect with patient.
2. This application will avoid the time delay caused by traditional way of booking ap-
pointment and sending report, by replacing it with a smart system.
3. Replaces the traditional way to store any patients healthcare record with real-time
database.
4. This app can be extended across a variety of devices and platform which offers func-
tionality that can be used on regular basis.
1.4 Objectives
Facilitates patient
4. To give alerts for their upcoming appointments as well as for medicine dosage.
Facilitates doctor
2. To reschedule all appointments for a particular day in case of emergency and can
recommend an alternative doctor to these patients.
C HAPTER 2
REQUIREMENT ANALYSIS
Normal Requirements
VNR1: This requirement gets satisfied only if the patient is familiar of using Android phone.
VNR2: This requirement gets satisfied only if the patient can login to the system.
VNR3: This requirement gets satisfied only if the patientFLs GPS is on.
VNR4: Implementation of this requirement is done only if the doctor has specified his sched-
ule the day before.
VNR5: This requirement gets satisfied only if the patient has used the system before.
VNR6: Implementation of this requirement is done only if the user has Internet connection.
VNR7: This requirement gets satisfied only if the other doctor(suggested) is registered on
the system
Expected Requirements
VER1: This requirement gets satisfied only if easy and compatible GUI is used.
VER2: This requirement gets satisfied only if the user has fast Internet connection.
VER3: This requirement gets satisfied only if the requirement E2 is satisfied.
VER4: Implementation of this requirement is done only if, the hospital permits walk-in pa-
tients.
VER5: Implementation of this requirement is done only if the patient has set reminders on
the application
VER6: This requirement gets satisfied only if the requirement E3 is satisfied.
VER7: This requirement gets satisfied only if the enrollment and modification rights are
given to Admin only.
Excited Requirements
VXR1: This requirement gets satisfied only if the symptoms given by the patient lies within
the set of symptoms in the system.
VXR2: Implementation of this requirement is done only if the hospital permits this.
VXR3: This requirement gets satisfied only if the other doctor uses the same application.
VXR4: Implementation of this requirement is done only if the doctor has specified changes
in his schedule and the requirement E2 is satisfied.
VXR5: This requirement gets satisfied only if the pathologist is registered on the system.
C HAPTER 3
SYSTEM MODEL
Iterative Model
In the Iterative model, iterative process starts with a simple implementation of a small set of
the software requirements and iteratively enhances the evolving versions until the complete
system is implemented and ready to be deployed.
An iterative life cycle model does not attempt to start with a full specification of require-
ments. Instead, development begins by specifying and implementing just part of the soft-
ware, which is then reviewed to identify further requirements. This process is then repeated,
producing a new version of the software at the end of each iteration of the model.
3. New technologies like WEKA is used in the system and are being learned by the
development team while working on the project.
4. There are some high-risk features and goals in the system, which may change in the
future.
2. Design:
In this phase, as per requirements specified software team designs the software.the sys-
tem is broken down into various modules and submodules and the connection between
the modules is defined. Different UML diagrams are also drawn like class diagram, ac-
tivity diagram, data flow diagram,state transition diagram etc for better understanding
of flow of data between doctor and patient .
3. Implementation:
Programs are written and system designed (data, flow, relationships) is converted into
programs. Android development and web application development (implementation)
should be done in parallel.
4. Testing:
Test the software by using different software testing techniques. Most common are
white box, black box and gray box testing. In Dr on Click acceptance testing is much
more important along with all the mentioned testings.
5. Deployment:
Deploy the software in working environment of doctor and patients.
6. Review:
Review is performed to check performance and validity of developed software. If there
is any problem or any modification in requirements are coming from dr or patients then
start a new iteration and again start from requirement gathering and so on.
7. Maintenance:
When software is deployed, there can be bugs, faults or requirement for updation.
Maintenance includes debugging and new feature addition.
Module Details
Following are the modules that will be implemented in this system
1. Admin
2. Doctor
3. Patient
4. Pathologist
Module 1 : Admin
Admin register the hospital via web portal. Admin can add new departments like neurolo-
gist,orthopedic etc as per availability. Also, he can add Doctors during their registration time
itself. Admin can also delete the Hospital, departments and doctors when necessary.
Module 2 : Doctor
Doctor create their schedule of Appointment as per his/her availability.Meanwhile he can
update his schedule.While consulting a patient, doctor can view his entire medical history.
After consultancy doctor give the digital prescription to patient. Doctor Suggest the various
test to Patient after consultancy and recommend pathologist for the same . Doctor can view
the report of patient send by pathologist.In case of any emergency, doctor can set an emer-
gency leave message and cancel his appointments. Doctor can recommend alternative doctor
for such patients. Doctor can also share case history of any patient with another doctor.
Module 3 : Patient
Patient can search the doctor based on selected specialist i.e.Orthopedic,General physician
etc. or by providing symptoms to the Android app.The application provides a list of doctor
from which the patient can choose one. Patient can check doctors availability and take online
appointment which avoid the hassle of queuing and filling out registration forms. Patient
can request for various alerts/notifications as per his prescription schedule given by doctor.
Patient can view his own report forwarded by Pathologist and upload it to doctor.Patient can
also view his entire medical history.
Module 4 : Pathologist
The test recommend by doctor to patient is also viewed by Pathologist. Pathologist can
generate test report and send it to respective patient.
3.3.2 Efforts
The Efforts required in person/month for implementation can be estimated as follows
C HAPTER 4
SYSTEM DESIGN
T1: Communication:
Software development process starts with the communication between customer and devel-
oper. According to need of project, we gathered the requirements related to project.
2. Doctor
3. Patient
4. Pathologist
Admin
3. Edit Details:If modifications in any hospitalFLs details are required,it can be done by
the admin.
Doctor
3. View Patient History:Doctor can view medical history of the patients that have booked
appointment.
4. Give Digital Prescription:To minimize on-paper records, the system facilitates doctor
to give digital prescription.
5. Recommend Pathologist:If the patient requires to undergo any tests, doctor can rec-
ommend a pathologist to the patient.
6. Emergency Leave:In case of any emergency, doctor can cancel all the appointments
scheduled for a particular period and accordingly the patient will be notified.
8. View Report of Attended Patient:The doctor can view reports of patient whom
he/she have suggested to undergo certain tests.
Patient
1. Registration:Patient need to register with the system for using this application.
3. Choose Doctor:
4. Check Availability and Book Appointment:Once the patient has selected the doc-
tor, he/she can view the availability status of that doctor and book the appointment
accordingly.
5. View and Send Reports:If the patient visits a pathologist who is not registered on the
system, patient can upload test reports from any remote location.
6. View History:Patient can view his medical history at any time on the android applica-
tion.
7. Set Medicine Reminder:Patient can set reminder to get notification for medicine
dosages.
Pathologist
2. Upload Test Report:The pathologist can upload test reports to respective patients
account.
T5 : Literature Review.
T6 : Determine Process model, KLOC and Breakdown Structure.
T7 : Detail Information Gathering of each module
T8 : Project Scheduling
T9 : UML Modeling.
T10: Mathematical Modeling.
T11: Risk Analysis and Management.
T12: Collection of dataset.
T13: GUI design.
T14: Database Design.
T15: Implementation of Admin module
T16: Implementation of Doctor module.
T17: Implementation of Pathologist module.
T18: Implementation of Patient module.
T19: Implementation of appointment scheduling mechanism.
T20: Implementation for digital prescription.
T21: Implementation for history retrieval.
T22: Implementation of Emergency leave mechanism.
T23: Implementation for choosing doctor.
T24: Implementation for uploading report.
T25: Result analysis and documentation.
T26: Testing.
T27: Making required modification.
T28: Deployment of doctor on click.
Tasks E. Start Time A. Start Time E. End Time A. End Time Developers
T1 18/06/18 19/06/18 26/06/18 27/06/18 D1,D2,D3,D4
T2 27/06/18 28/06/18 30/06/18 04/07/18 D1,D2,D3,D4
T3 01/07/18 05/07/18 20/07/18 25/07/18 D1,D2,D3,D4
T4 21/07/18 27/07/18 28/07/18 02/08/18 D1,D2,D3,D4
T5 29/07/18 02/08/18 31/07/18 05/08/18 D1,D2,D3,D4
T6 01/08/18 04/08/18 05/08/18 12/08/18 D1,D4
T7 01/08/18 04/08/18 05/08/18 12/08/18 D2,D3
T8 06/08/18 13/08/18 15/08/18 23/08/18 D1,D4
T9 16/08/18 24/08/18 18/08/18 27/08/18 D1,D2,D3,D4
T10 19/08/18 28/08/18 28/08/18 07/09/18 D1,D2,D3,D4
T11 29/08/18 08/09/18 07/09/18 15/09/18 D2,D3
T12 08/09/18 16/09/18 11/09/18 19/09/18 D1,D2,D3,D4
T13 12/09/18 20/09/18 17/09/18 30/09/18 D1,D2,D3,D4
T14 18/09/18 01/10/18 26/09/18 08/10/18 D1,D2,D4
T15 20/12/18 26/12/18 24/12/18 07/01/19 D1,D2
T16 25/12/18 07/01/19 05/01/19 15/01/19 D1,D2
T17 06/01/19 11/02/19 09/01/19 14/02/19 D1,D2
T18 20/12/18 12/01/19 09/01/19 19/01/19 D3,D4
T19 10/01/19 18/02/19 24/01/19 23/02/19 D1,D2,D3,D4
T20 25/01/19 01/03/19 03/02/19 05/03/19 D1,D2,D3,D4
T21 04/02/19 12/03/19 11/02/19 19/03/19 D1,D2,D3,D4
T22 12/02/19 28/03/19 17/02/19 02/04/19 D1,D2,D3,D4
T23 18/02/19 14/03/19 09/03/19 21/03/19 D1,D3,D4
T24 18/02/19 28/03/19 05/03/19 30/03/19 D2
T25 10/03/19 29/03/19 19/03/19 04/04/19 D1,D2,D3,D4
T26 20/03/19 28/03/19 08/04/19 03/04/19 D1,D2,D3,D4
T27 09/04/19 25/03/19 18/04/19 04/04/19 D1,D2,D3,D4
T28 19/04/19 03/04/19 30/04/19 05/04/19 D1,D2,D3,D4
Time-line Chart
Use case involves a sequence of interactions between the initiator and the system, possibly
involving other actors.
Class Diagram
In design specification it can be used to specify interfaces and classes that will be imple-
mented in an object oriented program.
Sequence Diagram
Activity Diagram
Activity diagrams are very similar to a flowchart because we can model a work flow from
activity to activity.
State chart diagrams model the dynamic behavior of individual classes or any other kind of
object.They show the sequences of states that an object goes through, the events that cause a
transition from one state to another and the actions that result from a state change.
Data flow diagram (DFD) is a graphical technique, which is used to represent information
flow, and transformers those are applied when data moves from input to output. DFD may
further partitioned into different levels to show detailed information flow.
In control flow diagram we are considering various events related with data flow.
A component diagram is used show the internal structure of a component, the provided
and required interfaces of the encompassing component can delegate to the corresponding
interfaces of the contained components
Deployment Diagram
A deployment diagram shows the allocation of processes to processors in the physical design
of a system. A deployment diagram may represent all or part of the process architecture of a
system.
Where,
S=System
I=Input
P=Process
R=Rules
O=Output
Input
{I} is set of all inputs giving to system.
Process
{P} is set of processes followed.
Rules
{R} is set of rules.
R = {R1, R2}
Output
{O} is set of output expected from system.
O1 = List of specialist.
O2 = Distance of hospital from current location
O3 = Scheduled appointment
O4 = Alerts
O5 = Patient History
This table will contain information of all the hospitals in the system.
Hospital id variable is the id of the hospital to which the department belongs to.This table
will contain information of all the departments of a particular hospital.
Hospital id variable is the id of the hospital to which the doctor belongs to. Department id
variable is the id of the department to which the doctor belongs to.This table will contain
information of all the doctors in a particular department.
Table: Pathologists
This table will contain information of all the Pathologist registered in the system.
Hospital id variable is the id of the hospital to which the doctor belongs to. Department id
variable is the id of the department to which the doctor belongs to.Doctor id is the unique id
of a particular doctor.This table will contain all the information of a doctors appointments.
Hospital id variable is the id of the hospital to which the doctor belongs to. Department id
variable is the id of the department to which the doctor belongs to.Doctor id is the unique id
of a particular doctor.This table will contain the dates form when the doctor is on leave and
upto which date.
Hospital id variable is the id of the hospital to which the doctor belongs to. Department id
variable is the id of the department to which the doctor belongs to.Doctor id is the unique id
of a particular doctor.This table will contain the reports of previously visited patients.
Table:Patient
This table will contain information about all the patients registered into the system.
Patient id variable is the unique id of a particular patient. This table will contain information
of all the prescriptions the patient has received.
C HAPTER 5
RISK MANAGEMENT
Risk Management involves different kind of risks that might affect the project schedule or
quality of the software being develop and monitoring the actions to avoid the risk. Basically
risk management is the process of identifying, assessing, responding to, monitoring, and re-
porting risks. This Risk Management Plan defines how risks associated with the project will
be identified, analyzed and managed. Risk management is an ongoing process that continues
throughout the life of a project. Effective risk management makes easier to deals with the
problem which occurs while development of process.
Business Impact
Technical Risk
R11: Lack of proper training and less knowledge of programming leads a moderate risk. It
will delay product development and deployment.
R12: Because the scope of the project is simply too massive, it may be hard to complete it
in given span of time with 4 people.
Process Risk
such risk.
Technical Feasibility
This study is carried out to check the technical feasibility, that is, the technical requirements
of the system. Any system developed must not have a high demand on the available technical
resources. This will lead to high demands on the available technical resources. This will
lead to high demands being placed on the client. The developed system must have a modest
requirement, as only minimal or null changes are required for implementing this system.
P Class
NP-Complete
The problems which belong to the NP class and are as hard as any problem in NP are called
NP-complete problems.If a polynomial time algorithm exists for any of these problems, all
problems in NP would be polynomial time solvable and called as NP-complete problem.
sub
NP Hard
These are problems for which there are no efficient solutions are found. Generally, com-
plexity of these problems is more than P, NP, NP-Complete. These may include higher
multiplicative constants, exponents terms or high order polynomial.
As “Dr on Click” is having solution which can be achieved in polynomial time with the
help of deterministic algorithm, it belongs to P-Class.
Cost Feasibility
This study is carried out to check the economic impact that the system will have on the orga-
nization. The amount of fund that the customer can pour into the research and development
of the system is limited. The expenditures must be justified. Thus, the developed system
as well within the budget and this was achieved because most of the technologies used are
freely available.
C HAPTER 6
TECHNICAL SPECIFICATION
6.1.1 Front-end
1. Sublime text editor
2. Android studio
6.1.2 Back-end
1. MySQL(cPanel)
3. Choose components like Android SDK, Android Virtual Device to install along with
Android Studio
2. Now, run the executable file. This defines the environment variables. When you run
the executable file, you can observe the following window on your screen. Click Next.
3. Now, choose a destination location to install Sublime Text3 and click Next.
6.1.5 cPanel
cPanel is an online Linux-based web hosting control panel that provides a graphical interface
and automation tools designed to simplify the process of hosting a web site to the website
owner or the ”end user”. cPanel utilizes a three-tier structure that provides capabilities for
administrators, resellers, and end-user website owners to control the various aspects of web-
site and server administration through a standard web browser. While cPanel is limited to
managing a single website, the server administration panel of which cPanel is a part is known
as WHM, short for Web Host Manager. In addition to the GUI, cPanel also has command line
and API-based access that allows third-party software vendors, web hosting organizations,
and developers to automate standard system administration processes.
Chosen plan for hosting
Features
1. Unlimited space
3. Unlimited email
4. Unlimited sub-domains
C HAPTER 7
IMPLEMENTATION DETAILS
7.1 Introduction
Dr on Click is implemented using Android as well as Web Technologies. The An-
droid app is basically designed for the patient side and the Web Portal is designed for Doctor,
Pathologist as well as the Admin.
7.2 Database
7.2.1 MySQL
MySQL is an open source relational database management system (RDBMS) based on Struc-
tured Query Language (SQL). MySQL runs on virtually all platforms, including Linux,
UNIX, and Windows. MySQL is used to access the data stored on server through PHP
from both, the web portal as well as the Android application. The Android application uses
PHP scripting(REST API) to communicate with the centralized database.
• Connecting to MySQL database Use PHP to open and close a MySQL database con-
nection.
• Create MySQL Database Using PHP Create MySQL database and tables using PHP.
• Delete MySQL Database Using PHP Delete MySQL database and tables using PHP.
• Insert Data To MySQL Database Once you have created your database and tables then
you would like to insert your data into created tables.
• Retrieve Data From MySQL Database Fetch records from MySQL database using
PHP.
• Using Paging through PHP Show your query result into multiple pages and how to
create the navigation link.
• Updating Data Into MySQL Database Update existing records into MySQL database
using PHP.
• Deleting Data From MySQL Database Delete or purge existing records from MySQL
database using PHP.
• Edit Details:If modifications in any hospitalFLs details are required,it can be done by
the admin.
Doctor
• View Patient History:Doctor can view medical history of the patients that have booked
appointment.
• Give Digital Prescription:To minimize on-paper records, the system facilitates doctor
to give digital prescription.
• Recommend Pathologist:If the patient requires to undergo any tests, doctor can rec-
ommend a pathologist to the patient.
• Emergency Leave:In case of any emergency, doctor can cancel all the appointments
scheduled for a particular period and accordingly the patient will be notified.
• View Report of Attended Patient:The doctor can view reports of patient whom
he/she have suggested to undergo certain tests.
Patient
• Registration:Patient need to register with the system for using this application.
• Choose Doctor:
• Check Availability and Book Appointment:Once the patient has selected the doc-
tor, he/she can view the availability status of that doctor and book the appointment
accordingly.
• View and Send Reports:If the patient visits a pathologist who is not registered on the
system, patient can upload test reports from any remote location.
• View History:Patient can view his medical history at any time on the android applica-
tion.
• Set Medicine Reminder:Patient can set reminder to get notification for medicine
dosages.
Pathologist
• Upload Test Report:The pathologist can upload test reports to respective patients
account.
7.4 Algorithms
for(int i=0;i<symptoms.length;i++)
{
int flag=0;
for(int j=0;j<selected_symptoms.length;j++) {
if (Integer.parseInt(selected_symptoms[j]) == i) {
instance.setValue(trainingDataSet.attribute(symptoms[i]), 1);
flag++;
break;
}
}
if(flag==0)
{
instance.setValue(trainingDataSet.attribute(symptoms[i]), 0);
}
}
instance.setDataset(trainingDataSet);
double result=classifier.classifyInstance(instance);
disease=instance.classAttribute().value((int)result );
PackageManager.PERMISSION_GRANTED)
{
buildGoogleApiClient();
mMap.setMyLocationEnabled(true);
LatLng latLng =new LatLng(l1,l2);
mMap.addMarker(new MarkerOptions().position(latLng).title(dr_name));
mMap.setInfoWindowAdapter(new InfoWindowCustom(this));
}
}
@Override
public View getInfoContents(Marker marker) {
inflater =
(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.map_info_layout, null);
TextView title = (TextView) v.findViewById(R.id.dr_name);
title.setText(marker.getTitle());
Button bt = findViewById(R.id.bt);
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener()
{
public void onInfoWindowClick(Marker marker) {
String task="availability";
get_available_slot get_slot=new get_available_slot(MapsActivity.this);
get_slot.execute(task,marker.getTitle(),dr_id,dept_id,hosp_id);
}
});
return v;
}
<?php
$a=$dept_id."_";
$b=$a.$hosp_id;
$table_name="drof_".$b;
$table_name2=$dr_id."_".$b."_OPD";
$sql="DELETE FROM $table_name2 WHERE Date<CURDATE()";
mysqli_query($conn,$sql);
$mysql_query = "SELECT * FROM $table_name WHERE Dr_id =$dr_id ";
$mysql_query1 = "SELECT DISTINCT Date FROM $table_name2 order by Date";
$result = mysqli_query($conn,$mysql_query);
$result1 = mysqli_query($conn,$mysql_query1);
$t1[] = $row4[Dbtime];
}
}
for($i=0;$i<$count1;$i++){
echo $t1[$i].",";
}
?>
$table_name2="appointments_of_".$pid;
//insertion into opd table
$query = "INSERT INTO $table_name VALUES
(’$pid’,’$fname’,’$lname’,’$age’,’$locality’,’$dt1’,’$dt_time’)";
if(mysqli_query($conn,$query)){
if(mysqli_num_rows($result2)>0){
$row2 = mysqli_fetch_assoc($result2);
$dr_name = $row2["Doc_Name"];
$query1 = "INSERT INTO $table_name2 VALUES
(’$hosp_id’,’$dept_id’,’$dr_id’,’$dr_name’,’$dt1’,’$dt_time’)";
mysqli_query($conn,$query1);
}
echo "true";
}
else {
echo "Not successful... :(";
}
}
else{
}
$conn->close();
//message of cancellation
$message="Sorry, your appointment with Dr.". $_SESSION[’dr_name’]." has been
cancelled as the doctor has to attend an emergency case";
$sql="DELETE FROM $table_name WHERE Date< CURDATE() ";
mysqli_query($conn,$sql);
date_default_timezone_set(’Asia/Kolkata’);
$time_now=date("H:i:s");
$time2= date(’H:i:s’,strtotime(’+2 hour’,strtotime($time_now)));
$mysql_query = "SELECT * FROM $table_name WHERE (Dbtime BETWEEN ’$time_now’
AND ’$time2’) AND Date=CURDATE()";
$result = mysqli_query($conn,$mysql_query);
if(mysqli_num_rows($result)>0){
while($row = mysqli_fetch_assoc($result)){
$pid=$row["Pid"];
$mysql_query2 = "SELECT mno FROM user WHERE pid=$pid";
$result2 = mysqli_query($conn,$mysql_query2);
if(mysqli_num_rows($result2)>0){
$row2 = mysqli_fetch_assoc($result2);
$number=$row2["mno"];
//sending message of cancellation....
$fields = array(
"sender_id" => "FSTSMS",
"message" => "$message",
"language" => "english",
"route" => "p",
"numbers" => "$number",
"flash" => "0"
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://www.fast2sms.com/dev/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($fields),
CURLOPT_HTTPHEADER => array(
"authorization:
Y3KmADxCP1Et2VT8wsaLhUdlRHQpO4rb07Wg5SfzIjBnFX9GocEaonMAsTQg6N23cItjGrFuWS1H8O79",
"accept: */*",
"cache-control: no-cache",
"content-type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
}
$table_name1="appointments_of_".$pid;
$mysql_query1="DELETE FROM $table_name1 WHERE Dr_id=$drid AND Hosp_id=$hospid
and Dept_id=$deptid";
//echo "DELETE FROM $table_name1 WHERE Dr_id=$drid AND Hosp_id=$hospid and
Dept_id=$deptid";
mysqli_query($conn,$mysql_query1);
Upload Report(Pathologist)
/$pid=$_SESSION["Pid"];
$prescid=$_SESSION["prescid"];
$patho_name=$_SESSION["dr_name"];
$table_name="reports_of_".$pid;
$table_name1="prescription_of_".$pid;
if(isset($_POST["insert"]))
{
$file = addslashes(file_get_contents($_FILES["image"]["tmp_name"]));
$query = "INSERT INTO $table_name VALUES
(’’,$prescid,’$file’,’$patho_name’,CURDATE())";
if(mysqli_query($conn, $query))
{
$query1="SELECT * FROM $table_name WHERE presc_id=$prescid";
$result1 = mysqli_query($conn,$query1);
if(mysqli_num_rows($result1)>0){
$row1 = mysqli_fetch_assoc($result1);
$report_id= $row1["report_id"];
$query2="UPDATE $table_name1 SET report=’$report_id’ WHERE
presc_id=$prescid";
if(mysqli_query($conn, $query2))
{
unset($_SESSION[’pid’]);
unset($_SESSION[’prescid’]);
echo "<script>alert(’Image Inserted into Database’)</script>";
}
}
}
C HAPTER 8
SOFTWARE TESTING
8.1 Introduction
In general, testing is finding out how well something works. In terms of human be-
ings, testing tells what level of knowledge or skill has been acquired. In computer hardware
and software development, testing is used at key checkpoints in the overall process to deter-
mine whether objectives are being met. Software testing, depending on the testing method
employed, can be implemented at any time in the development process. Software testing can
be stated as the process of validating and verifying that a software program/application/prod-
uct.
after integration. Modules are typically code modules, individual applications, client and
server applications on a network etc. This type of testing is especially relevant to client-
server and distributed system. Integration testing occurs after unit testing and before valida-
tion testing.Integration testing takes as its input modules that have been unit tested, groups
them in larger aggregates, applies tests defined in an integration test plan to those aggregates,
and delivers as its output the integrated system ready for system testing.
The purpose of integration testing is to verify functional, performance, and re-
liability requirements placed on major design items.There are two major ways of carrying
out an integration test, called the bottom-up method and the top down method. Bottom-up
integration testing begins with unit testing, followed by tests of of progressively higher-level
combinations of units called modules or builds. In top-down integration testing, the highest-
level modules are tested first and progressively lower-level modules are tested after that.
C HAPTER 9
EXPERIMENTAL RESULTS
All the data of the doctors required for system was gathered from the doctors of
Kopargaon. We visited a few doctors to gather the required information need for the system.
The data required for training decision tree was obtained from UCM Machine learning repos-
itory. All the experiments for the android application were carried out android phone with
3GB RAM, 1.8 GHz octacore Qualcoll Snapdragon 636 SoC processor with Android oreo
version. All the experiments for the Web application were carried out on different browsers
like Internet Explorer, Mozilla Firefox, Google Chrome.
Results for Android Application
Dr on Click login
1. Login activity is the main Activity in Android application. Here new user can register
himself and registered user can login the system.
2. One the user logs in the Dashboard activity opens. Here user can perform various tasks
like book appointment, view and cancel appointments, set medicinal reminder, view
his/her medical history and logout.
Finding Specialist
1. Once the user clicks on book appointment two options are provided: book by specialist
or by feeding symptoms.
2. If the user chooses to find doctor by symptoms, he/she needs to choose symptoms from
a list and the system will recommend a proper specialist.
Choosing Doctor
1. Once the user clicks on a particular specialist, a list of doctors of that specialization
appears. The user can now choose any one doctor
2. After choosing the doctor next activity will show details of that doctor along with an
option to see the hospital on map.
Appointment Booking
1. Once the user clicks on see on map button, a map appears with the users current loca-
tion and the location of the hospital pinned.
2. After clicking on book appointment the user needs to choose a specific slot. Already
booked slots are disabled automatically.
1. The patient can view all his medical history along with the doctors he/she visited and
the prescription that was given.
2. Patient can also set reminder for medicine intake so that no dosage is missed.
2. Doctor, Pathologist as well as Admin can login through the same page by choosing
their respective role.
Doctor Dashboard
Doctor OPD
2. The history button will show all the previous medical history of the patient.
Digital Prescription
After examining the patient doctor can give a digital prescription to the patient in following
format.
2. Here the pathologist can see the patients that are going to visit and can upload their
reports from the same page.
Admin Dashboard
2. Here the admin can see register a new Hospital, a new department in an existing hos-
pital, a new doctor in an existing department.
3. Once registered admin can also edit these details as per request.
Observations
• The patient is able to see nearby doctors, check availability of different doctors,book
appointment and save all the medicinal records in digital form.
• The doctor can set his availability, set leave,and cancel appointments in case of emer-
gency.
• The pathologist can upload reports to the patient and the corresponding doctor.
C HAPTER 10
USEFULNESS OF PROJECT
• Saves patients time by proving online appointment booking and uploading report from
remote location.
• If patient knows the area, he/she can choose doctor by specialist and if patient is new in
the area doctor can be suggested by the app by giving symptoms the patient is suffering
from.
• Doctor can set leave for unavailability on specific days and the same will be reflected
on the mobile app.
• Doctor can reschedule all the appointments with just one click in case of emergencies.
• Avoids loss of medical records by storing them digitally which can be accessible any-
where any time.
C HAPTER 11
11.1 Conclusion
This project is basically designed to digitize the doctor, patient and pathologist com-
munication. The Android application is used to help patient for searching the hospitals with
the desired medical specialist, check doctor availability, book appointment, store all the med-
ical records digitally in the system. Using this application notifications / alerts can be send
to patient to remind about the medicines. It will useful in case of patient tends to forget for
taking the medicine.Doctors registered in the system can set their availability, cancel appoint-
ments in case of any emergency so that the patient is able to reschedule the appointment. It
helps to optimize the work of patient and doctor. Time and cost of both patients and doctors
will be saved. The Dr On Click is a simple and powerful application for society.
References
[1] Jiafu Tang, Chongjun Yan, Pingping Cao, “Appointment scheduling algorithm consid-
ering routine and urgent patients”, journal homepage: www.elsevier.com/locate/eswa
[2] Dharani Kantilal Prajapati, “Whats Up Doc: A Doctor Appointment Application Sys-
tem Using Android”, International Journal of Innovative Research in Computer and
Communication Engineering, Vol. 6, Issue 4, April 2018
[3] Shafaq Malik, Nargis Bibi, Sehrish Khan, Razia Sultana, Sadaf Abdul Rauf, “Mr. Doc:
A Doctor Appointment Application System”, Department of Computer Science Fatima
Jinnah Women University Rawalpindi, Pakistan
[4] Durga Hinge, S. K. Gaikwad, “Survey on Data Mining Technique for disease Predic-
tion”, International Research Journal of Engineering and Technology (IRJET), Volume:
05 , 01 Jan-2018.
[5] K. Gomathi, Dr. D. Shanmuga Priyaa, “Multi diseases prediction using Data Mining
Technique”, Research Gate Publication, Dec 2016.
[6] M. A. Nishara Banu, B. Gomathy,“Disease Predicting system using data Mining Tech-
niques”, International Journal of Technical Research and Applications, Nov-Dec 2013.
A NNEXURE A
Project Planner
A NNEXURE B
Plagiarism Report
A NNEXURE C