Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ONCOTNMC

ONCOTNMC.m

Go to the documentation of this file.
  1. ONCOTNMC ;WISC/MLH - HELP/VALIDATION for TNM CODES ;6/16/93 09:10
  1. ;;2.2;ONCOLOGY;**1**;Jul 31, 2013;Build 8
  1. ;
  1. VALID(TYP,COD) ; VALIDATE a T, N, or M code - COD should be a call by reference (.COD)
  1. N VALID S VALID=0 ; flag - assume invalid
  1. IF (TYP="T")!(TYP="N")!(TYP="M") X "S VALID=$$VALID"_TYP_"(.COD)"
  1. QUIT VALID
  1. ;
  1. VALIDT(TCOD) ; VALIDATE a T code - TCOD should be a call by reference (.TCOD)
  1. N VALIDT S VALIDT=0 ; flag - assume invalid
  1. S TCOD=$TR(TCOD,"abcdisvx","ABCDISVX") ; go to caps
  1. I TCOD="IS" S VALIDT=1 ; in-situ
  1. E I TCOD="X" S VALIDT=1 ; unknown
  1. E S VALIDT=$$VALIDTN(.TCOD) ; numeric
  1. Q VALIDT
  1. ;
  1. VALIDTN(NTCOD) ; VALIDATE a NUMERIC T code - NTCOD should be a call by reference (.NTCOD)
  1. N VALIDTN S VALIDTN=0 ; flag - assume invalid
  1. N NUMVAL S NUMVAL=$E(NTCOD,1) ; numeric value of T code
  1. IF NUMVAL?1N,"012345"[NUMVAL D ; good so far, continue
  1. . I $E(NTCOD,2,$L(NTCOD))="" S VALIDTN=1 ; OK
  1. . E S VALIDTN=$$VALIDTNA(.NTCOD)
  1. . Q
  1. ;END IF
  1. ;
  1. Q VALIDTN
  1. ;
  1. VALIDTNA(ANTCOD) ; VALIDATE a NUMERIC T code with ALPHA suffix - ANTCOD should be a call by reference (.ANTCOD)
  1. N VALIDTNA S VALIDTNA=0 ; flag - assume invalid
  1. N ALPVAL S ALPVAL=$E(ANTCOD,2) ; alpha suffix
  1. IF "ABCD"[ALPVAL D ; good so far, continue
  1. . N ROMVAL S ROMVAL=$E(NTCOD,3,$L(ANTCOD)) ; roman numeral suffix
  1. . I "^^I^II^III^IV^"[(U_ROMVAL_U) S VALIDTNA=1 ; OK
  1. . Q
  1. ;END IF
  1. ;
  1. Q VALIDTNA
  1. ;
  1. VALIDN(NCOD) ; VALIDATE an N code - NCOD should be a call by reference (.NCOD)
  1. N VALIDN S VALIDN=0 ; flag - assume invalid
  1. S NCOD=$TR(NCOD,"abcdx","ABCDX") ; go to caps
  1. I NCOD="X" S VALIDN=1 ; unknown
  1. E S VALIDN=$$VALIDNN(.NCOD) ; numeric
  1. Q VALIDN
  1. ;
  1. VALIDNN(NNCOD) ; VALIDATE a NUMERIC N code - NNCOD should be a call by reference (.NNCOD)
  1. N VALIDNN S VALIDNN=0 ; flag - assume invalid
  1. N NUMVAL S NUMVAL=$E(NNCOD,1) ; numeric value of T code
  1. IF NUMVAL?1N,"01234"[NUMVAL D ; good so far, continue
  1. . IF $E(NNCOD,2,$L(NNCOD))="" S VALIDNN=1 ; OK
  1. . ELSE D
  1. .. N ALPVAL S ALPVAL=$E(NNCOD,2)
  1. .. I "ABCD"[ALPVAL S VALIDNN=1
  1. .. Q
  1. . ;END IF
  1. . ;
  1. . Q
  1. ;END IF
  1. ;
  1. Q VALIDNN
  1. ;
  1. VALIDM(MCOD) ; VALIDATE an N code - MCOD should be a call by reference (.MCOD)
  1. N VALIDM S VALIDM=0 ; flag - assume invalid
  1. S MCOD=$TR(MCOD,"abcdx","ABCDX") ; go to caps
  1. I MCOD="X" S VALIDM=1 ; unknown
  1. E S VALIDM=$$VALIDMN(.MCOD) ; numeric
  1. Q VALIDM
  1. ;
  1. VALIDMN(NMCOD) ; VALIDATE a NUMERIC N code - NMCOD should be a call by reference (.NMCOD)
  1. N VALIDMN S VALIDMN=0 ; flag - assume invalid
  1. N NUMVAL S NUMVAL=$E(NMCOD,1) ; numeric value of T code
  1. IF NUMVAL?1N,"012"[NUMVAL D ; good so far, continue
  1. . IF $E(NMCOD,2,$L(NMCOD))="" S VALIDMN=1 ; OK
  1. . ELSE D
  1. .. N ALPVAL S ALPVAL=$E(NMCOD,2)
  1. .. I "ABCD"[ALPVAL S VALIDMN=1
  1. .. Q
  1. . ;END IF
  1. . ;
  1. . Q
  1. ;END IF
  1. ;
  1. Q VALIDMN