YTWJSON ;SLC/KCM - Generate JSON Instrument Spec ; 7/20/2018
Source file <YTWJSON.m>
action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
Package | Total | Caller Graph |
---|---|---|
Mental Health | 2 | YTWJSONF YTWJSONO |
Name | Comments | DBIA/ICR reference |
---|---|---|
GETSPEC(JSON,TEST) | ; Get the JSON admin spec for instrument TEST
|
|
ERRHND | ; Handle errors & clear stack
|
|
CONTENT(TEST,TREE) | ; build TEST spec as TREE for JSON conversion
|
|
RADIO(QSTN,DISP,CTYP) | ; add properties for radio group (1 MCHOICE)
; add choices, inline/columns |
|
SPIN(QSTN,DISP) | ; add properties for spin control (2 INTEGER)
; add inline, default value, max, min |
|
TEXT(QSTN,DISP) | ; add properties for edit control (3 STRING)
|
|
DATE(QSTN,DISP) | ; add properties for date picker (4 DATE)
|
|
MEMO(QSTN,DISP) | ; add properties for memo control (5 MEMO)
; add width, default value |
|
RANGE(QSTN,DISP,CTYP) | ; add properties for range/slider (7 TRACK BAR)
|
|
CHECK(QSTN,DISP,CTYP) | ; add properties for check list (11 CHECKLIST)
; add choices, inline/columns |
|
MINMAX(QSTN) | ; set max/min properties
|
|
MASK(DISP) | ; set properties from |-delimited MASK field
|
|
CHLOOP(CTYP,CALL) | ; loop through choices for a choice type
; CTYP: Id for ChoiceTypes (601.751) and ChoiceIdentifier (601.89) ; CALL: Code to call for building appropriate type of node |
|
SECTIONS(TEST,SECTIONS) | ; build list of sections for TEST
; SECTIONS(questionIEN)=ID^TEST^Question^TabName^Header^Format |
|
ADDSECT(X0) | ; add section node
; expects TREE, CTNTIDX from CONTENT ; X0: ID^TEST^Question^TabName^Header^Format |
|
ADDINTRO(IEN,FORMAT,PREPEND) | ; add intro node
; expects TREE, CTNTIDX from CONTENT |
|
ADDQSTN(IEN,DESIG,FORMAT) | ; add question node
|
|
ADDCH(INDEX,IDENTIEN,CHIEN) | ; add choice node
; child of current question, use current CTNTIDX |
|
ADDLGND(INDEX,CHIEN) | ; add legend based on choices
|
|
RULES(TEST,TREE) | ; add RULES for TEST to spec TREE for JSON conversion
|
|
TRUTHVAL(QSTN,VALUE) | ; return the target value for the rule
; if MCHOICE, convert from Delphi itemIndex value to choice id |
|
SETSKIPS(RID,RIDX) | ; set skipped questions for rule RID at index RIDX
|
Name | Line Occurrences |
---|---|
Function Call: WRITE |
|
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^YTT(601.71 - [#601.71] | GETSPEC+1, CONTENT+1, CONTENT+2, CONTENT+4, CONTENT+5 |
^YTT(601.72 - [#601.72] | CONTENT+17, MINMAX+1, ADDQSTN+3, ADDQSTN+6, TRUTHVAL+2, TRUTHVAL+4 |
^YTT(601.73 - [#601.73] | ADDINTRO+5, ADDINTRO+7, ADDQSTN+11 |
^YTT(601.75 - [#601.75] | ADDCH+3, ADDCH+7, ADDLGND+1 |
^YTT(601.751 - [#601.751] | CHLOOP+5, CHLOOP+6, TRUTHVAL+5, TRUTHVAL+6 |
^YTT(601.76 - [#601.76] | CONTENT+14, CONTENT+15, CONTENT+16 |
^YTT(601.79 - [#601.79] | SETSKIPS+3, SETSKIPS+4 |
^YTT(601.81 - [#601.81] | SECTIONS+3, SECTIONS+4 |
^YTT(601.82 - [#601.82] | RULES+6 |
^YTT(601.83 - [#601.83] | RULES+3, RULES+4, RULES+5 |
^YTT(601.88 - [#601.88] | RADIO+5, CHECK+4, MASK+2, MASK+3 |
^YTT(601.89 - [#601.89] | CHLOOP+4, ADDCH+5 |
Name | Line Occurrences |
---|---|
$$TRUTHVAL | RULES+9, RULES+15 |
ADDCH | CHLOOP+8, CHLOOP+10 |
ADDINTRO | CONTENT+23 |
ADDLGND | CHLOOP+9 |
ADDQSTN | CONTENT+26 |
ADDSECT | CONTENT+25 |
CHECK | CONTENT+37 |
CHLOOP | RADIO+3, RANGE+4, CHECK+3 |
CONTENT | GETSPEC+5 |
DATE | CONTENT+34 |
MASK | SPIN+4, TEXT+4, DATE+3, MEMO+3 |
MEMO | CONTENT+35 |
MINMAX | SPIN+3, TEXT+3, RANGE+3 |
RADIO | CONTENT+31 |
RANGE | CONTENT+36 |
RULES | GETSPEC+6 |
SECTIONS | CONTENT+8 |
SETSKIPS | RULES+16 |
SPIN | CONTENT+32 |
TEXT | CONTENT+33 |
Name | Field # of Occurrence |
---|---|
^(1 | RULES+6 |
^(2 | ADDQSTN+3 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
CALL | CHLOOP~, CHLOOP+8, CHLOOP+9, CHLOOP+10 |
CHID | CHLOOP+3~, CHLOOP+6*, CHLOOP+8, CHLOOP+9, CHLOOP+10, TRUTHVAL+3~, TRUTHVAL+4*, TRUTHVAL+6*, TRUTHVAL+8 |
CHIEN | ADDCH~, ADDCH+3, ADDCH+7, ADDLGND~, ADDLGND+1 |
CIDF | CHLOOP+3~, CHLOOP+4*, CHLOOP+8, CHLOOP+10 |
CIDX | CHLOOP+3~, CHLOOP+4*, CHLOOP+7*, CHLOOP+8, CHLOOP+9, CHLOOP+10 |
CIEN | CHLOOP+3~ |
CSEQ | CHLOOP+3~, CHLOOP+5*, CHLOOP+6, TRUTHVAL+3~, TRUTHVAL+4*, TRUTHVAL+5*, TRUTHVAL+6 |
CTNT | CONTENT+13~, CONTENT+15*, CONTENT+16 |
CTNTIDX | CONTENT+9~*, RADIO+2, RADIO+7, RADIO+8, SPIN+2, TEXT+2, DATE+2, MEMO+2, RANGE+2, CHECK+2 , CHECK+6, CHECK+7, MINMAX+2, MINMAX+3, MASK+4, MASK+5, MASK+6, ADDSECT+3*, ADDSECT+6, ADDSECT+7 , ADDSECT+8, ADDINTRO+4*, ADDINTRO+5, ADDINTRO+6, ADDINTRO+9, ADDQSTN+2*, ADDQSTN+5, ADDQSTN+7, ADDQSTN+8, ADDQSTN+9 , ADDQSTN+12, ADDCH+3, ADDCH+7, ADDCH+9, ADDLGND+1 |
CTYP | CONTENT+13~, CONTENT+17*, CONTENT+31, CONTENT+36, CONTENT+37, RADIO~, RADIO+3, RANGE~, RANGE+4, CHECK~ , CHECK+3, CHLOOP~, CHLOOP+4, CHLOOP+5, CHLOOP+6, TRUTHVAL+3~, TRUTHVAL+4*, TRUTHVAL+5, TRUTHVAL+6 |
DESIG | ADDQSTN~, ADDQSTN+4*, ADDQSTN+8 |
DISP | CONTENT+13~, CONTENT+16*, CONTENT+31, CONTENT+32, CONTENT+33, CONTENT+34, CONTENT+35, CONTENT+36, CONTENT+37, RADIO~ , RADIO+4, RADIO+5, SPIN~, SPIN+4, TEXT~, TEXT+4, DATE~, DATE+3, MEMO~, MEMO+3 , RANGE~, CHECK~, CHECK+4, MASK~, MASK+1, MASK+2, MASK+3 |
DONE | TRUTHVAL+3~, TRUTHVAL+4*, TRUTHVAL+5, TRUTHVAL+6* |
ERR | GETSPEC+4~ |
ERROR | ERRHND+1~*, ERRHND+2 |
FORMAT | ADDINTRO~, ADDQSTN~ |
IDBASE | ADDCH+2~, ADDCH+5*, ADDCH+6 |
IDENTIEN | ADDCH~, ADDCH+5 |
IDX | TRUTHVAL+3~, TRUTHVAL+4*, TRUTHVAL+6, TRUTHVAL+7* |
IEN | SECTIONS+2~, SECTIONS+3*, SECTIONS+4, ADDINTRO~, ADDINTRO+2, ADDINTRO+5, ADDINTRO+7, ADDQSTN~, ADDQSTN+3, ADDQSTN+6 |
INDEX | ADDCH~, ADDCH+3, ADDCH+6, ADDCH+7, ADDCH+9, ADDLGND~, ADDLGND+1 |
IRID | RULES+1~, RULES+4*, RULES+5 |
ITEXT | ADDQSTN+1~, ADDQSTN+11, ADDQSTN+12 |
JSON | GETSPEC~, GETSPEC+7, ERRHND+5! |
LSTINTRO | CONTENT+10~*, CONTENT+19* |
MASK | MASK+3~*, MASK+4, MASK+5, MASK+6 |
NUM | ADDCH+2~, ADDCH+6*, ADDCH+7, ADDCH+8 |
PREPEND | ADDINTRO~, ADDINTRO+8 |
QID | SETSKIPS+1~, SETSKIPS+4*, SETSKIPS+6 |
QSTN | CONTENT+13~, CONTENT+16*, CONTENT+17, CONTENT+21, CONTENT+25, CONTENT+26, CONTENT+31, CONTENT+32, CONTENT+33, CONTENT+34 , CONTENT+35, CONTENT+36, CONTENT+37, RADIO~, SPIN~, SPIN+3, TEXT~, TEXT+3, DATE~, MEMO~ , RANGE~, RANGE+3, CHECK~, MINMAX~, MINMAX+1, TRUTHVAL~, TRUTHVAL+2, TRUTHVAL+4 |
QSTN1 | RULES+1~, RULES+3*, RULES+4, RULES+7, RULES+9 |
QSTN2 | RULES+1~, RULES+11*, RULES+13, RULES+15 |
QUICK | ADDCH+2~, ADDCH+8*, ADDCH+9 |
RID | RULES+1~, RULES+5*, RULES+6, RULES+16, SETSKIPS~, SETSKIPS+3 |
RIDX | RULES+1~, RULES+2*, RULES+5*, RULES+7, RULES+8, RULES+9, RULES+12, RULES+13, RULES+14, RULES+15 , RULES+16, SETSKIPS~, SETSKIPS+6 |
RTYP | CONTENT+13~, CONTENT+17*, CONTENT+31, CONTENT+32, CONTENT+33, CONTENT+34, CONTENT+35, CONTENT+36, CONTENT+37 |
SECTHDR | CONTENT+20~*, CONTENT+21*, CONTENT+22*, CONTENT+23 |
SECTIONS | CONTENT+8~, SECTIONS~ |
SECTIONS( | CONTENT+21, CONTENT+25, SECTIONS+5* |
SEQ | CONTENT+13~, CONTENT+14*, CONTENT+15 |
SID | SETSKIPS+1~, SETSKIPS+3*, SETSKIPS+4 |
SIDX | SETSKIPS+1~, SETSKIPS+2*, SETSKIPS+5*, SETSKIPS+6 |
TEST | GETSPEC~, GETSPEC+1*, GETSPEC+5, GETSPEC+6, CONTENT~, CONTENT+1, CONTENT+2, CONTENT+4, CONTENT+5, CONTENT+8 , CONTENT+14, CONTENT+15, SECTIONS~, SECTIONS+3, RULES~, RULES+3, RULES+4 |
TEXT | ADDINTRO+3~, ADDINTRO+7, ADDINTRO+8*, ADDINTRO+9, ADDQSTN+1~, ADDQSTN+6, ADDQSTN+7 |
TREE | GETSPEC+4~, GETSPEC+5, GETSPEC+6, GETSPEC+7, CONTENT~, RULES~ |
TREE("content" | RADIO+2*, RADIO+7*, RADIO+8*, SPIN+2*, TEXT+2*, DATE+2*, MEMO+2*, RANGE+2*, CHECK+2*, CHECK+6* , CHECK+7*, MINMAX+2*, MINMAX+3*, MASK+4*, MASK+5*, MASK+6*, ADDSECT+6*, ADDSECT+7*, ADDSECT+8*, ADDINTRO+5* , ADDINTRO+6*, ADDINTRO+9*, ADDQSTN+5*, ADDQSTN+7*, ADDQSTN+8*, ADDQSTN+9*, ADDQSTN+12*, ADDCH+3*, ADDCH+7*, ADDCH+9* , ADDLGND+1* |
TREE("copyright" | CONTENT+4* |
TREE("name" | CONTENT+1* |
TREE("printTitle" | CONTENT+2* |
TREE("restartDays" | CONTENT+5*, CONTENT+6* |
TREE("rules" | RULES+7*, RULES+8*, RULES+9*, RULES+12*, RULES+13*, RULES+14*, RULES+15*, SETSKIPS+6* |
U | CONTENT+1, CONTENT+2, CONTENT+5, CONTENT+16, CONTENT+17, CONTENT+19, CONTENT+21, CONTENT+23, CONTENT+26, RADIO+7 , RADIO+8, CHECK+6, CHECK+7, MINMAX+2, MINMAX+3, MASK+3, SECTIONS+5, ADDSECT+5, ADDSECT+8, ADDQSTN+9 , ADDCH+5, RULES+5, RULES+6, RULES+9, RULES+10, RULES+11, RULES+15, TRUTHVAL+2, TRUTHVAL+4, SETSKIPS+4 |
VALUE | TRUTHVAL~, TRUTHVAL+2, TRUTHVAL+6 |
X | RULES+1~, RULES+6*, RULES+8, RULES+11*, RULES+14 |
X0 | CONTENT+13~, CONTENT+16*, CONTENT+23, CONTENT+26, RADIO+5~*, RADIO+7, RADIO+8, CHECK+4~*, CHECK+6, CHECK+7 , SECTIONS+2~, SECTIONS+4*, SECTIONS+5, ADDSECT~, ADDSECT+5, ADDSECT+6, ADDSECT+8, ADDQSTN+1~, ADDQSTN+3*, ADDQSTN+5 , RULES+1~, RULES+6*, RULES+9, RULES+10, RULES+11 |
X1 | RULES+1~, RULES+6*, RULES+10, RULES+11, RULES+15 |
X2 | CONTENT+13~, CONTENT+17*, CONTENT+19, CONTENT+23, MINMAX+1~*, MINMAX+2, MINMAX+3, ADDQSTN+1~, ADDQSTN+3*, ADDQSTN+9 , ADDQSTN+10, ADDQSTN+11 |