| 1 | LRCAPBB ;SLC/AM/DALISC/FHS/CYM - STORE WORKLOAD FROM 65,65.5 INTO ^LRO(64.1 ;4/3/96
 | 
|---|
| 2 |  ;;5.2;LAB SERVICE;**72,201**;Sep 27, 1994
 | 
|---|
| 3 | EN ;
 | 
|---|
| 4 |  Q:'$P($G(^LAB(69.9,1,0)),U,14)
 | 
|---|
| 5 |  S:'$D(^LAB(69.9,1,"NITE")) ^("NITE")=""
 | 
|---|
| 6 |  L +^LRD(65,"AA"):1 I '$T G FIN
 | 
|---|
| 7 |  L +^LRE("AA"):1 I '$T G FIN
 | 
|---|
| 8 |  S $P(^LAB(69.9,1,"NITE"),"^",4)=$$NOW^XLFDT
 | 
|---|
| 9 |  ;S X="TRAP^LRCAPBB",@^%ZOSF("TRAP")
 | 
|---|
| 10 | INVENT ;
 | 
|---|
| 11 |  D INIT G:'$O(^LRD(65,"AA",0)) DONOR D FT
 | 
|---|
| 12 |  I LRERR K ^LRD(65,"AA") D DUMP S ^TMP("LR WL ERRORS",LRX)="BASIC LRD(65 DATA MISSING" G DONOR
 | 
|---|
| 13 |  F  S LRREC=$O(^LRD(65,"AA",LRREC)) Q:LRREC=""  S LRTS="" D
 | 
|---|
| 14 |  .S LRFILE=LRREC_";LRD(65," F  S LRTS=$O(^LRD(65,"AA",LRREC,LRTS)) Q:LRTS=""  S LRDTTM="" F  S LRDTTM=$O(^LRD(65,"AA",LRREC,LRTS,LRDTTM)) Q:LRDTTM=""  S LRACC=^(LRDTTM) D  K ^LRD(65,"AA",LRREC,LRTS,LRDTTM)
 | 
|---|
| 15 |  ..S LRCC=0 F  S LRCC=$O(^LRD(65,LRREC,99,LRTS,1,LRDTTM,1,LRCC)) Q:LRCC<1  D
 | 
|---|
| 16 |  ...; LRRRL3 is the log in person, LRRRL4 is location type
 | 
|---|
| 17 |  ...;S $P(^LAB(69.9,1,"NITE"),U,4)=LRREC_"99 "_LRTS_","_LRDTTM_","_LRCC
 | 
|---|
| 18 |  ...S LRX=$G(^LRD(65,LRREC,99,LRTS,1,LRDTTM,0)),LRRRL3=$P(LRX,U,2),LRIN=$P(LRX,U,3),(LRAA,LRMA)=+$P(LRX,U,4),LRLSS=+$P(LRX,U,5) S:'LRLSS LRLSS=LRMA D CHK
 | 
|---|
| 19 |  ...S LRX=$G(^LRD(65,LRREC,99,LRTS,1,LRDTTM,1,LRCC,0)),LRCNT=+$P(LRX,U,2)
 | 
|---|
| 20 |  ...S:'LRCNT LRCNT=1
 | 
|---|
| 21 |  ...S LRCTM=$P(LRDTTM,".",2),LRCDT=$P(LRDTTM,"."),(LRUW,LRCWT)=1
 | 
|---|
| 22 |  ...I $D(^LAM(LRCC,0))#2 S LRX=^(0),LRUW=$P(LRX,"^",3),LRCWT=$P(LRX,"^",11)
 | 
|---|
| 23 |  ...I (LRIN="")!(LRCC="")!(LRCDT="")!(LRCTM="")!(LRTS="") D DUMP Q
 | 
|---|
| 24 |  ...W:'$D(ZTQUEUED) !,"WKLD CODE "_LRCC
 | 
|---|
| 25 |  ...D ^LRCAPV3
 | 
|---|
| 26 |  ...S $P(^LRD(65,LRREC,99,LRTS,1,LRDTTM,1,LRCC,0),"^",3)=1
 | 
|---|
| 27 |  ..Q
 | 
|---|
| 28 | DONOR ;
 | 
|---|
| 29 |  I '$O(^LRE("AA",0)) G FIN
 | 
|---|
| 30 |  S LRERR=0,LRREC="" D FT2
 | 
|---|
| 31 |  I LRERR K ^LRE("AA") D DUMP S ^TMP("LR WL ERRORS",LRX)="BASIC LRE( DATA MISSING" G FIN
 | 
|---|
| 32 |  F  S LRREC=$O(^LRE("AA",LRREC)) Q:LRREC=""  S LRI="",LRFILE=LRREC_";LRE(" F  S LRI=$O(^LRE("AA",LRREC,LRI)) Q:LRI=""  S LRTS="" F  S LRTS=$O(^LRE("AA",LRREC,LRI,LRTS)) Q:LRTS=""  D
 | 
|---|
| 33 |  .S LRDTTM="" F LRDTTM=$O(^LRE("AA",LRREC,LRI,LRTS,LRDTTM)) Q:LRDTTM=""  S LRACC=^(LRDTTM) D
 | 
|---|
| 34 |  ..W:'$D(ZTQUEUED) !?5,"DONOR "_LRDTTM
 | 
|---|
| 35 |  ..S LRCC=0 F  S LRCC=$O(^LRE(LRREC,5,LRI,99,LRTS,1,LRDTTM,1,LRCC)) Q:LRCC<1  D  K ^LRE("AA",LRREC,LRI,LRTS,LRDTTM)
 | 
|---|
| 36 |  ...; LRRRL3 is the log in person, LRRRL4 is location type
 | 
|---|
| 37 |  ...;S $P(^LAB(69.9,1,"NITE"),U,4)=LRREC_"5 "_LRI_"99 "_LRTS_","_LRDTTM_","_LRCC
 | 
|---|
| 38 |  ...S LRX=$G(^LRE(LRREC,5,LRI,99,LRTS,1,LRDTTM,0)),LRRRL3=$P(LRX,U,2)
 | 
|---|
| 39 |  ...S LRX=$G(^LRE(LRREC,5,LRI,99,LRTS,1,LRDTTM,1,LRCC,0)),LRCNT=+$P(LRX,U,2)
 | 
|---|
| 40 |  ...S:'LRCNT LRCNT=1
 | 
|---|
| 41 |  ...S LRCTM=$P(LRDTTM,".",2),LRCDT=$P(LRDTTM,"."),(LRWU,LRCWT)=1
 | 
|---|
| 42 |  ...I $D(^LAM(LRCC,0))#2 S LRX=^(0),LRUW=$P(LRX,"^",3),LRCWT=$P(LRX,"^",11)
 | 
|---|
| 43 |  ...I (LRIN="")!(LRCC="")!(LRCDT="")!(LRCTM="")!(LRTS="") D DUMP Q
 | 
|---|
| 44 |  ...D ^LRCAPV3
 | 
|---|
| 45 |  ...S $P(^LRE(LRREC,5,LRI,99,LRTS,1,LRDTTM,1,LRCC,0),"^",3)=1
 | 
|---|
| 46 |  ..Q
 | 
|---|
| 47 | FIN S $P(^LAB(69.9,1,"NITE"),"^",4)="" L -^LRD(65,"AA") L -^LRE("AA")
 | 
|---|
| 48 |  I $D(ZTQUEUED) S ZTREQ="@"
 | 
|---|
| 49 |  D CLEAN
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 | FT ;
 | 
|---|
| 52 |  S LRX=$G(^LAB(69.9,1,8.1,+$G(^LAB(69.9,1,10)),0)),LRIN=$P(LRX,U),(LRAA,LRMA)=+$P(LRX,U,2),LRLSS=+$P(LRX,U,3) S:'LRLSS LRLSS=LRMA D CHK
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | FT2 ;
 | 
|---|
| 55 |  S LRX=$G(^LAB(69.9,1,8.1,+$G(^LAB(69.9,1,10)),0)),LRIN=$P(LRX,U),(LRAA,LRMA)=+$P(LRX,U,4),LRLSS=+$P(LRX,U,5) S:'LRLSS LRLSS=LRMA D CHK
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 | CHK S LRERR=$S('LRIN:1,'LRMA:1,1:0) Q:LRERR
 | 
|---|
| 58 |  S:'$D(^LRO(68,LRMA,0))#2 LRERR=1 Q:LRERR  S LRX=^(0) I '$P(LRX,U,16) S LRERR=1 Q
 | 
|---|
| 59 |  S:'LRLSS LRLSS=LRMA S LRWA=LRLSS
 | 
|---|
| 60 |  S LRLD=$S($L($P(LRX,U,19)):$P(LRX,U,19),1:"CP")
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | DUMP ;
 | 
|---|
| 63 |  S LRX=$S($D(^TMP("LR WL ERRORS",0))#2:$P(^(0),U,3),1:0)+1,^TMP("LR WL ERRORS",0)=U_U_LRX
 | 
|---|
| 64 |  S LRESTR="BLOOD BANK RECORD= "_$S($D(LRREC):LRREC,1:"")_" TS= "_$S($D(LRTS):LRTS,1:"")_" CC= "_$S($D(LRCC):LRCC,1:"")_" IN= "_$S($D(LRIN):LRIN,1:"")
 | 
|---|
| 65 |  S LRESTR=LRESTR_" CDT= "_$S($D(LRCDT):LRCDT,1:"")_" CT= "_$S($D(LRCTM):LRCTM,1:"")
 | 
|---|
| 66 |  S ^TMP("LR WL ERRORS",LRX,$H)=LRESTR
 | 
|---|
| 67 |  Q
 | 
|---|
| 68 | CLEAN ;
 | 
|---|
| 69 |  Q:$D(TEST)  K LRACC,LRAD,LRCC,LRDTTM,LRCDT,LRCNT,LRCTM,LRFILE,LRIDT,LRIN,LRLSS,LRMA
 | 
|---|
| 70 |  K LROAD,LROL,LRRREC,LRRRL,LRTEC,LRTS,LRUG,LRX,LRZCNT,LRERR,LRQC,LRII
 | 
|---|
| 71 |  K LRNT,LRCWT,LRREC,LRUW,X,LRESTR,LRWA,%,LRLD,LROAD1,LROAD2,LRRRL1
 | 
|---|
| 72 |  K LRRRL2,LRRRL3,LRRRL4,LRI,LRFIRST,LRFNUM,LREND
 | 
|---|
| 73 |  Q
 | 
|---|
| 74 | INIT ;
 | 
|---|
| 75 |  S (LRREC,LRTS,LRACC,LROAD,LROAD1,LROAD2,LRRRL,LRRRL1,LRRRL2,LRRRL3,LROL,LRII,LRIDT,LRTEC,LRFNUM,LRERR)="",LRRRL4="Z",LRUG=50 ; These variables are needed by LRCAPV3
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 | TRAP ;
 | 
|---|
| 78 |  S LREND=1 S:$D(^LAB(69.9,1,"NITE")) $P(^LAB(69.9,1,"NITE"),U,4)="ERROR"_$P(^("NITE"),"^",4) D @^%ZOSF("ERRTN")
 | 
|---|
| 79 |  Q
 | 
|---|