| 1 | ONCOTNMC ;WISC/MLH - HELP/VALIDATION for TNM CODES ;6/16/93  09:10
 | 
|---|
| 2 |  ;;2.11;ONCOLOGY;;Mar 07, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | VALID(TYP,COD) ;    VALIDATE a T, N, or M code - COD should be a call by reference (.COD)
 | 
|---|
| 5 |  N VALID S VALID=0 ;    flag - assume invalid
 | 
|---|
| 6 |  IF (TYP="T")!(TYP="N")!(TYP="M") X "S VALID=$$VALID"_TYP_"(.COD)"
 | 
|---|
| 7 |  QUIT VALID
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | VALIDT(TCOD) ;    VALIDATE a T code - TCOD should be a call by reference (.TCOD)
 | 
|---|
| 10 |  N VALIDT S VALIDT=0 ;    flag - assume invalid
 | 
|---|
| 11 |  S TCOD=$TR(TCOD,"abcdisvx","ABCDISVX") ;    go to caps
 | 
|---|
| 12 |  I TCOD="IS" S VALIDT=1 ;    in-situ
 | 
|---|
| 13 |  E  I TCOD="X" S VALIDT=1 ;    unknown
 | 
|---|
| 14 |  E  S VALIDT=$$VALIDTN(.TCOD) ;    numeric
 | 
|---|
| 15 |  Q VALIDT
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | VALIDTN(NTCOD) ;    VALIDATE a NUMERIC T code - NTCOD should be a call by reference (.NTCOD)
 | 
|---|
| 18 |  N VALIDTN S VALIDTN=0 ;    flag - assume invalid
 | 
|---|
| 19 |  N NUMVAL S NUMVAL=$E(NTCOD,1) ;    numeric value of T code
 | 
|---|
| 20 |  IF NUMVAL?1N,"012345"[NUMVAL D  ;    good so far, continue
 | 
|---|
| 21 |  .  I $E(NTCOD,2,$L(NTCOD))="" S VALIDTN=1 ;   OK
 | 
|---|
| 22 |  .  E  S VALIDTN=$$VALIDTNA(.NTCOD)
 | 
|---|
| 23 |  .  Q
 | 
|---|
| 24 |  ;END IF
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  Q VALIDTN
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | VALIDTNA(ANTCOD) ;    VALIDATE a NUMERIC T code with ALPHA suffix - ANTCOD should be a call by reference (.ANTCOD)
 | 
|---|
| 29 |  N VALIDTNA S VALIDTNA=0 ;    flag - assume invalid
 | 
|---|
| 30 |  N ALPVAL S ALPVAL=$E(ANTCOD,2) ;    alpha suffix
 | 
|---|
| 31 |  IF "ABCD"[ALPVAL D  ;    good so far, continue
 | 
|---|
| 32 |  .  N ROMVAL S ROMVAL=$E(NTCOD,3,$L(ANTCOD)) ;    roman numeral suffix
 | 
|---|
| 33 |  .  I "^^I^II^III^IV^"[(U_ROMVAL_U) S VALIDTNA=1 ;    OK
 | 
|---|
| 34 |  .  Q
 | 
|---|
| 35 |  ;END IF
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  Q VALIDTNA
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | VALIDN(NCOD) ;    VALIDATE an N code - NCOD should be a call by reference (.NCOD)
 | 
|---|
| 40 |  N VALIDN S VALIDN=0 ;    flag - assume invalid
 | 
|---|
| 41 |  S NCOD=$TR(NCOD,"abcdx","ABCDX") ;    go to caps
 | 
|---|
| 42 |  I NCOD="X" S VALIDN=1 ;    unknown
 | 
|---|
| 43 |  E  S VALIDN=$$VALIDNN(.NCOD) ;    numeric
 | 
|---|
| 44 |  Q VALIDN
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | VALIDNN(NNCOD) ;    VALIDATE a NUMERIC N code - NNCOD should be a call by reference (.NNCOD)
 | 
|---|
| 47 |  N VALIDNN S VALIDNN=0 ;    flag - assume invalid
 | 
|---|
| 48 |  N NUMVAL S NUMVAL=$E(NNCOD,1) ;    numeric value of T code
 | 
|---|
| 49 |  IF NUMVAL?1N,"01234"[NUMVAL D  ;    good so far, continue
 | 
|---|
| 50 |  .  IF $E(NNCOD,2,$L(NNCOD))="" S VALIDNN=1 ;   OK
 | 
|---|
| 51 |  .  ELSE  D
 | 
|---|
| 52 |  ..    N ALPVAL S ALPVAL=$E(NNCOD,2)
 | 
|---|
| 53 |  ..    I "ABCD"[ALPVAL S VALIDNN=1
 | 
|---|
| 54 |  ..    Q
 | 
|---|
| 55 |  .  ;END IF
 | 
|---|
| 56 |  .  ;
 | 
|---|
| 57 |  .  Q
 | 
|---|
| 58 |  ;END IF
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  Q VALIDNN
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | VALIDM(MCOD) ;    VALIDATE an N code - MCOD should be a call by reference (.MCOD)
 | 
|---|
| 63 |  N VALIDM S VALIDM=0 ;    flag - assume invalid
 | 
|---|
| 64 |  S MCOD=$TR(MCOD,"abcdx","ABCDX") ;    go to caps
 | 
|---|
| 65 |  I MCOD="X" S VALIDM=1 ;    unknown
 | 
|---|
| 66 |  E  S VALIDM=$$VALIDMN(.MCOD) ;    numeric
 | 
|---|
| 67 |  Q VALIDM
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | VALIDMN(NMCOD) ;    VALIDATE a NUMERIC N code - NMCOD should be a call by reference (.NMCOD)
 | 
|---|
| 70 |  N VALIDMN S VALIDMN=0 ;    flag - assume invalid
 | 
|---|
| 71 |  N NUMVAL S NUMVAL=$E(NMCOD,1) ;    numeric value of T code
 | 
|---|
| 72 |  IF NUMVAL?1N,"012"[NUMVAL D  ;    good so far, continue
 | 
|---|
| 73 |  .  IF $E(NMCOD,2,$L(NMCOD))="" S VALIDMN=1 ;   OK
 | 
|---|
| 74 |  .  ELSE  D
 | 
|---|
| 75 |  ..    N ALPVAL S ALPVAL=$E(NMCOD,2)
 | 
|---|
| 76 |  ..    I "ABCD"[ALPVAL S VALIDMN=1
 | 
|---|
| 77 |  ..    Q
 | 
|---|
| 78 |  .  ;END IF
 | 
|---|
| 79 |  .  ;
 | 
|---|
| 80 |  .  Q
 | 
|---|
| 81 |  ;END IF
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  Q VALIDMN
 | 
|---|