YTSCOREX ;SLC/KCM - Score tests without admins ;Mar 04, 2025@09:06
Source file <YTSCOREX.m>
| Name | Comments | DBIA/ICR reference | 
|---|---|---|
| CALC(TEST,ANSWERS,SCORES) | ; Calculate and return .SCORES given ANSWERS
 ; TEST=name or IEN of instrument ; .ANSWERS(n,"id")=questionId ; .ANSWERS(n,"value")=choiceId or integerValue ; .SCORES(n,"name")=scaleName ; .SCORES(n,"id")=scaleId ; .SCORES(n,"raw")=rawScore ; .SCORES(n,"tscore")=tScore ; .SCORES("error")=error message if defined  | 
|
| SUMKEY(TEST,ANSWERS,SCORES) | ; score by summing scoring keys
 ; expects ^TMP($J,"YSG",n) to contain scale id's  | 
|
| BYQSTN(ANSWERS,QALIST) | ; return QALIST(questionId)=choiceText or value
 | 
|
| BYKEY(SCALE,QALIST) | ; returns score based on scoring keys for SCALE
 ; .QALIST(questionId)=choiceId (with "q" and "c" removed)  | 
|
| COMPLEX(TEST,ANSWERS,SCORES) | ; score by calling routine
 ; expects: ^TMP($J,"YSG",n) to contain scale id's ; expects: YS and YSDATA from CALC  | 
|
| MKYSDATA(TEST,ANSWERS,YSDATA) | ; Convert "tree" array of answers to YSDATA format
 | 
|
| NSCALES(NMLIST) | ; build scale NMLIST(name)=sequence^scaleId
 ; expects: ^TMP($J,"YSG",n) from CALC  | 
|
| SPLITWP(IN,OUT) | ; split WP into 240 char segments and use | as newline
 | 
|
| ADDSEGS(LINE,OUT) | ; add 240 char segment to OUT array
 ; See ADDSEGS^YTQRQAD2 for similar code. This is a bit more general.  | 
|
| LEGACY(TESTNM,ADFN,AUSER,ANSWERS,SCORES) | ; return .SCORES for legacy test
 ; .ANSWERS(n,"id")=questionId ; .ANSWERS(n,"value")=choiceId or integerValue  | 
|
| FULLANS(ANSWERS,QADISP) | ; List out display values of questions/answers
 ; expects .ANSWERS(sequence,"id")="q1234" ; .ANSWERS(sequence,"value")="c567" ; returns .QADISP(sequence,"qText")=questionText ; .QADISP(sequence,"aText")=answerText  | 
|
| PARTANS(TEST,ANSWERS,QADISP) | ; List out display values for designator/legacyValue
 ; expects .ANSWERS(sequence,"id")="q1234" ; .ANSWERS(sequence,"value")="c567" ; returns .QADISP(sequence,"qText")=designator ; .QADISP(sequence,"aText")=legacyValue  | 
|
| CPRSSTR(TEST,ANSWERS,SCORES) | ; build string for CPRS DLL
 |