cognitive assessment and training support system for special

Transcription

cognitive assessment and training support system for special
COGNITIVE ASSESSMENT AND TRAINING SUPPORT SYSTEM FOR
SPECIAL CHILDREN
YAP EE HAN
UNIVERSITI TEKNOLOGI MALAYSIA
ii
UNIVERSITI TEKNOLOGI MALAYSIA
DECLARATION OF THESIS / UNDERGRADUATE STUDY PAPER AND COPYRIGHT
Author’s full name :
YAP EE HAN
Date of birth
:
23 JUNE 1987
Title
:
COGNITIVE ASSESSMENT AND TRAINING SUPPORT
SYSTEM FOR SPECIAL CHILDREN
Academic Session :
2009/2010
I declare that this thesis is classified as:
√
CONFIDENTIAL
(Contains confidential information under the Official Secret
Act 1972)*
RESTRICTED
(Contains restricted information as specified by the
organisation where research was done)*
OPEN ACCESS
I agree that my thesis to be published as online open access
(full text)
I acknowledged that Universiti Teknologi Malaysia reserves the right as follows:
1. The thesis is the property of Universiti Teknologi Malaysia.
2. The Library of Universiti Teknologi Malaysia has the right to make copies for
the purpose of research only.
3. The Library has the right to make copies of the thesis for academic
exchange.
Certified by:
SIGNATURE
870623-07-5180
(NEW IC NO. /PASSPORT NO.)
Date: 25 APRIL 2010
NOTES
:
*
SIGNATURE OF SUPERVISOR
DR. RUBITA SUDIRMAN
NAME OF SUPERVISOR
Date: 25 APRIL 2010
If the thesis is CONFIDENTIAL or RESTRICTED, please attach with the
letter from the organisation with period and reasons for
confidentiality or restriction.
Date: 7 MAY 2009
MAY 2009
Date : 7
iii
“I/We hereby declare that I/we have read the contents of the thesis and to
my/our opinion, the contents of the thesis have fulfilled the scope and quality as
required to award the Bachelor‟s Degree of Electrical Engineering (Medical
Electronics)”.
Signature
: ....................................................
Name of Supervisor I
: Dr. Rubita Sudirman
Date
: 25 April 2010
Signature
: ....................................................
Name of Supervisor II
: Assoc. Prof. Ir. Dr. –Ing. Eko
Supriyanto
Date
: 25 April 2010
iv
COGNITIVE ASSESSMENT AND TRAINING SUPPORT SYSTEM FOR
SPECIAL CHILDREN
YAP EE HAN
Submitted to the Faculty of Electrical Engineering
in partial fulfillment of the requirements for the award of the
Bachelor of Electrical Engineering (Medical Electronics)
Faculty of Electrical Engineering
Universiti Teknologi Malaysia
APRIL 2010
v
I declare that this thesis entitle “Cognitive Assessment and Training Support System
for Special Children” is the result of my own research except as cited in the
reference. This thesis has not been accepted for any degree and is not concurrently
submitted in candidature of any other degree.
Signature
:
………………………………….
Name
:
YAP EE HAN
Date
:
25 APRIL 2010
vi
Dedicated, in thankful appreciation for support, encouragement and understandings
to my beloved family, lecturers and friends.
vii
ACKNOWLEDGEMENT
First of all, I would like to express my heartily gratitude to my supervisor, Dr.
Rubita Sudirman and my co-supervisor, Assoc. Prof. Ir. Dr. –Ing. Eko Supriyanto for
their full guidance, patience and enthusiasm given throughout the progress of this
study.
My appreciation also goes to my beloved family who has been so tolerant and
supports me all these years. Thanks for their encouragement, love and emotional
supports that they had given to me.
I would also like to thank Medical Electronics Laboratory assistant, Mr.
Haikal, and others who are not mentioned for their co-operations, guidance and helps
in this study.
Nevertheless, my great appreciation dedicated to my best friends MK Tan,
YO Tan, Pang, KS Tan, and SEP member‟s batch 2006 and those that involve
directly or indirectly with this study. Without you all, it is impossible for me to
accomplish this study. Thank you very much.
viii
ABSTRACT
Special children are children who experienced learning difficulties. Some of
their disabilities are Down syndrome, autism, global delay, epilepsy and slow learner.
In this study, the special children are referring to children with Down syndrome.
Early intervention program is a systematic program with therapy, exercises, and
activities which designed to help special children. Cognitive development is the
construction of thought processes, including thinking, problem solving, concept
understanding, and decision-making, from childhood through adolescence to
adulthood. It is one of the most important skills that have to be developed for Down
syndrome children. This study is focused mainly on development of the cognitive
ability support system. The aim is to help them improving their logical thinking and
memory skills. In brief, this study is about the development of software system for
the cognitive ability. This includes the implementation of the radio frequency
identification (RFID) reader and graphical user interface. The complete system is
then test to ensure the accuracy of result, user acceptability and reliability of the
system. The results show that the system can generate result in graphical form and
training for improving the cognitive ability of the children. In conclusion, the system
can be used in order to help trainers/parents to train children with Down syndrome.
ix
ABSTRAK
Kanak-kanak istimewa adalah anak-anak yang mengalami kesulitan belajar.
Kebanyakan dari mereka cacat Down syndrome, autism, global delay, sawan dan
pelajar lambat. Dalam kajian ini, kanak-kanak istimewa merujuk kepada anakanak dengan sindrom Down. Program intervensi awal adalah program sistematik
dengan terapi, latihan dan aktiviti yang dirancang untuk membantu kanak-kanak
istimewa. Pembangunan kognitif adalah pembangunan proses berfikir, termasuk
berfikir, penyelesaian masalah, pemahaman konsep dan membuat keputusan, dari
zaman kanak-kanak sampai remaja hinggalah dewasa. Ini adalah salah satu
kemahiran penting yang harus dipupuk kepada anak-anak sindrom Down.
Keutamaan kajian ini tertumpu kepada pembangunan sistem sokongan
kemampuan kognitif untuk kanak-kanak istimewa. Ini adalah untuk membantu
mereka dalam meningkatkan pemikiran logik dan kemahiran fikiran. Secara
singkat, projek ini adalah tentang pengembangan sistem perisian untuk melatih
kemampuan kognitif. Ini termasuk pelaksanaan pembaca radio frequency
identification (RFID) dan antara muka pengguna grafik. Sistem lengkap kemudian
menguji untuk memastikan ketepatan keputusan, penerimaan pengguna dan
kebolehpercayaan sistem. Keputusan kajian menunjukkan bahawa sistem dapat
menghasilkan keputusan dalam bentuk grafik dan latihan untuk meningkatkan
kemampuan kognitif anak-anak. Sebagai kesimpulan, sistem boleh digunakan
untuk membantu pelatih atau orang tua untuk melatih anak-anak dengan sindrom
Down.
x
TABLE OF CONTENTS
CHAPTER
1
2
TITLE
PAGE
DECLARATION OF THESIS
ii
DEDICATION
iii
ACKNOWLEDGEMENT
vii
ABSTRACT
viii
ABSTRAK
ix
TABLE OF CONTENTS
x
LIST OF TABLES
xiii
LIST OF FIGURES
xiv
LIST OF APPENDICES
xvi
INTRODUCTION
1
1.1
Background
1
1.2
Problem Statement
2
1.3
Objectives of Study
3
1.4
Scope of Study
3
1.5
Work Flow
3
1.6
Gantt Chart
5
1.7
Thesis Outline
6
LITERATURE REVIEW
7
2.1
Down Syndrome
7
2.2
Cause of Down Syndrome
7
2.3
Characteristics of Down Syndrome
9
2.4
Early Intervention (EI)
11
xi
3
4
2.5
Cognitive Assessment
12
2.6
Cognitive Development
12
2.7
Radio-frequency Identification (RFID)
13
2.8
Comparison between RFID and Barcode
14
2.9
Visual C#
15
METHODOLOGY
19
3.1
Introduction
19
3.2
Project Flow
19
3.3
Work Breakdown
20
3.4
Group of Activities
21
DESIGN AND IMPLEMENTATION
23
4.1
Introduction
23
4.2
System Configuration
23
4.2.1 Computer-Based Processing Unit
24
4.2.2 RFID-Based Input Unit
25
4.2.3 Driver for RFID reader
26
Software Implementation
28
4.3.1 Software Algorithm
28
4.3.2 Programming in Visual C#
29
Implementation of Cognitive Ability Support System
30
4.4.1 Cognitive Ability Menu
31
4.4.2 Assessment and Training Tools
31
4.4.3 Cognitive Ability Support System
32
4.3
4.4
5
6
RESULT AND ANALYSIS
35
5.1
Introduction
35
5.2
Result in Graphical Form and Training Table
35
5.3
User Acceptability Test
37
5.4
User Data Management
42
CONCLUSION AND RECOMMENDATION
44
6.1
44
Conclusion
xii
6.2
Recommendation
45
REFFERENCES
46
APPENDICES A-E
48
xiii
LIST OF TABLES
TABLE NO.
TITLE
PAGE
1.1
Gantt chart of the study schedule for semester 1
5
1.2
Gantt chart of the study schedule for semester 2
5
2.1
Comparison between RFID and barcode
15
3.1
Groups of activities in Cognitive Module
22
5.1
User acceptability test
38
xiv
LIST OF FIGURES
FIGURE NO.
TITLE
PAGE
1.1
Work flow of Study
4
2.1
Normal Set of Chromosomes
8
2.2
Trisomy 21
8
2.3
Percentage of children and families who received
each early intervention service
11
2.4
A basic RFID System
14
2.5
New form for C#
16
2.6
Toolbox for C#
17
2.7
Properties of C#
18
2.8
Project window
18
3.1
Work flow of the program
20
3.2
Work breakdown of the program
21
4.1
System configuration of cognitive ability support
system
24
4.2
Computer-based processing units
24
4.3
RFID Reader IDR-232
25
4.4
Software algorithm
28
4.5
Source code for GUI application
29
4.6
GUI application for assessment menu
30
xv
4.7
Toys for training
31
4.8
Cards with RFID tags
32
4.9
Training of computer based
32
4.10
GUI for cognitive ability support system
33
4.11
Children Data Form
33
4.12
Assessment form for choosing child name
34
4.13
List of assessment in Assessment Form
34
5.1
Result in graphical form
36
5.2
Training Table
36
5.3
Choosing training from the tab provided
37
5.4
Previous display
38
5.5
Current display with different background picture
38
5.6
Displays with small font size
39
5.7
Display with font size adjusted
39
5.8
Contents of the display
40
5.9
Example of user-friendly application
40
5.10
Simple language used within the application
41
5.11
Source code for children data management
42
5.12
Children data that has been successful saved in
database
5.13
Source code for updating assessment and training
data
5.14
42
43
Database for updating assessment and training
data
43
xvi
LIST OF APPENDICES
APPENDIX
A
TITLE
Instruction Manual for Cognitive Assessment and Training
Support System
B
Manual for RFID Reader IDR-232
C
Source Code for Cognitive Assessment and Training Support
System
D
Cognitive Assessment Menu
E
Cognitive Training Menu
CHAPTER 1
INTRODUCTION
1.1
Background
Down syndrome is set of mental and physical symptoms that result from
having an extra copy of chromosome 21. It is one of the most common genetic birth
defects, affecting approximately from one in 600 to one in 1,000 babies. According
to National Down Syndrome Society, there are more than 350,000 individuals with
Down syndrome. The chance of a woman having a child with Down syndrome
increases as she getting older.
A child with Down syndrome may have upward slant to the eyes, small ears
that may fold over slightly at the top and flat facial features, with a small nose. Their
mouth may be small, making the tongue appear large. Some babies with Down
syndrome have short necks and small hands with short fingers. The child or adult
with Down syndrome is often short and has unusual looseness of the joints.
People with Down syndrome experience delays of cognitive and physical
development, but the effect is usually mild to moderate. Research has shown that
educational and therapeutic interventions such as early intervention services can
2
greatly benefit learners with Down syndrome. In the other words, supports and early
planning are often necessary to facilitate employment and community life.
Early intervention is a systematic program of therapy, exercises and activities
designed to help children with Down syndrome. The most common early
intervention services is use to cover physiotherapy, occupational therapy, speech
therapy and special educational help. Early intervention may focus on the child alone
or on the child with the family. Early Intervention should begin any time shortly after
birth, and usually continue until school.
Currently, early intervention program is not widely implemented in Malaysia
due to some problems such as limited centres and experience trainers, lack of
assessment and training tools, and the EIP is highly dependent on trainers manually.
In order to solve the problems, ELISSA (Early Intervention Support System for
Special Children) smart doll was designed. ELISSA consists of six modules which
are cognitive, language, fine motor, and gross motor, social emotional and self help
modules. For the current ELLISA, the cognitive module is still new and incomplete.
Thus, the cognitive module is insufficient and uneffective.
1.2
Problem Statement
There are some development delays on Down syndrome which are cognitive,
fine motor, gross motor and speech. Although there are few modules in ELLISA, but
some of the module is incomplete. However, it is important to complete all the
modules so that it can be use to help children with Down syndrome to complete their
early intervention program with more effective and sufficient. One of the incomplete
modules is cognitive assessment and training. This module is insufficient and
ineffective for the training. Thus, a new module of cognitive assessment is required
to improve the current module and to make it more efficient.
3
1.3
Objectives of Project
There are two objectives to achieve in this study. The first objective is to
develop an algorithm and software system for cognitive assessment and training for
special children. Besides that, the second objective is to provide an effective training
guidance for cognitive development of special children.
1.4
Scope of Project
There are several scope have been outlined for this study. The scope of this
study includes the age of special children, the concentration of the study and the
programming language. This study is limited for special children from 0 to 6 years
old and it is concentrate fully on the cognitive assessment and training. Other than
that, the programming language used is Visual C# programming. The software
system will be implemented in ELLISA smart doll.
1.5
Work Flow
The summary of the work flow of this study is simplified into block diagram
as shown in Figure 1.1. The starting point of this study is literature review. This is
continuously done throughout the study.
After having an overview of the data related to assessment and training of
cognitive ability, the suitable data is selected based on the scope and limitation of the
study. Software implementation begins with algorithm for the assessment and
training for cognitive ability and continues with the graphical user interface (GUI).
The software and the GUI are integrated for testing and optimization of the system.
4
The Gantt chart of the study is included in section 1.6. Table 1.2 and Table
1.3 show the detail of Gantt chart of work done with the time spending on it for two
semesters.
Literature review
Collecting data of assessment
and training for cognitive ability
Software Implementation
Software Integration
Testing and Optimization
Presentation and Demo
Report Writing
Figure 1.1 Work flow of the study
5
1.6
Gantt Chart
Table 1.1 Gantt chart of the study schedule for semester 1
Task
Study on available support
system (ELISSA) including
function, hardware and
software related to cognitive
assessment and training
Collect data of assessment
and training method for
cognitive ability
Develop an algorithm to do
assessment and training for
cognitive ability
Learn Visual C#
programming
Thesis writing
1
2
3
4 5 6
7
8
9
10 11 12 13 14
Presentation
Table 1.2 Gantt chart of the study schedule for semester 2
Task
Realization of hardware and
components required for
assessment and training
Software implementation
Testing and optimization of
the system
Thesis writing
Presentation
Demo
1
2
3
4 5 6
7
8
9
10 11 12 13 14
6
1.7
Thesis Outline
This thesis is a report of a final year study with title “Cognitive Assessment
and Training Support System for Special Children”. There are five chapters included
in this thesis and they are explained in detail.
Chapter 1 explain about the information of the study background, problem
statement, objectives, scope of work, work flow, Gantt chart and thesis content.
There is an overview of the study and also the significant of the study described in
this chapter.
Chapter 2 consists of the related literature to this study. The detailed of the
topic will be explained in this chapter. The details include early intervention program,
RFID tags, and fundamental of programming the software.
Chapter 3 is about the design and implementation. The design and
implementation steps are explain in detail in this chapter.
Chapter 4 consists of the information about the results and discussion. Lastly,
chapter 5 summarizes the study and some conclusions are drawn. Future work
suggestions are also included in this chapter.
CHAPTER 2
LITERATURE REVIEW
2.1
Down Syndrome
Down syndrome is a chromosomal disorder caused by an error in cell division
that results in an extra 21st chromosome. Each year approximately 3,000 to 5,000
children are born with this chromosome disorder. There are about 250,000 families in
the United States who are affected by Down syndrome [1].
The only factor known to affect the probability of having a baby with Down
syndrome is maternal age [2]. That is, to those mother who less than 30 years old, the
probability to get a children with Down syndrome is one in 1,000 pregnancies. For
mothers who are 44 years old and above, the result of getting a child with Down
syndrome is one in 35 pregnancies. Adults with Down syndrome usually have life
expectancy about 55 years, though average lifespan varies.
2.2
Cause of Down Syndrome
Human body is made up of cells and all cells contain of chromosome. Human
cells normally have 46 chromosomes which can be arranged in 23 pairs as shown in
8
Figure 2.1. In Down syndrome, 95% of all cases of Down syndrome are caused by
one cell that has two 21st chromosomes instead of one, so the resulting fertilized egg
has three 21st chromosomes [3]. The scientific name for this chromosomal disorder is
called trisomy 21 as shown in Figure 2.2.
Figure 2.1 Normal set of chromosomes
Figure 2.2 Trisomy 21
In reproduction, the egg cell of the mother and the sperm cell of the father
start up with 46 chromosomes. These 46 chromosomes are divided in half where egg
cells and the sperm cells then end up with 23 chromosomes each. When a sperm with
23 chromosomes fertilizes with an egg with 23 chromosomes, the baby ends up with
a complete set of 46 chromosomes, which is half from the father and half from the
mother.
9
A fertilized egg that contains chromosome pairs from 1 to 22 and the XX pair
will develop into a female while a fertilized egg that will develop into a male
contains chromosome pairs 1 through 22, and the XY pair. The fertilized egg may
have the right number of chromosomes, but, due to an error in chromosome division
early in embryonic development, some cells acquire an extra chromosome 21 [3].
The children with Down syndrome basically have 47 chromosomes due to the
presence of an extra chromosome 21. The extra chromosome in trisomy 21 could
either originate in the mother or the father. Most often, however, the extra
chromosome is coming from the mother [1].
2.3
Characteristics of Down Syndrome
People with Down syndrome possess some unique characteristics that are
common among and specific to people with the condition [5]. The characteristics of
people with Down syndrome can be divided into three categories which are physical;
medical; and cognitive or developmental, behavioral and interpersonal. There are
about 100 identified characteristics of Down syndrome [4]. Not every people with
Down syndrome have all the characteristics; some may only have a few, and some
may show most of the characteristics of Down syndrome.
Although some of the physical characteristics of Down syndrome may be
seen in people without the condition, a combination of certain physical traits is often
a fairly easily recognizable indication to parents and physicians that a child has the
condition [5]. The most common facial characteristics of Down syndrome are a
flattened appearance to face, a high and broad forehead, an upward slant to the eye, a
narrow slit to the eyes, small ears and mouth, and short neck. They have a small,
depression near the nose with slightly flattened bridge across. Their arms and legs are
short with short fingers and toes and there is a large space between the first and
second toe. If six to ten of the above characteristics are present, the diagnosis of
Down syndrome can be reasonably assumed, however a karyotype test (a test to
identify and evaluate the size, shape, and number of chromosomes in a sample of
10
body cells) should be performed even if a few of the physical characteristics are
present, basically they are coupled with any of the medical or cognitive
characteristics.
Along with these physical characteristics, people with Down syndrome may
have a wide range of health problems. Some of the common medical characteristics
of Down syndrome are congenital heart defects, gastrointestinal disorders, respiratory
problems, childhood leukemia and increased susceptibility to infection [4]. The most
serious of the medical characteristics is cardiac abnormalities. Proper cardiac
monitoring of people with Down syndrome is imperative, and should begin after the
child is born, or the condition is identified. Medications and lifelong cardiac are not
uncommon in children with Down syndrome. In some cases, a heart surgery may be
indicated. People with Down syndrome have a higher risk of inflection because they
have a depressed immune system. Other medical problems are vision and hearing
problems, epilepsy, skin problems (skin becomes coarse and dry as they grow older),
gastrointestinal problems (including the anatomical abnormalities such as annular
pancreas), and thyroid problems.
There is an extremely wide disparity among people with Down syndrome in
the issues of cognitive or developmental delay [5]. Many people with Down
syndrome attend school and work with little or no assistance; participate in decisions
that affect them, and contribute to society in many wonderful ways. Others require
more help and may either attend special education classes or school for the
developmentally delayed. Impulse control can depress in people with Down
syndrome and to another behavioral characteristic, which is a strong attention to food
and eating, and a resulting tendency toward overweight. The limitation of food intake
can present a particular problem for people with Down syndrome and for their
caregivers.
11
2.4
Early Intervention (EI)
Early intervention applies to children of school age or younger who are
discovered to have or be at risk of developing disabilities that may affect their
development. There are three primary reasons for early intervention that are to
enhance the child's development, to provide support and assistance to the family, and
to maximize the child's and family's benefit to society. Early intervention services
also have a significant impact on the parents and siblings of young child. Only
through early identification and appropriate programming, children can develop their
potential [12].
The most frequently services provided were speech/language therapy, special
instruction, occupational therapy, developmental monitoring, and physical therapy.
Figure 2.3 shows the percentage of children and families who received each early
intervention services.
Figure 2.3 Percentage of children and families who received each early intervention
service [12]
12
2.5
Cognitive Assessment
Cognitive assessment is a scientific attempt to study cognition and measure
human behavior [13]. Measurement of human behavior involves giving the
participant an opportunity to “behave” and measuring it. A measurement tool should
be reliable and valid, sensitive, safe and should offer the assessor full control over the
data collection process. Allowing the participant “to behave” involves the
presentation of stimuli which trigger recordable reactions by the participant [14].
Many classic, paper-pencil cognitive assessment tests offer very limited stimuli, little
freedom to behave and low ecological validly (that is, little relevance to normal,
everyday human behavior in the real world) [15].
2.6
Cognitive Development
Development is the continuous progressive change in the organism.
Psychologists have analyzed it from the different aspects which include physical,
mental, social, emotional, and moral development. Mental development means
development of perception, memory, imagination, thinking, reasoning intellect, and
many modern psychologists call these as cognitive development. Cognitive
development is defined as thinking, problem solving, concept understanding;
information processing and overall intelligence [10].
Adaptation is the main basis of cognitive development. Jean Piaget states that
there are five fundamental stages of cognitive development of a child. The stages are
stage of sensory-motor thinking, pre-conceptual stage, and stage of institutive
thought, stage of concrete operation, and stage of formal operation. From birth up to
the stage of two years is the stage of sensory-motor actions. Sensation caused by
sound is a common experience to a child and makes him utilize his power of thinking.
The second stage is called pre-conceptual stage where child can form some
pre-concepts based on his past experiences. Pre-conceptual stage takes a complete
change with a purpose of placing the base of concepts on solid foundations and
13
making them practical and more expanded. The next stage is called stage of intuitive
thought. This stage expands from 4 to 8 years old. The difficulties of thinking which
exists at pre-conceptual stage get eliminated and active realistic thoughts develop.
The next stage of cognitive development expands from 8 to 11 years, and this
stage is called period of concrete operation. When the children make synthesis in the
fundamental thoughts, their active or rational thinking begins. A child, when he
reaches at the stage of concrete operation, forms concepts facing realities. The last
stage of cognitive development is the period of formal operation which from 11 to 15
years. At this stage, the thoughts of a child are not controlled by his practical
experiences or personal observation but acquire power of abstract thinking.
2.7
Radio-Frequency Identification (RFID)
Radio-Frequency Identification (RFID) is a generic term that is used to
describe a system which transmits the identity in the form of a unique serial number
wirelessly, using radio waves. This is a technology that allows automatic
identification of objects, animals or people by incorporating a small electronic device
that consists of a small chip and an antenna. Data is stored on the chip and be "read"
by wireless devices, called RFID readers. The chip typically is capable of carrying
2,000 bytes of data or less.
A basic RFID system consists of three components which are an antenna or
coil, a transceiver with decoder and a transponder (RF tag) electronically
programmed with unique information as shown in Figure 2.4. The antenna puts out
radio-frequency signals in a relatively short range. The RF radiation does two things
which are provides a means of communicating with the transponder (the RFID tag)
and provides the RFID tag with the energy to communicate in the case of passive
RFID tags. RFID tags do not need to contain batteries, and can remain usable for
very long periods of time.
14
Figure 2.4 A basic RFID system
The antenna from the RFID system emits radio signals to activate the tag and
to read and write data to it. The RFID reader emits radio waves in ranges of
anywhere from one inch to 100 feet or more, depending upon its power output and
the radio frequency used. When an RFID tag passes through the electromagnetic
zone, it detects the reader's activation signal. The reader decodes the data encoded in
the tag's integrated circuit (silicon chip) and the data is passed to the host computer
for processing.
RFID tags divided into two types which are active and passive RFID tags.
Active RFID tags have their own power source usually by a battery while the passive
RFID tags do not require batteries but it operate using power from the RFID
transceiver. The advantage of using active RFID tags is that the reader can be much
farther away and still get the signal. Even though some of these devices are built to
have up to a 10 year life span, they have limited life spans. Passive RFID tags can be
much smaller, inexpensive and have a virtually unlimited life span, but do not have
good range. Passive tags typically store between 32 and 128 bits of data and are
Read-Only while active tags can store up to 1MB of data and are typically rewritable.
2.8
Comparison between RFID and Barcode
Table 2.1 below describe the differences between RFID and barcode in terms
of direct line of sight, range of read, read rates, read or write and their price.
15
Table 2.1 Comparison between RFID and barcode
RFID
Barcode
Direct line of sight

