in the following detailed description , numerous specific details are set forth in order to provide a thorough understanding of the invention . however , it will be understood by those skilled in the art that the present invention may be practiced without these specific details . in other instances , well - known methods , procedures , and components have not been described in detail so as not to obscure the present invention . applicant has realized that the basic paradigm of neurological / psychological tests is very uniform and is as follows : each test battery consists of a sequence of tests . the sequence and the number of the tests may either be pre - defined by the researcher or dynamically modified during the test flow depending on user &# 39 ; s reactions . 1 ) an explanation ; 2 ) training in the test ; and 3 ) the subtests themselves . reference is now made to fig2 , which illustrates a neuropsychological testing system 20 which may separate the test design from the execution and / or analysis of the tests . testing system 20 may comprise a test editor 26 in which to generate the tests , a multiplicity of testing units 22 to run the tests , a test database 24 to store the tests and results , and an analyzer 28 to analyze the results . because the operations are separate , they may be physically present in separate locations , communicating through a data network 29 , such as a local area network , an intranet , or the internet . in one embodiment , each unit 22 , 24 , 26 and 28 may comprise a communication unit 25 , such as one written in the java language , through which data may pass from one unit to the next . test editor 26 may provide an environment in which to prepare test scripts , such as test scripts 30 stored in test database 24 . each test script may describe a test or series of tests to be performed at one sitting . each test may comprise a set of explanations , a practice test and the subtests . each subtest may comprise a set of stimuli ( visual or aural ), preferably from standardized neuropsychological tests , and a set of questions or actions to be asked of the subject with respect to the stimuli . included in the subtest definition may be the expected answers and the expected timing of the answers . the test designer may design explanations in any suitable manner . for example , they may be written explanations to be displayed and / or they may be voiced . the latter may be provided through a recording of someone reading the text or through a text - to - speech device ( not shown ), such as is commonly known . the test designer may design the practice test series and may define the passing grade , if necessary , to move to the ‘ real ’ tests . the test designer may define the type of stimuli and the location in test database 24 where the stimuli may be found . for example , some stimuli may be images . others might be recordings . the test designer may also associate complexity levels with the stimuli and may have multiple complexity levels for a given test . the complexity levels may be based on the complexity levels in the standardized , manual tests or may be defined by the test designer . the test designer may also define the expected response to each stimulus . these responses may be key presses , cursor movements and cursor clicks . the expected response may also include the expected timing of the response . for example , the expected response of ‘ l ’ may be required to be received within 0 . 25 sec . for cursor movements , the expected response may be defined by an optimal trajectory from the starting location to the final location and by the speed and / or direction at which the cursor may be moved . the test may require cursor clicks to occur within a period of time after the cursor arrives at the location . the test may require that the motion be finished within a predefined length of time . attached to each testing unit 22 may be a mouse or other cursor unit 40 , a standard or customized keyboard 42 , a monitor 44 and a speaker 46 . each testing unit 22 may download a selected test script 30 from test database 24 and may then run test script 30 . when running test script 30 , testing unit 22 may provide the stimuli listed in test script 30 to a subject and may collect his / her responses . typical response data may include key presses and cursor movements . they may also include timing of when such occurred with respect to given stimuli . testing unit 22 may analyze some of the subject &# 39 ; s responses to determine if it is possible to move to more complex stimuli and / or to modify the next expected reaction time . in addition , testing unit 22 may provide the full set of responses as test results 32 , typically through data network 29 , to database 24 . analyzer 28 may retrieve tests results 32 , through data network 29 , and may analyze them at any appropriate time . the analysis may occur at predetermined times after the test has finished , at regular intervals or at any other suitable moment . analyzer 28 may perform the analysis discussed in the article by aharonson and korczyn , discussed hereinabove . alternatively or in addition , analyzer 28 may perform spatial motion analysis with a spatial motion analyzer 27 , operative to analysis the motion of a cursor ( such as mouse ) and / or the motion of the hands over the keys of a keyboard . minimally , analyzer 28 may determine a set of features f i from test results 32 and may determine a score s for each subject . the set of features f i may be those discussed in the article by aharonson and korczyn and / or may include cursor movement features f i determined by cursor movement analyzer 27 . score s may be determined by : s = ∑ i ⁢ ⁢ w i ⁢ f i & lt ; t where t is a threshold defining a disease and w i are empirically determined , per feature weights . the weights w i may be determined for a given population . in one embodiment , the weights were derived from the data of an initial experiment and a follow - up experiment . through a boost search algorithm , the weights that match best the subjects &# 39 ; cognitive decline towards disease or disorder were calculated . in an alternative embodiment , the weights may be dynamically refined . the weights may be preferably stored as weights 34 in database 24 . different populations may have different sets of weights 34 and analyzer 28 may select the appropriate set of weights 34 for the subject when performing the analysis . reference is now made to fig3 , which illustrates an exemplary test editor 26 . test editor 26 may comprise a test operation storage unit 36 , an editing unit 37 , a script generator 38 and one of communication units 25 . within editing unit 37 , a test designer may define test batteries , tests , srps ( stimulus - response pairs , the minimal unit of user / system interaction ), test results and subject information . each srp may comprise 2 parts : computer stimuli and their expected user response . each subtest may be a sequence of srps and the stimuli may be sentences of instructions , sentences of explanation , sentences of comments , a visual pattern / symbol / picture , and / or sound or speech . the test designer may define the amount of stimuli , their types , the desired response for each stimulus and the maximal response time to be allowed . for each stimulus , the test designer may define the stimulus type , the associated audio file , any associated bitmap ( s ) or a rule ( description ) for creating the bitmap ( s ) on the fly , its location on the screen and any rule ( s ) for selecting the next srp . for example , the selection rules might be : a random selection , a selection adaptive to user reactions , selections in ascending / descending complexity level , etc . finally , the test designer may define a format for the results . for example , the test results may be stored as raw data or as summaries . test operation storage unit 36 may store code associated with the various types of operations that a test designer may select within editing unit 37 . script generator 38 may convert the test designer &# 39 ; s selections into a test script 30 . in the exemplary embodiment , test scripts 30 are xml documents written using an xml schema . alternatively , they can be any other suitable document which may be read by testing units 22 . generator 38 may access storage unit 36 for the code associated with each selection of the test designer . generator 38 may also add any additional code to generally define the operations to be done . reference is now made to fig4 , which illustrates an exemplary testing unit 22 which may operate with test scripts written in xml and software written using the java language . other forms of operation are possible and are included in the present invention . each unit 22 may comprise its communication unit 25 , a script interpreter 50 , a test composer 52 , an input manager 54 and a graphical user interface ( gui ) manager 56 . input manager 54 may connect to the input units , such as keyboard 42 and mouse 40 . gui manager 56 may control monitor 44 and speaker 46 . test composer 52 may run a selected test . to do so , it may first call communication unit 25 to retrieve the specified test script 30 from database 24 . composer 52 may call script interpreter 50 to convert the retrieved test script 30 to a set of java classes and may then build and run the test with the java classes . the running of a test is described in more detail hereinbelow , with respect to fig5 . composer 52 may store the subject &# 39 ; s responses during the test battery and may call script interpreter 50 to convert the test results to xml . finally composer 52 may call communication unit 25 to store the test results in database 24 . communication unit 25 may be written in java and may connect each test unit 22 and database 24 . it may handle all communication and / or network operations . in addition , it may handle database operations , such as get and put operations , and converting requests from test composer 52 into standard database requests , such as sql queries . it may also receive query results from database 24 and may pass the results to the request originator . script interpreter 50 may convert between test scripts 30 , ( in this example , written in xml ), and a set of programming language classes ( in this example , java ). for converting from xml , interpreter 50 may get references to an empty set of java classes , may run a standard xml parser to convert xml data to java classes and may return the java classes to the calling routine for converting to xml , interpreter 50 may get references to a filled set of java classes , may walk through the classes , extracting data and convert them back to an xml file and may return the xml file to the caller . reference is now made to fig5 , which illustrates an exemplary operation for running a test battery . for each test in the test battery , there are two training sessions followed by the actual test . the first training session typically may be relatively simple while the second training session may be a more complex version of the same type of task . the actual test may provide multiple tasks of the same type , some simple and others complex . in step 60 , composer 52 may show a welcome screen after which ( step 62 ), composer 52 may get the subject information , typically according to a dialog screen . in step 64 , composer 52 may request test script 30 from database 24 ( through communication unit 25 ) and may request that script interpreter 50 convert it . after this set up , composer 52 may run the test . the test may comprise multiple tasks , which composer 52 may run sequentially in the loop of steps 66 - 88 . for each task , composer 52 may first initiate the task ( step 66 ). in step 68 , composer 52 may provide the test explanation , as indicated in test script 30 . in step 70 , composer 52 may run the first training task , displaying the stimuli defined for it and receiving the subject &# 39 ; s responses . if the subject requires another trial ( as checked in step 72 ), composer 52 may review the data and may make ( step 74 ) the task more or less complex to adapt to the subject &# 39 ; s responses . composer 52 may repeat the process ( from step 68 ) until the subject either has mastered the task ( according to the definitions in test script 30 ) or has achieved the maximum number of trials ( as listed in test script 30 ). the check is performed in step 72 . composer 52 may continue ( step 76 ) with a second training session , using the stimuli defined for it . if the subject requires another trial ( as checked in step 78 ), composer 52 may review the data and may make ( step 80 ) the task more or less complex to adapt to the subject &# 39 ; s responses . composer 52 may repeat the process ( from step 76 ) until the subject either has mastered the task ( according to the definitions in test script 30 ) or has achieved the maximum number of trials ( as listed in test script 30 ). the check is performed in step 78 . finally , in step 82 , composer 52 may provide the test for which the subject has been trained . in this step , composer 52 may take the data and may analyze it to determine when to make the tasks listed therein more complex . such an analysis is discussed in the above - mentioned article by aharonson and korczyn . after running the test , composer 52 may store the data ( step 84 ), and set up to do the next test , which may either be the next one listed ( step 86 ) or another one later on in test script 30 ( step 88 ). if the test battery has finished , as checked in step 90 , composer 52 may analyze and store the results ( steps 92 and 94 ). reference is now made to fig6 a , 6b and 6 c , which illustrate aspects of the cursor movement analysis of analyzer 27 . fig6 a and 6b illustrate two types of cursor movement tests . in the test of fig6 a , the subject may be told to move a cursor 59 back and forth and in the test of fig6 b , the subject may be told to move cursor 59 from a starting point 61 to a button 63 and to select button 63 , such as by clicking on it . testing unit 22 may record the cursor trajectories . spatial motion analyzer 27 may determine features related to the quality of cursor movement . to do so , analyzer 27 may divide each cursor trajectory , shown in fig6 c as a curve 65 , into a multiplicity of linear segments 67 . for each segment , analyzer 27 may determine the speed , a feature v 1 , and the variance of the movement from a straight ( line . the latter may be a feature v 2 . analyzer 27 may then average the values of features v 1 and v 2 over the line segments 67 . analyzer 27 may determine the jerkiness of the subject &# 39 ; s motion as a function of how many segments the trajectory must be divided into . for the movement of the type of fig6 b , spatial motion analyzer 27 may determine the subject &# 39 ; s manner of stopping cursor 59 at button 63 ( whether in a stable manner or with much stopping ) and the location of the stop ( a feature v 4 ) with respect to the center of button 63 . the stopping manner may be determined by counting the number of crossings in and out of button 63 , a feature v 3 . spatial motion analyzer 27 may also determine the click latency ( a feature v 5 ) as a measure of how long after the subject brought cursor 59 to button 63 did s / he click button 63 . finally , analyzer 27 may determine click persistency ( a feature v 6 ) as a measure of how long the subject pushes on button 63 ( i . e . from click on to click off ). reference is now made to fig7 , which is useful in understanding the operation of spatial motion analyzer 27 when analyzing key presses . testing unit 22 may display an image , on monitor 44 , of some numbers 100 for the subject to type using keyboard 42 . fig7 shows only the number keys of keyboard 42 . as can be seen from fig7 , some of the keys , such as the 1 and the 2 keys , are close to each other while other keys , such as the 1 and the 9 key , are further apart . applicant has realized that , due to the spatial relationship of the keys , it will take longer to press keys that are apart from each other than those which are nearby . thus , analyzer 27 may normalize the reaction time data of subsequent key presses as a function of the spatial relationships of the keys to each other . the spatial relationship may be expressed in absolute or relative distance between the keys . for example , for the keys 100 indicated on monitor 44 of fig7 ( i . e . 1 , 9 , 3 , 2 and 5 ), the reaction times may be normalized so that the relationship of each key to its subsequent key is : 8 , 6 , 1 and 3 , which defines the number of keys on keyboard 42 between subsequent key presses . while certain features of the invention have been illustrated and described herein , many modifications , substitutions , changes , and equivalents will now occur to those of ordinary skill in the art . it is , therefore , to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention .
a system for performing neurological and / or psychological tests includes a test editor to generate test scripts , a testing unit to run tests using the test scripts , and an analyzer to analyze the results . the units communicate through a network and store their output in a test database . the testing unit modifies the test according at least to at least one reaction time of a subject . the test editor includes a unit having at least one stimulus - response pair defined therein , an editing unit for a test designer to create a test listing from the at least one stimulus - response pair and a script generator to generate a test script from the test listing . the analyzer analyzes spatial motion , both of the cursor movement and of the fingers as they move across the keyboard .