| 1 | LRAC ;SLC/DCM/MILW/JMC - CUMULATIVE REPORTS DRIVER ;2/20/91  08:33 ; | 
|---|
| 2 | ;;5.2;LAB SERVICE;**172**;Sep 27, 1994 | 
|---|
| 3 | ;Routine has been change to handle separate file room scheduling. | 
|---|
| 4 | ;;Semi-automatic queuing of selected reports can occur by setting-up | 
|---|
| 5 | ;;an action type option:  S LRX(x)="" D CLOCK^LRAC | 
|---|
| 6 | ;;Where 'x' is the internal number of the report desired. | 
|---|
| 7 | ;;Fields 200,201,202 of OPTION file should then be filled in. | 
|---|
| 8 | K DIC,LRX | 
|---|
| 9 | ; | 
|---|
| 10 | ; | 
|---|
| 11 | D ^LRPARAM ;---HOAK FOR PRINTER PROBLEMS | 
|---|
| 12 | ; | 
|---|
| 13 | R !,"Print ALL or SELECTED reports? ALL// ",X:DTIME S:X="" X="A" Q:".^"[X | 
|---|
| 14 | I "AaSs"'[$E(X) S X="?" | 
|---|
| 15 | I X["?" W !?5,"Enter 'S' for SELECTED reports ",!?18,"-or-",!?11,"'A' for ALL reports" G LRAC | 
|---|
| 16 | I "Ss"[$E(X,1) D  Q:'$D(LRX) | 
|---|
| 17 | . W ! ; Allow user to select reports to print. | 
|---|
| 18 | . S DIC="^LAB(64.5,1,3,",DIC(0)="AEMQ",DIC("A")="Select REPORT NAME: " | 
|---|
| 19 | . ; Screen out file room reports if printing separate file room, use appropiate option. | 
|---|
| 20 | . I $P($G(^LAB(64.5,1,6)),U,2) S DIC("S")="I '$P($G(^LAB(64.5,1,3,Y,.1)),U,3)" | 
|---|
| 21 | . F  D ^DIC Q:Y<1  S LRX(+Y)="" | 
|---|
| 22 | . K DIC W ! | 
|---|
| 23 | S U="^" D DT^LRX | 
|---|
| 24 | S ZTRTN="CLOCK^LRAC",ZTIO="",ZTDESC="Laboratory cumulative report" S:$D(LRX) ZTSAVE("LRX*")="" D ^%ZTLOAD | 
|---|
| 25 | K LRX,X,ZTSK,ZTSAVE,ZTDESC,ZTIO,ZTRTN | 
|---|
| 26 | Q | 
|---|
| 27 | ; | 
|---|
| 28 | CLOCK S:$D(ZTQUEUED) ZTREQ="@" K ZTSK | 
|---|
| 29 | CL2 Q:'$D(^LAB(64.5,1,3))!($D(^LAC("LRAC","A"))) | 
|---|
| 30 | S LRXLR="LRAC" S:'$D(LRPERM) LRPERM=0 | 
|---|
| 31 | S LRFRSEP=$P($G(^LAB(64.5,1,6)),U,2) ; Set flag if printing separate file rooms. | 
|---|
| 32 | I $D(XRTL) S XRTN="LRAC" D T0^%ZOSV ; START RESPONSE TIMING LOG | 
|---|
| 33 | I '$D(LRDT) S %DT="",X="T-1" D ^%DT S LRDT=Y | 
|---|
| 34 | L +^LAB(64.5) | 
|---|
| 35 | ;---last date cime printed--\/ | 
|---|
| 36 | S LRLDT=$P(^LAB(64.5,1,0),U,3) | 
|---|
| 37 | ; | 
|---|
| 38 | I $L(LRLDT) D:LRDT'=LRLDT ^LRACK | 
|---|
| 39 | S %DT="",X="T" D ^%DT S LRYDT=Y,U="^",LRBOT=$P(^LAB(64.5,1,0),U,2) | 
|---|
| 40 | I LRDT'=LRLDT D ENT^LRACKL S $P(^LAB(64.5,1,0),U,3)=LRDT,$P(^(0),U,7)=LRLDT | 
|---|
| 41 | L -^LAB(64.5) S LRRE=0 | 
|---|
| 42 | I '$D(LRX) D CL3 | 
|---|
| 43 | I $D(LRX) D CL4 | 
|---|
| 44 | I $D(XRTL),$D(XTR0) S XRTN="LRAC" D T1^%ZOSV ;STOP RESPONSE TIME LOG | 
|---|
| 45 | K LRRE,LRX,LRXLR,X1,X2,Z | 
|---|
| 46 | Q | 
|---|
| 47 | CL3 ; Task "ALL" reports except file room if file room on separate schedule. | 
|---|
| 48 | S LRRPTN=0 | 
|---|
| 49 | F  S LRRPTN=$O(^LAB(64.5,1,3,LRRPTN)) Q:LRRPTN<1  D | 
|---|
| 50 | . S X=$G(^LAB(64.5,1,3,LRRPTN,.1)) Q:$P(X,U,2)  ; Don't start "manual" reports. | 
|---|
| 51 | . I LRFRSEP,$P(X,U,3) Q  ; Don't start "File Room" report if on separate schedule. | 
|---|
| 52 | . S IOP=$P(X,U,1) D:IOP'="" CL3A | 
|---|
| 53 | K LRBOT,LRDFN,LRDT,LRFRSEP,LRLDT,LRLLOC,LRNM,LRRPTN,LRYDT,X,Y,ZTSAVE,ZTSK | 
|---|
| 54 | Q | 
|---|
| 55 | ; | 
|---|
| 56 | CL3A ; Task the actual reports to run. | 
|---|
| 57 | N ZTIO ; Tasked jobs have ZTIO defined, want ZTLOAD to build from IO* variables. | 
|---|
| 58 | S %ZIS="N" D ^%ZIS I POP D ^%ZISC Q | 
|---|
| 59 | S ZTRTN="ENT^LRAC1",ZTDTH=$H,ZTDESC="Laboratory cumulative report" K ZTSK | 
|---|
| 60 | F I="LRPERM","LRXLR","LRDT","LRLDT","LRYDT","LRBOT","LRRE","LRRPTN" S ZTSAVE(I)="" | 
|---|
| 61 | D ^%ZTLOAD,^%ZISC | 
|---|
| 62 | Q | 
|---|
| 63 | ; | 
|---|
| 64 | CL4 ; Task selected reports. | 
|---|
| 65 | S LRRPTN=0 | 
|---|
| 66 | F  S LRRPTN=$O(^LAB(64.5,1,3,LRRPTN)) Q:LRRPTN<1  I $D(LRX(LRRPTN)) D | 
|---|
| 67 | . S X=$G(^LAB(64.5,1,3,LRRPTN,.1)) | 
|---|
| 68 | . I LRFRSEP,$P(X,U,3) Q  ; Don't start "File Room" report if on separate schedule. | 
|---|
| 69 | . S IOP=$P(X,U,1) D:IOP'="" CL3A | 
|---|
| 70 | K LRBOT,LRDFN,LRDT,LRFRSEP,LRLDT,LRLLOC,LRNM,LRRPTN,LRX,LRYDT,X,Y,ZTSAVE,ZTSK | 
|---|
| 71 | Q | 
|---|