SlideShare a Scribd company logo
1 of 47
Download to read offline
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
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
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
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
● 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
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
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
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
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
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
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
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
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
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
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
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
● 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
● 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
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
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
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
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
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
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
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
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
● 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

More Related Content

What's hot

*Cyber bullying presentation*
*Cyber bullying presentation**Cyber bullying presentation*
*Cyber bullying presentation*
Amber Dee
 
NEGATIVE_RESPONSE_STRATEGIES_V1.1
NEGATIVE_RESPONSE_STRATEGIES_V1.1NEGATIVE_RESPONSE_STRATEGIES_V1.1
NEGATIVE_RESPONSE_STRATEGIES_V1.1
Fahad Saleem
 

What's hot (20)

Social and professional issuesin it
Social and professional issuesin itSocial and professional issuesin it
Social and professional issuesin it
 
9. System Mapping Overview.pptx
9. System Mapping Overview.pptx9. System Mapping Overview.pptx
9. System Mapping Overview.pptx
 
Simulation
SimulationSimulation
Simulation
 
Ethical Issues in Machine Learning Algorithms (Part 2)
Ethical Issues in Machine Learning Algorithms (Part 2)Ethical Issues in Machine Learning Algorithms (Part 2)
Ethical Issues in Machine Learning Algorithms (Part 2)
 
Artificial Consciousness
Artificial ConsciousnessArtificial Consciousness
Artificial Consciousness
 
Ethics in IT Security
Ethics in IT SecurityEthics in IT Security
Ethics in IT Security
 
*Cyber bullying presentation*
*Cyber bullying presentation**Cyber bullying presentation*
*Cyber bullying presentation*
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
 
NEGATIVE_RESPONSE_STRATEGIES_V1.1
NEGATIVE_RESPONSE_STRATEGIES_V1.1NEGATIVE_RESPONSE_STRATEGIES_V1.1
NEGATIVE_RESPONSE_STRATEGIES_V1.1
 
Deep learning and Healthcare
Deep learning and HealthcareDeep learning and Healthcare
Deep learning and Healthcare
 
Corporate bankruptcy prediction using Deep learning techniques
Corporate bankruptcy prediction using Deep learning techniquesCorporate bankruptcy prediction using Deep learning techniques
Corporate bankruptcy prediction using Deep learning techniques
 
Ethical Issues in Machine Learning Algorithms. (Part 3)
Ethical Issues in Machine Learning Algorithms. (Part 3)Ethical Issues in Machine Learning Algorithms. (Part 3)
Ethical Issues in Machine Learning Algorithms. (Part 3)
 
Information Assurance And Security - Chapter 2 - Lesson 1
Information Assurance And Security - Chapter 2 - Lesson 1Information Assurance And Security - Chapter 2 - Lesson 1
Information Assurance And Security - Chapter 2 - Lesson 1
 
Privacy-preserving Data Mining in Industry (WWW 2019 Tutorial)
Privacy-preserving Data Mining in Industry (WWW 2019 Tutorial)Privacy-preserving Data Mining in Industry (WWW 2019 Tutorial)
Privacy-preserving Data Mining in Industry (WWW 2019 Tutorial)
 
Cyber Security in the Manufacturing Industry: New challenges in the informati...
Cyber Security in the Manufacturing Industry: New challenges in the informati...Cyber Security in the Manufacturing Industry: New challenges in the informati...
Cyber Security in the Manufacturing Industry: New challenges in the informati...
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
 
Bias in AI-systems: A multi-step approach
Bias in AI-systems: A multi-step approachBias in AI-systems: A multi-step approach
Bias in AI-systems: A multi-step approach
 
ETHICS01 - Introduction to Computer Ethics
ETHICS01 - Introduction to Computer EthicsETHICS01 - Introduction to Computer Ethics
ETHICS01 - Introduction to Computer Ethics
 
AI Governance – The Responsible Use of AI
AI Governance – The Responsible Use of AIAI Governance – The Responsible Use of AI
AI Governance – The Responsible Use of AI
 
Machine Learning Final presentation
Machine Learning Final presentation Machine Learning Final presentation
Machine Learning Final presentation
 

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