| 1 | LRCAPR2 ;DALOI/PAC/FHS/JBM - WKLD REP GENERATOR-BUILD ;10/11/92 01:55
 | 
|---|
| 2 |  ;;5.2;LAB SERVICE;**88,105,263,264**;Sep 27, 1994
 | 
|---|
| 3 |  ; Reference to  ^DIC(4 Supported by Reference #10090
 | 
|---|
| 4 |  ; Reference to  ^SC(  Supported by Reference #10040
 | 
|---|
| 5 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 6 |  K ^TMP("LR",$J) D DATE,^LRCAPR3
 | 
|---|
| 7 |  K LRLDIV,LRDIV
 | 
|---|
| 8 |  Q
 | 
|---|
| 9 | DATE ;
 | 
|---|
| 10 |  N LRNOP
 | 
|---|
| 11 |  I LRTO<LRFR S X=LRFR,LRFR=LRTO,LRTO=X
 | 
|---|
| 12 |  S LRST=LRFR-.000001
 | 
|---|
| 13 |  F  S LRST=$O(^LRO(68,LRAA,1,LRST)) Q:'LRST!(LRST>LRTO)  D
 | 
|---|
| 14 |  . S LRNT=0
 | 
|---|
| 15 |  . F  S LRNT=$O(^LRO(68,LRAA,1,LRST,1,LRNT)) Q:'LRNT  D ACC
 | 
|---|
| 16 |  Q
 | 
|---|
| 17 | ACC ;
 | 
|---|
| 18 |  S LRACCREC=$G(^LRO(68,LRAA,1,LRST,1,LRNT,0)) Q:LRACCREC=""  D
 | 
|---|
| 19 |  . S LRDIV=+$P($G(^(.3)),U,2)
 | 
|---|
| 20 |  S LRFIL=+$P(LRACCREC,U,2) Q:'LRFIL  Q:(LRFIL>67.3)&(LRFIL<67.9999)
 | 
|---|
| 21 |  S LRLTYP=$P(LRACCREC,U,11)
 | 
|---|
| 22 |  S LRPATOK=$$CHKPAT(LRIOPAT,LRLTYP,LRFIL) Q:'+LRPATOK
 | 
|---|
| 23 |  S LRPTYP=$E(LRPATOK,2)
 | 
|---|
| 24 |  S LRLC=+$P(LRACCREC,U,13)
 | 
|---|
| 25 | ACC1 D  Q:$G(LRNOP)
 | 
|---|
| 26 |  . S LRNOP=1
 | 
|---|
| 27 |  . I '$G(LRLOC),'$G(LRLDIV) S LRNOP=0 Q
 | 
|---|
| 28 |  . I $G(LRDIV),'$G(LRLDIV) S LRNOP=0 Q
 | 
|---|
| 29 |  . I $G(LRDIV),$G(LRLDIV),$D(LRLDIV(LRDIV)) S LRNOP=0 Q
 | 
|---|
| 30 |  . I '$G(LRLC),'$G(LRLOC),$G(LRFIL)=62.3 S LRNOP=0 Q
 | 
|---|
| 31 |  . I $G(LRLC),'$G(LRLOC) S LRNOP=0 Q
 | 
|---|
| 32 |  . I $G(LRLC),$G(LRLOC),$D(LRLOC(LRLC)) S LRNOP=0
 | 
|---|
| 33 |  . I $G(LRCNTL) S LRNOP=0
 | 
|---|
| 34 |  D
 | 
|---|
| 35 |  . I 'LRLC S LRLC="*MISSING LOC* ["_LRFIL_"]" Q
 | 
|---|
| 36 |  . I +LRLC S LRLC=$P($G(^SC(+LRLC,0)),U) I $L(LRLC) S LRLC=LRLC_" ["_LRFIL_"]"
 | 
|---|
| 37 |  . I LRLDIV,LRDIV,$D(^DIC(4,LRDIV,0))#2 S LRLC=$P(^(0),U)_" ["_LRFIL_"]" Q
 | 
|---|
| 38 |  S LRAANO=$S($D(^LRO(68,LRAA,1,LRST,1,LRNT,.2)):^(.2),1:"NO ACCN")
 | 
|---|
| 39 |  S LRSTCS=$G(^LRO(68,LRAA,1,LRST,1,LRNT,5,1,0)) Q:'LRSTCS
 | 
|---|
| 40 |  I LRSP Q:'$P(LRSTCS,U)  Q:'$D(LRSP($P(LRSTCS,U)))
 | 
|---|
| 41 |  I LRCOL Q:'$P(LRSTCS,U,2)  Q:'$D(LRCOL($P(LRSTCS,U,2)))
 | 
|---|
| 42 |  S LRTST=0
 | 
|---|
| 43 |  F  S LRTST=$O(^LRO(68,LRAA,1,LRST,1,LRNT,4,LRTST)) Q:'LRTST  D TEST
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 | TEST ;
 | 
|---|
| 46 |  I LRTSTS,'$D(LRTSTS(LRTST)) Q
 | 
|---|
| 47 |  Q:'$D(^LRO(68,LRAA,1,LRST,1,LRNT,4,LRTST,0))#2  S LRNX=^(0) Q:'$P(LRNX,U,5)
 | 
|---|
| 48 |  S LRNX5=$P(LRNX,U,5),LRNX5D=$P(LRNX5,"."),LRURG=$P(LRNX,U,2)
 | 
|---|
| 49 |  I $G(LRSTAT) Q:LRURG=""  Q:'$D(LRSTAT(LRURG))#2
 | 
|---|
| 50 |  S LRURGNAM=$S(LRURG="":"",$D(LRSTAT(LRURG))#2:LRSTAT(LRURG),1:"")
 | 
|---|
| 51 |  S LRTEST=$$TST(LRTST)
 | 
|---|
| 52 |  S LRNX5=$S($L(LRTOV,".")=1:$P(LRNX5,"."),1:LRNX5)
 | 
|---|
| 53 |  S LRCPN=0 D LRCC
 | 
|---|
| 54 |  Q 
 | 
|---|
| 55 | LRCC ;
 | 
|---|
| 56 |  S LRCPN=$O(^LRO(68,LRAA,1,LRST,1,LRNT,4,LRTST,1,LRCPN)) Q:'LRCPN  S LRNODE=$G(^(LRCPN,0)) G:'LRNODE LRCC
 | 
|---|
| 57 |  I LRSITSEL,'$D(LRSITSEL(+$P(LRNODE,U,8))) G LRCC
 | 
|---|
| 58 |  I LRCAPS,'$D(LRCAPS(+LRNODE)) G LRCC
 | 
|---|
| 59 |  S LRCAPNAM=$$WKLDNAME^LRCAPU(+LRNODE)
 | 
|---|
| 60 |  I (LRRTYP=2)&('LRCAPFLG) G LRCC
 | 
|---|
| 61 |  I (LRRTYP=3)&(LRCAPFLG) G LRCC
 | 
|---|
| 62 |  S:(LRCAPFLG)&($E(LRTEST)'="+") LRTEST="+"_LRTEST
 | 
|---|
| 63 |  S LRCP=LRCAPNUM G:'LRCP LRCC
 | 
|---|
| 64 |  S LRDOT="."_$P(LRCP,".",2)
 | 
|---|
| 65 |  S LRTESTCP=$E(LRTEST_"       ",1,8)_" ["_LRCP_"]"
 | 
|---|
| 66 |  I LRCPSX,'$D(LRCPSX(LRDOT)) G LRCC
 | 
|---|
| 67 |  S LRMACN=+$O(^LAB(64.2,"F",LRDOT,0))
 | 
|---|
| 68 |  S LRMAC=$S($L($G(^LAB(64.2,LRMACN,0))):$P(^(0),U),1:"ERROR"_LRMACN)
 | 
|---|
| 69 |  S:'$D(^TMP("LR",$J,"TST/TOT")) ^("TST/TOT")=0  S ^("TST/TOT")=^("TST/TOT")+1
 | 
|---|
| 70 |  S:'$D(^TMP("LR",$J,"TST",LRTEST)) ^(LRTEST)=0 S ^(LRTEST)=^(LRTEST)+1
 | 
|---|
| 71 |  S:'$D(^TMP("LR",$J,"TST",LRTEST,LRLC)) ^(LRLC)=0 S ^(LRLC)=^(LRLC)+1
 | 
|---|
| 72 |  S:'$D(^TMP("LR",$J,"TST",LRTEST,LRLC,LRCP)) ^(LRCP)=0 S ^(LRCP)=^(LRCP)+1,J=^(LRCP)
 | 
|---|
| 73 |  S ^TMP("LR",$J,"TST",LRTEST,LRLC,LRCP,LRAANO,(J+1))=LRNX5_U_LRMAC_U_LRURGNAM
 | 
|---|
| 74 |  S:'$D(^TMP("LR",$J,"TST/LOC",LRLC)) ^(LRLC)=0 S ^(LRLC)=^(LRLC)+1
 | 
|---|
| 75 |  S:'$D(^TMP("LR",$J,"TST/LRM",LRMAC)) ^(LRMAC)=0 S ^(LRMAC)=^(LRMAC)+1
 | 
|---|
| 76 |  S:'$D(^TMP("LR",$J,"TST/LRM",LRMAC,LRTESTCP)) ^(LRTESTCP)=0 S ^(LRTESTCP)=^(LRTESTCP)+1
 | 
|---|
| 77 |  I $G(LRCTL),$G(LRCNTL) D
 | 
|---|
| 78 |  . S:'$D(^TMP("LR",$J,"TST/CTL",LRMAC)) ^(LRMAC)=0 S ^(LRMAC)=^(LRMAC)+1
 | 
|---|
| 79 |  . S:'$D(^TMP("LR",$J,"TST/CTL",LRMAC,LRTESTCP)) ^(LRTESTCP)=0 S ^(LRTESTCP)=^(LRTESTCP)+1
 | 
|---|
| 80 |  I LRURGNAM'="" D
 | 
|---|
| 81 |  . S:'$D(^TMP("LR",$J,"TST/URG",LRPTYP,LRURGNAM)) ^(LRURGNAM)=0 S ^(LRURGNAM)=^(LRURGNAM)+1
 | 
|---|
| 82 |  . S:'$D(^TMP("LR",$J,"TST/URG",LRPTYP,LRURGNAM,LRTEST)) ^(LRTEST)=0 S ^(LRTEST)=^(LRTEST)+1
 | 
|---|
| 83 |  . S:'$D(^TMP("LR",$J,"TST/URG","A",LRURGNAM)) ^(LRURGNAM)=0 S ^(LRURGNAM)=^(LRURGNAM)+1
 | 
|---|
| 84 |  . S:'$D(^TMP("LR",$J,"TST/URG","A",LRURGNAM,LRTEST)) ^(LRTEST)=0 S ^(LRTEST)=^(LRTEST)+1
 | 
|---|
| 85 |  S:'$D(^TMP("LR",$J,"DATE",LRNX5D)) ^(LRNX5D)=0 S ^(LRNX5D)=^(LRNX5D)+1
 | 
|---|
| 86 |  S:'$D(^TMP("LR",$J,"DATE",LRNX5D,LRTESTCP)) ^(LRTESTCP)=0 S ^(LRTESTCP)=^(LRTESTCP)+1
 | 
|---|
| 87 |  S:'$D(^TMP("LR",$J,"DAY",LRNX5D)) ^(LRNX5D)=0 S ^(LRNX5D)=^(LRNX5D)+1
 | 
|---|
| 88 |  S:'$D(^TMP("LR",$J,"DAY",LRNX5D,LRMAC)) ^(LRMAC)=0 S ^(LRMAC)=^(LRMAC)+1
 | 
|---|
| 89 |  S:'$D(^TMP("LR",$J,"DAY",LRNX5D,LRMAC,LRTESTCP)) ^(LRTESTCP)=0 S ^(LRTESTCP)=^(LRTESTCP)+1,J=^(LRTESTCP)
 | 
|---|
| 90 |  G LRCC
 | 
|---|
| 91 |  Q
 | 
|---|
| 92 | TST(X) ; this returns the print test name otherwise the test name.
 | 
|---|
| 93 |  N LRDA
 | 
|---|
| 94 |  ;tests are truncated if greater than 7 chars long
 | 
|---|
| 95 |  S LRDA=$G(X) Q:'LRDA "Unknown"
 | 
|---|
| 96 |  Q:'$D(^LAB(60,LRDA,0))#2 "Unknown"
 | 
|---|
| 97 |  Q:$P($G(^LAB(60,LRDA,.1)),U)'="" $P($G(^(.1)),U)
 | 
|---|
| 98 |  Q $S($L($P(^LAB(60,LRDA,0),U))>7:$E($P(^LAB(60,LRDA,0),U),1,6)_"*",1:$P(^LAB(60,LRDA,0),U))
 | 
|---|
| 99 | CHKPAT(LRIOPAT,LRLTYP,LRFIL) ; return flag indicating if this record is for
 | 
|---|
| 100 |  ; a patient type selected for this report and if so, what type.
 | 
|---|
| 101 |  S LRCNTL=$S(LRFIL=62.3:1,1:0)
 | 
|---|
| 102 |  ; I LRIOPAT["A" Q "1A"  ;All Patients
 | 
|---|
| 103 |  I ("ORW"[LRLTYP)&((LRFIL=2))&((LRIOPAT["I")) Q "1I" ;       Inpatient
 | 
|---|
| 104 |  I ("ORW"'[LRLTYP)&((LRFIL=2))&((LRIOPAT["O")) Q "1O" ;    Outpatient
 | 
|---|
| 105 |  I LRFIL'=2,LRIOPAT["R" Q "1R" ;     Other
 | 
|---|
| 106 |  Q 0
 | 
|---|