Hi,
the first thing you do: Forget "assessment rules".
Since there is ExpressionScript (since version 2.0) it is outdated.
While assessment values may still be important; in case you have negative weights or several answer options have the same weight.
Well, in your case the answer options have different weights among the subquestions.
Here you have to sum each outcome.
I'd advise to calculate the score separately and than display the result.
Reason: To display the result you need a nested if. And the separated calculation avoids that the same is calculated several times.
So.
Create a (hidden) question of type equation (call it as you like; here I used "numScore")
and enter this
{sum(countif("2",Q1_Y004.NAOK), countif("3",Q1_Y002.NAOK,Q1_Y003.NAOK), countif("4",Q1_Y001.NAOK,Q1_Y002.NAOK), 2*countif("3",Q1_Y004.NAOK), 2*countif("4",Q1_Y003.NAOK,Q1_Y004.NAOK), 2*countif("5",that.Q1.NAOK))}
You see we sum the number of answer options that are weighted 1 and twice the answer options that are weighted 2.
And in a question of type "text display" or wherever you want - even in the question itself, you show the result with this nested IF
{if(numScore<4,'mild',if(numScore<8,'moderate','severe'))}
Here I assume that there were some typos in your requirement
a. you didn't define a result for "4"
b. you didn't define a result for "8"
c. a score >8 is impossible
Joffm
Edit:
{sum(if(Q1_Y001.NAOK>4,2,if(Q1_Y001.NAOK>3,1,0)), if(Q1_Y002.NAOK>4,2,if(Q1_Y002.NAOK>2,1,0)), if(Q1_Y003.NAOK>3,2,if(Q1_Y003.NAOK>2,1,0)), if(Q1_Y004.NAOK>2,2,if(Q1_Y004.NAOK>1,1,0)))}
Maybe this is easier
The values are summed up row by row (with nested IFs).