[613] | 1 | ONCOU55A ;Hines OIFO/GWB,RTK-UTILITY ROUTINE 2 ;12/15/99
|
---|
| 2 | ;;2.11;ONCOLOGY;**6,25,28**;Mar 07, 1995
|
---|
| 3 | Q ;no direct invocations
|
---|
| 4 | ;
|
---|
| 5 | RSTG(ONCDDX) ;restage all primaries diagnosed from year YEAR1 forward - called by STAGEM
|
---|
| 6 | ;ONCDDX:optional parameter - date from which to begin
|
---|
| 7 | ;default = beginning of time
|
---|
| 8 | W !!,"This option is no longer available." Q
|
---|
| 9 | N DXDATE,WRTFLG,SYBIX,SYBIX1,COUNT,COUNTCHG
|
---|
| 10 | D INIT ;initialize our variables
|
---|
| 11 | D PROCESS ;process the primaries
|
---|
| 12 | Q
|
---|
| 13 | ;
|
---|
| 14 | INIT ;initialize our variables - called by RSTG
|
---|
| 15 | S (COUNT,COUNTCHG)=0
|
---|
| 16 | S WRTFLG=0 ; suppress interaction with the stager
|
---|
| 17 | S SYBIX=$G(^ONCO("RESTAGE",0))+1,^(0)=SYBIX,^(SYBIX,0)=$H,SYBIX1=0 ; indices for use in saving old stage
|
---|
| 18 | I '$D(ONCDDX) S ONCDDX=0 ; date dx index - will be used in PROC
|
---|
| 19 | I ONCDDX S ONCDDX=ONCDDX-1E10 ; to catch the first one if we're not starting at the top
|
---|
| 20 | Q
|
---|
| 21 | ;
|
---|
| 22 | PROCESS ;Process the primaries - called by RSTG
|
---|
| 23 | F S ONCDDX=$O(^ONCO(165.5,"ADX",ONCDDX)) Q:ONCDDX="" D
|
---|
| 24 | .N PRIMIX S PRIMIX=0
|
---|
| 25 | .F S PRIMIX=$O(^ONCO(165.5,"ADX",ONCDDX,PRIMIX)) Q:PRIMIX="" I $$DIV^ONCFUNC(PRIMIX)=DUZ(2) D PROC1(PRIMIX)
|
---|
| 26 | ;
|
---|
| 27 | W !,"Number of primaries processed : ",$J(COUNT,6)
|
---|
| 28 | W !,"Number of primaries restaged : ",$J(COUNTCHG,6),!!
|
---|
| 29 | S $P(^ONCO("RESTAGE",SYBIX,0),U,2)=COUNT
|
---|
| 30 | Q
|
---|
| 31 | ;
|
---|
| 32 | PROC1(D0) ;process a single primary D0 - called by PROCESS
|
---|
| 33 | ;save off the old value, calculate and store the new value
|
---|
| 34 | ;(not user override of stage) AND (tumor not a Lymphoma)
|
---|
| 35 | I '$$NOSTAGE^ONCOU55(D0),'$$LYMPHOMA^ONCFUNC(D0),'$$MYCOSIS^ONCOU55(D0) D
|
---|
| 36 | .N OLDSTAGE S OLDSTAGE=$P($G(^ONCO(165.5,D0,2)),U,20) ; get old stage
|
---|
| 37 | .S SYBIX1=$G(SYBIX1)+1,^ONCO("RESTAGE",SYBIX,SYBIX1,0)=D0_U_OLDSTAGE ; save old stage
|
---|
| 38 | .S DA=D0 D ES^ONCOTN ; do the staging - returns variable SG
|
---|
| 39 | .S COUNT=$G(COUNT)+1 ; number processed
|
---|
| 40 | .I $P($G(^ONCO(165.5,+D0,2)),U,20)'=OLDSTAGE S COUNTCHG=$G(COUNTCHG)+1 ; number changed
|
---|
| 41 | .W:$R(50)=0 "."
|
---|
| 42 | Q
|
---|
| 43 | ;
|
---|
| 44 | STAGEM ;Interact with user to restage primaries
|
---|
| 45 | ;Called by routine ONCOPOS
|
---|
| 46 | ;Called by option ONCO #SITE-RESTAGE PRIMARY
|
---|
| 47 | N FIRST S FIRST=$$RSTGASK()
|
---|
| 48 | I FIRST<0 W !!,*7,"Restaging aborted - no data changed - continuing...",!!
|
---|
| 49 | E D RSTG(FIRST) ; start with date returned in Y
|
---|
| 50 | Q
|
---|
| 51 | ;
|
---|
| 52 | RSTGASK() ;Function to determine initial restaging date/time
|
---|
| 53 | N DIR,DTOUT,DUOUT,Y
|
---|
| 54 | S DIR(0)="DO^2880101:"_DT_":EP",DIR("A")="Beginning date for restaging",DIR("B")="1/1/88",DIR("?")="Enter the date from which to restage all primaries (just the year is fine)"
|
---|
| 55 | D ^DIR ; returns result in Y
|
---|
| 56 | I $D(DTOUT)!$D(DUOUT) S Y=-1 ; they bailed out or fell asleep
|
---|
| 57 | QUIT +Y
|
---|