Minor Project End Term Report
Minor Project End Term Report
PROJECT REPORT
For
Prepared by
Department of Systemics
School Of Computer Science
UNIVERSITY OF PETROLEUM & ENERGY STUDIES,
DEHRADUN- 248007. Uttarakhand
Table of Contents
Topic Page
No
Table of Content
1 Project title
2 Abstract
3 Introduction
Purpose of the Project
Target Beneficiary
Project Scope
Project Description
Data/ Data structure
SWOT Analysis
Project Features
Design and Implementation Constraints
Project flowchart
System Requirements
User Interface
Protocols
Non-functional Requirements
Performance requirements
Software Quality Attributes
4 Literature review
5 Problem Statement
6 Objectives
7 Methodology
8 Pert Chart
9 Results
10 References
1. PROJECT TITLE
Occasionally, you have minor health problems that require you to consult a
doctor or visit your nearest hospital for treatment. A few online services will
give you the power to communicate directly with the doctors of your choice as
and when required for all your minor problems. Through our project, we aim to
create a similar application that will help users get a diagnosis for their disease
from the comfort of their homes. Moreover, if the patient chooses, they can also
see a list of nearby doctors available for further consultation/check-ups.
3. INTRODUCTION
Under a manual system, you would have to first wait in a queue to make an
appointment with the doctors and wait for your time to meet them and discuss
your health problems. You also would have to provide your information and
other reports, most of the time at different places, such as the medical store,
which is again a burden of carrying documents. In order to see the doctor, you
must physically be present in his cabin. Patients have to visit on the last days to
consult with the doctor again and would run the risk of meeting the doctor when
they do not have an appointment.
Under a manual system, the only accepted payment method is cash, and patients
need cash at that time to avoid difficulties and being unable to get the necessary
treatment. All of this is a tedious and long process, and time is of utmost
importance regarding one's health. All the manual processes have been
automated through this system to make a truly online system to provide the
contact details of online doctors and nearby. Patients have to provide their basic
details (such as age, weight, and sex) and then choose from a list of symptoms
that would be provided by our user interface that best describes their current
state of being.
With this information, the program could diagnose the patient's disease and
show them a potential list of doctors that specialize in or treat that disease.
Through this panel, patients can select the doctors and view their working hours
and appointment slots and how and where to contact them (this prototype is
currently limited to the city of Dehradun). For the diagnosis part, the program
will employ conditional probability, which would take in input from the patient
(input being the user's symptoms) and then gives an output. It is sometimes
complicated for patients to schedule an appointment owing to urgency,
schedules, or not knowing which doctor to visit for what ailment. As for
booking an appointment, there are various factors that you need to consider,
such as the experience the doctor has if their location is feasible for you to visit
or what are their availability hours. Also, one cannot always go to a doctor's
clinic to book an appointment personally, wait for hours in the waiting line, or
reach the clinic on the doctor's day off. Thus, to eradicate these issues, we are
designing a Smart Healthcare Support System.
The online system we design aims to diagnose the patient's disease by providing
them with a list of symptoms. The patient can choose multiple symptoms, and
accordingly, they shall be diagnosed with the disease they may have. Along
with a disease prediction model, we aim to provide the user with a list of
doctors in their city that they could refer to. Currently, this prototype is limited
to Dehradun. The list would also inform the patient of the doctor's availability
hours, days off, and how far the clinic is from their (the patient's) residence so
that a patient can choose a doctor according to their convenience.
Purpose of the Project
The project's main aim is to give the patients a diagnosis based on their
symptoms using Conditional Probability and also provide them with a list of
doctors to choose from. This would save the patients' time and effort to book an
appointment physically, as now all the information they need is just one click
away.
Target Beneficiary
The target beneficiaries of this project are people local to Dehradun who need to
book appointments with doctors on an urgent basis or otherwise. For booking an
appointment, the patient wouldn't need to search up a list of multiple doctors
around the city, they shall be provided with a list of doctors to choose from, and
they can do so by taking into consideration the location and experience of the
doctor in question.
Project Scope
Our project's objective is to provide the user with the most likely diagnosis of
their ailment based on their symptoms. The prediction would be made using
Conditional Probability. The prototype we build shall be hosted on the cloud,
and all the data needed will also be stored on the cloud.
PROJECT DESCRIPTION
● Map Data structure: A hashmap stores values based on a key, i.e., a key
and value pair. Each key and value pair is known as an entry. A hashmap
contains unique keys.
SWOT Analysis
Strength: The primary strength of our project is that it can help people diagnose
their disease on their own and help them contact nearby doctors quickly.
Additionally, the user can find a doctor specializing in treating that disease
without searching elsewhere. Using Conditional Probability in our project
makes it wise enough to understand the patterns in symptoms and make
conclusions about the diseases.
Opportunities: Our project has a vast scope for growth since this project can be
scaled up to include multiple diseases so that the model can make better
predictions. Since this project is in the medical field, we can add numerous
features that are needed in the current medical field, such as an automated blood
bank and ambulance tracking system. This project can also be used for various
other business purposes, say, a health system for employees or patients in
hospitals and medical stores.
Threats: Since the model does not have a large dataset, its accuracy might be
less than 100%. Due to similar symptoms between two or many diseases, it
might diagnose the user with the wrong disease. The lack of proper security
protocols might lead to the doctors' information being accessed by anyone on
the Internet.
Project Features
Our project employs a model which helps make our program smart. The model
will learn from pre-existing trends and patterns between diseases and symptoms
and conclude to help better predict the users' disease.
1. Networking issues
2. Storage issues
3. Language constraint
4. Lack of proper dataset.
User Interface
We are focusing on the patient's interface and using HTML, CSS, JavaScript,
and PHP to create the interface. UI will consist of links for the following pages:
Home, blog and reviews, self-diagnosis, contact the doctor, and SOS. The
diagnosis page will take inputs from the user and get their basic details such as
Name, Age, Sex, and details about any previous diseases. After collecting this
data, it will display the user with some inbuilt options for symptoms, the user
will be able to select the symptoms, and this data will be fetched to our ML
model. After diagnosis, users will get an option about whether they want to
contact a doctor or not. If they select yes, then the contact the doctor page will
open, where the list of the doctors will be presented to the user, and further, they
can sort the doctors based on rating or experience.
Protocols
Performance requirements
The following are the four basic requirements needed:
Testability: Our project can be easily broken down into sub-components based
on the services used. Each service of our project can be individually tested and
verified for use.
4. LITERATURE REVIEW
From the research papers, we took reference for our website as to what could be
included and how the interface interacts with the user should look. Upon
researching and going through multiple healthcare sites, such as 1mg, we
observed that these sites ask the user what symptoms they have and what doctor
they would like to visit. For example, a general physician or a gynaecologist
now, at times, the patient may need to be made aware of what doctor they
should visit for the symptoms that they are suffering from. Thus we designed
the idea to provide the patients/ users with a list of doctors relevant to the
disease they might have. Hence, we are trying to diagnose or point in a direction
as to what disease the user may have and suggest the doctors accordingly.
We are aware that the diagnosis made would not always be accurate; thus, we
are also providing the patients with a list of doctors that they could and should
refer to because taking unprescribed medicine could be harmful to the patients.
Now one may ask what the purpose of our designing such a project is. The
purpose is to provide the users with a diagnosis, but at the same time, we do not
want to discourage the users from visiting doctors. Rather, we are helping them
curate from a long list of probabilities of what they might be suffering through
and help them not waste their precious time in finding what doctor to visit for
their condition. Most of the healthcare sites that exist in the market provide the
option for the user to order medicines. Thus, we decided not to include that in
our module as better options are already available.
Additionally, we have taken reference for our logic from ML models, one of
them being the Naive Bayes algorithm. This model is based on Bayes's theorem,
which, in turn, is based on conditional probability. Conditional probability is the
likelihood that an event or outcome might occur, given that a previous event or
outcome has already occurred. We have used this concept in the prediction of
the disease. Initially, we were making an ML model and would have trained it
with multiple data sets to predict the disease. However, as we are doing this
project for our minor 1, we have just decided to implement ML concepts due to
language constraints.
5. PROBLEM STATEMENT
To make a Smart Healthcare Support System that allows users to select their
symptoms, get a diagnosis and list doctors that could treat their disease.
6. OBJECTIVES
• To offer suitable doctors based on the disease, their distance, consultation fees
and experience of the doctor.
7. METHODOLOGY
The methodology is divided into two categories: the module as a whole and
only how the doctors' details are displayed.
Firstly, we shall take the first one onto consideration.
Our main module talks about taking in the input for the symptoms the user
suffers. The user interface of our website shall do this. Through the user
interface, the user/ patient would be able to choose to form a list provided that
all are the symptoms they have.
After this, the algorithm would predict the disease based on its symptoms. This
prediction of the disease is made with the help of a dataset that we've taken that
has multiple entries for a particular disease for maximum prediction accuracy.
Now, for symptoms that are common within multiple diseases, we've used the
concept of conditional probability. For example, the user has selected fever and
vomiting. Therefore, we check the conditional probability that a person may
have malaria or dengue if they have a fever and have been puking.
After the prediction of the disease, the user can view a list of doctors
specializing in treating that specific disease or the group of diseases in which
the specific disease lies. Along with this, they would also be provided with the
doctor's contact information, their address, and their availability hours.
The web page will create a text file for all the symptoms the user has chosen
and store it near the algorithm's code. After this, the algorithm reads the file,
uses a delimiter, separates all the symptoms, and stores all the symptoms in a
string array.
After this, we create a hash map for symptoms and diseases. Now, what is a
symptoms hash map? It is a string-to-integer hash map where the key is the
symptom, and the value is an integer. Here, all the integers corresponding to the
keys are zero because the code contains all the symptoms in it, so until the
symptoms of the user are read, its value in the hash map remains zero; it
becomes one the moment the user selects that particular symptom.
The other hash map is the disease hash map which has a string as a key and a
double as the value initially, the double value is zero because it's their current
probability of occurring, which would later be updated as we calculate the
probability.
Now moving on to the main part of the algorithm, we will iterate through the
string array of the symptoms that the user has entered and compare the
symptoms to the values in the hash map. Whenever there is a match found, the
value pair corresponding to the key that is the symptom is updated to one,
indicating that a match has been found.
After this, we calculate the probability of all the diseases. We are using the
conditional probability of one symptom concerning that disease to determine
whether that disease has been selected or not. All of these are calculated and
stored in an array. After being stored in an array, we use a for loop to update the
disease hash map, and we keep updating each disease's value with its respective
probability. Then we sort the array in descending order because we need the
diseases with the highest probability of occurring at the top. After sorting, we
retrieve the top three values of the array, and then we get the keys of the disease
hash map using these probability values. We then calculate the percentage of
these diseases occurring and display this as the output.
Now we shall consider the second module. After the diagnosis of the disease,
this module shall work. It is responsible for fetching the data from a CSV file
we had created that contains all real-time details we had researched and
collected of different doctors through the city of Dehradun. This data would
then be retrieved from the CSV file and stored in a Map data structure. The key
for the Map is a string variable, which contains information about what the
doctor specializes in, and the value is a list that contains all the details of the
doctors.
After the diagnosis, this module helps display the details of relevant doctors.
8. PERT CHART
9. RESULTS
The objectives of our project have been achieved. Here are a few snapshots of
the code that we've implemented.
USER INTERFACE:
CODE:
THE OUTPUT:
10.REFERENCES
https://github.com/brihad24/Minor-Project-1
Changes suggested: