| 1 | LRAR04 ;SLC/RWF/DAL/HOAK - REMOVE OLD DATA FROM PT. FILE ; 12/12/96  10:16 ; | 
|---|
| 2 | ;;5.2;LAB SERVICE;**111**;Sep 27, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ;    Rewrite 11/96 Hoak ---------------> | 
|---|
| 5 | ; | 
|---|
| 6 | Q  ;LRC2=NUMBER OF PT, LRC3=NUMBER OF DATES | 
|---|
| 7 | MOVE ; | 
|---|
| 8 | ;  This is where we make the copies to be archived  <---------- | 
|---|
| 9 | ; | 
|---|
| 10 | ;      Move data from ^LR to ^LAR------>arcive global----------| | 
|---|
| 11 | ;                                                              | | 
|---|
| 12 | S LRCNT=$P(^LR(LRDFN,LRSS,0),U,3,4) ;                          | | 
|---|
| 13 | S:LRSS="CH" ^LAR("Z",LRDFN,LRSS,0)="^63.999904D^"_LRCNT ;      | | 
|---|
| 14 | S:LRSS="MI" ^LAR("Z",LRDFN,LRSS,0)="^63.999905DA^"_LRCNT ;     | | 
|---|
| 15 | S %X="^LR(LRDFN,LRSS,LRIDT," ;                                 | | 
|---|
| 16 | S %Y="^LAR(""Z"",LRDFN,LRSS,LRIDT," ;                          | | 
|---|
| 17 | ;                                                              | | 
|---|
| 18 | D %XY^%RCR ; <-------------------------------------------------/ | 
|---|
| 19 | ; | 
|---|
| 20 | ; | 
|---|
| 21 | S:LRC1 LRC2=LRC2+1,LRC1=0 | 
|---|
| 22 | S ^LAR("Z",LRDFN,0)=^LR(LRDFN,0) | 
|---|
| 23 | S ^LAR("Z","B",LRDFN,LRDFN)="" | 
|---|
| 24 | S ^LAR("NAME",PNM,LRDFN)="" | 
|---|
| 25 | S ^LAR("SSN",SSN,LRDFN)="" | 
|---|
| 26 | S LRC3=LRC3+1 | 
|---|
| 27 | QUIT | 
|---|
| 28 | ; | 
|---|
| 29 | PT ; | 
|---|
| 30 | S PNM="unk",SSN="unk" | 
|---|
| 31 | Q:LRDPF<1  D DEM^LRX | 
|---|
| 32 | S:SSN="" SSN="unk" S:PNM="" PNM="unk" | 
|---|
| 33 | QUIT | 
|---|
| 34 | ; | 
|---|
| 35 | ; | 
|---|
| 36 | DFN ; | 
|---|
| 37 | ;from LRARCHIV | 
|---|
| 38 | ; | 
|---|
| 39 | ; | 
|---|
| 40 | S LRI=0 | 
|---|
| 41 | S LRJT0=$P(^LR(0),U,4) | 
|---|
| 42 | I '$G(LRDT7) S LRDT7=LR(1) | 
|---|
| 43 | ; | 
|---|
| 44 | CONTROL ; | 
|---|
| 45 | S LRDFN=0 | 
|---|
| 46 | Q | 
|---|
| 47 | ; | 
|---|
| 48 | ; | 
|---|
| 49 | QUERY ; | 
|---|
| 50 | D DFN | 
|---|
| 51 | D NOW^%DTC S ^TMP("LR9","ENDX")=% | 
|---|
| 52 | S LRDFN=0 | 
|---|
| 53 | K ^TMP("LR9") | 
|---|
| 54 | D NOW^%DTC S ^TMP("LR9","START")=% | 
|---|
| 55 | S LRQCNT=0 | 
|---|
| 56 | ; | 
|---|
| 57 | ;        ^LR(13,"CH",7038789.916,0) | 
|---|
| 58 | ; | 
|---|
| 59 | ;  This block builds a TMP global of data relevant for the date | 
|---|
| 60 | ;  range LRSDTX to LREDT | 
|---|
| 61 | ; | 
|---|
| 62 | ;--->New concept employed; gather only LRDFN(s) in date range | 
|---|
| 63 | ;    archive only these | 
|---|
| 64 | ; | 
|---|
| 65 | S LRV7=LREDT | 
|---|
| 66 | S LRSDTX=9999999-LR(1) | 
|---|
| 67 | S LREDT=9999999-LRV7 I $E(LREDT,1,1)=2 S LREDT=LRV7 | 
|---|
| 68 | S LRDFN="^LR(1,0)" | 
|---|
| 69 | S ^TMP("LR9","RANGE")=LRSDTX_U_LREDT | 
|---|
| 70 | ; | 
|---|
| 71 | F  S LRDFN=$Q(@LRDFN) Q:$P(LRDFN,",")'["LR("  S LR9=$P(LRDFN,",",3) D | 
|---|
| 72 | .  Q:$P(LRDFN,",",2)'["CH" | 
|---|
| 73 | .  S LR8=+$P(LRDFN,"LR(",2) Q:LR8'>0 | 
|---|
| 74 | .  I LR9>LRSDTX,LR9<LREDT D | 
|---|
| 75 | ..  I $P(^LR(LR8,0),U,2)=2 S ^TMP("LR9",LR8)=^LR(LR8,0)_U_LR9_U_LREDT_U_+^LR(LR8,"CH",LR9,0) D | 
|---|
| 76 | ...  S $P(LRDFN,"LR(",2)=LR8+.1_","_$P(LRDFN,LR8_",",2) | 
|---|
| 77 | ...  S LRQCNT=LRQCNT+1 | 
|---|
| 78 | ..  S LR5=$L(LRDFN) | 
|---|
| 79 | ..  I $E(LRDFN,LR5,LR5)'=")" S LRDFN=LRDFN_")" | 
|---|
| 80 | D NOW^%DTC S ^TMP("LR9","END0")=% | 
|---|
| 81 | Q | 
|---|
| 82 | DISPLAY ; | 
|---|
| 83 | W !,"My preliminary screening process reveals ",$G(LRQCNT)," LRDFN(s)." | 
|---|
| 84 | Q | 
|---|
| 85 | ; | 
|---|
| 86 | ; | 
|---|
| 87 | LR ; | 
|---|
| 88 | D DQ1^LRARCHIV | 
|---|
| 89 | D QUERY | 
|---|
| 90 | S LRWHICH="CH" | 
|---|
| 91 | K ^TMP("LRT2") | 
|---|
| 92 | S LRDFN=0 | 
|---|
| 93 | ; | 
|---|
| 94 | ;******************************************************************** | 
|---|
| 95 | ;                                                                   * | 
|---|
| 96 | ;      Leave Micro question for next go-round                       * | 
|---|
| 97 | ;                                                                   * | 
|---|
| 98 | ;******************************************************************** | 
|---|
| 99 | ; | 
|---|
| 100 | F  S LRDFN=$O(^TMP("LR9",LRDFN)) Q:+LRDFN'>0  D  I LRDFN'>0 D TEND QUIT | 
|---|
| 101 | .  S LRDPF=$P(^TMP("LR9",LRDFN),U,2) S DFN=$P(^(LRDFN),U,3) | 
|---|
| 102 | .  I +LRDPF=2 S RC1=1 D PT | 
|---|
| 103 | .  I +LRDPF'=2 QUIT | 
|---|
| 104 | .  S LRIDT=$P(^TMP("LR9",LRDFN),U,7) | 
|---|
| 105 | .  S LRSS="CH" D LAB | 
|---|
| 106 | D LST^LRARCHIV | 
|---|
| 107 | D QUIT^LRARCHIV | 
|---|
| 108 | Q | 
|---|
| 109 | LAB ; | 
|---|
| 110 | S LRJTX=$P(^LR(0),U,4) | 
|---|
| 111 | S LRIDT=LRIDT-.1 | 
|---|
| 112 | F  S LRIDT=$O(^LR(LRDFN,LRSS,LRIDT)) Q:+LRIDT'>0!(LRIDT>LREDT)  D | 
|---|
| 113 | .  I $D(^LR(LRDFN,LRSS,LRIDT,0)) S LRDT7=+^(0) | 
|---|
| 114 | .  S LRI=$G(LRI)+1 | 
|---|
| 115 | .  ;D JOBTIME^LRAC12 | 
|---|
| 116 | .  W "." | 
|---|
| 117 | .  D LAB1 | 
|---|
| 118 | Q | 
|---|
| 119 | ; | 
|---|
| 120 | LAB1 ; | 
|---|
| 121 | D  I LRIDT<1 D UPDT Q | 
|---|
| 122 | .  Q:'LRIDT | 
|---|
| 123 | .  I '$D(PNM) D PT | 
|---|
| 124 | .  IF '$D(^LR(LRDFN,LRSS,LRIDT,0)) D  QUIT | 
|---|
| 125 | ..  S ^TMP("LRBAD",LRDFN,LRSS,LRIDT)=PNM_" "_LRIDT | 
|---|
| 126 | .  S LRDAT=^LR(LRDFN,LRSS,LRIDT,0) | 
|---|
| 127 | .  IF LRSS="CH",'$P(LRDAT,U,3) D  QUIT | 
|---|
| 128 | ..  S ^TMP("LRUNV",LRDFN,LRSS,LRIDT)=PNM_" "_LRIDT | 
|---|
| 129 | .  IF $O(^LR(LRDFN,LRSS,LRIDT,0))=""!('+$O(^(0))) D  QUIT | 
|---|
| 130 | ..  S ^TMP("LRNOD",LRDFN,LRSS,LRIDT)=PNM_" "_LRIDT | 
|---|
| 131 | ; | 
|---|
| 132 | I $L($P(LRDAT,U,9)) D CHECKX | 
|---|
| 133 | ; | 
|---|
| 134 | QUIT | 
|---|
| 135 | ; | 
|---|
| 136 | ;---------------------------------------------------------------------- | 
|---|
| 137 | ;------Here is where we check the major header  and force to perm. | 
|---|
| 138 | ; | 
|---|
| 139 | CHECKX S LRMH=$P($P(LRDAT,U,9),":")  ;Major Header | 
|---|
| 140 | S LRFG=$P($P(LRDAT,U,9),":",2)  ;PAGE | 
|---|
| 141 | ; | 
|---|
| 142 | ;     Checking all the test for different major header | 
|---|
| 143 | ; | 
|---|
| 144 | ; | 
|---|
| 145 | S TEST=.5 | 
|---|
| 146 | F  S TEST=$O(^LR(LRDFN,"CH",LRIDT,TEST)) Q:+TEST'>0  D | 
|---|
| 147 | .  Q:$D(^TMP("LRT2",TEST))#2 | 
|---|
| 148 | .  D ^LRAR02 | 
|---|
| 149 | ;-------------------------------------------------------------------- | 
|---|
| 150 | ; | 
|---|
| 151 | D MOVE | 
|---|
| 152 | Q | 
|---|
| 153 | ; | 
|---|
| 154 | TEND ; | 
|---|
| 155 | W @IOF | 
|---|
| 156 | W !!,"The SEARCH process is complete." | 
|---|
| 157 | W !!,$P(LRI/LRJT0*100,".")," Percent of ^LR was searched" | 
|---|
| 158 | D STAMP^LRX | 
|---|
| 159 | W !,"Total patient count: ",LRC2,". Specimen count: ",LRC3,! K LRDFN | 
|---|
| 160 | QUIT | 
|---|
| 161 | ; | 
|---|
| 162 | UPDT ; | 
|---|
| 163 | S X=0,LRCNT=0 | 
|---|
| 164 | F I=0:0 S X=$O(^LR(LRDFN,LRSS,X)) Q:X<1  S LRCNT=LRCNT+1 | 
|---|
| 165 | ;--------------------------------------------CH-----------MICRO NO BB? | 
|---|
| 166 | I LRCNT=0 S ^LR(LRDFN,LRSS,0)=$S(LRSS="CH":"^63.04D",1:"^63.05DA") Q | 
|---|
| 167 | S $P(^LR(LRDFN,LRSS,0),U,4)=LRCNT | 
|---|
| 168 | Q | 
|---|
| 169 | RCC ; | 
|---|
| 170 | ;REMOVE CONTROL CHAR. | 
|---|
| 171 | S X=LRDAT | 
|---|
| 172 | S LRDAT="" | 
|---|
| 173 | F I=1:1:$L(X) S LRDAT=LRDAT_$S($A(X,I)>126:"",$A(X,I)>31:$E(X,I),1:"") | 
|---|
| 174 | S ^LR(LRDFN,LRSS,LRIDT,I1)=LRDAT | 
|---|
| 175 | QUIT | 
|---|