ONCSCHMM ;HINES OIFO/RTK - Miscellaneous schema code ;07/25/19
 ;;2.2;ONCOLOGY;**10,12,13,15,17,18,20,21**;Jul 31, 2013;Build 6
 ;
 Q
 ;
SCRNLV ;Screen for Lymph-Vascular Invasion field
 I $P($G(^ONCO(165.5,D0,0)),"^",16)<3180000,((Y<2)!(Y>7)) Q
 D ^ONCSCHMA I ('$D(ONCSCMA))!(ONCSCMA=0) Q
 I $P($G(^ONCO(165.5,D0,0)),"^",16)>3171231 D SCHMCHK
 I $P($G(^ONCO(165.5,D0,0)),"^",16)>3171231 I ONCNO8S=1,(Y'=8) Q
 I $P($G(^ONCO(165.5,D0,0)),"^",16)>3171231 I ONCONL8=1,(Y=8) Q
 I $P($G(^ONCO(165.5,D0,0)),"^",16)>3171231 I ONCNO8S=0,ONCONL8=0,Y<100 Q
 Q
SCHMCHK ;
 S ONCNO8S=0,ONCONL8=0
 I "00210^09210^00220^00241^00242^00381^00382^00383^00400^00410^00421^00422^00440^00450^00459^00480^00580^00600^00610^00631^00633^00640^00660^00671^00672^00700^00750^00090^00310^00360^00430^0073^00740^00760"[ONCSCMA Q  ;all codes apply
 I "00071^00072^00073^00074^00075^00076^00077^00080^00100^00111^00112^00121^00122^00130^00131^00132^00133^00161^00169^00170^00180^00190^09190^00200^00230^00250"[ONCSCMA S ONCNO8S=1 Q  ;code 8 does not apply
 I "00260^00270^00280^00290^00301^00302^00320^00330^00340^00350^00460^00470^00500^09500^00510^00520^09520^00528^00530^00541^00542^00560^00570^00590^00620"[ONCSCMA S ONCNO8S=1 Q  ;code 8 does not apply
 I "00060^00118^00119^00128^00140^00150^00278^00288^00358^00370^00378^00458^00478^00551^00552^00553^00558^00559^00598^00638"[ONCSCMA S ONCONL8=1 Q
 I "00650^00680^00690^00698^00710^00718^00721^00722^00723^00770^00778^00790^00795^00811^00812^00821^00822^00830^99999"[ONCSCMA S ONCONL8=1 Q  ;only 8s
 Q
SCRNSS ;Screen for SUMMARY STAGE 2018 (#1764) field
 N Z S Z=0 N ONCHIT S ONCHIT=0 D ^ONCSCHMA I ('$D(ONCSCMA))!(ONCSCMA=0) Q
 I "00381^00382^00383^00400^00410^00421^00422^00440^00450^00458^00459^00528^00541^00680^00811"[ONCSCMA S ONCHIT=1,Z=$S((Y'=0)&(Y'=8):1,1:0) I Z Q
 I "00071^00072^00073^00074^00075^00076^00077^00360^00370"[ONCSCMA S ONCHIT=1,Z=$S((Y'=8):1,1:0) I Z Q
 I "00060^"[ONCSCMA S ONCHIT=1,Z=$S((Y'=0)&(Y'=1)&(Y'=2)&(Y'=8):1,1:0) I Z Q
 I "00721^09721^00722^09722^09724"[ONCSCMA S ONCHIT=1,Z=$S((Y'=0)&(Y'=3)&(Y'=4):1,1:0) I Z Q
 I "00723^09723"[ONCSCMA S ONCHIT=1,Z=$S((Y'=3)&(Y'=4):1,1:0) I Z Q
 I "00710^00790^00795^00812"[ONCSCMA S ONCHIT=1,Z=$S((Y'=0)&(Y'=3)&(Y'=4)&(Y'=8):1,1:0) I Z Q
 I "00821^00822"[ONCSCMA S ONCHIT=1,Z=$S((Y'=0)&(Y'=2)&(Y'=4)&(Y'=8):1,1:0) I Z Q
 I "00830^"[ONCSCMA S ONCHIT=1,Z=$S((Y'=0)&(Y'=2)&(Y'=3)&(Y'=4)&(Y'=8):1,1:0) I Z Q
 I "99999^"[ONCSCMA S ONCHIT=1,Z=$S((Y=9):1,1:0) I Z Q
 I ONCHIT=0 I ONCSCMA<999999 S Z=1 I Z Q
 Q
SCRNFIV ;Screen for fields #3804,3811,3885,3907,3933
 I $P($G(^ONCO(165.5,D0,2)),"^",1)=67421,(Y'=5) Q
 I $P($G(^ONCO(165.5,D0,2)),"^",1)'=67421,(Y<10) Q
 Q
SCRN555 ;Screen for fields #3857,3869,3930,3931
 I $P($G(^ONCO(165.5,D0,"SSD4")),"^",21)=0,(Y'=5) Q
 I $P($G(^ONCO(165.5,D0,"SSD4")),"^",21)'=0,(Y<10) Q
 Q
SCRCASRC ;Screen for field #21 Casefinding Source
 I (Y=20)!(Y=21)!(Y=22)!(Y=23)!(Y=24)!(Y=25)!(Y=26)!(Y=27)!(Y=29)!(Y=80)!(Y=95) Q
 Q
RADPH3 ;
 I $L(X)=3 Q
 S X=$E("000000",1,(3-$L(X)))_X
 Q
RADPH5 ;
 I $L(X)=5 Q
 S X=$E("000000",1,(5-$L(X)))_X
 Q
RADPH6 ;
 I $L(X)=6 Q
 S X=$E("000000",1,(6-$L(X)))_X
 Q
SPS23 ;
 I '((X?1"A"3N)!(X?1"B"3N)) K X Q
 Q
DEC1 ;Input transforms & decimals for SSDi's to accept XX & decimals
 S X=$TR(X,"ax","AX")
 I X?1N S X=X_".0" Q
 I X?1"."1N S X="0"_X Q
 D XX1 Q
XX1 ;
 I X?1"X"1N S X="X."_$E(X,$L(X)) Q
 Q
DEC2 ;
 S X=$TR(X,"ax","AX")
 I X?1.2N S X=X_".0" Q
 I X?1"."1N S X="0"_X Q
 D XX2 Q
XX2 ;
 I X?1.2"X"1N S X="XX."_$E(X,$L(X)) Q
 Q
DEC3 ;
 S X=$TR(X,"ax","AX")
 I X?1.3N S X=X_".0" Q
 I X?1"."1N S X="0"_X Q
 D XX3 Q
XX3 ;
 I X?1.3"X"1N S X="XXX."_$E(X,$L(X)) Q
 Q
DEC4 ;
 S X=$TR(X,"ax","AX")
 I X?1.4N S X=X_".0" Q
 I X?1"."1N S X="0"_X Q
 D XX4 Q
XX4 ;
 I X?1.4"X"1N S X="XXXX."_$E(X,$L(X)) Q
 Q
DEC5 ;
 S X=$TR(X,"ax","AX")
 I X?1.5N S X=X_".0" Q
 I X?1"."1N S X="0"_X Q
 I X?6N K X Q
 D XX5 Q
XX5 ;
 I X?1.5"X"1N S X="XXXXX."_$E(X,$L(X)) Q
 Q
GEN2 ;
 S X=$TR(X,"x","X")
 I "ABCDEFGHIJKLMNOPQRSTUVWYZabcdefghijklmnopqrstuvwyz"[$E(X,1) K X Q
 I X?1N S X="0"_X
 Q
GEN3 ;
 S X=$TR(X,"x","X")
 I X?1N S X="00"_X
 I X?2N S X="0"_X
 Q
BTTIT ;Breslow Tumor Thickness Input Transform #3817
 D DEC2
 I '(X?0.2AN0.1"."1N) K X Q
 I "0123456789.AX"'[$E(X,1) K X Q
 I $E(X,1,2)="AX" S X="AX.0" Q
 Q
ERR ;ER & PR Percent Positive or Range #3826 & #3914
 S X=$TR(X,"rx","RX")
 I "0123456789RX"'[$E(X,1) K X Q
 I X?1N S X="00"_X W "  ...",X
 I X?2N S X="0"_X W "  ...",X
 I X?1"X"1N S X="X"_X W "  ...",X
 I $L(X)<3 K X Q
 I $E(X,1)="R","R10^R20^R30^R40^R50^R60^R70^R80^R90^R99"'[X K X Q
 I $E(X,1)="X","XX8^XX9"'[X K X Q
 Q
ERTA ;ER & PR Allred Score #3828 & #3916
 S X=$TR(X,"x","X")
 I X?1N S X="0"_X W "  ...",X
 I "00^01^02^03^04^05^06^07^08^X8^X9"'[X K X Q
 Q
SAR ;Sarcomatoid Features #3925
 S X=$TR(X,"rx","RX")
 I "0123456789RX"'[$E(X,1) K X Q
 I X?1N S X="00"_X W "  ...",X
 I X?2N S X="0"_X W "  ...",X
 I X?1"X"1N S X="X"_X W "  ...",X
 I X?1"R"1N S X=$E(X,1)_"0"_$E(X,2) W "  ...",X
 I $L(X)<3 K X Q
 I $E(X,1)="R","R01^R02^R03^R40^R05"'[X K X Q
 I $E(X,1)="X","XX5^XX6^XX7^XX8^XX9"'[X K X Q
 Q
FIGOHLP ; FIGO STAGE #3836
 D ^ONCSCHMA I '$D(ONCSCMA)!(ONCSCMA=0) W !!,"No Schema Calculated!",!! Q
 I (ONCSCMA="00500")!(ONCSCMA="09500") D O1,O1A,O1B,O2,O3,O3A,O3B,O3C,O4,O4A,O4B,O97,O98,O99 Q
 I ONCSCMA="00510" D O1,O2,O3,O4,O4A,O4B,O97,O98,O99 Q
 I (ONCSCMA="00520")!(ONCSCMA="09520") D O1,O1A,O1A1,O1A2,O1B,O1B1,O1B2,O1B3,O2,O2A,O2A1,O2A2,O2B,O3,O3A,O3B,O3C,O3C1,O3C2,O4,O4A,O4B,O97,O98,O99 Q
 I (ONCSCMA="00528")!(ONCSCMA="00541") D O1,O1A,O1B,O2,O2A,O2B,O3,O3A,O3B,O3C,O4,O4A,O4B,O98,O99 Q
 I ONCSCMA="00542" D O1,O1A,O1B,O1C,O2,O2A,O2B,O3,O3A,O3B,O3C,O4,O4A,O4B,O98,O99 Q
 I ONCSCMA="00530" D O1,O1A,O1B,O2,O3,O3A,O3B,O3C,O3C1,O3C2,O4,O4A,O4B,O97,O98,O99 Q
 I (ONCSCMA="00551")!(ONCSCMA="00552")!(ONCSCMA="00553") D O1,O1A,O1B,O1C,O1C1,O1C2,O1C3,O2,O2A,O2B,O3,O3A,O3A1,O3A11,O3A12,O3A2,O3B,O3C,O4,O4A,O4B,O97,O98,O99 Q
 I ONCSCMA="00560" D O1,O2,O3,O4,O97,O98,O99 Q
 W !?4,"No FIGO Stage Codes for this Schema",!! K ONCFGLST Q
 Q
 ;
FIGO ;FIGO #3836
 I "12349"'[$E(X,1) K X Q
 I X=9 K X Q
 D ^ONCSCHMA I '$D(ONCSCMA)!(ONCSCMA=0) K X Q
 I (ONCSCMA="00500")!(ONCSCMA="09500") D  Q  ;Vulva
 .I "1^1A^1B^2^3^3A^3B^3C^4^4A^4B^97^98^99"'[X K X Q
 I ONCSCMA="00510" D  Q  ;Vagina
 .I "1^2^3^4^4A^4B^97^98^99"'[X K X Q
 I (ONCSCMA="00520")!(ONCSCMA="09520") D  Q  ;Cervix
 .I "1^1A^1A1^1A2^1B^1B1^1B2^1B3^2^2A^2A1^2A2^2B^3^3A^3B^3C^3C1^3C2^4^4A^4B^97^98^99"'[X K X Q
 I (ONCSCMA="00528")!(ONCSCMA="00541") D  Q  ;Corpus Sarc
 .I "1^1A^1B^2^2A^2B^3^3A^3B^3C^4^4A^4B^98^99"'[X K X Q
 I ONCSCMA="00542" D  Q  ;Corpus Adeno
 .I "1^1A^1B^1C^2^2A^2B^3^3A^3B^3C^4^4A^4B^98^99"'[X K X Q
 I ONCSCMA="00530" D  Q  ;Corpus Carc
 .I "1^1A^1B^2^3^3A^3B^3C^3C1^3C2^4^4A^4B^97^98^99"'[X K X Q
 I (ONCSCMA="00551")!(ONCSCMA="00552")!(ONCSCMA="00553") D  Q  ;Ovary,Fallopian,PPC
 .I "1^1A^1B^1C^1C1^1C2^1C3^2^2A^2B^3^3A^3A1^3A11^3A12^3A2^3B^3C^4^4A^4B^97^98^99"'[X K X Q
 I ONCSCMA="00560" D  Q  ;Placenta
 .I "1^2^3^4^97^98^99"'[X K X Q
 Q
FIGOOT ;
O1 W !,"1         FIGO Stage I" Q
O1A W !,"1A        FIGO Stage IA" Q
O1A1 W !,"1A1       FIGO Stage IA1" Q
O1A2 W !,"1A2       FIGO Stage IA2" Q
O1B W !,"1B        FIGO Stage IB" Q
O1B1 W !,"1B1       FIGO Stage IB1" Q
O1B2 W !,"1B2       FIGO Stage IB2" Q
O1B3 W !,"1B3       FIGO Stage IB3" Q
O1C W !,"1C        FIGO Stage IC" Q
O1C1 W !,"1C1       FIGO Stage IC1" Q
O1C2 W !,"1C2       FIGO Stage IC2" Q
O1C3 W !,"1C3       FIGO Stage IC3" Q
O2 W !,"2         FIGO Stage II" Q
O2A W !,"2A        FIGO Stage IIA" Q
O2A1 W !,"2A1       FIGO Stage IIA1" Q
O2A2 W !,"2A2       FIGO Stage IIA2" Q
O2B W !,"2B        FIGO Stage IIB" Q
O3 W !,"3         FIGO Stage III" Q
O3A W !,"3A        FIGO Stage IIIA" Q
O3A1 W !,"3A1       FIGO Stage IIIA1" Q
O3A11 W !,"3A11      FIGO Stage IIIAi" Q
O3A12 W !,"3A12      FIGO Stage IIIAii" Q
O3A2 W !,"3A2       FIGO Stage IIIA2" Q
O3B W !,"3B        FIGO Stage IIIB" Q
O3C W !,"3C        FIGO Stage IIIC" Q
O3C1 W !,"3C1       FIGO Stage IIIC1" Q
O3C2 W !,"3C2       FIGO Stage IIIC2" Q
O4 W !,"4         FIGO Stage IV" Q
O4A W !,"4A        FIGO Stage IVA" Q
O4B W !,"4B        FIGO Stage IVB" Q
O97 W !,"97        Carcinoma in situ (intraepithelial, noninvasive, preinvasive)" Q
O98 W !,"98        Not applicable: Information not collected for this case" Q
O99 W !,"99        Not documented in medical record" Q
 Q
PROPE ;
 I X'?3N K X Q
 I "000^300^350^400^500^600^700^800^900^950^999"'[X K X Q
 Q
QTEST ;
 F GIEN=0:0 S GIEN=$O(^ONCO(164.44,GIEN)) Q:GIEN'>0  D
 .F JIEN=0:0 S JIEN=$O(^ONCO(164.44,GIEN,1,JIEN)) Q:JIEN'>0  D
 ..W !,GIEN,?3,JIEN
 ..S ONCRTKID=$P($G(^ONCO(164.44,GIEN,1,JIEN,0)),"^",3)
 ..S ONCRTKCH=$P($G(^ONCO(164.44,GIEN,1,JIEN,0)),"^",5)
 ..S ONCRTKNM=$P($G(^ONCO(164.44,GIEN,1,JIEN,0)),"^",4)
 ..W ?6,ONCRTKID,?11,ONCRTKCH,?16,ONCRTKNM
 ..I ONCRTKID'="" S ONCRTK("AJCCID",ONCRTKID)=""
 ..I ONCRTKCH'="" S ONCRTK("AJCCCH",ONCRTKCH)=""
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HONCSCHMM   9107     printed  Sep 23, 2025@20:04:09                                                                                                                                                                                                    Page 2
ONCSCHMM  ;HINES OIFO/RTK - Miscellaneous schema code ;07/25/19
 +1       ;;2.2;ONCOLOGY;**10,12,13,15,17,18,20,21**;Jul 31, 2013;Build 6
 +2       ;
 +3        QUIT 
 +4       ;
SCRNLV    ;Screen for Lymph-Vascular Invasion field
 +1        IF $PIECE($GET(^ONCO(165.5,D0,0)),"^",16)<3180000
               IF ((Y<2)!(Y>7))
                   QUIT 
 +2        DO ^ONCSCHMA
           IF ('$DATA(ONCSCMA))!(ONCSCMA=0)
               QUIT 
 +3        IF $PIECE($GET(^ONCO(165.5,D0,0)),"^",16)>3171231
               DO SCHMCHK
 +4        IF $PIECE($GET(^ONCO(165.5,D0,0)),"^",16)>3171231
               IF ONCNO8S=1
                   IF (Y'=8)
                       QUIT 
 +5        IF $PIECE($GET(^ONCO(165.5,D0,0)),"^",16)>3171231
               IF ONCONL8=1
                   IF (Y=8)
                       QUIT 
 +6        IF $PIECE($GET(^ONCO(165.5,D0,0)),"^",16)>3171231
               IF ONCNO8S=0
                   IF ONCONL8=0
                       IF Y<100
                           QUIT 
 +7        QUIT 
SCHMCHK   ;
 +1        SET ONCNO8S=0
           SET ONCONL8=0
 +2       ;all codes apply
           IF "00210^09210^00220^00241^00242^00381^00382^00383^00400^00410^00421^00422^00440^00450^00459^00480^00580^00600^00610^00631^00633^00640^00660^00671^00672^00700^00750^00090^00310^00360^00430^0073^00740^00760"[ONCSCMA
               QUIT 
 +3       ;code 8 does not apply
           IF "00071^00072^00073^00074^00075^00076^00077^00080^00100^00111^00112^00121^00122^00130^00131^00132^00133^00161^00169^00170^00180^00190^09190^00200^00230^00250"[ONCSCMA
               SET ONCNO8S=1
               QUIT 
 +4       ;code 8 does not apply
           IF "00260^00270^00280^00290^00301^00302^00320^00330^00340^00350^00460^00470^00500^09500^00510^00520^09520^00528^00530^00541^00542^00560^00570^00590^00620"[ONCSCMA
               SET ONCNO8S=1
               QUIT 
 +5        IF "00060^00118^00119^00128^00140^00150^00278^00288^00358^00370^00378^00458^00478^00551^00552^00553^00558^00559^00598^00638"[ONCSCMA
               SET ONCONL8=1
               QUIT 
 +6       ;only 8s
           IF "00650^00680^00690^00698^00710^00718^00721^00722^00723^00770^00778^00790^00795^00811^00812^00821^00822^00830^99999"[ONCSCMA
               SET ONCONL8=1
               QUIT 
 +7        QUIT 
SCRNSS    ;Screen for SUMMARY STAGE 2018 (#1764) field
 +1        NEW Z
           SET Z=0
           NEW ONCHIT
           SET ONCHIT=0
           DO ^ONCSCHMA
           IF ('$DATA(ONCSCMA))!(ONCSCMA=0)
               QUIT 
 +2        IF "00381^00382^00383^00400^00410^00421^00422^00440^00450^00458^00459^00528^00541^00680^00811"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y'=0)&(Y'=8):1,1:0)
               IF Z
                   QUIT 
 +3        IF "00071^00072^00073^00074^00075^00076^00077^00360^00370"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y'=8):1,1:0)
               IF Z
                   QUIT 
 +4        IF "00060^"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y'=0)&(Y'=1)&(Y'=2)&(Y'=8):1,1:0)
               IF Z
                   QUIT 
 +5        IF "00721^09721^00722^09722^09724"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y'=0)&(Y'=3)&(Y'=4):1,1:0)
               IF Z
                   QUIT 
 +6        IF "00723^09723"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y'=3)&(Y'=4):1,1:0)
               IF Z
                   QUIT 
 +7        IF "00710^00790^00795^00812"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y'=0)&(Y'=3)&(Y'=4)&(Y'=8):1,1:0)
               IF Z
                   QUIT 
 +8        IF "00821^00822"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y'=0)&(Y'=2)&(Y'=4)&(Y'=8):1,1:0)
               IF Z
                   QUIT 
 +9        IF "00830^"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y'=0)&(Y'=2)&(Y'=3)&(Y'=4)&(Y'=8):1,1:0)
               IF Z
                   QUIT 
 +10       IF "99999^"[ONCSCMA
               SET ONCHIT=1
               SET Z=$SELECT((Y=9):1,1:0)
               IF Z
                   QUIT 
 +11       IF ONCHIT=0
               IF ONCSCMA<999999
                   SET Z=1
                   IF Z
                       QUIT 
 +12       QUIT 
SCRNFIV   ;Screen for fields #3804,3811,3885,3907,3933
 +1        IF $PIECE($GET(^ONCO(165.5,D0,2)),"^",1)=67421
               IF (Y'=5)
                   QUIT 
 +2        IF $PIECE($GET(^ONCO(165.5,D0,2)),"^",1)'=67421
               IF (Y<10)
                   QUIT 
 +3        QUIT 
SCRN555   ;Screen for fields #3857,3869,3930,3931
 +1        IF $PIECE($GET(^ONCO(165.5,D0,"SSD4")),"^",21)=0
               IF (Y'=5)
                   QUIT 
 +2        IF $PIECE($GET(^ONCO(165.5,D0,"SSD4")),"^",21)'=0
               IF (Y<10)
                   QUIT 
 +3        QUIT 
SCRCASRC  ;Screen for field #21 Casefinding Source
 +1        IF (Y=20)!(Y=21)!(Y=22)!(Y=23)!(Y=24)!(Y=25)!(Y=26)!(Y=27)!(Y=29)!(Y=80)!(Y=95)
               QUIT 
 +2        QUIT 
RADPH3    ;
 +1        IF $LENGTH(X)=3
               QUIT 
 +2        SET X=$EXTRACT("000000",1,(3-$LENGTH(X)))_X
 +3        QUIT 
RADPH5    ;
 +1        IF $LENGTH(X)=5
               QUIT 
 +2        SET X=$EXTRACT("000000",1,(5-$LENGTH(X)))_X
 +3        QUIT 
RADPH6    ;
 +1        IF $LENGTH(X)=6
               QUIT 
 +2        SET X=$EXTRACT("000000",1,(6-$LENGTH(X)))_X
 +3        QUIT 
SPS23     ;
 +1        IF '((X?1"A"3N)!(X?1"B"3N))
               KILL X
               QUIT 
 +2        QUIT 
DEC1      ;Input transforms & decimals for SSDi's to accept XX & decimals
 +1        SET X=$TRANSLATE(X,"ax","AX")
 +2        IF X?1N
               SET X=X_".0"
               QUIT 
 +3        IF X?1"."1N
               SET X="0"_X
               QUIT 
 +4        DO XX1
           QUIT 
XX1       ;
 +1        IF X?1"X"1N
               SET X="X."_$EXTRACT(X,$LENGTH(X))
               QUIT 
 +2        QUIT 
DEC2      ;
 +1        SET X=$TRANSLATE(X,"ax","AX")
 +2        IF X?1.2N
               SET X=X_".0"
               QUIT 
 +3        IF X?1"."1N
               SET X="0"_X
               QUIT 
 +4        DO XX2
           QUIT 
XX2       ;
 +1        IF X?1.2"X"1N
               SET X="XX."_$EXTRACT(X,$LENGTH(X))
               QUIT 
 +2        QUIT 
DEC3      ;
 +1        SET X=$TRANSLATE(X,"ax","AX")
 +2        IF X?1.3N
               SET X=X_".0"
               QUIT 
 +3        IF X?1"."1N
               SET X="0"_X
               QUIT 
 +4        DO XX3
           QUIT 
XX3       ;
 +1        IF X?1.3"X"1N
               SET X="XXX."_$EXTRACT(X,$LENGTH(X))
               QUIT 
 +2        QUIT 
DEC4      ;
 +1        SET X=$TRANSLATE(X,"ax","AX")
 +2        IF X?1.4N
               SET X=X_".0"
               QUIT 
 +3        IF X?1"."1N
               SET X="0"_X
               QUIT 
 +4        DO XX4
           QUIT 
XX4       ;
 +1        IF X?1.4"X"1N
               SET X="XXXX."_$EXTRACT(X,$LENGTH(X))
               QUIT 
 +2        QUIT 
DEC5      ;
 +1        SET X=$TRANSLATE(X,"ax","AX")
 +2        IF X?1.5N
               SET X=X_".0"
               QUIT 
 +3        IF X?1"."1N
               SET X="0"_X
               QUIT 
 +4        IF X?6N
               KILL X
               QUIT 
 +5        DO XX5
           QUIT 
XX5       ;
 +1        IF X?1.5"X"1N
               SET X="XXXXX."_$EXTRACT(X,$LENGTH(X))
               QUIT 
 +2        QUIT 
GEN2      ;
 +1        SET X=$TRANSLATE(X,"x","X")
 +2        IF "ABCDEFGHIJKLMNOPQRSTUVWYZabcdefghijklmnopqrstuvwyz"[$EXTRACT(X,1)
               KILL X
               QUIT 
 +3        IF X?1N
               SET X="0"_X
 +4        QUIT 
GEN3      ;
 +1        SET X=$TRANSLATE(X,"x","X")
 +2        IF X?1N
               SET X="00"_X
 +3        IF X?2N
               SET X="0"_X
 +4        QUIT 
BTTIT     ;Breslow Tumor Thickness Input Transform #3817
 +1        DO DEC2
 +2        IF '(X?0.2AN0.1"."1N)
               KILL X
               QUIT 
 +3        IF "0123456789.AX"'[$EXTRACT(X,1)
               KILL X
               QUIT 
 +4        IF $EXTRACT(X,1,2)="AX"
               SET X="AX.0"
               QUIT 
 +5        QUIT 
ERR       ;ER & PR Percent Positive or Range #3826 & #3914
 +1        SET X=$TRANSLATE(X,"rx","RX")
 +2        IF "0123456789RX"'[$EXTRACT(X,1)
               KILL X
               QUIT 
 +3        IF X?1N
               SET X="00"_X
               WRITE "  ...",X
 +4        IF X?2N
               SET X="0"_X
               WRITE "  ...",X
 +5        IF X?1"X"1N
               SET X="X"_X
               WRITE "  ...",X
 +6        IF $LENGTH(X)<3
               KILL X
               QUIT 
 +7        IF $EXTRACT(X,1)="R"
               IF "R10^R20^R30^R40^R50^R60^R70^R80^R90^R99"'[X
                   KILL X
                   QUIT 
 +8        IF $EXTRACT(X,1)="X"
               IF "XX8^XX9"'[X
                   KILL X
                   QUIT 
 +9        QUIT 
ERTA      ;ER & PR Allred Score #3828 & #3916
 +1        SET X=$TRANSLATE(X,"x","X")
 +2        IF X?1N
               SET X="0"_X
               WRITE "  ...",X
 +3        IF "00^01^02^03^04^05^06^07^08^X8^X9"'[X
               KILL X
               QUIT 
 +4        QUIT 
SAR       ;Sarcomatoid Features #3925
 +1        SET X=$TRANSLATE(X,"rx","RX")
 +2        IF "0123456789RX"'[$EXTRACT(X,1)
               KILL X
               QUIT 
 +3        IF X?1N
               SET X="00"_X
               WRITE "  ...",X
 +4        IF X?2N
               SET X="0"_X
               WRITE "  ...",X
 +5        IF X?1"X"1N
               SET X="X"_X
               WRITE "  ...",X
 +6        IF X?1"R"1N
               SET X=$EXTRACT(X,1)_"0"_$EXTRACT(X,2)
               WRITE "  ...",X
 +7        IF $LENGTH(X)<3
               KILL X
               QUIT 
 +8        IF $EXTRACT(X,1)="R"
               IF "R01^R02^R03^R40^R05"'[X
                   KILL X
                   QUIT 
 +9        IF $EXTRACT(X,1)="X"
               IF "XX5^XX6^XX7^XX8^XX9"'[X
                   KILL X
                   QUIT 
 +10       QUIT 
FIGOHLP   ; FIGO STAGE #3836
 +1        DO ^ONCSCHMA
           IF '$DATA(ONCSCMA)!(ONCSCMA=0)
               WRITE !!,"No Schema Calculated!",!!
               QUIT 
 +2        IF (ONCSCMA="00500")!(ONCSCMA="09500")
               DO O1
               DO O1A
               DO O1B
               DO O2
               DO O3
               DO O3A
               DO O3B
               DO O3C
               DO O4
               DO O4A
               DO O4B
               DO O97
               DO O98
               DO O99
               QUIT 
 +3        IF ONCSCMA="00510"
               DO O1
               DO O2
               DO O3
               DO O4
               DO O4A
               DO O4B
               DO O97
               DO O98
               DO O99
               QUIT 
 +4        IF (ONCSCMA="00520")!(ONCSCMA="09520")
               DO O1
               DO O1A
               DO O1A1
               DO O1A2
               DO O1B
               DO O1B1
               DO O1B2
               DO O1B3
               DO O2
               DO O2A
               DO O2A1
               DO O2A2
               DO O2B
               DO O3
               DO O3A
               DO O3B
               DO O3C
               DO O3C1
               DO O3C2
               DO O4
               DO O4A
               DO O4B
               DO O97
               DO O98
               DO O99
               QUIT 
 +5        IF (ONCSCMA="00528")!(ONCSCMA="00541")
               DO O1
               DO O1A
               DO O1B
               DO O2
               DO O2A
               DO O2B
               DO O3
               DO O3A
               DO O3B
               DO O3C
               DO O4
               DO O4A
               DO O4B
               DO O98
               DO O99
               QUIT 
 +6        IF ONCSCMA="00542"
               DO O1
               DO O1A
               DO O1B
               DO O1C
               DO O2
               DO O2A
               DO O2B
               DO O3
               DO O3A
               DO O3B
               DO O3C
               DO O4
               DO O4A
               DO O4B
               DO O98
               DO O99
               QUIT 
 +7        IF ONCSCMA="00530"
               DO O1
               DO O1A
               DO O1B
               DO O2
               DO O3
               DO O3A
               DO O3B
               DO O3C
               DO O3C1
               DO O3C2
               DO O4
               DO O4A
               DO O4B
               DO O97
               DO O98
               DO O99
               QUIT 
 +8        IF (ONCSCMA="00551")!(ONCSCMA="00552")!(ONCSCMA="00553")
               DO O1
               DO O1A
               DO O1B
               DO O1C
               DO O1C1
               DO O1C2
               DO O1C3
               DO O2
               DO O2A
               DO O2B
               DO O3
               DO O3A
               DO O3A1
               DO O3A11
               DO O3A12
               DO O3A2
               DO O3B
               DO O3C
               DO O4
               DO O4A
               DO O4B
               DO O97
               DO O98
               DO O99
               QUIT 
 +9        IF ONCSCMA="00560"
               DO O1
               DO O2
               DO O3
               DO O4
               DO O97
               DO O98
               DO O99
               QUIT 
 +10       WRITE !?4,"No FIGO Stage Codes for this Schema",!!
           KILL ONCFGLST
           QUIT 
 +11       QUIT 
 +12      ;
FIGO      ;FIGO #3836
 +1        IF "12349"'[$EXTRACT(X,1)
               KILL X
               QUIT 
 +2        IF X=9
               KILL X
               QUIT 
 +3        DO ^ONCSCHMA
           IF '$DATA(ONCSCMA)!(ONCSCMA=0)
               KILL X
               QUIT 
 +4       ;Vulva
           IF (ONCSCMA="00500")!(ONCSCMA="09500")
               Begin DoDot:1
 +5                IF "1^1A^1B^2^3^3A^3B^3C^4^4A^4B^97^98^99"'[X
                       KILL X
                       QUIT 
               End DoDot:1
               QUIT 
 +6       ;Vagina
           IF ONCSCMA="00510"
               Begin DoDot:1
 +7                IF "1^2^3^4^4A^4B^97^98^99"'[X
                       KILL X
                       QUIT 
               End DoDot:1
               QUIT 
 +8       ;Cervix
           IF (ONCSCMA="00520")!(ONCSCMA="09520")
               Begin DoDot:1
 +9                IF "1^1A^1A1^1A2^1B^1B1^1B2^1B3^2^2A^2A1^2A2^2B^3^3A^3B^3C^3C1^3C2^4^4A^4B^97^98^99"'[X
                       KILL X
                       QUIT 
               End DoDot:1
               QUIT 
 +10      ;Corpus Sarc
           IF (ONCSCMA="00528")!(ONCSCMA="00541")
               Begin DoDot:1
 +11               IF "1^1A^1B^2^2A^2B^3^3A^3B^3C^4^4A^4B^98^99"'[X
                       KILL X
                       QUIT 
               End DoDot:1
               QUIT 
 +12      ;Corpus Adeno
           IF ONCSCMA="00542"
               Begin DoDot:1
 +13               IF "1^1A^1B^1C^2^2A^2B^3^3A^3B^3C^4^4A^4B^98^99"'[X
                       KILL X
                       QUIT 
               End DoDot:1
               QUIT 
 +14      ;Corpus Carc
           IF ONCSCMA="00530"
               Begin DoDot:1
 +15               IF "1^1A^1B^2^3^3A^3B^3C^3C1^3C2^4^4A^4B^97^98^99"'[X
                       KILL X
                       QUIT 
               End DoDot:1
               QUIT 
 +16      ;Ovary,Fallopian,PPC
           IF (ONCSCMA="00551")!(ONCSCMA="00552")!(ONCSCMA="00553")
               Begin DoDot:1
 +17               IF "1^1A^1B^1C^1C1^1C2^1C3^2^2A^2B^3^3A^3A1^3A11^3A12^3A2^3B^3C^4^4A^4B^97^98^99"'[X
                       KILL X
                       QUIT 
               End DoDot:1
               QUIT 
 +18      ;Placenta
           IF ONCSCMA="00560"
               Begin DoDot:1
 +19               IF "1^2^3^4^97^98^99"'[X
                       KILL X
                       QUIT 
               End DoDot:1
               QUIT 
 +20       QUIT 
FIGOOT    ;
O1         WRITE !,"1         FIGO Stage I"
           QUIT 
O1A        WRITE !,"1A        FIGO Stage IA"
           QUIT 
O1A1       WRITE !,"1A1       FIGO Stage IA1"
           QUIT 
O1A2       WRITE !,"1A2       FIGO Stage IA2"
           QUIT 
O1B        WRITE !,"1B        FIGO Stage IB"
           QUIT 
O1B1       WRITE !,"1B1       FIGO Stage IB1"
           QUIT 
O1B2       WRITE !,"1B2       FIGO Stage IB2"
           QUIT 
O1B3       WRITE !,"1B3       FIGO Stage IB3"
           QUIT 
O1C        WRITE !,"1C        FIGO Stage IC"
           QUIT 
O1C1       WRITE !,"1C1       FIGO Stage IC1"
           QUIT 
O1C2       WRITE !,"1C2       FIGO Stage IC2"
           QUIT 
O1C3       WRITE !,"1C3       FIGO Stage IC3"
           QUIT 
O2         WRITE !,"2         FIGO Stage II"
           QUIT 
O2A        WRITE !,"2A        FIGO Stage IIA"
           QUIT 
O2A1       WRITE !,"2A1       FIGO Stage IIA1"
           QUIT 
O2A2       WRITE !,"2A2       FIGO Stage IIA2"
           QUIT 
O2B        WRITE !,"2B        FIGO Stage IIB"
           QUIT 
O3         WRITE !,"3         FIGO Stage III"
           QUIT 
O3A        WRITE !,"3A        FIGO Stage IIIA"
           QUIT 
O3A1       WRITE !,"3A1       FIGO Stage IIIA1"
           QUIT 
O3A11      WRITE !,"3A11      FIGO Stage IIIAi"
           QUIT 
O3A12      WRITE !,"3A12      FIGO Stage IIIAii"
           QUIT 
O3A2       WRITE !,"3A2       FIGO Stage IIIA2"
           QUIT 
O3B        WRITE !,"3B        FIGO Stage IIIB"
           QUIT 
O3C        WRITE !,"3C        FIGO Stage IIIC"
           QUIT 
O3C1       WRITE !,"3C1       FIGO Stage IIIC1"
           QUIT 
O3C2       WRITE !,"3C2       FIGO Stage IIIC2"
           QUIT 
O4         WRITE !,"4         FIGO Stage IV"
           QUIT 
O4A        WRITE !,"4A        FIGO Stage IVA"
           QUIT 
O4B        WRITE !,"4B        FIGO Stage IVB"
           QUIT 
O97        WRITE !,"97        Carcinoma in situ (intraepithelial, noninvasive, preinvasive)"
           QUIT 
O98        WRITE !,"98        Not applicable: Information not collected for this case"
           QUIT 
O99        WRITE !,"99        Not documented in medical record"
           QUIT 
 +1        QUIT 
PROPE     ;
 +1        IF X'?3N
               KILL X
               QUIT 
 +2        IF "000^300^350^400^500^600^700^800^900^950^999"'[X
               KILL X
               QUIT 
 +3        QUIT 
QTEST     ;
 +1        FOR GIEN=0:0
               SET GIEN=$ORDER(^ONCO(164.44,GIEN))
               if GIEN'>0
                   QUIT 
               Begin DoDot:1
 +2                FOR JIEN=0:0
                       SET JIEN=$ORDER(^ONCO(164.44,GIEN,1,JIEN))
                       if JIEN'>0
                           QUIT 
                       Begin DoDot:2
 +3                        WRITE !,GIEN,?3,JIEN
 +4                        SET ONCRTKID=$PIECE($GET(^ONCO(164.44,GIEN,1,JIEN,0)),"^",3)
 +5                        SET ONCRTKCH=$PIECE($GET(^ONCO(164.44,GIEN,1,JIEN,0)),"^",5)
 +6                        SET ONCRTKNM=$PIECE($GET(^ONCO(164.44,GIEN,1,JIEN,0)),"^",4)
 +7                        WRITE ?6,ONCRTKID,?11,ONCRTKCH,?16,ONCRTKNM
 +8                        IF ONCRTKID'=""
                               SET ONCRTK("AJCCID",ONCRTKID)=""
 +9                        IF ONCRTKCH'=""
                               SET ONCRTK("AJCCCH",ONCRTKCH)=""
                       End DoDot:2
               End DoDot:1
 +10       QUIT