Do not require a direct 
line of sight to either
active RFID tags or
passive RFID tags.

Require a direct line of
sight to the printed
barcode
Printed barcode must
be exposed on the
outside of the product.
Range of read

Can be read at much 
greater distances.
Pull information from a 
tag at distances up to 300
feet.
Range to read is much
less.
Pull information no
more than fifteen feet.

Read rates


Much faster.

Read rates of forty or 
more tags per second are
possible.

More time-consuming.
May take seconds to
read an individual tag.
Usually take a halfsecond or more to
successfully complete a
read.
Read/write


Can be read/write.

Alter as much of the 
information as the tag
design will allow.
No read/write.
Cannot add to the
information written on
a printed barcode.
Price

More expensive.
2.9

Cheaper.
Visual C#
Visual C# (C Sharp) is a new language introduced by Microsoft along with
Visual Studio and their goal is to provide the ease of working with Visual Basic with
the flexibility and power of the Java and C++ languages. The syntax of C# is similar
to Java and C++ to make it easy for creating a graphical user interface (GUI).
C# is fully object-oriented, compatible with many other languages using
the .NET Framework. This book incorporates the object-oriented concepts
throughout, as well as the syntax and terminology of the language [16].
16
C# is designed to allow the programmer to develop applications that run
under Windows and/or in a Web browser without the complexity generally
associated with programming. The programmer can design a screen that holds
standard elements such as buttons, check boxes, radio buttons, text boxes, and list
boxes. Each of these objects operates as expected, producing a “standard” Windows
or Web user interface [16].
There are three primary steps involved in building a Visual C# graphical user
interface (GUI):
1. Draw the user interface.
2. Assign properties to controls.
3. Attach code to controls.
The form window (Figure 2.5) is central to developing Visual C# application.
It is where the application is to be drawn.
Figure 2.5 New form for C#
The toolbox (Figure 2.6) contains the tools that will be used in the application.
17
Figure 2.6 Toolbox of C#
The Properties Window (Figure 2.7) is used to establish initial property
values for objects. The Combo box at the top of the window lists all objects in the
current form. Under this box are the available properties for the currently selected
object.
Figure 2.7 Properties of C#
18
The Project Window (Figure 2.8) displays a list of all forms and modules
making up the application.
A view of the Form or Code windows (window
containing the actual basic coding) also can be obtained from the Study window.
Figure 2.8 Project window
The user interface is „drawn‟ in the form window. To place controls on a
form, double-click the tool in the toolbox and it is created with a default size on the
form. You can then move it or resize it.
CHAPTER 3
METHODOLOGY
3.1
Introduction
In this chapter, it will discuss about the methodology of the study. It will
include the flow of the study and the work breakdown. Apart of that, there will be a
group of activities for the cognitive assessment and training that have to use in the
program.
3.2
Project Flow
The implementations of the study are summarized in figure 3.1. First,
identify the problem and state the specification of the study. Then, collect the
information for the program development. After that, develop the algorithm for the
cognitive assessment and training support system. The testing and implementation
will be done after develop the algorithm for the support system. Lastly, the system
will be improved after analysis on the result.
20
Identify problem/ specification of the project
Collect information to approaching the project
development
Develop cognitive assessment and training
support system including the algorithm
Testing and implement cognitive ability
support system
System optimization, improvement and
analysis on result
Figure 3.1 Work Flow of the program
3.3
Work Breakdown
The study has been divided into individual components in a hierarchical
structure, known as the work breakdown structure. The component divided into
software implementation, RFID reader implementation, and support system
implementation. The study will be easily done based on the work breakdown.
21
Cognitive ability support
system
RFID reader
implementation
Software
Implementation
Find for
appropriate
RFID reader
Find for
appropriate
RFID tags
Solve for
assessment &
training method
of cognitive ability
Solve for RFID
driver
Get input from
RFID reader
Support system
implementation
Execute
assessment &
training for
cognitive ability
Analysis on
individual EIP
generator and its
database
Solve for
database
Analysis on other
testing
Make database
for cognitive
ability
Define the
algorithm
Figure 3.2 Work breakdown of the program
3.4
Group of Activities
The activities in the cognitive module in ELISSA are chosen from Hawaii
and Denver by occupational trainer for special children. This module has been
divided into several groups such as perception, concentration, logical thinking and
memory. Table 3.1 shows the groups of activities in cognitive module. This is one of
22
the easier ways for the trainers or parents to give training for the child. By dividing
the activities in separate groups, the trainers or parents can recognize where the
weakness part of the child is and can give concentration of training to the child.
Table 3.1 Groups of activities in cognitive module
Group Number
COGNITIVE
33001
PERCEPTION
33002
CONCENTRATION
33003
LOGICAL THINKING
33004
MEMORY
CHAPTER 4
DESIGN AND IMPLEMENTATION
4.1
Introduction
This chapter discusses more on design and implementation of cognitive
assessment and training support system. There is a brief description on the support
system design configuration with RFID-based input unit system. Besides that, this
chapter also described about the Visual C# software implementation. Lastly, it will
discuss about the implementation of cognitive support system.
4.2
System Configuration
Figure 4.1 shows the configuration of the support system that is going to be
designed. The design provides a simple and conductive method for cognitive
assessment and training support system. This system can be done by interaction
between RFID reader, tags, a trainer and children. RFID reader is a medium to
communicate between the trainer and children and reader is used for instrument
based training and user identification. Graphical User Interface (GUI) is designed
using Visual C# programming language. The monitor will be used for execute
assessment and training for children.
24
Figure 4.1
4.2.1
System configuration of cognitive ability support system
Computer-based Processing Unit
The support system design will be implemented using Visual C# as the
programming tool. The input of the system will be the user data and the output will
be assessment / training display and table training. This can be described in Figure
4.2.
Figure 4.2 Computer-based processing units
25
4.2.2
RFID-based Input Unit
Radio Frequency Identification (RFID) device is part of cognitive ability
support system. It is used as the input unit for the computer processing unit. This
RFID device can detect or read RFID tags (input) and the data input will be sent to
the processing unit to evaluate results such as results for assessment and training of
cognitive ability. Figure 4.3 shows the type of RFID reader used.
Communication
port
Power source
Figure 4.3 RFID Reader IDR-232
Reader IDR-232 has been designed with capabilities and features of:
•
Low cost solution for reading passive RFID transponder tags.
•
9600 baud RS232 serial interface (output only).
•
Fully operation with 5VDC power supply.
•
Buzzer as sound indication of activity.
•
Bi-color LED for visual indication of activity.
•
Standard RS232 serial cable for communication port
•
USB power source from laptop.
•
0 - 2 cm reading range.
26
•
0.1s response time.
•
Operating frequency: 125kHz
•
RFID tags used : MIFARE card
The connection of the RFID reader must be connecting to desktop/ laptop for
power supply and the communication line must be connect to serial port of the
computer. After providing power through USB power source, the LED will be in
YELLOW color. High level language (Visual C# programming language) which can
access to serial port is used to develop program for IDR-232 on the computer.
4.2.3
Driver for RFID reader
IDR-232 is basically connected to desktop or laptop through communication
line. In order to get the input reading of RFID tags, the reader is connected to the
Hyper Terminal (software) with appropriate configured settings.
In visual c# implementation, this RFID reader can be connected by a driver in
the form of visual c# source code. This driver is called using System.IO.Ports. It is
part the loadable device driver interface. Below shows the source code for the
connection of RFID reader through Visual c#:
public void startRecognition()
{
tagsActivated = true;
isTagTrue = new Boolean[tagIDNow.Length];
for (int i = 0; i < isTagTrue.Length; i++)
isTagTrue[i]=false;
readTag = "";
if (serialPort1.IsOpen) serialPort1.Close();
serialPort1.PortName = "COM6";
27
serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.ReceivedBytesThreshold = 5;
serialPort1.Open();
timernow = 0;
timer1.Start();
}
private
void
serialPort1_DataReceived(object
System.IO.Ports.SerialDataReceivedEventArgs e)
{
//if read RX = 0 then new card
RxString = serialPort1.ReadExisting();
if (RxString.Equals("0"))
{
readTag = RxString;
}
else
{
readTag = RxString;
if (readTag.Length == 10)
{
this.Invoke(new EventHandler(DisplayText));
readTag = "";
}
}
}
sender,
28
4.3
Software Implementation
4.3.1
Software Algorithm
The algorithm of the cognitive ability support system can be seen through the
flow chart below. There are three main parts for cognitive ability support system.
First include user data which consists of input storage and update data. Second is the
assessment generation and lastly report and training.
Figure 4.4
Software algorithms
29
4.3.2
Programming in visual C#
Visual C# programming is used to be an easy reference for interfacing with
the user of the cognitive ability support system. Figure 4.5 shows part of visual C#
programming language that has been developed for GUI application of cognitive
assessment as shown in Figure 4.6.
Figure 4.5
Source code for GUI application
30
Figure 4.6
4.4
GUI applications for assessment menu
Implementation of Cognitive Ability Support System
This part is important in order to make sure that the support system can give
an efficient impact for special children. The method of assessment and training for
special children in cognitive ability is to locate the level of the children and give
appropriate training to them. In order to train the children effectively, this support
system use images which special children can see or identify in real situation. The
support system will assess and train the children in cognitive ability by using related
cards with RFID tags and also other training tools.
31
4.4.1
Cognitive Ability Menu
The concept of the cognitive ability support system is generally to train
children for their logical thinking and memory skills. Once they have learn this, they
will be able to communicate and can memorized things happen around them in daily
life. The cognitive ability menu divided into two parts, which is menu for assessment
and menu for training.
The menu of assessment menu consists of 113 assessments that needed the
trainer or parent the answer in order to know the level of the children accurately.
While the menu for training consists of 39 trainings with description which can cover
all the important skills that needed for cognitive ability such as perception, logical
thinking and so on.
4.4.2
Assessment and Training Tool
Special children are normally preferred to colours, pictures, and toys. In order
to make this support system more interactive, there are three types of tools used in
this cognitive ability support system, some of them include RFID tags.
1) Toys for training (e.g. ball)
Figure 4.7 Toys for training
2) Pictures with RFID tag
32
Figure 4.8 Cards with RFID tags
3) Training (computer based)
Figure 4.9 Training of computer based
4.4.3
Cognitive Ability Support System
This support system is design with simple and attractive interface as shown in
Figure 4.10. It has been designed with a necessary log in page in order to ensure that
the children data is secure from being access by others. The display of GUI
application also has interactive sound display to interact with the children.
33
Figure 4.10 GUI for cognitive ability support system
The trainers/parents are required to fill in the children data form (Figure 4.11)
before they can proceed to the assessment part. The data of the children are saved in
Microsoft Access so that the trainers/parents do not need to fill in the children data
every time they log in.
Figure 4.11 Children Data Form
34
The trainers/parents will proceed to Assessment form after they click on the
“Save” button. At assessment form, the trainers/parents have to choose the children
name as shown in Figure 4.12 to start the assessment. This can make sure that every
child has done the assessment and the result will be generated in graphical form.
Figure 4.12 Assessment form for choosing child name
After the trainers/parents click on the “START ASSESSMENT” button, they
will go to assessment list as shown in Figure 4.13. The trainers/parents have to rate
the children ability regarding to the name of assessment by clicking yes or no and
also by using cards with RFID tags.
Figure 4.13 List of assessment in Assessment Form
CHAPTER 5
RESULT AND ANALYSIS
5.1
Introduction
In this chapter, the results are discussed after the assessment of cognitive
assessment and training support system. Then, user acceptability testing is done to
find out the feedback of the trainers regarding the usage of this support system. Last
but not least, an analysis on user database management testing are also been made.
5.2
Result in Graphical Form and Training Table
After trainers done the assessment, the result in graphical form will show as
in Figure 5.1. The result shows the level of achievement of the children in each
particular group. The graph shows the result of the children in each group.
36
Figure 5.1
Result in graphical form
The training table will be shown as in Figure 5.2 after the trainers proceed to
the next part by clicking the “Next” button. Training table is design to help or as a
guidance for new trainers to train the children.
Figure 5.2
Training Table
37
The training table consists of date and time that suitable for the trainers to
train the children. The trainers can determine which group of training should be
given to the children from the graph and then choose the suitable training table. After
choosing the suitable training, the trainers can start the training by clicking on the tab
provided or follow the sequence of the program. The training will start after the
trainers clicking on the button “Training” in the suggested training table form.
Figure 5.3
5.3
Choosing training from the tab provided
User Acceptability Test
Table 5.1 below shows the user acceptability test that have been done on the
display of the layout, font size of the contents, contents are stated clearly, use
friendly application, language is easy to understand, transaction time to detect RFID
card and also sound display.
38
Table 5.1
Events
User acceptability test
User’s Feedback
Display of
the Layout
Figure 5.4 Previous display
Figure 5.5 Current display with different background picture
User‟s feedback: The display in Figure 5.4 is not interesting and
needs to be change.
Solution: Display has been improved as shown in Figure 5.5.
39
Font size of
the contents
Figure 5.6 Display with small font size
Figure 5.7 Display with font size adjustment
User‟s feedback: The font size in Figure 5.6 is too small and needs
to adjust.
Solution: The font size has been improved as shown in Figure 5.7.
40
Contents are
stated clearly
Figure 5.8 Contents of the display
User‟s feedback: The contents stated are very clear to be
understood and followed (no adjustment needed).
User-friendly
application
Figure 5.9 Example of user-friendly application
User‟s feedback: The application is very user-friendly. For
example, user can access any part in the program directly by
clicking the buttons on the tab after they log in.
41
Language
used are
easily
understood
1. Bring your pupil one of his/her toy.
2. Take another toy (his/her favorite toy) and offer to
his/her.
3. Encourage him/her to reach for his/her favorite
toy.
Figure 5.10 Simple language used within the application
User‟s feedback: The words and sentences used within the
application are easily to be understood. It is helpful for trainers
especially parents in order to use the counting skills support system
effectively.
Transaction User‟s feedback: The time for RFID detection is quite fast.
time to detect Reading response is generally 0.01s.
RFID card
Sound
display
User‟s feedback: Sound display is satisfied. It has an interactive
sound, effective for the implementation of counting skills support
system.
42
5.4
User Data Management
Figure 5.11 shows the source code for the children data management. Every
time when a new child is register in this support system, the database will detect the
information entered by the user. Figure 5.12 shows the children data that has been
stored in database.
When the information
has been successful
entered, the children
can start assessment.
Figure 5.11 Source code for children data management
Figure 5.12
Children data that has been successful saved in database
Note that in Figure 5.14, the database of cognitive ability can be easily
updated by admin.
43
Figure 5.13 Source code for updating assessment and training data
Figure 5.14 Database for updating assessment and training data
CHAPTER 6
CONCLUSION AND RECOMMENDATION
6.1
Conclusion
The cognitive assessment and training support system has been develop in
order to help children with Down syndrome or in other word “special children” for
improving the cognitive ability. The support system also used for user data
management in Early Intervention Program.
In this study, the cognitive ability is divided into four sub-groups which are
perception, concentration, logical thinking, and memory. The system is mostly focus
on the software development for the support system. The graph for each sub-group in
cognitive ability has been developed after the assessment to show the level of
achievement of the children.
The advantages of this system are simple and conducive method for train
children in cognitive ability, and helpful and efficient method to help Down
syndrome parent.
45
6.2
Recommendation
For future works, it would be beneficial to develop a support system that
consists of more different skill, for example, for gross motor skill and fine motor skill.
The system also should be designed to improve by using more RFID tags for more
accurate result.
46
REFFERENCES
1. Siedfried M. Pueschel (1992). What is Down syndrome, Brown University.
unpublished.
2. MediLexicon International Ltd (2010). Peter Crosta M.A.: What is Down
syndrome? What causes Down syndrome? United Kingdom.
3. Len Leshin (2003). Trisomy 21: The story of Down syndrome Texas.
unpublished.
4. Reshma Jirage (2008). Characteristics of Down Syndrome. US. unpublished.
5. K. Cauldwell (2006). Down syndrome Information: Characteristics of Down
Syndrome. Boston, MA. unpublished.
6. Caroline Latham (2006). What is Cognitive Ability/ what are cognitive
abilities? United Kingdom, unpublished.
7. Nikhil Swaminathan (2007). Cognitive Ability Mostly Developed Before
Adolescence, NIH Study Says. American. unpublished.
8. E. Sharlin, Y. Itoh, B. A. Watson, Y. Kitamura, S. Sutphen, and L. Liu (2002).
"Cognitive Cubes: A Tangible User Interface for Cognitive Assessment," in
Human Factors in Computing Systems CHI 2002. Minneapolis, US: ACM, pp.
347-354.
9. Wadsworth, J. Barry (2003). Piaget's Theory of Cognitive and Affective
Development: Foundations of Constructivism, 5th ed. Upper Saddle River, NJ:
Allyn & Bacon.
10. Karnes, M. B., and R. C. Lee. Early Childhood (1978). VA: The Council for
Exceptional Children. Reston. unpublished.
11. Kathleen Hebbeler, Donna Spiker, Don Bailey, Anita Scarborough, Sangeeta
Mallik, Rune Simeonsson, Marnie Singer, Lauren Nelson (2007). Early
intervention for infants and toddlers with disabilities and their families:
participants, services, and outcomes. SRI International, California, pp.29-41.
12. Meichenbaum and R. Cameron (1981). "Issues in Cognitive Assessment: An
Overview," in Cognitive Assessment, T. V. Merluzzi, C. R. Glass, and M.
Genest, Eds. New York, USA: The Guilford Press.
13. A. A. Rizzo and J. G. Buckwalter (1997). "Virtual Reality and Cognitive
Assessment and Rehabilitation: The State of the Art," in Virtual Reality in
Neuro-Psycho-Physiology: Cognitive, Clinical and Methodological Issues in
47
Assessment and Rehabilitation, G. Riva, Ed. Amsterdam: IOS Press, pp. 123146.
14. Julia Bradley and Anita Millspaugh (2008). “Programming in Visual C# 2008”
available at
http://highered.mcgrawhill.com/sites/0073517216/information_center_view0/
15. D. Patterson (1995). The integrated map of human chromosome 21. In
Etiology and Pathogenesis of Down Syndrome, Wiley-Liss, p 43-55.
16. D. Hernandez and EMC Fisher (1996). Down syndrome genetics: unravelling
a multifactorial disorder. Hum. mol. Genet., 5: 1411-1416.
48
Appendix A
Instruction Manual for Cognitive Assessment
and Training Support System
49
50
Figure A.1: Registration form
51
Figure A.2: Form children data
52
Figure A.3: Form assessment for choose child name
Figure A.4: Form assessment
53
Figure A.5: Form assessment list
54
Figure A.6: Form report in graph
55
Figure A.7: Form table training
56
Figure A.8: Form training
Figure A.9: Form start training
57
Figure A.10: Form training to show description
Figure A.11: Form training to proceed to next page
58
Figure A.12: Form information
59
Appendix B
Manual for RFID Reader IDR-232
60
61
62
63
64
65
66
67
68
69
Appendix C
Source Code for Cognitive Assessment and
Training Support System
70
//Source code for Main Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;
namespace WindowsFormsApplication5
{
public partial class FormMain : Form
{
private int childFormNumber = 0;
public FormMain()
{
InitializeComponent();
}
WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
private void ShowNewForm(object sender, EventArgs e)
{
Form childForm = new Form();
childForm.MdiParent = this;
childForm.Text = "Window " + childFormNumber++;
childForm.Show();
}
private void OpenFile(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
if (openFileDialog.ShowDialog(this) == DialogResult.OK)
{
string FileName = openFileDialog.FileName;
}
}
private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
saveFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
{
string FileName = saveFileDialog.FileName;
}
}
private void ExitToolsStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void CascadeToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.Cascade);
}
private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileVertical);
}
private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileHorizontal);
}
71
private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.ArrangeIcons);
}
private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form childForm in MdiChildren)
{
childForm.Close();
}
}
private void childrenDataToolStripMenuItem_Click(object sender, EventArgs e)
{
FormChildren childForm = new FormChildren();
childForm.MdiParent = this;
childForm.Text = "Children Data";
childForm.Show();
label1.Visible = false;
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
private void FormMain_Load(object sender, EventArgs e)
{
wplayer.URL = (@"C:\elissaData\ChuckBrown_SweetnessAndLight.mp3");
wplayer.controls.play();
}
private void timeTableToolStripMenuItem_Click(object sender, EventArgs e)
{
FormReport childForm = new FormReport();
childForm.MdiParent = this;
childForm.Text = "Graph";
childForm.Show();
label1.Visible = false;
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
private void timeTableToolStripMenuItem1_Click(object sender, EventArgs e)
{
FormReport1 childForm = new FormReport1();
childForm.MdiParent = this;
childForm.Text = "Time Table";
childForm.Show();
label1.Visible = false;
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
private void assessmentAbilityToolStripMenuItem_Click(object sender, EventArgs e)
{
72
Form1Assessment childForm = new Form1Assessment();
childForm.MdiParent = this;
childForm.Text = "Assessment";
childForm.Show();
label1.Visible = false;
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
private void perceptionToolStripMenuItem_Click(object sender, EventArgs e)
{
FormTraining childForm = new FormTraining();
childForm.MdiParent = this;
childForm.Text = "Perception";
childForm.Show();
label1.Visible = false;
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
private void concentrationToolStripMenuItem_Click(object sender, EventArgs e)
{
FormTraining1 childForm = new FormTraining1();
childForm.MdiParent = this;
childForm.Text = "Concentration";
childForm.Show();
label1.Visible = false;
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
private void logicalThinkingToolStripMenuItem_Click(object sender, EventArgs e)
{
FormTraining2 childForm = new FormTraining2();
childForm.MdiParent = this;
childForm.Text = "Logical Thinking";
childForm.Show();
label1.Visible = false;
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
private void memoryToolStripMenuItem_Click(object sender, EventArgs e)
{
FormTraining3 childForm = new FormTraining3();
childForm.MdiParent = this;
childForm.Text = "Memory";
childForm.Show();
73
label1.Visible = false;
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
private void helpMenu_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("c:\\elissaData\\Help.pdf");
}
private void generalInformationToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("c:\\elissaData\\GeneralInfo.pdf");
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "username")
{
if (textBox2.Text == "password")
{
FormChildren childForm = new FormChildren();
childForm.MdiParent = this;
childForm.Text = "Children Data";
childForm.Show();
label6.Visible = false;
label4.Visible = false;
label2.Visible = false;
label3.Visible = false;
textBox1.Visible = false;
textBox2.Visible = false;
label5.Visible = false;
button1.Visible = false;
button2.Visible = false;
}
else if (textBox2.Text.Length > 0)
{
label5.Visible = true;
label5.Text = "Password Wrong";
}
else
{
label5.Visible = true;
label5.Text = "Non-Password Entered";
}
}
else if (textBox1.Text.Length > 0)
{
label5.Visible = true;
label5.Text = "Username Wrong";
}
else
{
label5.Visible = true;
label5.Text = "Non-Username Entered";
}
}
private void button2_Click(object sender, EventArgs e)
{
System.Windows.Forms.Application.Exit();
}
}
}
//Source code for Children Data Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
74
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class FormChildren : Form
{
public FormChildren()
{
InitializeComponent();
setListBox();
}
private void setListBox()
{
listBox1.Items.Clear();
this.tablechilddataTableAdapter1.Fill(elissadbDataSet.tablechilddata);
foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows)
{
listBox1.Items.Add(thedata[1]);
}
listBox1.Refresh();
}
private void button1_Click(object sender, EventArgs e)
{
if ((String)gendercomboBox1.SelectedItem == null)
{
MessageBox.Show("No new child data registered", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Form1Assessment childForm = new Form1Assessment();
childForm.MdiParent = this.MdiParent;
childForm.Text = "Assessment";
childForm.Show();
}
else
{
this.tablechilddataTableAdapter1.Insert(childName.Text,
childBirthplace.Text,
childBirthdate.Value,
(string)gendercomboBox1.SelectedItem,
childNickname.Text,
(string)languagecomboBox2.SelectedItem,
(string)handcomboBox3.SelectedItem
);
setListBox();
Form1Assessment childForm = new Form1Assessment();
childForm.MdiParent = this.MdiParent;
childForm.Text = "Assessment";
childForm.Show();
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int ItemsSelected = listBox1.SelectedIndex;
this.tablechilddataTableAdapter1.Fill(elissadbDataSet.tablechilddata);
foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows)
{
if ((int)thedata[0] == ItemsSelected + 1)
{
idTextBox.Text = Convert.ToString(thedata[0]);
childName.Text = (String)(thedata[1]);
childBirthplace.Text = (String)(thedata[2]);
childBirthdate.Value = Convert.ToDateTime(thedata[3]);
String genderText = (String)thedata[4];
if (genderText.Equals("Male"))
gendercomboBox1.SelectedIndex = 0;
else
gendercomboBox1.SelectedIndex = 1;
childNickname.Text = (String)thedata[5];
75
String languageText = (String)thedata[6];
if (languageText.Equals("Malay"))
languagecomboBox2.SelectedIndex = 0;
else if (languageText.Equals("Chinese"))
languagecomboBox2.SelectedIndex = 1;
else if (languageText.Equals("Tamil"))
languagecomboBox2.SelectedIndex = 2;
else
languagecomboBox2.SelectedIndex = 3;
String dominanthandText = (String)thedata[7];
if (dominanthandText.Equals("Left"))
handcomboBox3.SelectedIndex = 0;
else
handcomboBox3.SelectedIndex = 1;
}
}
}
}
}
//Source Code for Assessment Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;
namespace WindowsFormsApplication5
{
public partial class Form1Assessment : Form
{
// Xml tag for node, e.g. 'node' in case of <node></node>
private const string XmlNodeTag = "node";
// Xml attributes for node e.g. <node text="Cognitive" tag=""
// imageindex="1"></node>
private const string XmlNodeTextAtt = "text";
private const string XmlNodeTagAtt = "tag";
private const string XmlNodeImageIndexAtt = "imageindex";
private int childAge;
private int childID;
private int assessmentID;
private int GroupCount;
private int GroupID;
private int TrainingIDNow;
private String[] tagIDNow;
private String RxString;
private int timernow;
Boolean tagsActivated;
private String readTag;
private Boolean[] isTagTrue;
public Form1Assessment()
{
InitializeComponent();
button3.Visible = true;
button3.Enabled = true;
label1.Visible = false;
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label5.Visible = true;
label6.Visible = false;
this.tablechilddataTableAdapter.Fill(elissadbDataSet.tablechilddata);
FillChildCombo();
}
public void FillChildCombo()
{
foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows)
{
comboBox1.Items.Add(thedata[1] + ";" + thedata[0]);
76
}
}
public void DeserializeTreeView(TreeView treeView, string fileName)
{
XmlTextReader reader = null;
GroupCount = 0;
try
{
// disabling re-drawing of treeview till all nodes are added
treeView.BeginUpdate();
reader = new XmlTextReader(fileName);
TreeNode parentNode = null;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == XmlNodeTag)
{
TreeNode newNode = new TreeNode();
bool isEmptyElement = reader.IsEmptyElement;
// loading node attributes
int attributeCount = reader.AttributeCount;
if (attributeCount > 0)
{
for (int i = 0; i < attributeCount; i++)
{
reader.MoveToAttribute(i);
SetAttributeValue(newNode,
reader.Name, reader.Value);
}
}
// add new node to Parent Node or TreeView
if (parentNode != null)
{
GroupCount++;
parentNode.Nodes.Add(newNode);
}
else
//GroupCount++;
treeView.Nodes.Add(newNode);
// making current node 'ParentNode' if its not empty
if (!isEmptyElement)
parentNode = newNode;
}
}
// moving up to in TreeView if end tag is encountered
else if (reader.NodeType == XmlNodeType.EndElement)
{
if (reader.Name == XmlNodeTag)
parentNode = parentNode.Parent;
}
else if (reader.NodeType == XmlNodeType.XmlDeclaration)
{
//Ignore Xml Declaration
}
else if (reader.NodeType == XmlNodeType.None)
return;
else if (reader.NodeType == XmlNodeType.Text)
parentNode.Nodes.Add(reader.Value);
}
}
finally
{
// enabling redrawing of treeview after all nodes are added
treeView.EndUpdate();
reader.Close();
}
}
private void SetAttributeValue(TreeNode node,
string propertyName, string value)
{
if (propertyName == XmlNodeTextAtt)
77
{
node.Text = value;
}
else if (propertyName == XmlNodeImageIndexAtt)
{
node.ImageIndex = int.Parse(value);
}
else if (propertyName == XmlNodeTagAtt)
{
node.Tag = value;
}
}
private void GenerateAssessment(String filenames)
{
listBox1.Items.Clear();
XmlTextReader reader = null;
try
{
reader = new XmlTextReader("C:\\elissaData\\" + filenames + ".xml");
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == XmlNodeTag)
{
bool isEmptyElement = reader.IsEmptyElement;
int attributeCount = reader.AttributeCount;
if (attributeCount > 0)
{
String texts = "";
String ages = "";
String ids = "";
String tags = "";
for (int i = 0; i < attributeCount; i++)
{
reader.MoveToAttribute(i);
if (reader.Name == "text")
texts = reader.Value;
if (reader.Name == "ages")
ages = reader.Value;
if (reader.Name == "id")
ids = reader.Value;
if (reader.Name == "tags")
tags = reader.Value;
}
if (Convert.ToInt32(ages) >= (childAge - 3) && Convert.ToInt32(ages) >= childAge)
listBox1.Items.Add(ids + ";" + ages + ";" + texts + ";" + tags);
}
}
}
}
if (reader != null)
reader.Close();
}
finally
{
// enabling redrawing of treeview after all nodes are added
reader.Close();
}
}
private void button3_Click(object sender, EventArgs e)
{
button1.Visible = true;
button2.Visible = true;
button3.Visible = false;
button3.Enabled = false;
comboBox1.Visible = false;
comboBox1.Enabled = false;
label1.Visible = true;
label2.Visible = true;
label3.Visible = true;
label4.Visible = true;
label5.Visible = false;
78
label6.Visible = true;
this.startAssessment();
}
private void countAge()
{
String childSelected = (String)comboBox1.SelectedItem;
char[] seps = { ';' };
String[] datas = childSelected.Split(seps);
DateTime childBirth = DateTime.Now;
childID = Convert.ToInt32(datas[1]);
foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows)
{
if (Convert.ToInt32(thedata[0]) == Convert.ToInt32(datas[1]))
childBirth = Convert.ToDateTime(thedata[3]);
}
// cache the current time
DateTime now = DateTime.Today; // today is fine, don't need the timestamp from now
// get the difference in years
int years = now.Year - childBirth.Year;
int Months = now.Month - childBirth.Month;
childAge = (years * 12) + Months;
}
private void startAssessment()
{
if ((String)comboBox1.SelectedItem == null)
{
MessageBox.Show("No selection of child is being made", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Form1Assessment childForm = new Form1Assessment();
childForm.MdiParent = this.MdiParent;
childForm.Text = "Children Data";
childForm.Show();
}
else
countAge();
assessmentID = 0;
GroupID = 0;
DeserializeTreeView(treeView1, "C:\\elissaData\\Cognitive.xml");
treeView1.Refresh();
treeView1.SelectedNode = treeView1.Nodes[0].Nodes[0];
treeView1.SelectedNode.ForeColor = Color.Red;
String filenames = treeView1.Nodes[0].Nodes[GroupID].Text;
GenerateAssessment(filenames);
NextAssessment(10);
}
private void Form1Assessment_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'elissadbDataSet1.tabletrainingresult' table. You can move, or remove it,
as needed.
this.tabletrainingresultTableAdapter.Fill(this.elissadbDataSet.tabletrainingresult);
// TODO: This line of code loads data into the 'elissadbDataSet1.tablechilddata' table. You can move, or remove it, as
needed.
this.tablechilddataTableAdapter.Fill(this.elissadbDataSet.tablechilddata);
}
private void button1_Click(object sender, EventArgs e)
{
if (tagsActivated)
EndRecognition();
NextAssessment(1);
}
private void button2_Click(object sender, EventArgs e)
{
if (tagsActivated)
EndRecognition();
NextAssessment(0);
}
private void NextAssessment(int AnswerIs)
{
//record AnswerIs as the result where Group id is GroupID and Assessment ID is assessmentID
//assessmentID++;
79
if (AnswerIs<=10)
this.tabletrainingresultTableAdapter.Insert(TrainingIDNow, childID, 5, AnswerIs, DateTime.Now);
// this.tabletrainingresultTableAdapter.Update(elissadbDataSet.tabletrainingresult);
if (assessmentID < listBox1.Items.Count)
{
listBox1.SelectedIndex = assessmentID;
String nameAssessment = (String)listBox1.Items[assessmentID];
char[] sepss = { ';' };
String[] dataAss = nameAssessment.Split(sepss);
TrainingIDNow = Convert.ToInt32(dataAss[0]);
label1.Text = dataAss[2];
if (!dataAss[3].Equals("0"))
{
char[] sepsss = { '_' };
tagIDNow = dataAss[3].Split(sepsss);
startRecognition();
}
assessmentID++;
}
else
{
if (GroupID <= GroupCount-1)
{
assessmentID = 0;
GroupID++;
if (GroupID == GroupCount)
{
FormReport childForm = new FormReport();
childForm.MdiParent = this.MdiParent;
childForm.Text = "Graph";
childForm.Show();
}
else
{
treeView1.SelectedNode = treeView1.Nodes[0].Nodes[GroupID];
treeView1.SelectedNode.ForeColor = Color.Red;
String filenames = treeView1.Nodes[0].Nodes[GroupID].Text;
GenerateAssessment(filenames);
NextAssessment(10);
}
}
}
}
public void startRecognition()
{
tagsActivated = true;
isTagTrue = new Boolean[tagIDNow.Length];
for (int i = 0; i < isTagTrue.Length; i++)
isTagTrue[i]=false;
readTag = "";
if (serialPort1.IsOpen) serialPort1.Close();
serialPort1.PortName = "COM6";
serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.ReceivedBytesThreshold = 5;
serialPort1.Open();
timernow = 0;
timer1.Start();
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
RxString = "";
int waitLoop;
for (waitLoop = 1000; waitLoop > 0; waitLoop--) RxString += serialPort1.ReadExisting();
if (RxString.Equals("0"))
{
readTag = RxString;
}
else
{
readTag = RxString;
if (readTag.Length == 10)
{
this.Invoke(new EventHandler(DisplayText));
80
readTag = "";
}
}
}
private void DisplayText(object sender, EventArgs e)
{
for (int i = 0; i < tagIDNow.Length; i++)
{
if (readTag.Equals(tagIDNow[i]))
{
label4.Text = "TRUE with " + readTag;
isTagTrue[i] = true;
}
}
}
public void EndRecognition()
{
this.timer1.Stop();
this.timer1.Enabled = false;
timernow = 0;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (timernow<=60)
{
label3.Text = Convert.ToString(timernow);
timernow++;
Boolean isTrue = true;
for (int i = 0; i < isTagTrue.Length; i++)
isTrue = isTrue & isTagTrue[i];
if (isTrue)
{
EndRecognition();
NextAssessment(2);
}
}
else
{
EndRecognition();
NextAssessment(0);
}
}
private void jumptoreport()
{
FormReport childForm = new FormReport();
childForm.MdiParent = this.MdiParent;
childForm.Text = "Graph";
childForm.Show();
}
}
}
//Source Code for Graph Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Telerik.Charting;
using System.Xml;
namespace WindowsFormsApplication5
{
public partial class FormReport : Form
{
List<AssessmentNode> theAssessment;
List<ResultNode> resultChild;
private const string XmlNodeTag = "node";
private const string XmlNodeTextAtt = "text";
81
private const string XmlNodeTagAtt = "tag";
String datetimeAss;
public FormReport()
{
InitializeComponent();
}
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
CogB.Checked = true;
}
public void generateChart(String Titles)
{
//graph properties
radChart1.Clear();
ChartSeries series1 = new ChartSeries(Titles);
series1.Items.Clear();
radChart1.AddChartSeries(series1);
radChart1.PlotArea.XAxis.Clear();
radChart1.PlotArea.XAxis.AutoScale = false;
radChart1.PlotArea.YAxis.MaxValue = 100.00;
foreach (ResultNode thenode in resultChild)
{
radChart1.PlotArea.XAxis.AddItem((String)thenode.assTime.ToShortDateString());
Double itemvalue = (Convert.ToDouble(thenode.assResult));
series1.AddItem(itemvalue);
}
radChart1.Refresh();
}
public String getAssessment(int thisAssID)
{
String thetextass = "";
foreach (AssessmentNode thenode in theAssessment)
{
if (thenode.assID == thisAssID)
thetextass = thenode.assText;
}
return thetextass;
}
private void GenerateAssessment(String filenames)
{
theAssessment = new List<AssessmentNode>();
XmlTextReader reader = null;
try
{
reader = new XmlTextReader("c:\\elissaData\\" + filenames + ".xml");
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == XmlNodeTag)
{
bool isEmptyElement = reader.IsEmptyElement;
int attributeCount = reader.AttributeCount;
if (attributeCount > 0)
{
String texts = "";
String ages = "";
String ids = "";
String voices = "";
for (int i = 0; i < attributeCount; i++)
{
reader.MoveToAttribute(i);
if (reader.Name == "text")
texts = reader.Value;
if (reader.Name == "ages")
ages = reader.Value;
if (reader.Name == "id")
ids = reader.Value;
if (reader.Name == "voices")
voices = reader.Value;
}
82
AssessmentNode thisnode = new AssessmentNode();
thisnode.assText = texts;
thisnode.assID = Convert.ToInt32(ids);
theAssessment.Add(thisnode);
}
}
}
}
if (reader != null)
reader.Close();
}
finally
{
// enabling redrawing of treeview after all nodes are added
reader.Close();
}
}
private void RadioButton_CheckedChanged(object sender, EventArgs e)
{
String thistext = "";
if (CogB.Checked)
thistext = "Perception";
else if (CogC.Checked)
thistext = "Concentration";
else if (CogD.Checked)
thistext = "Logical Thinking";
else
thistext = "Memory";
GenerateAssessment(thistext);
resultChild = new List<ResultNode>();
this.tabletrainingresultTableAdapter.Fill(this.elissadbDataSet.tabletrainingresult);
DataRowView thisrow = (DataRowView)comboBox1.SelectedItem;
int childIDselect = (int)thisrow[0];
DateTime tempAssDate = DateTime.Now.Date;
datetimeAss = "";
int resultTotal = 0;
foreach (DataRow thedata in this.elissadbDataSet.tabletrainingresult.Rows)
{
int childIDdata = (int)thedata["childid"];
int tidData = (int)thedata["tid"];
String textdata = getAssessment(tidData);
if ((childIDdata == childIDselect) && !textdata.Equals(""))
{
DateTime dateAss = (DateTime)thedata["Date"];
if (tempAssDate.CompareTo(dateAss.Date) != 0)
{
tempAssDate = dateAss.Date;
ResultNode newResult = new ResultNode();
newResult.assID = 0;
newResult.assResult = resultTotal;
newResult.assTime = dateAss.Date;
resultChild.Add(newResult);
}
else
{
resultTotal = resultTotal + (int)thedata["result"];
}
}
}
generateChart(thistext);
}
private void btnNext_Click(object sender, EventArgs e)
{
FormReport1 childForm = new FormReport1();
childForm.MdiParent = this.MdiParent;
childForm.Text = "Table Training";
childForm.Show();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
CogB.Checked = true;
83
}
private void FormReport_Load_1(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'elissadbDataSet.tablechilddata' table. You can move, or remove it, as
needed.
this.tablechilddataTableAdapter.Fill(this.elissadbDataSet.tablechilddata);
this.comboBox1.DataSource = this.elissadbDataSet.tablechilddata;
this.comboBox1.DisplayMember = "FullName";
this.comboBox1.Refresh();
}
}
}
//Source Code for Training Table Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class FormReport1 : Form
{
public FormReport1()
{
InitializeComponent();
}
private void btnPerception_Click(object sender, EventArgs e)
{
btnPerception.BackColor = SystemColors.ActiveCaption;
btnMemory.BackColor = SystemColors.Control;
btnConcentration.BackColor = SystemColors.Control;
btnLogicalThinking.BackColor = SystemColors.Control;
picBxTraining.Load("PerceptionTT.png");
}
private void btnConcentration_Click(object sender, EventArgs e)
{
picBxTraining.Load("ConcentrationTT.png");
btnPerception.BackColor = SystemColors.Control;
btnMemory.BackColor = SystemColors.Control;
btnConcentration.BackColor = SystemColors.ActiveCaption;
btnLogicalThinking.BackColor = SystemColors.Control;
}
private void btnLogicalThinking_Click(object sender, EventArgs e)
{
picBxTraining.Load("LogThiTT.png");
btnPerception.BackColor = SystemColors.Control;
btnMemory.BackColor = SystemColors.Control;
btnConcentration.BackColor = SystemColors.Control;
btnLogicalThinking.BackColor = SystemColors.ActiveCaption;
}
private void btnMemory_Click(object sender, EventArgs e)
{
picBxTraining.Load("MemoryTT.png");
btnPerception.BackColor = SystemColors.Control;
btnMemory.BackColor = SystemColors.ActiveCaption;
btnConcentration.BackColor = SystemColors.Control;
btnLogicalThinking.BackColor = SystemColors.Control;
}
private void btnTraining_Click(object sender, EventArgs e)
{
btnPerception.BackColor = SystemColors.Control;
btnMemory.BackColor = SystemColors.Control;
btnConcentration.BackColor = SystemColors.Control;
btnLogicalThinking.BackColor = SystemColors.Control;
btnTraining.BackColor = SystemColors.ActiveBorder;
84
FormTraining childForm = new FormTraining();
childForm.MdiParent = this.MdiParent;
childForm.Text = "Perception";
childForm.Show();
}
}
}
//Source Code for Training Form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;
namespace WindowsFormsApplication5
{
public partial class FormTraining : Form
{
private const string XmlNodeTag = "node";
// Xml attributes for node e.g. <node text="Cognitive" tag=""
// imageindex="1"></node>
private const string XmlNodeTextAtt = "text";
private const string XmlNodeTagAtt = "tag";
private const string XmlNodeImageIndexAtt = "imageindex";
private int childAge;
private int childID;
private int assessmentID;
private int GroupCount;
private int GroupID;
private int TrainingIDNow;
private String[] tagIDNow;
private String RxString;
private int timernow;
Boolean tagsActivated;
private String readTag;
private Boolean[] isTagTrue;
public FormTraining()
{
InitializeComponent();
button3.Visible = true;
button3.Enabled = true;
label1.Visible = false;
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label5.Visible = true;
button1.Visible = false;
button2.Visible = false;
pictureBox1.Visible = false;
this.tablechilddataTableAdapter.Fill(elissadbDataSet.tablechilddata);
FillChildCombo();
}
public void FillChildCombo()
{
foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows)
{
comboBox1.Items.Add(thedata[1] + ";" + thedata[0]);
}
}
public void DeserializeTreeView(TreeView treeView, string fileName)
{
XmlTextReader reader = null;
GroupCount = 0;
try
{
// disabling re-drawing of treeview till all nodes are added
treeView.BeginUpdate();
85
reader = new XmlTextReader(fileName);
TreeNode parentNode = null;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == XmlNodeTag)
{
TreeNode newNode = new TreeNode();
bool isEmptyElement = reader.IsEmptyElement;
// loading node attributes
int attributeCount = reader.AttributeCount;
if (attributeCount > 0)
{
for (int i = 0; i < attributeCount; i++)
{
reader.MoveToAttribute(i);
SetAttributeValue(newNode,
reader.Name, reader.Value);
}
}
//add new node to Parent Node or TreeView
if (parentNode != null)
{
GroupCount++;
parentNode.Nodes.Add(newNode);
}
else
treeView.Nodes.Add(newNode);
// making current node 'ParentNode' if its not empty
if (!isEmptyElement)
parentNode = newNode;
}
}
// moving up to in TreeView if end tag is encountered
else if (reader.NodeType == XmlNodeType.EndElement)
{
if (reader.Name == XmlNodeTag)
parentNode = parentNode.Parent;
}
else if (reader.NodeType == XmlNodeType.XmlDeclaration)
{
//Ignore Xml Declaration
}
else if (reader.NodeType == XmlNodeType.None)
return;
else if (reader.NodeType == XmlNodeType.Text)
parentNode.Nodes.Add(reader.Value);
}
}
finally
{
// enabling redrawing of treeview after all nodes are added
treeView.EndUpdate();
reader.Close();
}
}
private void SetAttributeValue(TreeNode node,
string propertyName, string value)
{
if (propertyName == XmlNodeTextAtt)
{
node.Text = value;
}
else if (propertyName == XmlNodeImageIndexAtt)
{
node.ImageIndex = int.Parse(value);
}
else if (propertyName == XmlNodeTagAtt)
{
node.Tag = value;
}
}
private void GenerateAssessment(String filenames)
86
{
listBox1.Items.Clear();
XmlTextReader reader = null;
try
{
reader = new XmlTextReader("C:\\elissaData\\" + filenames + ".xml");
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == XmlNodeTag)
{
bool isEmptyElement = reader.IsEmptyElement;
int attributeCount = reader.AttributeCount;
if (attributeCount > 0)
{
String texts = "";
String ages = "";
String ids = "";
String tags = "";
String tag = "";
for (int i = 0; i < attributeCount; i++)
{
reader.MoveToAttribute(i);
if (reader.Name == "text")
texts = reader.Value;
if (reader.Name == "ages")
ages = reader.Value;
if (reader.Name == "id")
ids = reader.Value;
if (reader.Name == "tags")
tags = reader.Value;
if (reader.Name == "tag")
tag = reader.Value;
}
listBox1.Items.Add(ids + ";" + ages + ";" + texts + ";" + tags + ";" + tag);
}
}
}
}
if (reader != null)
reader.Close();
}
finally
{
// enabling redrawing of treeview after all nodes are added
reader.Close();
}
}
private void button3_Click_1(object sender, EventArgs e)
{
button1.Visible = true;
button2.Visible = true;
button3.Visible = false;
button3.Enabled = false;
comboBox1.Visible = false;
comboBox1.Enabled = false;
label1.Visible = true;
label2.Visible = true;
label3.Visible = false;
label4.Visible = true;
label5.Visible = false;
button1.Visible = true;
button2.Visible = true;
pictureBox1.Visible = true;
this.startAssessment();
}
private void startAssessment()
{
//count Age of children
assessmentID = 0;
GroupID = 0;
87
DeserializeTreeView(treeView1, "C:\\elissaData\\Cognitive1.xml");
treeView1.Refresh();
treeView1.SelectedNode = treeView1.Nodes[0].Nodes[0];
treeView1.SelectedNode.ForeColor = Color.Red;
String filenames = treeView1.Nodes[0].Nodes[GroupID].Text;
GenerateAssessment(filenames);
NextAssessment(10);
}
private void Form1Assessment_Load(object sender, EventArgs e)
{
this.tablechilddataTableAdapter.Fill(this.elissadbDataSet.tablechilddata);
}
private void NextAssessment(int AnswerIs)
{
assessmentID++;
if (assessmentID < listBox1.Items.Count)
{
listBox1.SelectedIndex = assessmentID;
String nameAssessment = (String)listBox1.Items[assessmentID];
char[] sepss = { ';' };
String[] dataAss = nameAssessment.Split(sepss);
TrainingIDNow = Convert.ToInt32(dataAss[1]);
label2.Text = dataAss[2];
label3.Text = dataAss[4];
if (!dataAss[3].Equals("0"))
{
char[] sepsss = { '_' };
tagIDNow = dataAss[3].Split(sepsss);
startRecognition();
}
}
else
{
if (GroupID <= GroupCount - 1)
{
assessmentID = 0;
GroupID++;
if (GroupID == GroupCount)
{
FormTraining1 childForm = new FormTraining1();
childForm.MdiParent = this.MdiParent;
childForm.Text = "Concentration";
childForm.Show();
}
else
{
treeView1.SelectedNode = treeView1.Nodes[0].Nodes[GroupID];
treeView1.SelectedNode.ForeColor = Color.Red;
String filenames = treeView1.Nodes[0].Nodes[GroupID].Text;
GenerateAssessment(filenames);
NextAssessment(10);
}
}
}
}
public void startRecognition()
{
tagsActivated = true;
isTagTrue = new Boolean[tagIDNow.Length];
for (int i = 0; i < isTagTrue.Length; i++)
isTagTrue[i]=false;
readTag = "";
if (serialPort1.IsOpen) serialPort1.Close();
serialPort1.PortName = "COM6";
serialPort1.BaudRate = 9600;
serialPort1.DataBits = 8;
serialPort1.ReceivedBytesThreshold = 5;
serialPort1.Open();
timernow = 0;
timer1.Start();
}
88
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
RxString = serialPort1.ReadExisting();
if (RxString.Equals("0"))
{
readTag = RxString;
}
else
{
readTag = RxString;
if (readTag.Length == 10)
{
this.Invoke(new EventHandler(DisplayText));
readTag = "";
}
}
}
private void DisplayText(object sender, EventArgs e)
{
for (int i = 0; i < tagIDNow.Length; i++)
{
if (readTag.Equals(tagIDNow[i]))
{
isTagTrue[i] = true;
}
}
}
public void EndRecognition()
{
this.timer1.Stop();
this.timer1.Enabled = false;
timernow = 0;
}
private void button2_Click_1(object sender, EventArgs e)
{
if (tagsActivated)
EndRecognition();
NextAssessment(1);
}
private void button1_Click(object sender, EventArgs e)
{
label3.Visible = true;
button1.Visible = false;
pictureBox1.Visible = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (timernow <= 60)
{
label4.Text = Convert.ToString(timernow);
timernow++;
Boolean isTrue = true;
for (int i = 0; i < isTagTrue.Length; i++)
isTrue = isTrue & isTagTrue[i];
if (isTrue)
{
EndRecognition();
NextAssessment(2);
}
}
else
{
EndRecognition();
NextAssessment(0);
}
}
}
}
97
Appendix D
Cognitive Assessment Menu
98
1) Perception

