| 1 | LRAR05 ;DAL/HOAK NEW ARCHIVE PURGER ; 12/12/96  10:16 ; | 
|---|
| 2 | ;;5.2;LAB SERVICE;**111**;Sep 27, 1994 | 
|---|
| 3 | INIT ;              Building block from...\/ | 
|---|
| 4 | ;     LRCHIVK SLC/RWF - REMOVE OLD LAB DATA ; 12/14/87  15:46 ; | 
|---|
| 5 | Q | 
|---|
| 6 | EN ;from LRCHIV | 
|---|
| 7 | U IO W @IOF,"START OF PURGE PASS" D STAMP^LRX | 
|---|
| 8 | S LRDFN=0 | 
|---|
| 9 | DFN ; | 
|---|
| 10 | S LRDFN=$O(^LAR("Z",LRDFN)) G END:LRDFN="" W "." | 
|---|
| 11 | F LRSS="CH","MI" I $O(^LAR("Z",LRDFN,LRSS,0)) S LRIDT=0,C1=1 D LAB,UPDT | 
|---|
| 12 | S ^LAB(69.9,1,"PURGE LRDFN")=LRDFN G DFN | 
|---|
| 13 | LAB ; | 
|---|
| 14 | S LRIDT=$O(^LAR("Z",LRDFN,LRSS,LRIDT)) Q:LRIDT<1 | 
|---|
| 15 | ; | 
|---|
| 16 | IF '$D(^LR(LRDFN,LRSS,LRIDT,0)) W !,"Data not found." G LAB | 
|---|
| 17 | ; | 
|---|
| 18 | ;              If data in ^LRA matches ^LR purge | 
|---|
| 19 | ; | 
|---|
| 20 | IF ^LAR("Z",LRDFN,LRSS,LRIDT,0)=^LR(LRDFN,LRSS,LRIDT,0) D  G LAB | 
|---|
| 21 | .  K ^LAR("Z",LRDFN,LRSS,LRIDT),^LR(LRDFN,LRSS,LRIDT) | 
|---|
| 22 | .  S ^LR(LRDFN,"T",P1,0)=P1 | 
|---|
| 23 | W !,"^LAR and ^LR don't match, Data not purged.",! | 
|---|
| 24 | W " LRDFN = ",LRDFN_" Sub Script = "_LRSS_" LRIDT = "_LRIDT | 
|---|
| 25 | W !?4,"^LR("_LRDFN_","_LRSS_","_LRIDT_",0) = ",^LR(LRDFN,LRSS,LRIDT,0) | 
|---|
| 26 | W !,"^LAR(""Z"","_LRDFN_","_LRSS_","_LRIDT_",0) = ",^LAR("Z",LRDFN,LRSS,LRIDT,0) | 
|---|
| 27 | K ^LAR("Z",LRDFN,LRSS,LRIDT) | 
|---|
| 28 | G LAB | 
|---|
| 29 | Q | 
|---|
| 30 | UPDT S X=0,LRCNT=0 | 
|---|
| 31 | F I=0:0 S X=$O(^LR(LRDFN,LRSS,X)) Q:X<1  S LRCNT=LRCNT+1 | 
|---|
| 32 | I LRCNT=0 S ^LR(LRDFN,LRSS,0)=$S(LRSS="CH":"^63.04D",1:"^63.05DA") Q | 
|---|
| 33 | S $P(^LR(LRDFN,LRSS,0),U,4)=LRCNT | 
|---|
| 34 | Q | 
|---|
| 35 | END W !!,"**PURGE PASS DONE ** " D STAMP^LRX Q  ;W @IOF G H^XUS | 
|---|
| 36 | Q | 
|---|
| 37 | SET ; | 
|---|
| 38 | Q:$E(IOST,1,2)'="C-" | 
|---|
| 39 | W @IOF D SCRNON S DX=2,DY=2 X IOXY S OK=1 S LRI=0,LRIN=0 K LRTIC | 
|---|
| 40 | Q | 
|---|
| 41 | ;CAN BE USED INSTEAD OF dots TO SHOW USER HOW JOB IS PROCEEDING | 
|---|
| 42 | ; | 
|---|
| 43 | ;    LRJT0=4th piece of 0 node of file being searched | 
|---|
| 44 | ;F LRI=1:1:70 S DX=LRI*2+2,DY=6 X IOXY D | 
|---|
| 45 | JOBTIME ; | 
|---|
| 46 | Q:$E(IOST,1,2)'="C-" | 
|---|
| 47 | S OK=1 | 
|---|
| 48 | S DX=LRI*2+2,DY=6 X IOXY D | 
|---|
| 49 | . I '$G(LRTIC) S LRTIC=$P((LRJT0/70),".") | 
|---|
| 50 | . Q:(LRI+1)'>LRTIC  S LRTIC=LRTIC+$P((LRJT0/70),".") S LRIN=LRIN+1 | 
|---|
| 51 | . S DX=2+LRIN,DY=8 X IOXY | 
|---|
| 52 | . W IORVON | 
|---|
| 53 | . W ">" | 
|---|
| 54 | . W IORVOFF | 
|---|
| 55 | . S DX=16,DY=17 X IOXY | 
|---|
| 56 | . W IODHLT,$E((LRIN/LRJT0)*100,1,4),"% of ^LR" | 
|---|
| 57 | . S DX=16,DY=18 X IOXY | 
|---|
| 58 | . W IODHLB,$E((LRIN/LRJT0)*100,1,4),"% of ^LR" | 
|---|
| 59 | . D FLASH | 
|---|
| 60 | I 'OK D SCRNOFF | 
|---|
| 61 | Q | 
|---|
| 62 | SCRNON ; | 
|---|
| 63 | ;D GSET^%ZISS W IOG1 | 
|---|
| 64 | D ENS^%ZISS S %ZIS="I" | 
|---|
| 65 | D FLASH | 
|---|
| 66 | Q | 
|---|
| 67 | FLASH ; | 
|---|
| 68 | ;S LRDT7=LRIDT | 
|---|
| 69 | I '$G(LRDT7) S LRDT7=LR(1) | 
|---|
| 70 | S DX=13,DY=20 X IOXY | 
|---|
| 71 | ;W IORVON | 
|---|
| 72 | W IODHLT,$$CJ^XLFSTR($$FMTE^XLFDT(LRDT7,"D"),IOM) | 
|---|
| 73 | S DY=DY+1 X IOXY | 
|---|
| 74 | W IODHLB,$$CJ^XLFSTR($$FMTE^XLFDT(LRDT7,"D"),IOM) | 
|---|
| 75 | ;W IOIND | 
|---|
| 76 | ;W IORVOFF | 
|---|
| 77 | ;S DY=DY-1 X IOXY | 
|---|
| 78 | ;W "                                                                    " | 
|---|
| 79 | ;S DY=DY+3 X IOXY | 
|---|
| 80 | ;W $G(LRI) | 
|---|
| 81 | Q | 
|---|
| 82 | SCRNOFF ; | 
|---|
| 83 | W IOBOFF | 
|---|
| 84 | D KILL^%ZISS | 
|---|
| 85 | ;W IOG0 D GKILL^%ZISS | 
|---|
| 86 | QUIT | 
|---|