DGODDEL ;ALB/EG - PURGE DISCRETIONARY WORKLOAD ; APR 24, 1989
;;5.3;Registration;;Aug 13, 1993
W !!,*7,"DISCRETIONARY WORKLOAD OPTIONS ARE NO LONGER AVAILABLE!",!! Q
;;V 4.5
EN S DGDB=0,U="^" R !,"Purge single (M)onth or (A)ll or (^ to quit): MONTH// ",DGQQ:DTIME G:'$T END S DGQQ=$S(DGQQ'="":$E(DGQQ,1,1),1:"M") I DGQQ="?" D HLP G EN
Q:"Q^"[DGQQ I "MA"'[DGQQ W *7 G END
I DGQQ="A" D BG G:%=2 END W !,?1,"SITE",?10,"REPORT",?20,"MONTH/YR",?30,"RUN DATE",! D:%=1 DST
I DGQQ="M" D STH Q:Y<0 D BG G:%=2 END W !,?1,"SITE",?10,"REPORT",?20,"MONTH/YR",?30,"RUN DATE",! S DGDT=Y D:(%=1) D0
END W:DGDB=0 !,"Nothing purged, all your data is current"
K DGA,DGDA,DGDB,DGDT,DGDV,DGI,DGJ,DGK,DGQQ,DGREP,DIC,DIC(0),DIC("S")
Q
DST S DGDT="" F DGA=0:0 S DGDT=$O(^VAT(408,"AE",DGDT)) Q:DGDT="" D D0
Q
D0 Q:$D(^VAT(408,"AD",1,DGDT))>0 S DGDV="" F DGI=0:0 S DGDV=$O(^VAT(408,"AE",DGDT,DGDV)) Q:DGDV="" D D1
Q
D1 S DGREP="" F DGJ=0:0 S DGREP=$O(^VAT(408,"AE",DGDT,DGDV,DGREP)) Q:DGREP="" D D2
Q
D2 S DGDA="" F DGK=0:0 S DGDA=$O(^VAT(408,"AE",DGDT,DGDV,DGREP,DGDA)) Q:DGDA="" I $O(^VAT(408,"AE",DGDT,DGDV,DGREP,DGDA))'="" D D3
Q
D3 ;does deletion using ^DIK
W !,?1,DGDV,?10,DGREP,?20,DGDT,?30,DGDA
S DGDB=1,DIK="^VAT(408,",DA=DGDA D ^DIK K DIK,DA W ?50,"...deleted"
Q
STH ;select entries to purge
S U="^",DIC="^VAT(408,",DIC(0)="AEM",D="C",DZ="?" D DQ^DICQ K DO
S %DT="PANE",%DT("A")="Select MONTH/YEAR to PURGE: " D ^%DT
Q:Y<0
I (+$E(Y,6,7)>0)!($D(^VAT(408,"C",Y))=0) W !!,*7,"SELECT ENTRY FROM LIST IN MONTH/YEAR FORMAT.",!,"IF JANUARY 1988 WAS LISTED YOU WOULD ENTER 01/88",! G STH
Q
BG S %=2 W !,"ARE YOU SURE YOU WISH TO PURGE YOUR FILE " D YN^DICN S:(%<0)!(%=2) %=2
Q
HLP ;
F I=0:1 Q:$F($T(HLPT+I),";;")=0 W !,$P($T(HLPT+I),";;",2)
Q
HLPT ;;MONTHLY will allow you to select a specific MONTH/YR to purge
;;ALL will purge your entire file, leaving only the most recent
;;generation for each month.
;;
;;This option will allow you to purge entries in your file up to but
;;not including your most recent. If you have generated OCT 88 in
;;Nov, Dec, and Jan you will have 3 entries in your file corresponding
;;to OCT workload. Say you generate OCT again in Feb 89 and purge
;;by using this option, Nov through Jan will be purged and you will
;;only have the most recent run remaining. We recommend the use of
;;this option to keep your files small and tidy.
;;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDGODDEL 2434 printed Nov 22, 2024@17:56:20 Page 2
DGODDEL ;ALB/EG - PURGE DISCRETIONARY WORKLOAD ; APR 24, 1989
+1 ;;5.3;Registration;;Aug 13, 1993
+2 WRITE !!,*7,"DISCRETIONARY WORKLOAD OPTIONS ARE NO LONGER AVAILABLE!",!!
QUIT
+3 ;;V 4.5
EN SET DGDB=0
SET U="^"
READ !,"Purge single (M)onth or (A)ll or (^ to quit): MONTH// ",DGQQ:DTIME
if '$TEST
GOTO END
SET DGQQ=$SELECT(DGQQ'="":$EXTRACT(DGQQ,1,1),1:"M")
IF DGQQ="?"
DO HLP
GOTO EN
+1 if "Q^"[DGQQ
QUIT
IF "MA"'[DGQQ
WRITE *7
GOTO END
+2 IF DGQQ="A"
DO BG
if %=2
GOTO END
WRITE !,?1,"SITE",?10,"REPORT",?20,"MONTH/YR",?30,"RUN DATE",!
if %=1
DO DST
+3 IF DGQQ="M"
DO STH
if Y<0
QUIT
DO BG
if %=2
GOTO END
WRITE !,?1,"SITE",?10,"REPORT",?20,"MONTH/YR",?30,"RUN DATE",!
SET DGDT=Y
if (%=1)
DO D0
END if DGDB=0
WRITE !,"Nothing purged, all your data is current"
+1 KILL DGA,DGDA,DGDB,DGDT,DGDV,DGI,DGJ,DGK,DGQQ,DGREP,DIC,DIC(0),DIC("S")
+2 QUIT
DST SET DGDT=""
FOR DGA=0:0
SET DGDT=$ORDER(^VAT(408,"AE",DGDT))
if DGDT=""
QUIT
DO D0
+1 QUIT
D0 if $DATA(^VAT(408,"AD",1,DGDT))>0
QUIT
SET DGDV=""
FOR DGI=0:0
SET DGDV=$ORDER(^VAT(408,"AE",DGDT,DGDV))
if DGDV=""
QUIT
DO D1
+1 QUIT
D1 SET DGREP=""
FOR DGJ=0:0
SET DGREP=$ORDER(^VAT(408,"AE",DGDT,DGDV,DGREP))
if DGREP=""
QUIT
DO D2
+1 QUIT
D2 SET DGDA=""
FOR DGK=0:0
SET DGDA=$ORDER(^VAT(408,"AE",DGDT,DGDV,DGREP,DGDA))
if DGDA=""
QUIT
IF $ORDER(^VAT(408,"AE",DGDT,DGDV,DGREP,DGDA))'=""
DO D3
+1 QUIT
D3 ;does deletion using ^DIK
+1 WRITE !,?1,DGDV,?10,DGREP,?20,DGDT,?30,DGDA
+2 SET DGDB=1
SET DIK="^VAT(408,"
SET DA=DGDA
DO ^DIK
KILL DIK,DA
WRITE ?50,"...deleted"
+3 QUIT
STH ;select entries to purge
+1 SET U="^"
SET DIC="^VAT(408,"
SET DIC(0)="AEM"
SET D="C"
SET DZ="?"
DO DQ^DICQ
KILL DO
+2 SET %DT="PANE"
SET %DT("A")="Select MONTH/YEAR to PURGE: "
DO ^%DT
+3 if Y<0
QUIT
+4 IF (+$EXTRACT(Y,6,7)>0)!($DATA(^VAT(408,"C",Y))=0)
WRITE !!,*7,"SELECT ENTRY FROM LIST IN MONTH/YEAR FORMAT.",!,"IF JANUARY 1988 WAS LISTED YOU WOULD ENTER 01/88",!
GOTO STH
+5 QUIT
BG SET %=2
WRITE !,"ARE YOU SURE YOU WISH TO PURGE YOUR FILE "
DO YN^DICN
if (%<0)!(%=2)
SET %=2
+1 QUIT
HLP ;
+1 FOR I=0:1
if $FIND($TEXT(HLPT+I),";;")=0
QUIT
WRITE !,$PIECE($TEXT(HLPT+I),";;",2)
+2 QUIT
HLPT ;;MONTHLY will allow you to select a specific MONTH/YR to purge
+1 ;;ALL will purge your entire file, leaving only the most recent
+2 ;;generation for each month.
+3 ;;
+4 ;;This option will allow you to purge entries in your file up to but
+5 ;;not including your most recent. If you have generated OCT 88 in
+6 ;;Nov, Dec, and Jan you will have 3 entries in your file corresponding
+7 ;;to OCT workload. Say you generate OCT again in Feb 89 and purge
+8 ;;by using this option, Nov through Jan will be purged and you will
+9 ;;only have the most recent run remaining. We recommend the use of
+10 ;;this option to keep your files small and tidy.
+11 ;;