Show anticipatory excitement

Reacts to disappearance of slowly moving object

Inspects own hands

Plays with owns hands, feet, fingers, toes

Show interest in sounds of objects

Reacts to various sensations such as extremes in temperature and taste

Shows understanding of color

Identifies self in mirror

Identifies one body part

Identifies three body parts

Gives one out of many

Completes three four piece puzzle
2) Concentration

Listen to voice for 30 seconds

Shows active interest in person/object for at least 1 minute

Turns eyes and head to sound of hidden voice

Localize sound with eyes

Anticipates visually the trajectory of a slowly moving object

Plays 2-3 minutes with a single toy

Follows trajectory of fast moving object

Looks at pictures one minute when named

Listens selectively to familiar words
3) Logical thinking

Begins play with rattle

Continues a familiar activity by initiating movements involved

Reaches for second object purposefully

Hand regard no longer present

Works for desired, out of reach object
99

Follows trajectory of fast moving object

Plays with paper

Touches toy or adults hand to restart an activity

Plays peek a boo

Slides toy or object on surface

Imitates familiar gesture

Retains two of three objects offered

Response to simple requests with gestures

Retains two and reaches for 3rd object

Overcomes obstacle to obtain object

Retrieves object using other materials

Drops objects systematically

Guides action on toy manually

