DISC4.0 Algorithm - Module E - Parent - Attention Deficit Hyperactivity Disorder
DISC4.0 Algorithm
Module E - Parent
Attention Deficit Hyperactivity Disorder
Diagnostic criteria for Attention-Deficit/Hyperactivity Disorder
- Either (1) or (2):
- inattention: six (or more) of the following symptoms of inattention have persisted for at least 6 months to a degree that is maladaptive and inconsistent with developmental level:
-
often fails to give close attention to details or makes careless mistakes in schoolwork, work, or other activities
-
often has difficulty sustaining attention in tasks or play activities
-
often does not seem to listen when spoken to directly
-
often does not follow through on instructions and fails to finish schoolwork, chores, or duties in the workplace (not due to oppositional behavior or failure to understand instructions)
-
often has difficulty organizing tasks and activities
-
often avoids, dislikes, or is reluctant to engage in tasks that require sustained mental effort (such as schoolwork or homework)
-
often loses things necessary for tasks or activities (e.g., toys, school assignments, pencils, books, or tools)
-
is often easily distracted by extraneous stimuli
-
is often forgetful in daily activities
- hyperactivity-impulsivity: six (or more) of the following symptoms of hyperactivity-impulsivity have persisted for at least 6 months to a degree that is maladaptive and inconsistent with developmental level:
Hyperactivity
- often fidgets with hands or feet or squirms in seat
- often leaves seat in classroom or in other situations in which remaining seated is expected
- often runs about or climbs excessively in situations in which it is inappropriate (in adolescents or adults, may be limited to subjective feelings of restlessness)
- often has difficulty playing or engaging in leisure activities quietly
- often "on the go" or often acts as if "driven by a motor"
- often talks excessively
Impulsivity
-
often blurts out answers before questions have been completed
- often has difficulty awaiting turn
- Some hyperactive-impulsive or inattentive symptoms that caused impairment were present before age 7 years.
- Some impairment from the symptoms is present in two or more settings (e.g., at school [or work] and at home).
- There must be clear evidence of clinically significant impairment in social, academic, or occupational functioning.
- The symptoms do not occur exclusively during the course of a Pervasive Developmental Disorder, Schizophrenia, or other Psychotic Disorder and are not better accounted for by another mental disorder (e.g., Mood Disorder, Anxiety Disorder, Dissociative Disorder, or a Personality Disorder).
Code based on type:
314.01 Attention-Deficit/Hyperactivity Disorder, Combined Type: if both Criteria A1 and A2 are met for the past 6 months
314.00 Attention-Deficit/Hyperactivity Disorder, Predominantly Inattentive Type: if Criterion A1 is met but Criterion A2 is not met for the past 6 months
314.01 Attention-Deficit/Hyperactivity Disorder, Predominantly Hyperactive- Impulsive Type: if Criterion A2 is met but Criterion A1 is not met for the past 6 months
Coding note: For individuals (especially adolescents and adults) who currently have symptoms that no longer meet full criteria, "In Partial Remission" should be specified.
Data Definition
libname sds "&path";
filename discp "&filein";
******************************************************************************************
Data Definition
*****************************************************************************************;
data sds.pad0 (drop = card testid);
infile discp end=last pad;
input id $ 1-10 card $ 11-14 @;
testid = id;
%huid;
do until (testid ne id);
select (card);
when ('E101') do;
input id $ 1-10
pad001 16
pad001a 17
pad001b 18
pad001c 19
pad001d 20
pad002 21
pad002a 22
pad002b 23
pad002c 24
pad002d 25
pad003 26
pad003a 27
pad003b 28
pad003c 29
pad003d 30
padn01 31
pad004 32
pad004a 33
pad004b 34
pad004c 35
pad004d 36
pad005 37
pad005a 38
pad005b 39
pad005c 40
pad005d 41
pad006 42
pad006a 43
pad006b 44
pad006c 45
pad006d 46
pad007 47
pad007a 48
pad007b 49
pad007c 50
pad007d 51
pad008 52
pad008a 53
pad008b 54
pad008c 55
pad008d 56
pad009 57
pad009a 58
pad009b 59
pad009c 60
pad009d 61
pad010 62
pad010a 63
pad010b 64
pad010c 65
pad010d 66
pad010e 67
pad010f 68-69
pad010g 70
pad011 71
pad011a 72
pad011b 73
pad011c 74
pad011d 75;
end;
when ('E102') do;
input id $ 1-10
pad012y 16-17
pad012z 18-19
pad012a 20
pad012b 21
pad012c 22
pad012dy 23-24
pad012dz 25-26
pad012e 27
pad013y 28-29
pad013z 30-31
pad014 32
pad015 33
pad015a 34
pad016 35
pad016a 36
pad017 37
pad017a 38
pad018 39
pad018a 40
pad019 41
pad019a 42
pad020 43
pad020a 44
pad021 45
pad021ay 46-47
pad021az 48-49
pad022 50
pad022a 51
pad022b 52
pad022c 53
pad022d 54
pad023 55
pad023a 56
pad023b 57
pad023c 58
pad023d 59
pad024 60
pad024a 61
pad024b 62
pad024c 63
pad024d 64
pad025 65
pad025a 66
pad025b 67
pad025c 68
pad025d 69
pad026 70
pad026a 71
pad026b 72
pad026c 73
pad026d 74;
end;
When ('E103') do;
input id $ 1-10
padn02 16
pad027 17
pad027a 18
pad027b 19
pad027c 20
pad027d 21
pad028 22
pad028a 23
pad028b 24
pad028c 25
pad028d 26
pad029 27
pad029a 28
pad029b 29
pad029c 30
pad029d 31
pad030 32
pad030a 33
pad030b 34
pad030c 35
pad030d 36
padn03 37
pad031 38
pad031a 39
pad031b 40
pad031c 41
pad031d 42
pad032 43
pad032a 44
pad032b 45
pad032c 46
pad032d 47
pad033 48
pad033a 49-50
pad033b 51
pad033c 52
pad033d 53
pad033e 54
pad033f 55
pad034y 56-57
pad034z 58-59
pad034a 60
pad034b 61
pad034c 62
pad034dy 63-64
pad034dz 65-66
pad034e 67
pad035y 68-69
pad035z 70-71;
end;
when ('E104') do;
input id $ 1-10
pad036 16
pad037 17
pad037a 18
pad038 19
pad038a 20
pad039 21
pad039a 22
pad040 23
pad040a 24
pad041 25
pad041a 26
pad042 27
pad042a 28
pad043 29
pad043ay 30-31
pad043az 32-33
pad044 34
pad044a 35-36
pad044b 37
pad044c 38
pad045 39
pad045a 40
pad046 41-42
pad046a 43-44;
end; /* when ... do */
otherwise input;
end; /* select */
testid = id;
if (last) then id=' ';
else input id $ 1-10 card $ 11-14 @@;
end; /* do until */
id=testid;
LABEL
PAD001 = 'Trouble keeping mind on task for more than a short period of time'
PAD002 = 'Often tried to avoid doing things that required paying attention'
PAD003 = 'Often disliked doing things that required paying attention'
PAD004 = 'Couldn't keep mind on one thing when other things were going on in past year'
PAD005 = 'Disorganized in past year'
PAD006 = 'Trouble finishing homework in past year'
PAD007 = 'Often lost things in last year'
PAD008 = 'Forgot what they were supposed to do'
PAD009 = 'Often made a lot of mistakes because it's hard for him/her to do things careful'
PAD010 = 'Often didn't listen when people were speaking to them'
PAD011 = 'Started activities without finishing them'
PAD012y = 'Age when first had trouble concentrating'
PAD012z = 'Grade when first had trouble concentrating'
PAD013y = 'Age when trouble concentrating started causing problems'
PAD013z = 'Grade when trouble concentrating started causing problems'
PAD014 = 'Trouble concentrating in 1st grade or kindergarten'
PAD015 = 'Caretakers became annoyed by trouble concentrating'
PAD016 = 'Trouble paying attention/concentrating prevented doing things with family'
PAD017 = 'Trouble paying attention/concentrating prevented doing things with peers'
PAD018 = 'When problems were worst, doing schoolwork was difficult/there were problems wi'
PAD019 = 'Trouble concentrating caused teacher/boss to become annoyed/upset'
PAD020 = 'Felt bad/upset when problems were worst'
PAD021 = 'Ever had more trouble concentrating since age 5'
PAD022 = 'Been on the go more active than usual as if driven by a motor in past year'
PAD023 = 'Fidgity/ restless in past year'
PAD024 = 'Left seat (as in at school, movie, restaurant) often when wasnt supposed to'
PAD025 = 'Often climbed on things/ran around when they werent supposed to in past year'
PAD026 = 'Always restless in past year (wanted to kick feet or run around)'
PAD027 = 'Often talked a lot more than other children their age in past year'
PAD028 = 'Often made much more noise while playing/having fun than other children of same'
PAD029 = 'Often inturrupted others while they were busy in past year'
PAD030 = 'Often butted in on what others were doing in past year'
PAD031 = 'Blurted out answers before hearing whole question in past year'
PAD032 = 'Often had trouble waiting for turns (as in standing on line) in past year'
PAD033 = 'Was in a dangerous situation in past year because wasn't thinking'
PAD034y = 'Age when started to be overactive'
PAD034z = 'Grade when started to be overactive'
PAD035y = 'Age when being overactive started causing problems'
PAD035z = 'Grade when being overactive started causing problems'
PAD036 = 'Being overactive caused problems in kindergarten and 1st grade'
PAD037 = 'Caretakers became upset/annoyed by overactive behavior'
PAD038 = 'Overactiveness prevented doing things with family'
PAD039 = 'Overactiveness prevented doing things with peers'
PAD040 = 'When problem was worst did it interfere with schoolwork/grades'
PAD041 = 'Being overactive caused teachers/boss to be annoyed/upset'
PAD042 = 'Felt bad/upset when problems were worst'
PAD043 = 'Ever been more overactive than now, since age 5'
PAD044 = 'Taken any medication in past year for being overactive or trouble paying attent'
PAD045 = 'Been to see someone for help at hospital/clinic/workplace'
PAD046 = 'Name, position, address of person seen for help (OPTIONAL)';
run;
Data Recoding
******************************************************************************************
Data Recoding
99, 9, 88, 8 -> 0
7, 77 -> .
*****************************************************************************************;
data sds.pad1;
set sds.pad0;
array padvar (*)
pad001 pad001a pad001b pad001c pad001d
pad002 pad002a pad002b pad002c pad002d
pad003 pad003a pad003b pad003c pad003d
pad004 pad004a pad004b pad004c pad004d
pad005 pad005a pad005b pad005c pad005d
pad006 pad006a pad006b pad006c pad006d
pad007 pad007a pad007b pad007c pad007d
pad008 pad008a pad008b pad008c pad008d
pad009 pad009a pad009b pad009c pad009d
pad010 pad010a pad010b pad010c pad010d
pad010e pad010g
pad011 pad011a pad011b pad011c pad011d
pad012a pad012b pad012c pad012e
pad014
pad021
pad022 pad022a pad022b pad022c pad022d
pad023 pad023a pad023b pad023c pad023d
pad024 pad024a pad024b pad024c pad024d
pad025 pad025a pad025b pad025c pad025d
pad026 pad026a pad026b pad026c pad026d
pad027 pad027a pad027b pad027c pad027d
pad028 pad028a pad028b pad028c pad028d
pad029 pad029a pad029b pad029c pad029d
pad030 pad030a pad030b pad030c pad030d
pad031 pad031a pad031b pad031c pad031d
pad032 pad032a pad032b pad032c pad032d
pad033 pad033b pad033c pad033d pad033e
pad033f
pad036
pad043
pad044 pad044b pad044c
pad045 pad045a pad015 pad016 pad017 pad018 pad019 pad020
pad015a pad016a pad017a pad018a pad019a pad020a
pad037 pad038 pad039 pad040 pad041 pad042
pad037a pad038a pad039a pad040a pad041a pad042a;
do i = 1 to dim(padvar);
if (padvar(i) = 7) then padvar(i) = .;
if (padvar(i) = 9) then padvar(i) = 0;
end;
array double(*)
pad010f
pad012z pad012ez
pad013z
pad021ay pad021az
pad033a
pad034z pad034dy pad034dz
pad035y pad035z
pad043ay pad043az
pad044a
pad046 pad046a;
do i = 1 to dim(double);
if (double(i) = 99 or double(i) = 88) then double(i) = 0;
if (double(i) = 77) then double(i) = .;
end;
array agetmp(*)
pad012y pad012ey pad013y;
do i = 1 to dim(agetmp);
if (agetmp(i) = 99) then agetmp(i) = .;
end;
array eight(*)
pad014
pad018
pad019
pad036
pad040
pad041;
do i = 1 to dim(eight);
if (eight(i) = 8) then eight(i) = 0;
end;
run;
Algorithms
******************************************************************************************
Algorithms
*****************************************************************************************;
proc sort data=sds.pmodi1; by id;
proc sort data=sds.pad1; by id;
data sds.pad2
(keep = id huid pada1ay pada1by pada1cy pada1dy pada1ey pada1fy pada1gy pada1hy pada1iy
pada2ay pada2by pada2cy pada2dy pada2ey pada2fy pada2gy pada2hy pada2iy pada1y
pada2y paday padb1 padb2 padb padc1y padc2y padcy pad1y pad2y pad3y pady pad1yM pad2yM pad3yM padyM
pada1am pada1bm pada1cm pada1dm pada1em pada1fm pada1gm pada1hm pada1im
pada2am pada2bm pada2cm pada2dm pada2em pada2fm pada2gm pada2hm pada2im pada1m
pada2m padam padc1m padc2m padcm pad1m pad2m pad3m padm
padima1 padima2 padima3 padima4 padima5 padima6 padima padyima padmima padimb
padyimb padmimb padimc1 padimc2 padimc3 padimc4 padimc5 padimc6 padimc padyimc
padmimc padyimd padmimd
age gender
padcrt1y padcrt1m padcrt2y padcrt2m padcrt3y padcrt3m padsymp patsymp pahsymp
pad001-pad011 pad022-pad033 pad044);
merge sds.pad1 sds.pmodi1; by id;
age = pit002;
gender = pitn02;
If 0<=sum((pad001a=2), (padn01=2), (pad004a=2), (pad005a=2),
(pad006a=2), (pad007a=2), (pad008a=2), (pad009a=2),
(pad010a=2))<=2 and n(of pad001-pad010)>0 then do;
step1=0;
array aa (*) pad014-pad021;
do i = 1 to dim(aa);
aa[i] =0;
end;
end;
If 0<=sum((pad022a=2), (padn02=2), (pad023a=2), (pad024a=2),
(pad027a=2), (pad028a=2), (padn03=2),
(pad031a=2), (pad032a=2))<=2 and n(of pad022-pad032)>0 then do;
step2=0;
array bb (*) pad036-pad043;
do i = 1 to dim(bb);
bb[i] =0;
end;
end;
array impair(12) pad015 pad016 pad017 pad018 pad019 pad020
pad037 pad038 pad039 pad040 pad041 pad042;
array impaira(12) pad015a pad016a pad017a pad018a pad019a pad020a
pad037a pad038a pad039a pad040a pad041a pad042a;
do i=1 to 12;
if impair[i] = 0 then impaira[i]=1;
end;
*************** Year Assessment *************;
****** Criterion A ******;
*----------A1;
if pad009a = 2 then pada1ay = 1;
else if (pad009a = 0 or pad009 = 0) then pada1ay = 0;
if pad001a = 2 then pada1by = 1;
else if (pad001 = 0 or pad001a = 0) then pada1by = 0;
if pad010a = 2 then pada1cy = 1;
else if (pad010 = 0 or pad010a = 0) then pada1cy =0;
if pad006a = 2 then pada1dy = 1;
else if (pad006 = 0 or pad006a = 0) then pada1dy = 0;
if pad005a = 2 then pada1ey = 1;
else if (pad005 = 0 or pad005a = 0) then pada1ey = 0;
if (pad002a = 2 or pad003a = 2) then pada1fy = 1;
else if ((pad002 = 0 or pad002a = 0) and (pad003 = 0 or pad003a = 0))
then pada1fy = 0;
if pad007a = 2 then pada1gy = 1;
else if (pad007 = 0 or pad007a = 0) then pada1gy =0;
if pad004a = 2 then pada1hy = 1;
else if (pad004 = 0 or pad004a = 0) then pada1hy = 0;
if pad008a = 2 then pada1iy = 1;
else if (pad008 = 0 or pad008a = 0) then pada1iy = 0;
if (sum(of pada1ay pada1by pada1cy pada1dy pada1ey pada1fy pada1gy pada1hy pada1iy) ge 6)
then pada1y = 1;
else if ((n(of pada1ay pada1by pada1cy pada1dy pada1ey pada1fy pada1gy pada1hy pada1iy) -
sum(of pada1ay pada1by pada1cy pada1dy pada1ey pada1fy pada1gy pada1hy pada1iy)) ge 4)
then pada1y = 0;
*----------A2;
if pad023a = 2 then pada2ay = 1;
else if (pad023 = 0 or pad023a = 0) then pada2ay = 0;
if pad024a = 2 then pada2by = 1;
else if (pad024 = 0 or pad024a = 0) then pada2by = 0;
if (pad025a = 2 or (AGE>=12 and pad026a = 2)) then pada2cy = 1;
else if (((01<=AGE<12) and (pad025 = 0 or pad025a = 0)) or (AGE >=12 and
(pad025 = 0 or pad025a = 0) and (pad026 = 0 or pad026a = 0)))
then pada2cy =0;
if pad028a = 2 then pada2dy = 1;
else if (pad028 = 0 or pad028a = 0) then pada2dy = 0;
if pad022a = 2 then pada2ey = 1;
else if (pad022 = 0 or pad022a = 0) then pada2ey = 0;
if pad027a = 2 then pada2fy = 1;
else if (pad027 = 0 or pad027a = 0) then pada2fy = 0;
if pad031a = 2 then pada2gy = 1;
else if (pad031 = 0 or pad031a = 0) then pada2gy =0;
if pad032a = 2 then pada2hy = 1;
else if (pad032 = 0 or pad032a = 0) then pada2hy = 0;
if ( pad029a = 2 or pad030a = 2) then pada2iy = 1;
else if ((pad029 = 0 or pad029a = 0) and (pad030 = 0 or pad030a = 0))
then pada2iy = 0;
if (sum(of pada2ay pada2by pada2cy pada2dy pada2ey pada2fy pada2gy pada2hy pada2iy) ge 6)
then pada2y = 1;
else if ((n(of pada2ay pada2by pada2cy pada2dy pada2ey pada2fy pada2gy pada2hy pada2iy) -
sum(of pada2ay pada2by pada2cy pada2dy pada2ey pada2fy pada2gy pada2hy pada2iy)) ge 4)
then pada2y = 0;
*-----------------A;
if (pada1y = 1 or pada2y = 1) then paday = 1;
else if (pada1y = 0 and pada2y = 0) then paday =0;
*********** Criterion B ***********;
*-----------B1;
if (((0 <= pad012y <= 06) or (pad012y = 66)) or
(pad012z = 44 or pad012z = 55 or pad012z = 01) or
(pad014 = 1 or pad014 = 2)) then padb1 = 1;
else if ((step1=0 or (pad012y ne . or pad012z ne .)) and pad014 = 0) then padb1 = 0;
*-----------B2;
if (((0 <= pad034y <= 06) or (pad034y = 66)) or
(pad034z = 44 or pad034z = 55 or pad034z = 01) or
(pad036 = 1 or pad036 = 2)) then padb2 = 1;
else if ((step2=0 or (pad034y ne . or pad034z ne .)) and pad036 = 0) then padb2 = 0;
*-----------B;
if (padb1 = 1 or padb2 = 1) then padb = 1;
else if (padb1 = 0 and padb2 = 0) then padb = 0;
********** Criterion C **********;
*-----------C1;
if (pad001b = 2 or pad002b = 2 or pad003b = 2 or pad004b = 2 or pad005b = 2 or
pad006b = 2 or pad007b = 2 or pad008b = 2 or pad009b = 2 or pad010b = 2)
then padc11y = 1;
else if ((pad001 = 0 or pad001a = 0 or pad001b = 0)
and (pad002 = 0 or pad002a = 0 or pad002b = 0)
and (pad003 = 0 or pad003a = 0 or pad003b = 0)
and (pad004 = 0 or pad004a = 0 or pad004b = 0)
and (pad005 = 0 or pad005a = 0 or pad005b = 0)
and (pad006 = 0 or pad006a = 0 or pad006b = 0)
and (pad007 = 0 or pad007a = 0 or pad007b = 0)
and (pad008 = 0 or pad008a = 0 or pad008b = 0)
and (pad009 = 0 or pad009a = 0 or pad009b = 0)
and (pad010 = 0 or pad010a = 0 or pad010b = 0))
then padc11y = 0;
if (pad001c = 2 or pad002c = 2 or pad003c = 2 or pad004c = 2 or pad005c = 2 or
pad006c = 2 or pad007c = 2 or pad008c = 2 or pad009c = 2 or pad010c = 2)
then padc12y = 1;
else if ((pad001 = 0 or pad001a = 0 or pad001c = 0)
and (pad002 = 0 or pad002a = 0 or pad002c = 0)
and (pad003 = 0 or pad003a = 0 or pad003c = 0)
and (pad004 = 0 or pad004a = 0 or pad004c = 0)
and (pad005 = 0 or pad005a = 0 or pad005c = 0)
and (pad006 = 0 or pad006a = 0 or pad006c = 0)
and (pad007 = 0 or pad007a = 0 or pad007c = 0)
and (pad008 = 0 or pad008a = 0 or pad008c = 0)
and (pad009 = 0 or pad009a = 0 or pad009c = 0)
and (pad010 = 0 or pad010a = 0 or pad010c = 0))
then padc12y = 0;
if (padc11y = 1 and padc12y = 1) then padc1y = 1;
else if (padc11y = 0 or padc12y = 0) then padc1y = 0;
*------------C2;
if (pad023b = 2 or pad024b = 2 or pad025b = 2 or pad026b = 2 or pad027b = 2 or
pad028b = 2 or pad029b = 2 or pad030b = 2 or pad031b = 2 or pad032b = 2 or pad022b = 2)
then padc21y= 1;
else if ((pad023 = 0 or pad023a = 0 or pad023b = 0)
and (pad024 = 0 or pad024a = 0 or pad024b = 0)
and (pad025 = 0 or pad025a = 0 or pad025b = 0)
and (pad026 = 0 or pad026a = 0 or pad026b = 0)
and (pad027 = 0 or pad027a = 0 or pad027b = 0)
and (pad028 = 0 or pad028a = 0 or pad028b = 0)
and (pad029 = 0 or pad029a = 0 or pad029b = 0)
and (pad030 = 0 or pad030a = 0 or pad030b = 0)
and (pad031 = 0 or pad031a = 0 or pad031b = 0)
and (pad032 = 0 or pad032a = 0 or pad032b = 0)
and (pad022 = 0 or pad022a = 0 or pad022b = 0))
then padc21y = 0;
if (pad023c = 2 or pad024c = 2 or pad025c = 2 or pad026c = 2 or pad027c = 2 or
pad028c = 2 or pad029c = 2 or pad030c = 2 or pad031c = 2 or pad032c = 2 or
pad022c = 2)
then padc22y= 1;
else if ((pad023 = 0 or pad023a = 0 or pad023c = 0)
and (pad024 = 0 or pad024a = 0 or pad024c = 0)
and (pad025 = 0 or pad025a = 0 or pad025c = 0)
and (pad026 = 0 or pad026a = 0 or pad026c = 0)
and (pad027 = 0 or pad027a = 0 or pad027c = 0)
and (pad028 = 0 or pad028a = 0 or pad028c = 0)
and (pad029 = 0 or pad029a = 0 or pad029c = 0)
and (pad030 = 0 or pad030a = 0 or pad030c = 0)
and (pad031 = 0 or pad031a = 0 or pad031c = 0)
and (pad032 = 0 or pad032a = 0 or pad032c = 0)
and (pad022 = 0 or pad022a = 0 or pad022c = 0))
then padc22y = 0;
if (padc21y = 1 and padc22y = 1) then padc2y = 1;
else if (padc21y = 0 or padc22y = 0) then padc2y = 0;
*-------------C;
if (padc1y = 1 or padc2y = 1) then padcy = 1;
else if (padc1y = 0 and padc2y = 0) then padcy = 0;
*-------------D; /* Not assessed */
*************** Diagnosis *************;
*----------Inattention type;
if ((pada1y = 1 and pada2y = 0) and padb1 = 1 and padc1y = 1)then pad1y = 1;
else if((pada1y = 0 or pada2y = 1) or padb1 = 0 or padc1y = 0)
then pad1y = 0;
*----------Hyp/Imp type;
if ((pada1y = 0 and pada2y = 1) and padb2 = 1 and padc2y = 1)then pad2y = 1;
else if((pada1y = 1 or pada2y = 0) or padb2 = 0 or padc2y = 0)
then pad2y = 0;
*----------Combined type;
if ((pada1y = 1 and pada2y = 1) and padb = 1 and padcy = 1)then pad3y = 1;
else if((pada1y = 0 or pada2y = 0) or padb = 0 or padcy = 0)
then pad3y = 0;
*----------Any type;
if (pad1y=1 or pad2y=1 or pad3y=1) then pady=1;
if (pad1y=0 and pad2y=0 and pad3y=0) then pady=0;
*-----------Diagnosis modified so that age is not taken into account;
*----------Inattention type;
if ((pada1y = 1 and pada2y = 0) and padc1y = 1)then pad1ym = 1;
else if((pada1y = 0 or pada2y = 1) or padc1y = 0)
then pad1ym = 0;
*----------Hyp/Imp type;
if ((pada1y = 0 and pada2y = 1) and padc2y = 1)then pad2ym = 1;
else if((pada1y = 1 or pada2y = 0) or padc2y = 0)
then pad2ym = 0;
*----------Combined type;
if ((pada1y = 1 and pada2y = 1) and padcy = 1)then pad3ym = 1;
else if((pada1y = 0 or pada2y = 0) or padcy = 0)
then pad3ym = 0;
*----------Any type;
if (pad1ym=1 or pad2ym=1 or pad3ym=1) then padym=1;
if (pad1ym=0 and pad2ym=0 and pad3ym=0) then padym=0;
*--------- Variable Labels ----------*;
label pada1y = 'Inattention'
pada1ay = 'Fails to give close attention'
pada1by = 'Difficulty sustaining attention'
pada1cy = 'Does not listen'
pada1dy = 'Fails to follow through on instructions'
pada1ey = 'Difficulty organizing tasks'
pada1fy = 'Avoids, dislikes tasks that require sustained attention'
pada1gy = 'Loses things'
pada1hy = 'Easily distracted by extraneous stimuli'
pada1iy = 'Forgetful'
pada2y = 'Hyperactivity-impulsivity'
pada2ay = 'Fidgets'
pada2by = 'Leaves seat'
pada2cy = 'Runs about or climbs excessively'
pada2dy = 'Difficulty playing quietly'
pada2ey = 'Often on the go/driven by a motor'
pada2fy = 'Talks excessively'
pada2gy = 'Blurts out answers'
pada2hy = 'Difficulty awaiting turn'
pada2iy = 'Interrupts or intrudes'
padb = 'Onset before age 7'
padcy = 'Impairment in two or more settings'
pad1y = 'Inattention type'
pad2y = 'Hyperactive type'
pad3y = 'Combined type'
pady ='Any type'
pad1yM = 'Inattention type MODIFIED WITHOUT AGE'
pad2yM = 'Hyperactive type MODIFIED WITHOUT AGE'
pad3yM = 'Combined type MODIFIED WITHOUT AGE'
padyM ='Any type MODIFIED WITHOUT AGE'
;
************************ Month Assessment *************************;
****** Criterion A ******;
*----------A1;
if pada1ay = 1 and pad009d = 2 then pada1am = 1;
else if (pada1ay = 0 or pad009d = 0) then pada1am = 0;
if pada1by = 1 and pad001d = 2 then pada1bm = 1;
else if (pada1by = 0 or pad001d = 0) then pada1bm = 0;
if pada1cy = 1 and pad010d = 2 then pada1cm = 1;
else if (pada1cy = 0 or pad010d = 0) then pada1cm =0;
if pada1dy = 1 and pad006d = 2 then pada1dm = 1;
else if (pada1dy = 0 or pad006d = 0) then pada1dm = 0;
if pada1ey = 1 and pad005d = 2 then pada1em = 1;
else if (pada1ey = 0 or pad005d = 0) then pada1em = 0;
if (pad002a = 2 and pad002d = 2) or (pad003a = 2 and pad003d = 2) then pada1fm = 1;
else if ((pad002 = 0 or pad002a = 0 or pad002d = 0) and (pad003 = 0 or pad003a = 0
or pad003d = 0))
then pada1fm = 0;
if pada1gy = 1 and pad007d = 2 then pada1gm = 1;
else if (pada1gy = 0 or pad007d = 0) then pada1gm =0;
if pada1hy = 1 and pad004d = 2 then pada1hm = 1;
else if (pada1hy = 0 or pad004d = 0) then pada1hm = 0;
if pada1iy = 1 and pad008d = 2 then pada1im = 1;
else if (pada1iy = 0 or pad008d = 0) then pada1im = 0;
if (sum(of pada1am pada1bm pada1cm pada1dm pada1em pada1fm pada1gm pada1hm pada1im) ge 6)
then pada1m = 1;
else if ((n(of pada1am pada1bm pada1cm pada1dm pada1em pada1fm pada1gm pada1hm pada1im) -
sum(of pada1am pada1bm pada1cm pada1dm pada1em pada1fm pada1gm pada1hm pada1im)) ge 4)
then pada1m = 0;
*----------A2;
if pada2ay = 1 and pad023d = 2 then pada2am = 1;
else if (pada2ay = 0 or pad023d = 0) then pada2am = 0;
if pada2by = 1 and pad024d = 2 then pada2bm=1;
else if (pada2by = 0 or pad024d = 0) then pada2bm = 0;
if (pad025a = 2 and pad025d = 2) or (AGE>=12 and pad026a = 2 and pad026d = 2) then pada2cm = 1;
else if (((01<=AGE<12) and (pad025 = 0 or pad025a = 0 or pad025d = 0)) or (AGE >=12 and
(pad025 = 0 or pad025a = 0 or pad025d = 0) and (pad026 = 0 or pad026a = 0 or pad026d = 0)))
then pada2cm =0;
if pada2dy = 1 and pad028d = 2 then pada2dm = 1;
else if (pada2dy = 0 or pad028d = 0) then pada2dm = 0;
if pada2ey = 1 and pad022d = 2 then pada2em = 1;
else if (pada2ey = 0 or pad022d = 0) then pada2em = 0;
if pada2fy = 1 and pad027d = 2 then pada2fm = 1;
else if (pada2fy = 0 or pad027d = 0) then pada2fm = 0;
if pada2gy = 1 and pad031d = 2 then pada2gm = 1;
else if (pada2gy = 0 or pad031d = 0) then pada2gm =0;
if pada2hy = 1 and pad032d = 2 then pada2hm = 1;
else if (pada2hy = 0 or pad032d = 0) then pada2hm = 0;
if (pad029a = 2 and pad029d = 2) or (pad030a = 2 and pad030d =2) then pada2im = 1;
else if ((pad029 = 0 or pad029a = 0 or pad029d = 0) and (pad030 = 0 or pad030a = 0
or pad030d = 0))
then pada2im = 0;
if (sum(of pada2am pada2bm pada2cm pada2dm pada2em pada2fm pada2gm pada2hm pada2im) ge 6)
then pada2m = 1;
else if ((n(of pada2am pada2bm pada2cm pada2dm pada2em pada2fm pada2gm pada2hm pada2im) -
sum(of pada2am pada2bm pada2cm pada2dm pada2em pada2fm pada2gm pada2hm pada2im)) ge 4)
then pada2m = 0;
*-----------------A;
if (pada1m = 1 or pada2m = 1) then padam = 1;
else if (pada1m = 0 and pada2m = 0) then padam =0;
********** Criterion C **********;
/*the same as it is for the past year*/
padc1m =padc1y;
padc2m =padc2y;
padcm = padcy;
*-------------D; /* Not assessed */
*************** Diagnosis *************;
*----------Inattention type;
if ((pada1m = 1 and pada2m = 0) and padb1 = 1 and padc1m = 1)then pad1m = 1;
else if((pada1m = 0 or pada2m = 1) or padb1 = 0 or padc1m = 0)
then pad1m = 0;
*----------Hyp/Imp type;
if ((pada1m = 0 and pada2m = 1) and padb2 = 1 and padc2m = 1)then pad2m = 1;
else if((pada1m = 1 or pada2m = 0) or padb2 = 0 or padc2m = 0)
then pad2m = 0;
*----------Combined type;
if ((pada1m = 1 and pada2m = 1) and padb = 1 and padcm = 1)then pad3m = 1;
else if((pada1m = 0 or pada2m = 0) or padb = 0 or padcm = 0)
then pad3m = 0;
*----------Any type;
if (pad1m=1 or pad2m=1 or pad3m=1) then padm=1;
if (pad1m=0 and pad2m=0 and pad3m=0) then padm=0;
*--------- Variable Labels ----------*;
label pada1m = 'Inattention'
pada1am = 'Fails to give close attention'
pada1bm = 'Difficulty sustaining attention'
pada1cm = 'Does not listen'
pada1dm = 'Fails to follow through on instructions'
pada1em = 'Difficulty organizing tasks'
pada1fm = 'Avoids, dislikes tasks that require sustained attention'
pada1gm = 'Loses things'
pada1hm = 'Easily distracted by extraneous stimuli'
pada1im = 'Forgetful'
pada2m = 'Hyperactivity-impulsivity'
pada2am = 'Fidgets'
pada2bm = 'Leaves seat'
pada2cm = 'Runs about or climbs excessively'
pada2dm = 'Difficulty playing quietly'
pada2em = 'Often on the go/driven by a motor'
pada2fm = 'Talks excessively'
pada2gm = 'Blurts out answers'
pada2hm = 'Difficulty awaiting turn'
pada2im = 'Interrupts or intrudes'
padcm = 'Impairment in two or more settings'
pad1m = 'Inattention type'
pad2m = 'Hyperactive type'
pad3m = 'Combined type'
padm ='Any type';
*------ IMPAIRMENT ALGORITHMS;
*----A; /* One intermediate rating of impairment or distress inattention and hyperactivity*/
if (pad015a = 2 or pad015a = 3) or (pad037a = 2 or pad037a = 3) then padima1 = 1;
else if (pad015a = 1 or pad015a = 7 or pad015a = 9) AND (pad037a = 1 or pad037a = 7 or pad037a = 9) then padima1 = 0;
if (pad016a = 2 or pad016a = 3) or (pad038a = 2 or pad038a = 3) then padima2 = 1;
else if (pad016a = 1 or pad016a = 7 or pad016a = 9) AND (pad038a = 1 or pad038a = 7 or pad038a = 9) then padima2 = 0;
if (pad017a = 2 or pad017a = 3) or (pad039a = 2 or pad039a = 3) then padima3 = 1;
else if (pad017a = 1 or pad017a = 7 or pad017a = 9) and (pad039a = 1 or pad039a = 7 or pad039a = 9) then padima3 = 0;
if (pad018a = 2 or pad018a = 3) or (pad040a = 2 or pad040a = 3) then padima4 = 1;
else if (pad018a = 1 or pad018a = 7 or pad018a = 9) and (pad040a = 1 or pad040a = 7 or pad040a = 9) then padima4 = 0;
if (pad019a = 2 or pad019a = 3) or (pad041a = 2 or pad041a = 3) then padima5 = 1;
else if (pad019a = 1 or pad019a = 7 or pad019a = 9) and (pad041a = 1 or pad041a = 7 or pad041a = 9) then padima5 = 0;
if (pad020a = 2 or pad020a = 3) or (pad042a = 2 or pad042a = 3) then padima6 = 1;
else if (pad020a = 1 or pad020a = 7 or pad020a = 9) and (pad042a = 1 or pad042a = 7 or pad042a = 9) then padima6 = 0;
if (sum(padima1, padima2, padima3, padima4, padima5, padima6) ge 1)
then padima = 1;
else if ((n(padima1, padima2, padima3, padima4, padima5, padima6) - sum(padima1,
padima2, padima3, padima4, padima5, padima6)) ge 6) then padima = 0;
if pady = 1 and padima = 1 then padyima = 1;
else if pady = 0 or padima = 0 then padyima = 0;
if padm = 1 and padima = 1 then padmima = 1;
else if padm = 0 or padima = 0 then padmima = 0;
*------B; /* Two intermediate ratings of impairment or distress */
if (sum(padima1, padima2, padima3, padima4, padima5, padima6) ge 2)
then padimb = 1;
else if ((n(padima1, padima2, padima3, padima4, padima5, padima6) - sum(padima1,
padima2, padima3, padima4, padima5, padima6)) ge 5) then padimb = 0;
if pady = 1 and padimb = 1 then padyimb = 1;
else if pady = 0 or padimb = 0 then padyimb = 0;
if padm = 1 and padimb = 1 then padmimb = 1;
else if padm = 0 or padimb = 0 then padmimb = 0;
*-----C; /* One severe rating of impairment or distress inattention and hyperactivity*/
if (pad015a = 3 or pad037a = 3) then padimc1 = 1;
else if (pad015a = 1 or pad015a = 2 or pad015a = 7 or pad015a = 9) and
(pad037a = 1 or pad037a = 2 or pad037a = 7 or pad037a = 9) then padimc1 = 0;
if (pad016a = 3 or pad038a = 3) then padimc2 = 1;
else if (pad016a = 1 or pad016a = 2 or pad016a = 7 or pad016a = 9) and
(pad038a = 1 or pad038a = 2 or pad038a = 7 or pad038a = 9) then padimc2 = 0;
if (pad017a = 3 or pad039a = 3) then padimc3 = 1;
else if (pad017a = 1 or pad017a = 2 or pad017a = 7 or pad017a = 9) and
(pad039a = 1 or pad039a = 2 or pad039a = 7 or pad039a = 9) then padimc3 = 0;
if (pad018a = 3 or pad040a = 3) then padimc4 = 1;
else if (pad018a = 1 or pad018a = 2 or pad018a = 7 or pad018a = 9) and
(pad040a = 1 or pad040a = 2 or pad040a = 7 or pad040a = 9) then padimc4 = 0;
if (pad019a = 3 or pad041a = 3) then padimc5 = 1;
else if (pad019a = 1 or pad019a = 2 or pad019a = 7 or pad019a = 9) and
(pad041a = 1 or pad041a = 2 or pad041a = 7 or pad041a = 9) then padimc5 = 0;
if (pad020a = 3 or pad042a = 3) then padimc6 = 1;
else if (pad020a = 1 or pad020a = 2 or pad020a = 7 or pad020a = 9) and
(pad042a = 1 or pad042a = 2 or pad042a = 7 or pad042a = 9) then padimc6 = 0;
if (sum(padimc1, padimc2, padimc3, padimc4, padimc5, padimc6) ge 1)
then padimc = 1;
else if ((n(padimc1, padimc2, padimc3, padimc4, padimc5, padimc6) - sum(padimc1,
padimc2, padimc3, padimc4, padimc5, padimc6)) ge 6) then padimc = 0;
if pady = 1 and padimc = 1 then padyimc = 1;
else if pady = 0 or padimc = 0 then padyimc = 0;
if padm = 1 and padimc = 1 then padmimc = 1;
else if padm = 0 or padimc = 0 then padmimc = 0;
*------D; /* Impairment D: present when impairment B or C are satisified inattention and hyperactivity */
If padyimb = 1 or padyimc = 1 then padyimd = 1;
else if padyimb = 0 and padyimc = 0 then padyimd = 0;
If padmimb = 1 or padmimc = 1 then padmimd = 1;
else if padmimb = 0 and padmimc = 0 then padmimd = 0;
***** Criterion Count*****;
padcrt1y=sum(of pada1ay pada1by pada1cy pada1dy pada1ey pada1fy pada1gy pada1hy pada1iy);
padcrt2y=sum(of pada2ay pada2by pada2cy pada2dy pada2ey pada2fy pada2gy pada2hy pada2iy);
padcrt1m=sum(of pada1am pada1bm pada1cm pada1dm pada1em pada1fm pada1gm pada1hm pada1im);
padcrt2m=sum(of pada2am pada2bm pada2cm pada2dm pada2em pada2fm pada2gm pada2hm pada2im);
padcrt3y=sum(of padcrt1y padcrt2y);
padcrt3m=sum(of padcrt1m padcrt2m);
*****Symptom Count *******;
padsymp=sum(of pad001-pad011 pad022-pad026 pad027-pad033)/2;
patsymp=sum(of pad001-pad011)/2;
pahsymp=sum(of pad022-pad026 pad027-pad033)/2;
label
padcrt1y = 'Parent ADHD type 1-inatten Criteria Count - Past Year'
padcrt1m = 'Parent ADHD type 1-inatten Criteria Count - Past Month'
padcrt2y = 'Parent ADHD type 2-hyp-impul Criteria Count - Past Year'
padcrt2m = 'Parent ADHD type 2-hyp-impul Criteria Count - Past Month'
padcrt3y = 'Youth ADHD type 3-total Criteria Count - Past Year'
padcrt3m = 'Youth ADHD type 3-total Criteria Coutn - Past Month'
padsymp = 'Parent ADHD Symptom Count'
patsymp = 'Youth ADHD attention deficit Symptom Count'
pahsymp = 'Youth ADHD hyperactivity Symptom Count';
;
run;