LRMITSR ;VA/SLC/STAFF - MICRO TREND REPORT ;JUL 06, 2010 3:14 PM
;;5.2;LAB SERVICE;**96,257,1027**;NOV 01, 1997
; from LRMITSP
; report may be stopped by stopping task
;
D REPORT I LREND W !!,"Report has been stopped."
W @IOF K LRABRV,LRACC,LRCDATE,LRCNT,LRCOLS,LRDN,LRGPN,LRGPNM,LRGPV,LRHDR,LRHDR1,LRHDRT,LRLINE,LRLINE1,LRN,LRN1,LRN2,LRN3,LRNM
K LRORGN,LRORGNM,LRPAGE,LRPATN,LRPATNM,LRPATNUM,LRPLOS,LRSPACE,LRSPECN,LRSPECNM,LRSTATUS,LRSUBN,LRSUSC,LRTCNT,LRTYPE,LRX
Q
REPORT D ^LRMITSRS
I $D(LRM("O")) D Q:LREND
.S LRPAGE=0,LRPATNUM=+$G(^TMP($J,"O")),LRTYPE="O" D ^LRMITSRH Q:LREND
.S LRORGNM="" F S LRORGNM=$O(^TMP($J,LRTYPE,LRORGNM)) Q:LRORGNM="" D Q:LREND
..S LRORGN=0 F S LRORGN=$O(^TMP($J,LRTYPE,LRORGNM,LRORGN)) Q:LRORGN<1 S LRN1=$G(^(LRORGN,LRORGNM,LRORGN)) D Q:LREND
...I $D(LRM(LRTYPE,"S")),'$D(LRM(LRTYPE,"S",LRORGN)) Q
...D RESULTS
S LRTYPE="" F S LRTYPE=$O(LRM(LRTYPE)) Q:LRTYPE="" I LRTYPE'="O" D Q:LREND
.S LRPAGE=0,LRPATNUM=+$G(^TMP($J,LRTYPE)) D ^LRMITSRH Q:LREND
.S LRGPNM="" F S LRGPNM=$O(^TMP($J,LRTYPE,LRGPNM)) Q:LRGPNM="" D Q:LREND
..S LRGPN="" F S LRGPN=$O(^TMP($J,LRTYPE,LRGPNM,LRGPN)) Q:LRGPN="" S LRGPV=+^(LRGPN) D Q:LREND
...I $D(LRM(LRTYPE,"S")),'$D(LRM(LRTYPE,"S",LRGPN)) Q
...D LCHECK Q:LREND W !,LRGPNM," (",+LRGPV," isolates)",!,"---------------"
...S LRORGNM="" F S LRORGNM=$O(^TMP($J,LRTYPE,LRGPNM,LRGPN,LRORGNM)) Q:LRORGNM="" D Q:LREND
....S LRORGN=0 F S LRORGN=$O(^TMP($J,LRTYPE,LRGPNM,LRGPN,LRORGNM,LRORGN)) Q:LRORGN<1 S LRN1=^(LRORGN) D RESULTS Q:LREND
Q
RESULTS D LCHECK Q:LREND W !,$S($L(LRORGNM)<34:$E(LRORGNM,5,34),1:$P(^LAB(61.2,LRORGN,0),U)) S LROTYPE=$E($P(LRORGNM,"(",2))
S LRX=^TMP($J,LRN1,"C") D LCHECK Q:LREND W !,"(",+LRX," counted, ",+$P(LRX,U,2)," merged, ",+$P(LRX,U,3)," not tested)"
I LROTYPE="B" D Q:LREND
.S LRNODE="^TMP($J,"_$S($D(^TMP($J,"PSRT")):"""PSRT""",1:"""AB""")_",LRAINT)"
.S LRLINE="% sus",LRAINT="" F S LRAINT=$O(@LRNODE) Q:LRAINT="" D
..S LRABRV=$S($D(^TMP($J,"PSRT")):$G(@LRNODE),1:LRAINT)
..Q:LRABRV=""
..S (LRSUSC,LRX)=$G(^TMP($J,LRN1,"C",LRABRV)) I LRX S LRSUSC=$J($P(LRX,U,2)/LRX*100,0,0)
..S LRLINE=LRLINE_"|"_$J(LRSUSC,3)
.S LRLINE=LRLINE_"|" D LCHECK Q:LREND W !,LRLINE
.S LRNODE="^TMP($J,"_$S($D(^TMP($J,"PSRT")):"""PSRT""",1:"""AB""")_",LRAINT)"
.S LRLINE="# ctd",LRAINT="" F S LRAINT=$O(@LRNODE) Q:LRAINT="" D
..Q:LRABRV=""
..S LRABRV=$S($D(^TMP($J,"PSRT")):$G(@LRNODE),1:LRAINT)
..S (LRTCNT,LRX)=$G(^TMP($J,LRN1,"C",LRABRV)) I LRX S LRTCNT=+LRX
..S LRLINE=LRLINE_"|"_$J(LRTCNT,3)
.S LRLINE=LRLINE_"|" D LCHECK Q:LREND W !,LRLINE
; detailed report
Q:'LRDETAIL
S LRPATNM="" F S LRPATNM=$O(^TMP($J,LRN1,"P",LRPATNM)) Q:LRPATNM="" D Q:LREND
.S LRPATN=0 F S LRPATN=$O(^TMP($J,LRN1,"P",LRPATNM,LRPATN)) Q:LRPATN<1 D Q:LREND
..S LRSPECNM="" F S LRSPECNM=$O(^TMP($J,LRN1,"P",LRPATNM,LRPATN,LRSPECNM)) Q:LRSPECNM="" D Q:LREND
...S LRSPECN=0 F S LRSPECN=$O(^TMP($J,LRN1,"P",LRPATNM,LRPATN,LRSPECNM,LRSPECN)) Q:LRSPECN<1 S LRN2=+^(LRSPECN) D Q:LREND
....S LRCDATE=0 F S LRCDATE=$O(^TMP($J,LRN2,LRCDATE)) Q:LRCDATE<1 D Q:LREND
.....S LRSUBN=0 F S LRSUBN=$O(^TMP($J,LRN2,LRCDATE,LRSUBN)) Q:LRSUBN<1 S LRX=^(LRSUBN) D DETAIL Q:LREND
Q
DETAIL S LRN3=+LRX,LRACC=$P(LRX,U,2),LRPLOS=$P(LRX,U,3),LRCOLS=$P($G(^LAB(62,+$P(LRX,U,4),0)),U),LRSTATUS=$P(LRX,U,5) I $L(LRPLOS) S LRPLOS="LOS: "_LRPLOS_" days"
D LCHECK Q:LREND W !?2,LRPATNM," ",?32,LRSPECNM," ",?52,LRACC," ",?66,$$FMTE^XLFDT(LRCDATE\1),?82,LRPLOS I LRSTATUS="M" W " ** merged **"
I LROTYPE="B" D Q:LREND
.S LRNODE="^TMP($J,"_$S($D(^TMP($J,"PSRT")):"""PSRT""",1:"""AB""")_",LRAINT)"
.S LRLINE=LRSPACE,LRAINT="" F S LRAINT=$O(@LRNODE) Q:LRAINT="" D
..S LRABRV=$S($D(^TMP($J,"PSRT")):$G(@LRNODE),1:LRAINT)
..S LRLINE=LRLINE_"|"_$J($P($G(^TMP($J,LRN3,"A",LRABRV)),U),3)
.S LRLINE=LRLINE_"|" D LCHECK Q:LREND W !,LRLINE
I LROTYPE="M",$D(^TMP($J,LRN3,"T")) D Q:LREND
.K LRTEMP,LRTEMPT S LRABRV="" F S LRABRV=$O(^TMP($J,"T",LRABRV)) Q:LRABRV="" S LRTEMP(LRABRV)=LRABRV_"="_^(LRABRV)
.D HLIST^LRMITSRS("LRTEMP","LRTEMPT",", ",IOM-LRSPACE)
.S LRABRV="" F S LRABRV=$O(LRTEMPT(LRABRV)) Q:LRABRV D LCHECK Q:LREND W !?LRSPACE,LRTEMPT(LRABRV)
.K LRTEMP,LRTEMPT
Q
LCHECK I $Y+4>IOSL D ^LRMITSRH
Q
LRMITSR ;VA/SLC/STAFF - MICRO TREND REPORT ;JUL 06, 2010 3:14 PM
+1 ;;5.2;LAB SERVICE;**96,257,1027**;NOV 01, 1997
+2 ; from LRMITSP
+3 ; report may be stopped by stopping task
+4 ;
+5 DO REPORT
IF LREND
WRITE !!,"Report has been stopped."
+6 WRITE @IOF
KILL LRABRV,LRACC,LRCDATE,LRCNT,LRCOLS,LRDN,LRGPN,LRGPNM,LRGPV,LRHDR,LRHDR1,LRHDRT,LRLINE,LRLINE1,LRN,LRN1,LRN2,LRN3,LRNM
+7 KILL LRORGN,LRORGNM,LRPAGE,LRPATN,LRPATNM,LRPATNUM,LRPLOS,LRSPACE,LRSPECN,LRSPECNM,LRSTATUS,LRSUBN,LRSUSC,LRTCNT,LRTYPE,LRX
+8 QUIT
REPORT DO ^LRMITSRS
+1 IF $DATA(LRM("O"))
Begin DoDot:1
+2 SET LRPAGE=0
SET LRPATNUM=+$GET(^TMP($JOB,"O"))
SET LRTYPE="O"
DO ^LRMITSRH
IF LREND
QUIT
+3 SET LRORGNM=""
FOR
SET LRORGNM=$ORDER(^TMP($JOB,LRTYPE,LRORGNM))
IF LRORGNM=""
QUIT
Begin DoDot:2
+4 SET LRORGN=0
FOR
SET LRORGN=$ORDER(^TMP($JOB,LRTYPE,LRORGNM,LRORGN))
IF LRORGN<1
QUIT
SET LRN1=$GET(^(LRORGN,LRORGNM,LRORGN))
Begin DoDot:3
+5 IF $DATA(LRM(LRTYPE,"S"))
IF '$DATA(LRM(LRTYPE,"S",LRORGN))
QUIT
+6 DO RESULTS
End DoDot:3
IF LREND
QUIT
End DoDot:2
IF LREND
QUIT
End DoDot:1
IF LREND
QUIT
+7 SET LRTYPE=""
FOR
SET LRTYPE=$ORDER(LRM(LRTYPE))
IF LRTYPE=""
QUIT
IF LRTYPE'="O"
Begin DoDot:1
+8 SET LRPAGE=0
SET LRPATNUM=+$GET(^TMP($JOB,LRTYPE))
DO ^LRMITSRH
IF LREND
QUIT
+9 SET LRGPNM=""
FOR
SET LRGPNM=$ORDER(^TMP($JOB,LRTYPE,LRGPNM))
IF LRGPNM=""
QUIT
Begin DoDot:2
+10 SET LRGPN=""
FOR
SET LRGPN=$ORDER(^TMP($JOB,LRTYPE,LRGPNM,LRGPN))
IF LRGPN=""
QUIT
SET LRGPV=+^(LRGPN)
Begin DoDot:3
+11 IF $DATA(LRM(LRTYPE,"S"))
IF '$DATA(LRM(LRTYPE,"S",LRGPN))
QUIT
+12 DO LCHECK
IF LREND
QUIT
WRITE !,LRGPNM," (",+LRGPV," isolates)",!,"---------------"
+13 SET LRORGNM=""
FOR
SET LRORGNM=$ORDER(^TMP($JOB,LRTYPE,LRGPNM,LRGPN,LRORGNM))
IF LRORGNM=""
QUIT
Begin DoDot:4
+14 SET LRORGN=0
FOR
SET LRORGN=$ORDER(^TMP($JOB,LRTYPE,LRGPNM,LRGPN,LRORGNM,LRORGN))
IF LRORGN<1
QUIT
SET LRN1=^(LRORGN)
DO RESULTS
IF LREND
QUIT
End DoDot:4
IF LREND
QUIT
End DoDot:3
IF LREND
QUIT
End DoDot:2
IF LREND
QUIT
End DoDot:1
IF LREND
QUIT
+15 QUIT
RESULTS DO LCHECK
IF LREND
QUIT
WRITE !,$SELECT($LENGTH(LRORGNM)<34:$EXTRACT(LRORGNM,5,34),1:$PIECE(^LAB(61.2,LRORGN,0),U))
SET LROTYPE=$EXTRACT($PIECE(LRORGNM,"(",2))
+1 SET LRX=^TMP($JOB,LRN1,"C")
DO LCHECK
IF LREND
QUIT
WRITE !,"(",+LRX," counted, ",+$PIECE(LRX,U,2)," merged, ",+$PIECE(LRX,U,3)," not tested)"
+2 IF LROTYPE="B"
Begin DoDot:1
+3 SET LRNODE="^TMP($J,"_$SELECT($DATA(^TMP($JOB,"PSRT")):"""PSRT""",1:"""AB""")_",LRAINT)"
+4 SET LRLINE="% sus"
SET LRAINT=""
FOR
SET LRAINT=$ORDER(@LRNODE)
IF LRAINT=""
QUIT
Begin DoDot:2
+5 SET LRABRV=$SELECT($DATA(^TMP($JOB,"PSRT")):$GET(@LRNODE),1:LRAINT)
+6 IF LRABRV=""
QUIT
+7 SET (LRSUSC,LRX)=$GET(^TMP($JOB,LRN1,"C",LRABRV))
IF LRX
SET LRSUSC=$JUSTIFY($PIECE(LRX,U,2)/LRX*100,0,0)
+8 SET LRLINE=LRLINE_"|"_$JUSTIFY(LRSUSC,3)
End DoDot:2
+9 SET LRLINE=LRLINE_"|"
DO LCHECK
IF LREND
QUIT
WRITE !,LRLINE
+10 SET LRNODE="^TMP($J,"_$SELECT($DATA(^TMP($JOB,"PSRT")):"""PSRT""",1:"""AB""")_",LRAINT)"
+11 SET LRLINE="# ctd"
SET LRAINT=""
FOR
SET LRAINT=$ORDER(@LRNODE)
IF LRAINT=""
QUIT
Begin DoDot:2
+12 IF LRABRV=""
QUIT
+13 SET LRABRV=$SELECT($DATA(^TMP($JOB,"PSRT")):$GET(@LRNODE),1:LRAINT)
+14 SET (LRTCNT,LRX)=$GET(^TMP($JOB,LRN1,"C",LRABRV))
IF LRX
SET LRTCNT=+LRX
+15 SET LRLINE=LRLINE_"|"_$JUSTIFY(LRTCNT,3)
End DoDot:2
+16 SET LRLINE=LRLINE_"|"
DO LCHECK
IF LREND
QUIT
WRITE !,LRLINE
End DoDot:1
IF LREND
QUIT
+17 ; detailed report
+18 IF 'LRDETAIL
QUIT
+19 SET LRPATNM=""
FOR
SET LRPATNM=$ORDER(^TMP($JOB,LRN1,"P",LRPATNM))
IF LRPATNM=""
QUIT
Begin DoDot:1
+20 SET LRPATN=0
FOR
SET LRPATN=$ORDER(^TMP($JOB,LRN1,"P",LRPATNM,LRPATN))
IF LRPATN<1
QUIT
Begin DoDot:2
+21 SET LRSPECNM=""
FOR
SET LRSPECNM=$ORDER(^TMP($JOB,LRN1,"P",LRPATNM,LRPATN,LRSPECNM))
IF LRSPECNM=""
QUIT
Begin DoDot:3
+22 SET LRSPECN=0
FOR
SET LRSPECN=$ORDER(^TMP($JOB,LRN1,"P",LRPATNM,LRPATN,LRSPECNM,LRSPECN))
IF LRSPECN<1
QUIT
SET LRN2=+^(LRSPECN)
Begin DoDot:4
+23 SET LRCDATE=0
FOR
SET LRCDATE=$ORDER(^TMP($JOB,LRN2,LRCDATE))
IF LRCDATE<1
QUIT
Begin DoDot:5
+24 SET LRSUBN=0
FOR
SET LRSUBN=$ORDER(^TMP($JOB,LRN2,LRCDATE,LRSUBN))
IF LRSUBN<1
QUIT
SET LRX=^(LRSUBN)
DO DETAIL
IF LREND
QUIT
End DoDot:5
IF LREND
QUIT
End DoDot:4
IF LREND
QUIT
End DoDot:3
IF LREND
QUIT
End DoDot:2
IF LREND
QUIT
End DoDot:1
IF LREND
QUIT
+25 QUIT
DETAIL SET LRN3=+LRX
SET LRACC=$PIECE(LRX,U,2)
SET LRPLOS=$PIECE(LRX,U,3)
SET LRCOLS=$PIECE($GET(^LAB(62,+$PIECE(LRX,U,4),0)),U)
SET LRSTATUS=$PIECE(LRX,U,5)
IF $LENGTH(LRPLOS)
SET LRPLOS="LOS: "_LRPLOS_" days"
+1 DO LCHECK
IF LREND
QUIT
WRITE !?2,LRPATNM," ",?32,LRSPECNM," ",?52,LRACC," ",?66,$$FMTE^XLFDT(LRCDATE\1),?82,LRPLOS
IF LRSTATUS="M"
WRITE " ** merged **"
+2 IF LROTYPE="B"
Begin DoDot:1
+3 SET LRNODE="^TMP($J,"_$SELECT($DATA(^TMP($JOB,"PSRT")):"""PSRT""",1:"""AB""")_",LRAINT)"
+4 SET LRLINE=LRSPACE
SET LRAINT=""
FOR
SET LRAINT=$ORDER(@LRNODE)
IF LRAINT=""
QUIT
Begin DoDot:2
+5 SET LRABRV=$SELECT($DATA(^TMP($JOB,"PSRT")):$GET(@LRNODE),1:LRAINT)
+6 SET LRLINE=LRLINE_"|"_$JUSTIFY($PIECE($GET(^TMP($JOB,LRN3,"A",LRABRV)),U),3)
End DoDot:2
+7 SET LRLINE=LRLINE_"|"
DO LCHECK
IF LREND
QUIT
WRITE !,LRLINE
End DoDot:1
IF LREND
QUIT
+8 IF LROTYPE="M"
IF $DATA(^TMP($JOB,LRN3,"T"))
Begin DoDot:1
+9 KILL LRTEMP,LRTEMPT
SET LRABRV=""
FOR
SET LRABRV=$ORDER(^TMP($JOB,"T",LRABRV))
IF LRABRV=""
QUIT
SET LRTEMP(LRABRV)=LRABRV_"="_^(LRABRV)
+10 DO HLIST^LRMITSRS("LRTEMP","LRTEMPT",", ",IOM-LRSPACE)
+11 SET LRABRV=""
FOR
SET LRABRV=$ORDER(LRTEMPT(LRABRV))
IF LRABRV
QUIT
DO LCHECK
IF LREND
QUIT
WRITE !?LRSPACE,LRTEMPT(LRABRV)
+12 KILL LRTEMP,LRTEMPT
End DoDot:1
IF LREND
QUIT
+13 QUIT
LCHECK IF $Y+4>IOSL
DO ^LRMITSRH
+1 QUIT