Throws objects

Uses locomotion to regain object

Knows what no-no means and reacts

Removes round piece from form board

Takes ring stack apart

Response to simple requests with gestures

Demonstrates drinking from cup

Unwraps a toy

Moves to rhythms

Pulls string horizontally to obtain toy

Stacking rings

Imitates several new gestures

Hands toy back to adult

Looks at place where ball rolls out of sight

Understands pointing

Pulls string vertically to get toy
100

Makes detours to retrieve objects

Help turn pages

Matches objects

Indicates two objects from group of familiar objects

Brings objects from another room on requests

Turns two or three pages at a time

Understands most nouns objects

Points to several clothing items on request

Attempts and then succeed in activating mechanical toy

Solves simple problems using tools

Uses play dough and paints

Pastes on one side

Paints within limits of paper

Obey two part commands

Plays with water and sand

Pastes on appropriate side

Demonstrates awareness of class routines

Identify rooms in own house

Understands complex and compound sentences

Understands the concept of one

Demonstrates use of object

Identifies clothing items for different occasions

Finds detail in favorite picture book

Engages in simple make believe activities

Selects pictures involving actions words

Knows own sex or sex of others

Understands many actions verbs

Understands more adjectives

Understand concept of two
101

Identifies longer stick

Understand all common verbs, adjective and some prepositions
4) Memory

