Evolutionary Computing and A Secured Expert Medical Consultation System.docx.pdf
1. Building a Secured Expert Medical Consultation System Using Evolutionary Computing Techniques
Abstract
“Evolutionary computing (EC) is the study of computational systems which use ideas and get
inspiration from natural evolution and other biological systems. These types of computing
techniques are basically designed for evolution of characteristics inherited from one generation
to another generation. They are computer-based problem-solving systems which incorporate
computational models of evolutionary processes”.[1]
This research project seeks to develop a Secured Expert Medical Consultation System. The
proposed system will make it possible for Medical Doctors to perform medical consultations with ease.
This is because the system will be able to suggest Doctor’s diagnosis, medical test and drug prescription
associated with medical information captured during medical consultation such as symptoms and reactions
of patients. The system would be able to do this by mapping a set of symptoms and conditions with a
database of diseases. The proposed system will be developed using Evolutionary Computing Techniques.
The second part of this project will answer the question: how do we secure such an expert medical
consultation system? As such, we will look at security of the system itself and security of other
components of the system such as the database of the system and also security of the server on which the
system and its database would be hosted. In this project, we will secure the system by performing
Penetration Testing on the system as the system is being developed. Some of the techniques we would
explore include SQL Injections, Dictionary attacks etc. Also, we would look at how to secure the database
by configuring the appropriate Access Controls on the Database Management System (DBMS) and
configuring the DBMS to guard against intrusion using authentication and authorization. We will also look
at Password types that will be good for such a system.
1
2. Chapter 1: Introduction and Background
1.1 Introduction
It must be stated that medical health care can be made a bit successful, timely and will yield the
expected results when an expert medical consultation system is used in administering medical
care and performing medical consultation. This type of system can be developed through the
application of artificial intelligence technologies such as machine learning, artificial neural
networks and evolutionary computing.
Evolutionary computing uses concepts that make it possible to solve some complex
problems. These problems may include finding the possible next moves in a game, deciding
which of these moves are optimal at a stage, and counteracting an opponent when any of such
moves is made. The field is also focused on optimization techniques and uses two methods to
seed new candidates when performing a search in the evolutionary computing world. These
methods are recombination and mutation. The field also derives its origin from biological
evolution. An example is when the 23 chromosomes combine to form new offspring.
It must be stated that application of concepts of evolutionary computing and can make it
possible to develop an expert medical consultation system. This is possible when we develop a
database of diseases with their symptoms and a database of medicines that are used to cure the
diseases and a database of reactions and indications and their associated medical test that will aid
in administering medical consultation.
2
3. The system that this project hopes to develop may be developed for mobile phones,
tablets and personal computers. This system can be developed on mobile platforms using mobile
programming languages such as the J2ME standard, IOS, and Android programming languages.
For Symbian phones it can be developed using C, and Python.
On personal computers it can be developed using programming languages such as Visual
Basic 10 Express, Java, C/C++, and C#. Also, on personal computers this expert system can be
developed using web technologies. There are two types of web technologies that can be used to
develop this system. These are client-based scripting languages and server-based scripting
languages. Client-based scripting languages that can be used to develop this system include
VBScript, JavaScript, Cascading Style Script (CSS) and Hypertext Markup Language (HTML).
Server-based scripting languages that can be used include, JSP, PHP ASP, ASP.Net and Python.
Additionally, concepts of embedded systems and their application can assist in
developing hardware and software that will help us measure health information such as blood
sugar, blood pressure, temperature, weight and height of a patient using sensors embedded in
those hardware that forms part of the developed embedded system.
The motivation for this research project is to leverage the power and features of android
phones to help medical doctors perform medical consultation and get the required results. What
this medical consultation system will do is to assist in medical consultation by suggesting
doctor’s diagnosis, drug prescriptions, and medical tests associated with medical information
captured during medical consultation.
3
4. 1.2 Problem Definition
The three problems that this research project seek to address are
• Developing a medical system that will assist in medical consultation
• Determining diseases that a Patient is likely to get based on medical history.
• Measuring medical information such as height, weight, temperature, blood pressure and
blood sugar.
1.3 Research Questions
● What are the best and most efficient ways of modelling diseases for development of a
medical care system for administering medical care?
● How can an expert medical consultation system be developed?
● How can we determine disease that a Patient will get based on medical history?
● How can we develop a hardware system and a software that can be used to measure
medical information such as weight, height, temperature, blood pressure and blood sugar?
1.4 Objectives of Paper
● The first goal is to model disease for the development of an expert system for diagnosing
diseases during medical consultation.
● The second goal is to optimize how to match a set of symptoms and indications to a
particular disease.
● The third goal is to find diseases that a Patient can bet based on medical history
● The fourth goal is to develop a medical equipment that can be used to measure medical
information such as height, weight, temperature, blood pressure and blood sugar.
4
5. ● The last goal is to develop an expert medical consultation system for mobile phones,
tablets and personal computers.
1.5 Definitions of the Main Fields Applied
At this stage, it is important to give definitions of the major fields that will be applied in this
research paper to solve the problems that this research project seeks to address. The first field is
evolutionary computing. The second field is embedded systems and the third term is Expert
System.
“Evolutionary computing (EC) is the study of computational systems which use ideas and
get inspirations from natural evolution and other biological systems. These types of computing
techniques are basically designed for evolution of characteristics inherited from one generation
to another generation. They are computer-based problem-solving systems which incorporate
computational models of evolutionary processes. EC provides four main methods namely Genetic
Algorithms (GA), Evolutionary Strategies (ES), Evolutionary Programming (EP) and Genetic
Programming EP”.[1]
Evolutionary Computing can also be defined as an artificial intelligence subfield closely
linked to computational intelligence involving lots of combinatorial optimization problems and
continuous optimization.[2]
An embedded system is defined as “an electronic device that has a central component
that performs computational tasks, and is designed for specific and limited functionality, and is
implemented as a component of an electrical or mechanical system.” [10]
Another definition for embedded system is “an embedded system is a combination of
hardware and software in which hardware is designed for a specific purpose and the software is
5
6. also developed for a specific purpose. The resources of such an embedded system will be scarce
since the application of the system is limited and the hardware and software are interlinked to
each other so that the system reduces the burden of cost, time and tools. Also, the core parts of an
embedded system is processors.” [11]
An Expert System is a computer system that emulates the decision-making ability of a
human expert, which aims to solve complex problems by reasoning knowledge. [13]
Another definition of Expert System is that it is a system with expertise, which is has a
vast knowledge of task-specific knowledge that has been transferred from human to a computer.
[12]
6
7. Chapter 2: Literature Review
2.1 Evolutionary Computing Terminologies
Some of the terms used in evolutionary computing are phenotypes, genotypes, chromosomes,
genes and alleles [4]. Phenotypes are a set of search space that are related to the possible
solutions in a problem [4]. Genotypes are a set of result space that are related to the possible
solution in a problem [4]. The transition from the search space, phenotypes to the results space
genotypes is encoding [4]. The transition from the results space to the search space is decoding
[4]. In some cases, the search space may be a set of integers and the result space may be a set of
binary numbers representing a search integer in the search space [4].
2.2 Evolutionary Algorithms
One of the techniques used in evolutionary computing is evolutionary algorithms. The
components of an evolutionary algorithm are representation, Evaluation or fitness function,
population, parent selection mechanism, variation operators which are recombination and
mutation, survivor selection mechanism (replacement), initialization and termination condition
[4]. Some of the classes of Evolutionary Algorithms are Genetic Algorithms, Genetic
Programming, Differential Evolution, Evolutionary Strategy, and Evolutionary Programming
[24].
2.2.1 Representation
Representation includes changing the real world into the evolutionary computing world [4]. The
possible solution set which is the set of phenotypes is encoded into objects in the evolutionary
computing world called genotypes [4]. Many synonyms are used to describe elements of the two
7
8. space [4]. The genotypes are called chromosomes [4]. Genes are placeholders and alleles
describe objects in the place [4].
2.2.2 Evaluation or Fitness Function
The evaluation function forms the basis for selection [4]. It is the requirement to adapt to. It
defines what improvements means [4]. From the problem-solving perspective, it represents the
task to solve in the evolutionary computing context [4]. Technically, it represents a procedure
that assigns a quality measure to the genotypes [4]. Typically, the procedure is composed from a
quality measure in the genotype space and the reverse representation [4]. Often the problem to
solve in an evolutionary algorithm is an optimization problem [4]. In such cases the name
objective function is used in the problem context and the fitness function is identical to or a
simple transformation of the objective function [4].
2.2.3 Population
The population is a multiset of genotypes [4]. The role of the population is to hold possible
solutions [4]. The population is the unit of evolution [4]. Genotypes are static individual objects,
not changing or adapting, it is the population that does [4].
2.2.4 Parent Selection Mechanism
The role of parent selection mechanism is to distinguish among individuals based on their quality
[4]. This is to allow better individuals to become parents of the next generation. An individual is
seen as a parent if it has been selected to undergo variation in order to create offspring [4]. The
parent selection mechanism together with the survivor selection mechanism is essential for
quality improvements [4]. In EC parent selection mechanism is usually probabilistic. Thus, high
8
9. quality individuals get a higher chance of becoming parents than those with low quality [4].
However low quality is usually given a small chance otherwise the entire search becomes too
greedy and gets stuck in a local optimum [4].
2.2.5 Variation Operators
The variation operators are mutation and recombination [4]. The review for mutation and
recombination is given below.
2.2.6 Mutation
Mutation is an operation that is performed on one genotype and produces a slightly modified
mutant [4]. As such, mutation is a unary operator [4]. A mutation operator is usually stochastic
[4]. As such, its output, which is the child, depends on a series of random choices [4]. It should
be noted that an arbitrary unary operator is not necessarily mutation [4]. Mutation in general is
supposed to cause an unbiased random change [4]. It must be noted that the variation operator
forms the evolutionary implementation of basic steps within the search space [4]. Theorems
suggesting that given sufficient time evolutionary algorithms (EA) determine a global optimum
depends on the property of each genotype representing a possible solution that can be reached by
the variation operators [4].
2.2.7 Recombination
The name for a binary operator is recombination or crossover [4]. Similar to mutation
recombination is a stochastic operator [4]. The choice on which part of the parent is combined
and how these parts are combined are random selection [4]. Recombination operators with higher
arity, that is having more than one operand or parent is mathematically possible and easy to
9
10. implement but have no biological equivalence [4]. That is why perhaps they are not widely used
although several studies show that they have a positive effect on evolution [4]. The principle
behind recombination is very simple. That is, by mating parents or individuals with different
features we can produce offspring with both features [4]. Biologically, recombination is the
superior form of reproduction [4].
2.2.8 Survivor Selection Mechanism
Survivor selection mechanism is often called replacement or replacement strategy [4]. However,
a good reason to use the survivor mechanism is to keep terminology [4]. The role of the survivor
mechanism is to distinguish among individuals based on their quality. It is similar to parent
selection, but it is used at a different stage of the evolution cycle [4].
2.2.9 Initialization
Initializations are kept simple in most EA applications [4]. The first population is seeded by
randomly generated individuals [4].
2.2.10 Termination Condition
There are two types of termination conditions [4]. The first one is when the evolutionary
computing problem has an optimal fitness level [4]. This may probably come from a known
optimum of the given objective function or fitness function [4]. In such cases, when that level is
reached then the evolutionary problem search can be stopped [4]. However, EAs are stochastic in
nature and the optimum may not be reached hence the fitness function may never be satisfied and
the algorithm may never stop [4]. That requires that the condition is extended with one that
certainly stops the algorithm [4]. Some of these extensions include the following. Using
10
11. maximum allowed CPU time [4]. So, when this maximum time elapse then the algorithm is
stopped [4]. Total number of fitness evaluations is given a limit so that the algorithm is stopped
when this limit is reached [4]. To do the evolution a number of times for example for a number
of generations [4].
2.3 Genetic Algorithms
A Genetic Algorithm is a search heuristic that is inspired by Charles Darwin’s theory of natural
evolution [25]. This algorithm reflects the process of natural selection where the fittest
individuals are selected for reproduction in order to produce offspring for the next generation
[25]. There are five phases in a genetic algorithm [25]. These are;
Initial Population, Fitness Function, Selection, Crossover, and Mutation [25].
2.4 Evolutionary Strategies
Evolutionary Strategies (ES) is one type of black - box optimization algorithm that belongs to the
family of evolutionary algorithms [26]. The optimization targets of Evolutionary Strategies are
vectors of real numbers [26]. It must be noted that Evolutionary Strategies are stochastic
optimization algorithms and are designed specifically for continuous function optimization [27].
2.5 Genetic Programming
Genetic Programming is a domain-independent method for genetically breeding a population of
computer programs to solve a problem ]28]. That is, Genetic Programming iteratively transforms
a population of computer programs into a new generation of programs by applying analogs of
naturally occurring genetic operations [28]. It must be stated that Genetic Programming is a form
of Artificial Intelligence that mimics natural selection to find optimal results [29].
11
12. 2.6 Evolutionary Programming
Evolutionary Programming originally conceived by Lawrence J. Fogel in 1960 is a stochastic
optimization technique similar to Genetic Algorithms [30]. One main difference between
Evolutionary Programming and Genetic Algorithms is that it places emphasis on behavioral
linkage between parent and offspring rather than seeking to emulate specific genetic operators as
observed in nature [30]. It is also similar to Evolutionary Strategies although they were
developed independently [30].
2.7 Differential Evolution
Differential Evolution is a heuristic approach for global optimization of nonlinear and
non-differentiable continuous space functions [31]. Differential Evolution is similar to popular
direct search approaches such as genetic algorithms and evolutionary strategies [31]. It must be
stated that this algorithm is advantageous over the other mentioned approaches because it can
handle nonlinear and non-differentiable muti-dimension objective functions, while requiring very
few control parameters to steer the minimisation [31].
2.8 A Survey on Wearable Sensor-Based Systems for Health Monitoring and Prognosis
A research paper entitled “A Survey on Wearable Sensor-Based Systems for Health Monitoring
and Prognosis” describes wearable and biomedical health system for health monitoring and
prognosis.[6] The paper explains that these wearable and biomedical health systems have gained
a lot of attention in the scientific community.[6] The paper also explains that this is “mainly
motivated by increasing healthcare costs and propelled by recent technological advances in
miniature biosensing devices, smart textiles, microelectronics, and wireless communications, the
continuous advance of wearable sensor-based systems will potentially transform the future of
12
13. healthcare by enabling proactive personal health management and ubiquitous monitoring of a
patient's health condition”.[6] The paper attempts to review the current research and
developments on wearable biosensor systems for medical monitoring. According to the paper, a
variety of system implementations are compared in an approach to identify the technological
shortcoming of the current state of the art in wearable biosensor solutions and systems. The paper
also explains that “an emphasis is given to multiparameter physiological sensing system designs,
providing reliable vital signs measurements and incorporating real-time decision support for
early detection of symptoms or context awareness”.[6]
2.9 Sensors in Medicine
According to another research paper entitled “Sensors in Medicine'', sensors are devices that
detect physical, chemical and biological signals and provide a way for those signals to be
measured and recorded.[7] Also that paper explains that “physical properties that can be sensed
include temperature, pressure, vibration, sound level, light intensity, load or weight, flow rate of
gasses and liquids, amplitude of magnetic and electronic fields, and concentrations of many
substances in gaseous, liquid, or solid form. Although sensors of today are where computers
were in 1970, medical applications of sensors are taking off because of advances in microchip
technologies and molecular chemistry.” [7]
13
14. Chapter 3: Research Model and Methodology
3.1 Research Model
The research model for this research is for modelling diseases that a patient has and other
diseases he can get. The model is composed of two dependent variables and an independent
variable. These variables are basically, the chance that a patient has an illness. The chance is
computed on a hundred percent scale based on symptoms and reactions the patient is having and
other medical parameters such as weight, height, blood pressure, and glucose level of the patient.
The other factor that affects the research model is the number of years a patient has been having
symptoms that point to a particular disease. The research model is given as Y=aX1+bX2+c. Note
that a, b, and c are constants.
3.2 Research Methodology
The methodology for this research is made up of five major steps. These are assumption
enumeration, hypothesis formulation, experimentation, hypothesis testing and demonstration. All
these steps contribute to successful conduction of the research. It is hoped that following these
steps will lead to the development of an Expert Medical Consultation System that will assist
Medical Doctors in performing medical consultations.
3.2.1 Assumption Enumeration
At this stage, a number of assumptions about providing medical care using medical systems that
run on android or on browsers must be made. Assumptions must also be made about symptoms
that can be predicted and diseases that can be diagnosed using application of evolutionary
algorithms. Assumptions will also be made about how well the system being developed will be
14
15. secured.
3.2.2 Hypothesis Formulation
At this stage, the researcher must formulate hypotheses about the extent to which android
applications and web applications can be used to provide medical care. Hypotheses will also be
formulated about the extent to which ailments can be diagnosed using an android application and
web applications developed using the application of evolutionary algorithms. Also, we will
formulate hypotheses about the extent to which the system will be secured. This will include how
to secure the database, web server and other components of the system.
3.2.3 Experimentation
At this stage, the hypotheses formulated will be experimented using simulation. The simulation
can be done through the application of evolutionary algorithms. The simulation will be performed
on a personal computer and an android device . We will also experiment various Penetration
Testing techniques such as SQL Injection, and Dictionary Attacks.
3.2.4 Hypothesis Testing
Finally, the hypotheses will be tested. The hypothesis testing is based on the results of your
experimentation and the validity of the assumptions made. At this stage, the validity of all the
assumptions enumerated must also be established to aid the hypothesis testing. If the hypotheses
formulated are established to be valid during the testing, that indicates that an android system can
be built for medical care. The extent to which such a system can be built depends on the results of
the hypothesis testing. Also we will test to see if the various Penetration Testing Techniques are
able to exploit vulnerabilities in the system we hope to develop.
15
16. 3.2.5 Demonstration
If the hypothesis testing ends up positive and the initial assumptions are established to be valid, a
demonstration is done through implementation of a system made up of an android application
and a web application that helps in the administration of medical care. The demonstration ends
with a presentation on how the newly developed solution can be integrated into normal medical
care. Also, we will try to mitigate the effect of the various Penetration Testing techniques that
will be explored in this research so that the developed system prevents exploitation of various
identified vulnerabilities. Finally, the software process model that will be used to develop the
expert medical consultation system is agile development.
3.26 Agile Development
“Agile software development refers to software development methodologies centered round the
idea of iterative development, where requirements and solutions evolve through collaboration
between self-organizing cross-functional teams. The ultimate value in Agile development is that
it enables teams to deliver value faster, with greater quality and predictability, and greater
aptitude to respond to change. Scrum and Kanban are two of the most widely used Agile
methodologies.”
[3]
3.2.7 Research Assumptions
The assumptions below form the basis of this research. Based on these assumptions, several
hypotheses are formulated as part of this research.
16
17. ● Sensors can be used to measure temperature, height, weight, blood pressure and blood
sugar.
● Weight of a patient can be computed using an accelerometer on a hardware system that
run on the android operating system (OS).
● Blood pressure of a patient can be computed using a sensor that measures patient’s blood
pressure.
● Temperature of patient can be measured using a sensor that measures temperature.
● Height can also be measured based on motion data measured using a sensor that measures
height.
3.2.8 Research Hypotheses
Based on the above, several hypotheses as listed below can be formulated for conducting this
research.
● The first group of hypotheses is based on the extent to which a medical system can be
used to provide medical care. In this project, it is claimed that an expert medical
consultation can be developed on mobile phones and tablets using android programming
language and on personal computers using web technologies.
● The second group of hypotheses is based on what diseases can be diagnosed using
medical systems developed for mobile phones, tablets and personal computers. This
project claims that all kinds of diseases can be diagnosed using a medical system
developed for mobile phones, tablets and personal computers.
17
18. ● The third group of hypotheses is based on the medical information that can be measured,
for medical care using a medical equipment that has sensors for measuring medical data.
In this project, it is claimed that all medical data can be measured. This include weight,
height, temperature, blood pressure and blood sugar.
3.2.9 Research Experimentation
Experimentation was performed on mobile phones, and tablets using the android programming
language. First of all, the database of diseases and the database of medicines and the database of
medical tests associated with medical information is developed using SQLite which is available
on android phones and tablets that run on the android OS. Secondly, the experimentation is
performed on a personal computer using web technologies. The web technologies that was used
are jQuery, and PHP. It must be stated that, a PHP MVC framework was used. The name of the
PHP MVC framework is CodeIgniter. There are other PHP MVC frameworks. Examples are
Laravel, Symphony and cakePHP. It must be stated that I am familiar with CodeIgniter and
Laravel, so I decided to use one of these frameworks.
Additionally, CodeIgniter is easy to use and easy to learn.
3.2.10 Research Hypotheses Testing
After the experimentation phase, it was established that all the hypothesis formulated were true.
Additionally, it was established that the assumptions made were true. Because of this it is fit to
develop the proposed solution which is an expert medical consultation system on mobile phones
tablets and personal computers.
18
19. 3.2.11 Research Demonstration
After the hypotheses testing a mobile application that works on mobile phones and tablets that
run the android operating system was developed. A web application that runs on personal
computers was also developed.
19
20. Chapter 4: Requirements Specification
4.1 Functional Requirement for the Android App
This section of the research document describes the functional requirements of the android app
that will assist in performing medical consultation. The function requirements are given below.
4.1.1 Consultation
a) The android app should make it possible to capture information collected during medical
consultation. This information includes the doctor’s name, date when the consultation
was done, patient’s description of problems he or she is facing, symptoms and reactions
gathered during patient’s description of problems he or she is facing, doctor’s diagnosis,
doctor’s prescription, medical tests prescribed by doctor, and doctor’s comments.
b) The android app should also assist in diagnosis. That is, while doctor captures patient’s
description of problems the patient is facing and the symptoms the doctor gathered, the
app should suggest doctor’s diagnosis and medical test and drug prescriptions that match
the patient’s condition.
c) Android app should make it possible to read and update old consultations.
d) The android app should connect with a web or desktop app that is part of the android app
and sync information about consultation such as doctor’s name, date consultation was
done, patients description of problem he or she is facing, symptoms and reaction gathered
by the doctor, doctor’s diagnosis, doctor’s prescription and medical test prescribed by the
doctor and doctor’s comments.
20
21. 4.1.2 Patient Basic details and medical information
a) Doctor should be able to use view patient details including ID number. name, town from
which patient came from, guardian and patient contact number.
b) Doctor should also be able to view patient medical information like height, weight,
temperature, blood pressure and blood sugar.
c) The android app should be able to download the information that will be viewed in the
two functions above from a web or desktop app that will be part of the system that will be
developed.
4.1.3 User Settings and Authentication
a) The app should make it possible for user to register. The information that will be captured
during registration include name of user, work title, email address, phone number and
password.
b) The app should also make it possible for user to update registration details including
name, work title, email address, phone number and password
c) The app should also make it possible for user to have access to the app using
authentication. The information that will be required during authentication are email
address or phone number and password.
4.2 Functional Requirements of the Web Application
4.2.1 Patient Details and Medical Information
a) The web application should make it possible to save, read and update patients details
such as ID number, name, town from which patient came, guardian and contact number.
21
22. b) The web application should also make it possible to save read and update medical
information such height, weight, temperature, blood pressure and blood sugar.
c) The web application should also make it possible for android devices that have the
android app installed to download patient basic information and medical information
such as height, weight, temperature, blood pressure and blood sugar.
4.2.2 Consultation
a) The web application should make it possible to save, read and update information about
medical consultation.
b) The web application should also connect to the android app and make it possible for the
android app to download patient details and medical information such as height, weight,
temperature, blood pressure, and blood sugar.
c) The web app should also be able to suggest doctor’s diagnosis while doctor is typing
patient symptoms and reaction, and the patient’s description of his or her condition or
problem.
4.2.3 Drug Prescription and Medical Test
d) The web application should make it possible to save, read and update information about
drugs prescribed during medical consultation.
e) The web application should make it possible to save, read and update information about
medical tests prescribed during medical consultation.
f) The web application should also make it possible for the android app to connect to it and
download information saved and updated from the two functions above.
22
23. 4.2.4 User Settings and Authentications
g) The web application should make it possible for a user to register on the application with
his name, email address, telephone number and password.
h) The web application should also make it possible for user to get access to the web
application thought authentication.
i) The web application should also provide different user groups for nurses, opd officers,
pharmacists and doctors.
j) The application should also ensure that the different user groups should be able to save,
update and read only information that is related to their daily duties.
4.3 Non-Functional Requirements
a) The system should be easy to use. Users should easily identify and see functions and
information in the system. The property of easily identifying and seeing functions and
requirements is termed visibility under interaction design concepts.
b) The system should be secured. Information in the system should not be accessible to
hackers and intruders
c) The system should be nice. The property of a system being nice under interaction design
is aesthetics. As such the system should be aesthetic.
4.4 Requirement for Medical Equipment
23
24. Chapter 5: Scope of Diseases
In this research project, the diseases that will be modelled for the development of the android app
that will assist in medical consultation by suggesting drug prescription and medical test that are
related to patient health condition include the following diseases.
a) Malaria
b) Cholera,
c) Diarrhoea
d) Bi-polar disorder
e) Schizophrenia
f) Diabetes
g) Skin Disease
h) Hypertension
i) Asthma
5.1 Symptoms and Reactions of Diseases that will be modelled
This section of the research paper will describe the symptoms and reaction of all the diseases
that forms the scope of this research paper.
5.2 Symptoms of Malaria
Malaria symptoms include Fever, Flu-like illness, Shaking chills, Headache, Muscle aches,
Tiredness, Nausea, Vomiting, and Diarrhoea. [14]
24
25. 5.3 Symptoms of Cholera
Cholera symptoms include Profuse Watery Diarrhoea, Vomiting, Thirst, Leg Cramps,
Restlessness or Irritability. [15]
5.4 Symptoms of Diarrhoea
Diarrhoea symptoms include Frequent Loose Watery Stools, Abdominal Cramps, Abdominal
Pain, Fever, Bleeding, Lightheadedness or Dizziness from Dehydration. [16]
5.5 Symptoms of Bi-polar Disorder
Bi-polar Disorder symptoms include the following;
● feeling overly happy or “high” for long periods of time. [17]
● having a decreased need for sleep. [17]
● talking very fast, often with racing thoughts.[17]
● feeling extremely restless or impulsive. [17]
● becoming easily distracted. [17]
● having overconfidence in your abilities. [17]
● engaging in risky behavior, such as having impulsive sex, gambling with life savings, or
going on big spending sprees. [17]
5.6 Symptoms of Schizophrenia
Symptoms of Schizophrenia include Delusions, Hallucinations, Disorganized Thinking
(Speech), Extremely Disorganized or Abnormal Motor Behaviour and Negative Symptoms.
[18] Additional symptoms in teenagers include;
● Withdrawal from friends and family. [18]
● A drop in performance at school. [18]
● Trouble sleeping. [18]
● Irritability or depressed mood. [18]
● Lack of motivation. [18]
25
26. 5.7 Symptoms of Diabetes
Symptoms of Diabetes include the following;
● Urinate (pee) a lot, often at night. [19]
● Are very thirsty. [19]
● Lose weight without trying. [19]
● Are very hungry. [19]
● Have blurry vision. [19]
● Have numb or tingling hands or feet. [19]
● Feel very tired. [19]
● Have very dry skin. [19]
● Have sores that heal slowly. [19]
● Have more infections than usual. [19]
5.8 Skin Diseases
Symptoms of Skin Diseases include the following;
● Raised bumps that are red or white. [20]
● A rash, which might be painful or itchy. [20]
● Scaly or rough skin. [20]
● Peeling skin. [20]
● Ulcers. [20]
● Open sores or lesions. [20]
● Dry, cracked skin. [20]
● Discolored patches of skin. [20]
● Fleshy bumps, warts, or other skin growths. [20]
● Changes in mole color or size.[20]
● A loss of skin pigment. [20]
● Excessive flushing. [20]
5.9 Symptoms of Hypertension
Symptoms of hypertension include the following;
● Severe headaches. [21]
● Nosebleed. [21]
● Fatigue or confusion. [21]
26
27. ● Vision problems. [21]
● Chest pain. [21]
● Difficulty breathing. [21]
● Irregular heartbeat. [21]
● Blood in the urine. [21]
● Pounding in your chest, neck, or ears. [21]
5.10 Symptoms of Asthma
Symptoms of Asthma include the following;
● Wheezing, coughing and chest tightness becoming severe and constant. [22]
● Being too breathless to eat, speak or sleep. [22]
● Breathing faster. [22]
● A fast heartbeat. [22]
● Drowsiness, confusion, exhaustion or dizziness. [22]
● Blue lips or fingers. [22]
● Fainting. [22]
5.11 Medical Tests Associated with Diseases
27
28. Chapter 6: The Evolutionary Computing World
6.1 Introduction
This chapter of the research paper describes the evolutionary computing world of the problem
that we want to solve. This is done by describing how the various components of evolutionary
computing relate to the problem that we want to solve. As such, we will describe the population,
parent selection mechanism, variation operators, fitness function, survivor selection mechanism,
initialization and termination condition in relation to the problem that we want to solve. As
already mentioned, the problem we want to solve is to match a set of symptoms with the
diseases. Figure
1 shows the general scheme of evolutionary algorithms as a flow chart.
6.2 Representation
An object will be created for the various diseases that will be modelled in this research. This
object will have the disease name and a list of symptoms as the properties of the object.
6.3 Population
The population in this problem is the various diseases that this expert medical consultation
system seeks to diagnose during medical consultation. In this project, the diseases will be
modelled, and a database will be created for all the diseases that the system will be used to
diagnose. Each disease will have properties and these properties are the symptoms that describe
the disease.
28
29. 6.4 Initialization
The first population of this evolutionary algorithm is seeded by selecting all the various diseases
in the database.
6.5 Fitness Function
The fitness function is given by the disease(s) which have all or most of the symptoms that we
want to use to search for a disease. As such, at different points in the evolutionary process, the
number of symptoms that match that of the diseases selected will be determined and this will be
used as a quality measure to seed the next generation. At the end of the evolutionary process the
disease(s) with all or most of the symptoms matched will be the result of the evolutionary search.
6.6 Parent Selection Mechanism
The parent selection mechanism in this problem is to find the disease that has a number of
symptoms matched. For the first time, the evolutionary space is initialized with every disease
even if it has not matched one of the symptoms. However, the next generation will check for
diseases that match one symptom and the subsequent generations will check for the number of
previous matches of symptoms plus one additional match. The parent selection mechanism will
therefore be based on different quality values at different generations and the assignment of
quality value and selection of a disease to undergo variation will end when the terminating
condition has been met.
6.7 Survivor Selection Mechanism
The survivor selection mechanism will be to select offspring who are fit for the next generation.
At this stage, it is the norm that new offspring have been produced after using the variation
29
30. operators which are mutation and recombination. If a new disease has been detected as an
offspring, it is necessary to assign a quality measure to that disease before the evolutionary
process can proceed to the next generation. For the first time, it is based on whether the new
disease matches one symptom that is part of the set of symptoms that is being used to search for
a disease. For subsequent generations it is based on the number of previous matches plus one
additional match. This assignment of quality measure ends when the terminating condition is
met.
6.8 Mutation
Mutation is an operation on one operand. In this research project, we seek to perform an
operation on one property of the disease which is on one symptom. What we want to do is to see
if a different translation or representation of the symptom can produce a different disease which
will become the offspring which is the new disease. For example, if fever is one of the symptoms
of a disease we want to see if there is any other disease with the symptom feverish. If that is the
case, then that disease becomes the offspring of the first one.
6.9 Recombination
Recombination is an operation on two operands. What we want to do is to check to see if one
single property which is a symptom from a disease and another property or symptom from
another disease can be combined to produce a disease with both properties or symptoms. If that
is the case, then the new disease becomes the offspring of the other two diseases.
30
31. 6.10 Termination Condition
Termination condition is what ends the evolutionary process. In this project, the termination
condition is reached when the quality value of the parents and offspring have been assigned for a
number of times which is equal to the number of symptoms that forms part of the symptoms set
of the search parameter. As such, if there are four symptoms in the search then the termination
condition is when the evolutionary process has been iterated four times.
Fig. 1
31
32. Chapter 7: Design and Implementation
This chapter of the research paper describes how to design and implement the mobile app. It also
describes how to design and implement the web app.
7.1 Designing the Mobile App
One way of making sure that software development is successful is by dividing the software
development into phases and executing the requirements in the various phases one at a time. For
some software development projects, you first design the database and implement it before
designing the user interface (UI) and then implement the various functional and non-functional
requirements.
With this project, we will first design the user interface (UI) first, then design and
implement the database and finally implement the various functional and non-functional
requirements. The UI of the mobile app will be designed using the android programming
language. The android programming language is made up of xml and java. The part of the
android programming language that will be used to design the app is xml.
In the android programming language, xml is used to specify and implement layout, and
controls such as input fields, buttons and other UI features such as tables, colors, strings and sizes
which include height and weight and the system manifest file which describes where the system
starts from, and other system features such as minimum OS requirement, and hardware access
information. Figure 2 shows an example of a manifest file. Figure 3 shows an example of a
layout.
32
33. The android components that represent the UI are called views. It must be stated that UI
components can be implemented programmatically using java. The UI components can also be
implemented using a graphical user interface (GUI) builder. The GUI builder generates the XML.
Fig 2.
7.2 Implementing the Mobile App
The functional requirements of the app will be implemented using java which is the other part of
the android programming language. The android programming language make it possible to
implement the functional requirements using components of the android programming language
33
34. such as activities, services, broadcast receiver, and content provider. An activity or a service or
any other component of the android programming language is implemented in a java class.
Activity is a single screen with UI. Services are for processes that run in the background
and Broadcast receivers respond to system messages such as low battery. Activities link up to UI
such as a screen made up of tables, input fields and buttons and display them on the screen.
Finally, android apps run on the Dalvic Virtual Machine. This is not a Java Virtual Machine
(JVM) but works similarly from a developer’s point of view. The apps are package in the .apk
format which is a variant of the .jar file type and then downloaded onto the device and installed.
34
35. Fig. 3
7.3 Designing the Web App
The web application user interface (UI) can be designed using client–side web technologies. The
client–side web technologies that can be used are HTML, CSS and JavaScript. Instead of
35
36. JavaScript you can use VBScript or any JavaScript framework or library such as jQuery, ReactJS
or AngularJS. Additionally, you can use any web frontend frameworks such as Bootstrap,
jQuery Mobile and Font Awesome.
In this project, we use Bootstrap, Font Awesome and JQuery. These frameworks make it easy to
design web user interfaces. Bootstrap for instance has pre-defined CSS classes for buttons,
inputs, etc. It also has various elements such as panels, modals and a grid system that helps you
design the layout of any user interface. Bootstrap also uses jQuery for some of its UI
components. Font Awesome also helps you to customize the look and feel of some of your UI
elements such as buttons, links etc. JQuery is also a JavaScript library that helps your web user
interface to be interactive. You can also send Ajax requests using JQuery.
7.4 Implementing the Web App
You can implement the web app using a server-side web scripting language such as PHP, JSP or
ASP.Net and a database such as MySQL, Oracle or MongoDB. In this project, we use a PHP
MVC framework called CodeIgniter and MYSQL. The framework uses the PHP scripting
language but uses the Model-Vew-Controller pattern of software development. The framework
helps you connect to your database and execute SQL commands using its own db library, it also
has other libraries for managing URL, inputs and session.
When using the an MVC framework such as CodeIgniter you separate your code into
Models, Views and Controllers. Models are PHP classes that abstract your data and data source
such as database. This is where you access your data including connecting to the database.
Figure 4 shows an example of a model.
36
37. Fig. 4
Views are PHP files with HTML or XTHML code and CSS and JavaScript or JQuery code. This
is where the code for your user interface goes. Any PHP code that processes some data and
displays it also goes here. Figure 5 shows and example of a view.
37
38. Fig 5
Controllers are PHP classes that define functions that serves as entry point into your
system. They typically link to a number of models and views. This is also where you business
logic goes. Figure 6 shows an example of a controller.
Fig 6
38
39. Chapter 8: Expert System Methodologies and Applications
This chapter of the research paper describes expert system methodology and applications. A
research paper on expert system methodology and applications classifies expert system
methodology and applications by using literature review and classification of articles from 1995
to 2004.[12] According to the research paper, based on it survey and classification of articles, it
describes eleven categories of expert system methodology classification.[12] The eleven
categories are Rule-based Systems, Knowledge-based Systems, Neural Networks, Fuzzy Expert
Systems, Object Oriented Methodologies, Case-based Reasoning, System Architecture,
Intelligent Agent Systems, Database Methodologies, Modeling and Ontology.[12] The paper also
describes the applications, research and problem domains for the various categories.
8.1 Rule-based Systems
A Rule-based Expert System is a system which contains information obtained from a Human
Expert and represents that information in a form of rules, such as IF-THEN.[12] The rule can be
used to perform operations on the data to infer in order to reach an appropriate conclusion. [12]
According to the research paper, applications of Rule-based expert systems include State
Transition Analysis, Psychiatric Treatment, Production Planning, Advisory System, Teaching,
Electronic Power Planning, Automobile Process Planning, Hypergraph Representation, System
Development, Knowledge Verification/Validation, Alcohol Production, DNA Histogram
Interpretation, Knowledge Based Maintenance, Scheduling Strategy, Management Fraud
Assessment, Knowledge Acquisition, Communication System Fault Diagnosis, Bioseparation,
39
40. Material Processing Design, Resource Utilization, Biochemical Nanotechnology, Probabilistic
Fault Diagnosis, Representation.[12]
8.2 Knowledge-based Systems
A knowledge-based system is human-centered. [12] In that, it has its roots in Artificial
Intelligence (AI) and they are an attempt to understand and initiate human knowledge in
computer systems. [12] The four main components of Knowledge-based Systems are Knowledge
Base, An Inference Engine, A Knowledge Engineering Tool and a Specific User Interface.
However, the term Knowledge-based Systems refers to all Organizational Information
Technology Applications that will manage an organization’s Knowledge Assets such as Expert
Systems, Rule-based Systems, Groupware and Database Management Systems (DBMS). [12]
Some of the applications implemented by Knowledge-based Systems include Medical
Treatment, Personal Finance Planning, Engineering Failure Analysis, Waste Management,
Production Management, Thermal Engineering, Decision Support, Knowledge Management,
Knowledge Representation, Power Electronics Design, Framed Buildings Evaluations, Financial
Analysis, Chemical Incident Management, Automatic Tumor Segmentation, Business Game,
Climate Forecasting, Agricultural Management, [12]
8.3 Neural Networks
According to the research paper, “an artificial neural network (ANN) is a model that emulates a
biological neural network. [12] This concept is used to implement software simulations for
massively parallel processes that involve processing elements interconnected in a network
architecture.” [12]
40
41. Some of the application domains are fault diagnosis, optimal power flow, decision
making, alarm processing systems, inference mechanism, diagnostic system, machine learning,
Robotic, systems, knowledge learning, biomedical application and process control.[12]
8.4 Fuzzy Expert System
Fuzzy expert systems are developed using fuzzy logic which deals with uncertainty. [12] This
technique uses mathematical theory of fuzzy sets and simulates the method of normal human
reasoning by allowing computers to behave less precisely and logically than the normal
computers. [12]
The application domains include power load forecasting, online scheduling, chemical
process fault diagnosis, ecological planning, power system diagnosis, fault diagnosis, knowledge
integration, fault detection and water supply forecast. [12]
8.5 Object Oriented Methodologies
Object oriented methodology encapsulates data together with specific procedures that operate on
the data. [12] This method makes it possible to send messages to procedures embedded in the
object instead of passing data to procedures outside of the object. [12]
The application domains include knowledge representation, industry diagnosis,
knowledge learning, knowledge engineering, manufacturing information network, syntactic
programming, and power system maintenance. [12]
41
42. 8.6 Case-based Reasoning
The idea behind case-based reasoning is to adopt solutions to previous problems and use them to
solve new problems. [12] In case-based reasoning, past experiences of human expertise is stored
in a database for later retrieval when user encounter a new case with similar parameters. [12]
The application domains for case-based reasoning include knowledge management,
manufacturing process design, ultrasonic inspection, medical planning, medical application,
knowledge modelling, e-learning, fault diagnosis and power system restoration training. [12]
8.7 Modelling
According to the research paper, “modelling methodology becomes an interdisciplinary
methodology of expert systems in order to build formal relationships with logical model design in
different knowledge/problem domains.” [12] Additionally, “modelling methodology provides
quantitative methods for analyzing data to represent or acquire expert knowledge with inductive
logic programming so that Artificial Intelligence, Cognitive Science and other research field can
have broader platforms to implement technologies for Expert System development”. [12]
The application domains of modelling include process control, medical analysis,
management decision making, software evaluation, medical system validation, project allocation,
assembly task planning and simulations, transport terminal design and endomaterial hyperplasia
classification. [12]
8.8 System Architecture
According to the research paper, “system architecture gives users a general idea about how the
system is going to look and how it will be implemented”. [12] Also, the architecture shows the
general capabilities of the system, the user interface, system functions and system/data flow,
42
43. system management, Database Management System (DBMS), necessary protocol, specific
programming language.
The application domains for system architecture include computer aided design,
ergonomics design, material evaluation and selection, ISO system implementation, concurrent
engineering, military application, training simulator and corporate recovery decision support.
8.9 Intelligent Agents
According to the research paper, “an intelligent agent is a computer program that helps a user
with routine computer tasks”.[12]. This is a new technology and therefore there are several
definitions of database capabilities and applications in autonomous programs.
Some of the application domains include tutoring system, supply chain, system analysis
and design, electronic service maintenance, carbon contamination rules, knowledge
representation, adaptive system, and industry simulation.
8.10 Ontology
According to the research paper, ontology is a system of vocabulary which is used for describing
the task/domain knowledge to be identified. [12] The vocabulary is used for communication
between domain experts and knowledge engineers. [12]
Application domains for ontology include medical decision support, knowledge reuse,
preventive control, landscape assessment, knowledge acquisition, chess heuristic pruning, and
knowledge modelling.
8.11 Database Methodology
According to the research paper, “a database is a collection of data organized to efficiently serve
many applications by centralizing the data and reducing redundancy in the data.” [12] A Database
43
44. Management System (DBMS) is a “software that permits organizations to centralize data, manage
them efficiently and provide access to the stored data through application programs”. [12]
The application domains for database methodology include power system planning,
geography planning, geographical information system, sedimentary rock interpretation,
traditional Chinese medicine diagnosis and medical expert system.
44
45. Chapter 9: Conclusion and Discussion
It is worth mentioning that this research has much prospects. It will make it possible to do
medical consultation and administer medical care using web and mobile application systems.
Additionally, diseases a patient has can be predicted during medical consultation using the expert
medical consultation system.
Also, being able to predict the chance that a patient that has a particular ailment also has
another is very beneficial. For instance, a medical doctor can predict the chance that a patient has
a mental ailment based on the fact that the patient has been exhibiting symptoms of malaria fever,
yellow fever and other symptoms that point to mental ailments.
Finally, it must be mentioned that modelling diseases using the research model will aid in
developing a system for administering health care. The types of health care problems that can be
solved using evolutionary computing and this research model are modelling problems where we
want to determine a model that can be used to map a set of inputs such as symptoms of diseases
to diseases, simulation problems where we want to map a set of inputs such as symptoms of
diseases to diseases given a model and optimization problems where a we want to determine a set
of inputs such as the symptoms of diseases that lead to a disease given a model. It is also
important to note that the developed system made up of the android application and the web
application will be secured from the various vulnerabilities that will be identified in this research.
45
46. References
1. Handbook on research on maximizing cognitive learning through knowledge visualization
https://www.igi-global.com/dictionary/duality-of-natural-and-technologicalexplanations/3
9414
2. Evolutionary Computing
https://www.techopedia.com/definition/19218/evolutionarycomputation
3. What is Agile? What is Scrum? Agile FAqs
https://www.cprime.com/resources/what-isagile-what-is-scrum/
4. A.E.Eiben and J.E Smith, Evolutionary Algorithms
https://www.cs.vu.nl/~gusz/ecbook/EibenSmith-Intro2EC-Ch2.pdf [29th November 2019]
5. A.E.Eiben and J.E Smith, Introduction to Evolutionary Computing
https://www.cs.vu.nl/~gusz/ecbook/ecbook-course.html
6. AlexandrosPantelopoulos and Nikolaos G. Bourbakis, A Survey on Wearable Sensor-Based
Systems for Health Monitoring and
Prognosishttps://www.researchgate.net/publication/224610780_A_Survey_on_Wearable_SensorB
ased_Systems_for_Health_Monitoring_and_Prognosis
7. Charles B Wilson, Sensors in medicine.https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1129066/
8. Multiple Linear Regression Models
http://home.iitk.ac.in/~shalab/regression/Chapter3Regression-MultipleLinearRegressionModel.pdf
9. http://mezeylab.cb.bscb.cornell.edu/labmembers/documents/supplement%205%20%20multiple%2
0regression.pdf
10. Embedded System Design https://openlabpro.com/guide/embedded-systems-design/ [12-02-2020]
11. What is an Embedded system Defining an Electrical Engineering Field
https://www.allaboutcircuits.com/technical-articles/what-is-embedded-design-embedded-systemde
sign-firmware/ [12-02-2020]
12. Shu-Hsien Liao, Expert System Methodology and Applications – A Decade Review From
1995 to 2004
13. Haocheng Tan, A brief history and technical review of expert system research
14. Frequently Asked Question (FAQs) https://www.cdc.gov/malaria/about/faqs.html
[16-09-2021]
15.
16. Illness and Symptoms https://www.cdc.gov/cholera/illness.html [16-09-2021]
17. Diarrhea Signs and Symptoms https://www.ucsfhealth.org/conditions/diarrhea/symptoms
[16-09-2021]
46
47. 18. Could it be Bipolar Disorder? 14 Signs to Look For
https://www.healthline.com/health/could-it-be-bipolar-signs-to-look-for#7-signs-of-mania
[16-09-2021]
19. Schizophrenia
https://www.mayoclinic.org/diseases-conditions/schizophrenia/symptoms-causes/syc-2035
4443 [16-09-2021]
20. Diabetes Symptoms https://www.cdc.gov/diabetes/basics/symptoms.html [16-09-2021]
21. All About Common Skin Disorders
https://www.healthline.com/health/skin-disorders#symptoms [16-09-2021]
22. Symptoms of High Blood Pressure
https://www.webmd.com/hypertension-high-blood-pressure/guide/hypertension-symptoms
-high-blood-pressure [16-09-2021]
23. Symptoms Asthma https://www.nhs.uk/conditions/asthma/symptoms/ [16-09-2021]
24. Adam Slowik and Halina, Kwasnicka Evolutionary Algorithms and their application to
engineering problems https://link.springer.com/article/10.1007/s00521-020-04832-8
[27–06-2022]
25. Introduction to Genetic Algorithms - Including Example Code
https://towardsdatascience.com/introduction-to-genetic-algorithms-including-example-code-e396e
98d8bf3#:~:text=A%20genetic%20algorithm%20is%20a,offspring%20of%20the%20next%20gen
eration. [27-06-2022]
26. Lilian Weng, Evolutionary Strategies,
https://lilianweng.github.io/posts/2019-09-05-evolution-strategies/ [28-06-2022]
27. Jason Browlee, Evolutionary Strategy From Scrath in Python ,
https://machinelearningmastery.com/evolution-strategies-from-scratch-in-python/ [28-06-2022]
28. John R. koza and Riccardo Poli, Genetic Programming,
https://link.springer.com/chapter/10.1007/0-387-28356-0_5#:~:text=Genetic%20programming%2
0is%20a%20domain,of%20naturally%20occurring%20genetic%20operations. [28-06-2022]
29. Genetic Programming, https://www.virtusa.com/digital-themes/genetic-programming
[28-06-2022]
30. Q 1.2 What’s Evolutionary programming (EP)?
https://www.cs.cmu.edu/Groups/AI/html/faqs/ai/genetic/part2/faq-doc-3.html [28-06-2022]
31. Stefania Cristina, Differential Evolution From Scratch in Python,
https://machinelearningmastery.com/differential-evolution-from-scratch-in-python/ [28-06-2022]
47