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

ONCOTNM2.m

Go to the documentation of this file.
  1. ONCOTNM2 ;Hines OIFO/RTK - TNM Codes input transform & help ;9/29/16 15:38
  1. ;;2.2;ONCOLOGY;**6**;Jul 31, 2013;Build 10
  1. ;
  1. ;New input transform and help -- NAACCR Vol II V16
  1. ; This will replace all the codes specific to Topography & Histology
  1. ;
  1. ; make sure case is correct
  1. INPUT ;
  1. S DATEDX=$P($G(^ONCO(165.5,D0,0)),"^",16)
  1. S X=$TR(X,"abcdilmopsuvx","ABCDILMOPSUVX")
  1. I $E(X)="C" S X="c"_$E(X,2,8) W " ",X
  1. I $E(X)="P" S X="p"_$E(X,2,8) W " ",X
  1. I ONCOX="T",STGIND="C" D TCLIN Q
  1. I ONCOX="N",STGIND="C" D NCLIN Q
  1. I ONCOX="M",STGIND="C" D MCLIN Q
  1. I ONCOX="T",STGIND="P" D TPATH Q
  1. I ONCOX="N",STGIND="P" D NPATH Q
  1. I ONCOX="M",STGIND="P" D MPATH Q
  1. Q
  1. ;
  1. TCLIN ;
  1. I X="cX"!(X="c0")!(X="pA")!(X="pIS")!(X="pISU")!(X="pISD") Q
  1. I X="c1MI"!(X="c1")!(X="c1A")!(X="c1A1")!(X="c1A2")!(X="c1B") Q
  1. I X="c1B1"!(X="c1B2")!(X="c1C")!(X="c1D")!(X="c2")!(X="c2A") Q
  1. I X="c2A1"!(X="c2A2")!(X="c2B")!(X="c2C")!(X="c2D")!(X="c3") Q
  1. I X="c3A"!(X="c3B")!(X="c3C")!(X="c3D")!(X="c4")!(X="c4A") Q
  1. I X="c4B"!(X="c4C")!(X="c4D")!(X="c4E")!(X=88) Q
  1. K X Q
  1. ;
  1. NCLIN ;
  1. I X="cX"!(X="c0")!(X="c0A")!(X="c0B")!(X="c1")!(X="c1A") Q
  1. I X="c1B"!(X="c1C")!(X="c2")!(X="c2A")!(X="c2B")!(X="c2C") Q
  1. I X="c3"!(X="c3A")!(X="c3B")!(X="c3C")!(X="c4")!(X=88) Q
  1. K X Q
  1. ;
  1. MCLIN ;
  1. I X="c0"!(X="c0I+")!(X="c1")!(X="c1A")!(X="c1B") Q
  1. I X="c1C"!(X="c1D")!(X="c1E")!(X="p1")!(X="p1A") Q
  1. I X="p1B"!(X="p1C")!(X="p1D")!(X="p1E")!(X=88) Q
  1. I DATEDX<3100101,X="cX" Q
  1. K X Q
  1. ;
  1. TPATH ;
  1. I X="pX"!(X="p0")!(X="pA")!(X="pIS")!(X="pISU")!(X="pISD") Q
  1. I X="p1MI"!(X="p1")!(X="p1A")!(X="p1A1")!(X="p1A2")!(X="p1B") Q
  1. I X="p1B1"!(X="p1B2")!(X="p1C")!(X="p1D")!(X="p2")!(X="p2A") Q
  1. I X="p2A1"!(X="p2A2")!(X="p2B")!(X="p2C")!(X="p2D")!(X="p3") Q
  1. I X="p3A"!(X="p3B")!(X="p3C")!(X="p3D")!(X="p4")!(X="p4A") Q
  1. I X="p4B"!(X="p4C")!(X="p4D")!(X="p4E")!(X=88) Q
  1. K X Q
  1. ;
  1. NPATH ;
  1. I X="pX"!(X="c0")!(X="p0")!(X="p0I-")!(X="p0I+")!(X="p0M-") Q
  1. I X="p0M+"!(X="p1MI")!(X="p0A")!(X="p0B")!(X="p1")!(X="p1A") Q
  1. I X="p1B"!(X="p1C")!(X="p2")!(X="p2A")!(X="p2B") Q
  1. I X="p2C"!(X="p3")!(X="p3A")!(X="p3B")!(X="p3C")!(X="p4")!(X=88) Q
  1. I DATEDX<3020101,(X="p1BI")!(X="p1BII")!(X="p1BIII")!(X="p1BIV") Q
  1. K X Q
  1. ;
  1. MPATH ;
  1. I X="c0"!(X="c0I+")!(X="p1")!(X="p1A")!(X="p1B") Q
  1. I X="p1C"!(X="p1D")!(X="p1E")!(X="c1")!(X="c1A") Q
  1. I X="c1B"!(X="c1C")!(X="c1D")!(X="c1E")!(X=88) Q
  1. I DATEDX<3100101,X="pX" Q
  1. K X Q
  1. ;
  1. HELP ;
  1. S DATEDX=$P($G(^ONCO(165.5,D0,0)),"^",16)
  1. I ONCOX="T",STGIND="C" D TCLINHP Q
  1. I ONCOX="N",STGIND="C" D NCLINHP Q
  1. I ONCOX="M",STGIND="C" D MCLINHP Q
  1. I ONCOX="T",STGIND="P" D TPATHHP Q
  1. I ONCOX="N",STGIND="P" D NPATHHP Q
  1. I ONCOX="M",STGIND="P" D MPATHHP Q
  1. Q
  1. TCLINHP ;
  1. W !?5,"PLEASE SELECT FROM THE FOLLOWING CODES FOR CLINICAL T"
  1. W !?8,"cX",?16,"c0",?24,"pA",?32,"pIS",?40,"pISU",?48,"pISD",?56,"c1MI"
  1. W !?8,"c1",?16,"c1A",?24,"c1A1",?32,"c1A2",?40,"c1B",?48,"c1B1",?56,"c1B2"
  1. W !?8,"c1C",?16,"c1D",?24,"c2",?32,"c2A",?40,"c2A1",?48,"c2A2",?56,"c2B"
  1. W !?8,"c2C",?16,"c2D",?24,"c3",?32,"c3A",?40,"c3B",?48,"c3C",?56,"c3D"
  1. W !?8,"c4",?16,"c4A",?24,"c4B",?32,"c4C",?40,"c4D",?48,"c4E",?56,88,!
  1. Q
  1. NCLINHP ;
  1. W !?5,"PLEASE SELECT FROM THE FOLLOWING CODES FOR CLINICAL N"
  1. W !?8,"cX",?16,"c0",?24,"c0A",?32,"c0B",?40,"c1",?48,"c1A"
  1. W !?8,"c1B",?16,"c1C",?24,"c2",?32,"c2A",?40,"c2B",?48,"c2C"
  1. W !?8,"c3",?16,"c3A",?24,"c3B",?32,"c3C",?40,"c4",?48,88,!
  1. Q
  1. MCLINHP ;
  1. W !?5,"PLEASE SELECT FROM THE FOLLOWING CODES FOR CLINICAL M"
  1. W !?8,"c0",?16,"c0I+",?24,"c1",?32,"c1A",?40,"c1B"
  1. W !?8,"c1C",?16,"c1D",?24,"c1E",?32,"p1",?40,"p1A"
  1. W !?8,"p1B",?16,"p1C",?24,"p1D",?32,"p1E",?40,88
  1. I DATEDX<3100101 W ?48,"cX"
  1. W ! Q
  1. TPATHHP ;
  1. W !?5,"PLEASE SELECT FROM THE FOLLOWING CODES FOR PATHOLOGIC T"
  1. W !?8,"pX",?16,"p0",?24,"pA",?32,"pIS",?40,"pISU",?48,"pISD"
  1. W !?8,"p1MI",?16,"p1",?24,"p1A",?32,"p1A1",?40,"p1A2",?48,"p1B"
  1. W !?8,"p1B1",?16,"p1B2",?24,"p1C",?32,"p1D",?40,"p2",?48,"p2A"
  1. W !?8,"p2A1",?16,"p2A2",?24,"p2B",?32,"p2C",?40,"p2D",?48,"p3"
  1. W !?8,"p3A",?16,"p3B",?24,"p3C",?32,"p3D",?40,"p4",?48,"p4A"
  1. W !?8,"p4B",?16,"p4C",?24,"p4D",?32,"p4E",?40,88,!
  1. Q
  1. NPATHHP ;
  1. W !?5,"PLEASE SELECT FROM THE FOLLOWING CODES FOR PATHOLOGIC N"
  1. W !?8,"pX",?16,"c0",?24,"p0",?32,"p0I-",?40,"p0I+"
  1. W !?8,"p0M-",?16,"p0M+",?24,"p1MI",?32,"p0A",?40,"p0B"
  1. W !?8,"p1",?16,"p1A",?24,"p1B",?32,"p1C",?40,"p2"
  1. W !?8,"p2A",?16,"p2B",?24,"p2C",?32,"p3",?40,"p3A"
  1. W !?8,"p3B",?16,"p3C",?24,"p4",?32,88
  1. I DATEDX<3020101 W !?8,"p1BI",?16,"p1BII",?24,"p1BIII",?32,"p1BIV"
  1. W ! Q
  1. MPATHHP ;
  1. W !?8,"c0",?16,"c0I+",?24,"p1",?32,"p1A",?40,"p1B"
  1. W !?8,"p1C",?16,"p1D",?24,"p1E",?32,"c1",?40,"c1A"
  1. W !?8,"c1B",?16,"c1C",?24,"c1D",?32,"c1E",?40,88
  1. I DATEDX<3100101 W ?48,"pX"
  1. W ! Q
  1. ;
  1. VALID ;check the validity of the Clinical and Pathologic TNM data values
  1. ; after the Patch 6 converion for NAACCR Vol II v16
  1. N X,EX K ^TMP($J,"ONCINV") S NN=0,EX=""
  1. ;loop through and check if any of the 6 TNM fields have bad data
  1. F IEN=0:0 S IEN=$O(^ONCO(165.5,IEN)) Q:IEN'>0 D
  1. .S DATEDX=$P($G(^ONCO(165.5,IEN,0)),"^",16)
  1. .S CLINT=$P($G(^ONCO(165.5,IEN,2)),U,25) S X=CLINT I X=""!(X=88) Q
  1. .D TCLIN I '$D(X) D GETPTV S ^TMP($J,"ONCINV",ZZPTNM,IEN,"CLINICAL T")=ZZACSQ_U_CLINT
  1. .S CLINN=$P($G(^ONCO(165.5,IEN,2)),U,26) S X=CLINN I X=""!(X=88) Q
  1. .D NCLIN I '$D(X) D GETPTV S ^TMP($J,"ONCINV",ZZPTNM,IEN,"CLINICAL N")=ZZACSQ_U_CLINN
  1. .S CLINM=$P($G(^ONCO(165.5,IEN,2)),U,27) S X=CLINM I X=""!(X=88) Q
  1. .D MCLIN I '$D(X) D GETPTV S ^TMP($J,"ONCINV",ZZPTNM,IEN,"CLINICAL M")=ZZACSQ_U_CLINM
  1. .S PATHT=$P($G(^ONCO(165.5,IEN,2.1)),U,1) S X=PATHT I X=""!(X=88) Q
  1. .D TPATH I '$D(X) D GETPTV S ^TMP($J,"ONCINV",ZZPTNM,IEN,"PATHOLOGIC T")=ZZACSQ_U_PATHT
  1. .S PATHN=$P($G(^ONCO(165.5,IEN,2.1)),U,2) S X=PATHN I X=""!(X=88) Q
  1. .D NPATH I '$D(X) D GETPTV S ^TMP($J,"ONCINV",ZZPTNM,IEN,"PATHOLOGIC N")=ZZACSQ_U_PATHN
  1. .S PATHM=$P($G(^ONCO(165.5,IEN,2.1)),U,3) S X=PATHM I X=""!(X=88) Q
  1. .D MPATH I '$D(X) D GETPTV S ^TMP($J,"ONCINV",ZZPTNM,IEN,"PATHOLOGIC M")=ZZACSQ_U_PATHM
  1. W !
  1. ;display the invalid data, if any
  1. I '$D(^TMP($J,"ONCINV")) W !?3,"All Clinical and Pathologic TNM data is valid!",! K CLINT,CLINN,CLINM,PATHT,PATHN,PATHM,IEN,NN,TNMFLD,ZZ160,ZZVRPT,ZZPTNM,ZZACSQ,^TMP($J,"ONCINV") Q
  1. W @IOF,!!!,"Display list of patients with invalid data in"
  1. W !,"the Clinical or Pathologic TNM fields",!
  1. S ZZPTNM="" F S ZZPTNM=$O(^TMP($J,"ONCINV",ZZPTNM)) Q:ZZPTNM=""!(EX=U) D
  1. .F IEN=0:0 S IEN=$O(^TMP($J,"ONCINV",ZZPTNM,IEN)) Q:IEN'>0!(EX=U) D
  1. ..S NN=NN+1 W !!,"Patient Name: ",ZZPTNM
  1. ..S TNMFLD="" F S TNMFLD=$O(^TMP($J,"ONCINV",ZZPTNM,IEN,TNMFLD)) Q:TNMFLD=""!(EX=U) D
  1. ...W !," Acc/Seq #: ",$P(^TMP($J,"ONCINV",ZZPTNM,IEN,TNMFLD),"^",1)," ",TNMFLD," invalid value = ",$P(^TMP($J,"ONCINV",ZZPTNM,IEN,TNMFLD),"^",2)
  1. ...I $Y>(IOSL-4) D PG I EX=U Q
  1. ..Q
  1. .Q
  1. I EX'=U W !!?9,NN," total patient records with invalid TNM data...",! D PG I EX=U Q
  1. K CLINT,CLINN,CLINM,PATHT,PATHN,PATHM,IEN,NN,TNMFLD,ZZ160,ZZVRPT,ZZPTNM,ZZACSQ ;,^TMP($J,"ONCINV") Q
  1. Q
  1. ;
  1. GETPTV ;
  1. S ZZ160=$P($G(^ONCO(165.5,IEN,0)),"^",2)
  1. S ZZVRPT=$P($G(^ONCO(160,ZZ160,0)),"^",1)
  1. I ZZVRPT[";DPT" S ZZPTNM=$P($G(^DPT($P(ZZVRPT,";",1),0)),"^",1)
  1. I ZZVRPT[";LRT" S ZZPTNM=$P($G(^LRT(67,$P(ZZVRPT,";",1),0)),"^",1)
  1. S ZZACSQ=$E($P($G(^ONCO(165.5,IEN,0)),"^",5),1,4)_"-"_$E($P($G(^ONCO(165.5,IEN,0)),"^",5),5,9)_"/"_$P($G(^ONCO(165.5,IEN,0)),"^",6)
  1. Q
  1. ;
  1. PG ;
  1. I IOST?1"C".E W ! K DIR S DIR(0)="E" D ^DIR I 'Y S EX=U Q
  1. W @IOF Q