Enjoys repeating newly learned activity

Localize tactile stimulation by touching the same spot

Finds hidden object using screen

Finds hidden object under three superimposed screens

Hidden displacement one screen

Recognize several people in addition to immediate family

Hidden placement two screens

Hidden placement 3 screens

Hidden placement two screens alternately

Recognize and points to four animal pictures

Matches sounds to animals

Rights familiar picture

Matches objects to picture

Sorts objects

Recognizes self in photograph

Series of hidden displacement under 1st screen

Remembers where objects belong

Points to 5-7 pictures of familiar objects/people

Matches sounds to picture of animals

Matches shapes

Matches colors

Matches identical simple pictures of objects

Identifies objects with their use

Identifies body parts with their function

Matches similar pictures of objects

Sorts shapes
103
Appendix E
Cognitive Training Menu
104
1) Perception
Training
Reacts to disappearance of slowly
moving object
Shows understanding of color
Identifies self in mirror
Identifies one body part
Identifies three body parts
Gives one out of many
Completes three four piece puzzle
Description
1. Seat pupil on floor.
2. Introduce noise of moving object.
3. Repeat if necessary.
4. Tell pupil “Turn toward the moving object.”
1. Seat pupil on the floor.
2. Introduce RED, GREEN, BLUE color cards to pupil.
3. Tell pupil, “This is RED card.” when showing the RED
card.
4. Point to other card and ask. “What is this color?”
5. Repeat procedures until pupil can tell the color of the
cards.
1. Sit in front of a large mirror or use hand mirror.
2. Point to you in mirror and say, “That‟s me.”
3. Ask, “Who else in the mirror?”
4. Point to pupil‟s image in mirror and ask again if he does
not give correct response.
5. Tell pupil, “You are in the mirror” if he still gives
incorrect response and have him point to himself and
say,”I am in the mirror” or “I am”
6. Reward.
7. Repeat procedures until pupil says, “I am in the mirror.”
1. Decide what body part you will teach and choose an
activity song about some or all of those parts.
2. Seat pupil on floor.
3. Begin lesson by naming body part.
4. Say, “Point to your” or “Put your finger on your” and
repeat body part just name and identified.
5. Give pupil time to respond.
6. Carry identification skills even further by asking, “What is
this?” as you point to or show that body part.
1. Decide what body parts you will teach and choose an
activity song about some or all of those parts.
2. Seat pupil on floor.
3. Begin lesson by naming body parts.
4. Say, “Point to your” or “Put your finger on your” and
repeat body part just name and identified.
5. Give pupil time to respond.
6. Return occasionally to already learn body parts to
reinforce that learning.
7. Carry identification skills even further by asking, “What is
this?” as you point to or show that body parts.
1. Seat pupil on floor.
2. Put all the toys around pupil.
3. Take a ball and tell pupil, “This is a ball” and mix it with
other toys.
4. Let pupil play around 5 minutes.
5. Ask pupil “Can pass me the ball?”
6. Repeat procedures until pupil pass the ball to you.
1. Seat pupil on floor.
2. Show pupil the puzzle of an object, person or animal with
three to four related pieces.
3. Then mix the puzzle.
4. Teach pupil complete the puzzle.
5. Mix it again and this time let pupil complete it by himself.
105
2) Concentration
Training
Listen to voice for 30 seconds
Plays 2-3 minutes with a single toy
Looks at pictures one minute when
named
Description
1. Take pupil to quiet area.
2. Tell pupil to turn and look at you when you speak.
3. Say, “Look at me.”
4. Keep on speaking for 30 minutes and let the pupil look at
you all the time you speak.
5. Repeat if pupil does not look at you for 30 seconds.
1. Take pupil to quiet area.
2. Give a toy to pupil.
3. Tell pupil play with the toy for 2-3 minutes.
4. Let pupil play alone at the area.
5. Repeat if the pupil does not play with the toy for 2 -3
minutes.
1. Seat pupil on floor.
2. Show pupil the picture of an animal.
3. Tell pupil, “Look at the picture when I named it.”
4. Let pupil play for 1 minute then say, “Can you look at the
picture of an animal?”
5. Calculate the time until 1 minute pupil look at the picture.
6. Repeat procedures if pupil cannot concentrate for 1
minute.
3) Logical thinking
Training
Reaches for second object
purposefully
Follows trajectory of fast moving
object
Retains two of three objects offered
Overcomes obstacles to obtain
object
Knows what no-no means and reacts
Demonstrates drinking from cup
Description
1. Bring your pupil one of his/her toy.
2. Take another toy (his/her favorite toy) and offer to
him/her.
3. Encourage him/her to reach for his/her favorite toy.
1. Pick an airplane toy and attract your pupil student to see
the toy.
2. Move the airplane toy and get your pupil‟s attention to the
trajectory of the „moving‟ airplane toy.
1. Offer your pupil 3 toys and let him/her play with the toy
for a while.
2. Request for one toy from your pupil and wait for his
response.
3. If he/she gives more than 1 toy, give back all the toys to
him/her and tell him/her that you only want 1 toy from
him/her and ask your pupil to keep the other 2 toys.
1. Put your child‟s favorite toy a meter away from your
child.
2. Then, put a few puzzle blocks in between your child and
his/her favorite toy.
3. Encourage your child to reach for his/her favorite toy.
1. When your child reaches a hot/dangerous item, say „nono‟ to him and pose a strict face.
2. Explain to your child that the item is dangerous and he/she
should not touch the item
3. Repeat the word „no-no‟ again if your child continues to
approach hot /dangerous items.
1. Obtain small cup and fill half way with pupil‟s favorite
drink.
106
Looks at place where ball rolls out
of sight
Matches objects
Indicates two objects from group of
familiar objects
Points to several clothing items on
request
2.
3.
4.
1.
2.
3.
4.
1.
2.
3.
4.
1.
2.
3.
4.
5.
6.
1.
2.
3.
4.
Understands the concept of one
1.
2.
3.
4.
Demonstrates use of object
Identifies clothing items for
different occasions
1.
2.
3.
4.
1.
2.
3.
4.
5.
Knows own sex or sex of others
Understand concept of two
1.
2.
3.
4.
5.
1.
2.
3.
4.
Seat pupil and bend his head slightly Downward.
Tell pupil he can drink some of liquid.
Ask him to hold the cup and drink some of the liquid.
Seat pupil on floor.
Introduce noise of ball.
Repeat if necessary.
Tell pupil “Turn toward the ball.”
Cut 12 cards 2 each of 6 different objects.
Shuffle the cards.
Tell pupil to match the cards with same objects.
Check and show him where card belongs if he misplaces it
and have him try again.
Seat pupil on floor.
Put all the toys and two balls around pupil.
Take a ball and tell pupil, “This is a ball” and mix it with
other toys.
Let pupil play around 5 minutes.
Ask pupil “Can pass me all the balls?”
Repeat procedures until pupil pass the balls to you.
Cut out pictures displaying different clothes( e.g. dress,
pyjamas)
Discuss pictures to ensure pupil understand all the clothes.
Ask pupil point to the picture when u named it.
Repeat procedures until pupil can point to all of the
pictures.
Cut out pictures with different numbers of pupil‟s favorite
object.
Discuss pictures with pupil and explain every card has
how many number of object.
Ask pupil to show the card with 1 object.
Repeat procedures until pupil can understand concept of
one.
Obtain small bowl and fill with pupil‟s favorite cake.
Seat pupil and bend his head slightly Downward.
Tell pupil he can eat some of cake.
Ask him to hold the fork and eat some of the cake.
Cut out pictures displaying obvious activities( e.g. sport)
Discuss pictures to ensure pupil understands activities
considers in each.
Ask pupil t show the picture when you ask questions.
Ask, “When you want to go out, which cloth will you
wear?”
Repeat procedures until pupil can answer the entire
question correctly.
Cut out 6 pictures of boys and girls.
Discuss pictures with pupil to ensure he understand the
meaning of boy and girl.
Ask, “Is this a boy or girl?” for each pictures.
Ask pupil to show a picture of his own sex.
Repeat procedures until pupil can do it well.
Cut out pictures with different numbers of pupil‟s favorite
object.
Discuss pictures with pupil and explain every card has
how many number of object.
Ask pupil to show the card with 2 objects.
Repeat procedures until pupil can understand concept of
two.
107
4) Memory
Training
Recognize several people in
addition to immediate family
Recognize and points to four animal
pictures
Matches objects to picture
Sorts objects
Recognizes self in photograph
Points to 5-7 pictures of familiar
objects/people
Matches sounds to picture of
animals
Matches shapes
Matches colors
Matches identical simple pictures of
objects
Identifies objects with their use
Description
1. Cut pictures of people (e.g. father, mother).
2. Discuss pictures with pupil to ensure he understand who is
inside the pictures.
3. Ask pupil point to the picture when named.
4. Repeat procedures until pupil gets all correct.
1. Cut pictures of animals (e.g. cat, dog).
2. Discuss pictures with pupil to ensure he understand what
animal is inside the pictures.
3. Ask pupil point to the picture when named.
4. Repeat procedures until pupil gets all correct.
1. Cut out pictures of the toys.
2. Put toys around pupil.
3. Ask pupil take out the toy when you show him the picture.
4. Repeat procedures until pupil can match all the toys with
pictures.
1. Cut 12 cards 4 each of 3 different objects.
2. Shuffle the cards.
3. Tell pupil to match the cards with same objects.
4. Check and show him where card belongs if he misplaces it
and have him try again.
1. Use picture of pupil.
2. Show pupil her picture immediately saying, “Look, that‟s
you.” and say her name.
3. Show another picture of pupil.
4. Ask, “Who is in the picture?”
5. Repeat procedures until pupil recognize himself in the
picture.
1. Cut pictures of people (e.g. father, mother).
2. Discuss pictures with pupil to ensure he understand who is
inside the pictures.
3. Ask pupil point to the picture when named.
4. Repeat procedures until pupil gets all correct.
1. Cut out pictures of the animals.
2. Record sound of animals.
3. Play the recording and teach pupil the animal with that
sound.
4. Ask pupil show the picture of animal when you play again
the recording.
5. Repeat procedures until pupil can match all the sounds
with pictures of animals.
1. Cut 12 cards 2 each of 6 different shapes.
2. Shuffle the cards.
3. Tell pupil to match the cards with same shapes.
4. Check and show him where card belongs if he misplaces it
and have him try again.
1. Cut 12 cards 2 each of 6 different colors.
2. Shuffle the cards.
3. Tell pupil to match the cards with same colors.
4. Check and show him where card belongs if he misplaces it
and have him try again.
1. Cut 12 cards 2 each of 6 different objects.
2. Shuffle the cards.
3. Tell pupil to match the cards with same objects.
4. Check and show him where card belongs if he misplaces it
and have him try again.
1. Cut pictures of several objects.
108
2.
3.
Identifies body parts with their
function
4.
1.
2.
3.
Matches similar pictures of objects
Sorts shapes
4.
1.
2.
3.
4.
1.
2.
3.
4.
Tell pupil the use of the object by showing him the
pictures.
Ask pupil name the object and it functions when show
him the picture.
Repeat procedures until pupil gets all correct.
Cut pictures of several body parts.
Tell pupil the use of the body parts by showing him the
pictures.
Ask pupil name the body part and it functions when show
him the picture.
Repeat procedures until pupil gets all correct.
Cut 12 cards 2 each of 6 different objects.
Shuffle the cards.
Tell pupil to match the cards with same objects.
Check and show him where card belongs if he misplaces it
and have him try again.
Cut 12 cards 4 each of 3 different shapes.
Shuffle the cards.
Tell pupil to match the cards with same shapes.
Check and show him where card belongs if he misplaces it
and have him try again.