LRTT5 ;DALISC/FHS - LAB URGENCY TURNAROUND TIMES ; 12/3/1997
;;5.2;LAB SERVICE;**153,201**;Sep 27, 1994
EN ;
ONE S LREND=0 D ^LRPARAM G:$G(LREND) STOP
S LRPTITLE="Urgency Turnaround Time",LRPQNUM=1 K LRPQ
; from LRTT5
; get default dates from QUIC Extract file - if current survey
W @IOF S LRPOPTN="",LREDT=LRDT0
D TITLE("TQD")
D ^LRWU3 G:$G(LREND) STOP S LRPSDT=LRSDT,LRPEDT=LREDT
W !!,"Select the laboratory tests to be used in this report --",!
K DIC,^TMP("LRTT5",$J) S DIC=60,DIC(0)="AEMOQZ",DIC("A")=" LABORATORY TEST: "
S ^TMP("LRTT5",$J,0)=DT_U_DT_U_"LAB URGENCY TURNAROUND TIMES"
F D ^DIC Q:Y<1 S ^TMP("LRTT5",$J,"TESTS",+Y)=$P(Y(0),U)
K DIC I '$D(^TMP("LRTT5",$J,"TESTS")) G STOP
W !!,"Urgencies:" S LRX=0 F S LRX=$O(^LAB(62.05,LRX)) Q:LRX>49!(LRX<1) W:$D(^(LRX,0)) !?10,$P(^(0),U)
W !,"Enter all urgencies you want extracted." S DIC=62.05,DIC(0)="AEMOQZ",DIC("A")=" URGENCY: ",DIC("S")="I +Y<49"
F D ^DIC Q:Y<1 S LRPQ("URGENCY",+Y)=$P(Y(0),U) S:$D(^LAB(62.05,(+Y+50),0)) LRPQ("URGENCY",(+Y+50))=$P(^(0),U)
K DIC I '$D(LRPQ("URGENCY")) G STOP
K DIC,DIR S DIR(0)="PO^DIC(4,:AENM",DIR("A")="Select Division(s) "
W !!?10,"<Optional Screen> Press return to select all divisions",! D
. F D READ Q:$G(LREND)!(Y<1) S LRLLOC(+Y)=Y
I $D(LRPQ) D DETAIL I LRPDET<0 K LRPQ
I $D(LRPQ) D DEV
D CLEANUP
Q
DETAIL ; detailed report=1, no detailed report=0, exit=-1
F W !!,"Include a detailed report" S %=2 D YN^DICN Q:% W " enter 'Y'es or 'N'o"
S LRPDET=$S(%=1:1,%=2:0,1:-1)
Q
DEV ;
W !! S %ZIS="Q" D ^%ZIS I POP Q
I '$D(IO("Q")) D REPORT Q
S ZTIO=ION,ZTSAVE("^TMP(""LRTT5"",$J,")="",ZTSAVE("LR*")="",ZTDESC="LAB - "_LRPTITLE,ZTRTN="REPORT^LRTT5" D ^%ZTLOAD W !,$S($D(ZTSK):"Request queued",1:"Request canceled") D HOME^%ZIS K ZTSK Q
Q
REPORT ; dequeued
K ^TMP("LR",$J) S ^TMP("LR",$J,0)=DT_U_DT_U_"LAB URGENCY TURNAROUND TIMES"
D ONE^LRTT5P1
S LRPNOW=$$NOW^XLFDT,LRPTBF=$$FMTE^XLFDT(LRPSDT),LRPTEF=$$FMTE^XLFDT(LRPEDT)
U IO W:$E(IOST,1,2)="C-" @IOF D HDR
I $O(^TMP("LR",$J,0))="" W !!!,"No data to report" G CLEANUP
D ONE^LRTT5R1
I '$G(LREND) W !!?20,"****** END OF REPORT ********"
D CLEANUP
Q
LNCHECK ; from LRTT5R*
Q:$G(LREND) I $Y>(IOSL-6) D
. I $E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR S:$G(DIRUT) LREND=1 Q:LREND D DHDR Q
. D DHDR
Q
DHDR ; from LRTT5R*
Q:$G(LREND) W @IOF D HDR S LRPPAGE=$G(LRPPAGE)+1,LRPDTHDR="LEDI - "_LRPTITLE_" - DETAILED " W ?(IOM-$L(LRPDTHDR)\2),LRPDTHDR,?(IOM-15),"PAGE ",LRPPAGE,!,LRPDHEAD,!
Q
HDR Q:$G(LREND)
F LRPLN=$G(LRPVAMC),"LEDI Management Report - "_LRPTITLE,"From "_LRPTBF_" To "_LRPTEF,"Date Printed: "_$$FMTE^XLFDT($$NOW^XLFDT) W !?(IOM-$L(LRPLN)\2),LRPLN
S LRPLN="",$P(LRPLN,"_",IOM+1)="" W !,LRPLN,!
Q
CLEANUP ;
STOP K ^TMP("LR",$J),^TMP("LRTT5",$J) I $D(ZTQUEUED) S ZTREQ="@"
W !! W:$E(IOST,1,2)="P-" @IOF D ^%ZISC
K %,%I,%DT,%ZIS,%T,%Y,C,DIC,DFN,DTOUT,DUOUT,POP,DIR,LRPVAMC
K LRAA,LRAASUB,LRAAT,LRPAC,LRPALOC,LRPALRSP,LRAN,LRPCNT,LRPDET,LRDPF
K LRPDHEAD,LRPDIFF,LRPDNODE,LRPDTHDR,LRPDTYPE,LRPITB,LRPITE,LRAD,LRPLINE,LRPLN
K LRLOC,LRLLOC,LRLOC44,LRLOCX,LRPLRAC,LRPLRDC,LRPLRDFN,LRPLRDN,LRPLRIDT,LRPLRRX,LRPLRRX1,LRPLRRX2
K LRPLRSP,LRPLRSS,LRPLRST,LRPLRT,LRPLRTN,LRPLRTS,LRPMERGE,LRPN,LRPNN,LRPNNUM,LRPNOW
K LRPNT,LRPNUM,LRPOC,LRPOCM,LRPOCNT,LRPOCT,LRPOCTT,LRPOK,LRPOOS,LRPORG,LRPORGN,LRPOS,LRPPAGE
K LRPPATN,LRPPDOC,LRPQ,LRPQNUM,LRPRX1D,LRPRX1T,LRPSP,LRPSPEC,LRPSPN,LRPTB,LRPTBF
K LRPTE,LRPTEF,LRTEST,LRTESTN,LRPTITLE,LRPTYPE,LRX,LREDT,LRSDT
K LRPERR,VA,VADM,VAIN,X,X1,X2,Y,ZTDESC,ZTRTN,ZTSAVE,ZTSK,LRPSDT
K LRPEDT,LRPOPTN,LREND
Q
LRTT5U ;
TITLE(LRPUTYPE) ; from LRTT5, LRTT5A, displays "T" title, "Q" question, "D" description
I LRPUTYPE["T" S LRPLN="LEDI Utility - "_LRPTITLE W !!?(IOM-$L(LRPLN)\2),LRPLN,!
I LRPUTYPE["D" D
.I LRPQNUM=1 F LRPOS=1:1 S LRPLN=$P($T(ONED+LRPOS),";;",2) Q:LRPLN="" W !,$$CJ^XLFSTR(LRPLN,IOM)
.W !!
Q
ONED ; description 1
;;This option generates a report of the turnaround time for selected lab
;;tests. Enter only those urgencies you want extracted. WKLD urgencies will
;;be included for each normal urgency selected. Enter the
;;test(s) you want the report display.
;; -
;;A detailed report is available to show the data being used to
;;compute the turnaround times.
;; -
;;Regular hours are from 7:01 AM to 5:00PM
;;Irregular hours includes all other times, holidays and weekends.
;;
;
;
Q
READ ;
D ^DIR S:$D(DTOUT)!($D(DUOUT)) LREND=1
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRTT5 4515 printed Nov 22, 2024@17:31:14 Page 2
LRTT5 ;DALISC/FHS - LAB URGENCY TURNAROUND TIMES ; 12/3/1997
+1 ;;5.2;LAB SERVICE;**153,201**;Sep 27, 1994
EN ;
ONE SET LREND=0
DO ^LRPARAM
if $GET(LREND)
GOTO STOP
+1 SET LRPTITLE="Urgency Turnaround Time"
SET LRPQNUM=1
KILL LRPQ
+2 ; from LRTT5
+3 ; get default dates from QUIC Extract file - if current survey
+4 WRITE @IOF
SET LRPOPTN=""
SET LREDT=LRDT0
+5 DO TITLE("TQD")
+6 DO ^LRWU3
if $GET(LREND)
GOTO STOP
SET LRPSDT=LRSDT
SET LRPEDT=LREDT
+7 WRITE !!,"Select the laboratory tests to be used in this report --",!
+8 KILL DIC,^TMP("LRTT5",$JOB)
SET DIC=60
SET DIC(0)="AEMOQZ"
SET DIC("A")=" LABORATORY TEST: "
+9 SET ^TMP("LRTT5",$JOB,0)=DT_U_DT_U_"LAB URGENCY TURNAROUND TIMES"
+10 FOR
DO ^DIC
if Y<1
QUIT
SET ^TMP("LRTT5",$JOB,"TESTS",+Y)=$PIECE(Y(0),U)
+11 KILL DIC
IF '$DATA(^TMP("LRTT5",$JOB,"TESTS"))
GOTO STOP
+12 WRITE !!,"Urgencies:"
SET LRX=0
FOR
SET LRX=$ORDER(^LAB(62.05,LRX))
if LRX>49!(LRX<1)
QUIT
if $DATA(^(LRX,0))
WRITE !?10,$PIECE(^(0),U)
+13 WRITE !,"Enter all urgencies you want extracted."
SET DIC=62.05
SET DIC(0)="AEMOQZ"
SET DIC("A")=" URGENCY: "
SET DIC("S")="I +Y<49"
+14 FOR
DO ^DIC
if Y<1
QUIT
SET LRPQ("URGENCY",+Y)=$PIECE(Y(0),U)
if $DATA(^LAB(62.05,(+Y+50),0))
SET LRPQ("URGENCY",(+Y+50))=$PIECE(^(0),U)
+15 KILL DIC
IF '$DATA(LRPQ("URGENCY"))
GOTO STOP
+16 KILL DIC,DIR
SET DIR(0)="PO^DIC(4,:AENM"
SET DIR("A")="Select Division(s) "
+17 WRITE !!?10,"<Optional Screen> Press return to select all divisions",!
Begin DoDot:1
+18 FOR
DO READ
if $GET(LREND)!(Y<1)
QUIT
SET LRLLOC(+Y)=Y
End DoDot:1
+19 IF $DATA(LRPQ)
DO DETAIL
IF LRPDET<0
KILL LRPQ
+20 IF $DATA(LRPQ)
DO DEV
+21 DO CLEANUP
+22 QUIT
DETAIL ; detailed report=1, no detailed report=0, exit=-1
+1 FOR
WRITE !!,"Include a detailed report"
SET %=2
DO YN^DICN
if %
QUIT
WRITE " enter 'Y'es or 'N'o"
+2 SET LRPDET=$SELECT(%=1:1,%=2:0,1:-1)
+3 QUIT
DEV ;
+1 WRITE !!
SET %ZIS="Q"
DO ^%ZIS
IF POP
QUIT
+2 IF '$DATA(IO("Q"))
DO REPORT
QUIT
+3 SET ZTIO=ION
SET ZTSAVE("^TMP(""LRTT5"",$J,")=""
SET ZTSAVE("LR*")=""
SET ZTDESC="LAB - "_LRPTITLE
SET ZTRTN="REPORT^LRTT5"
DO ^%ZTLOAD
WRITE !,$SELECT($DATA(ZTSK):"Request queued",1:"Request canceled")
DO HOME^%ZIS
KILL ZTSK
QUIT
+4 QUIT
REPORT ; dequeued
+1 KILL ^TMP("LR",$JOB)
SET ^TMP("LR",$JOB,0)=DT_U_DT_U_"LAB URGENCY TURNAROUND TIMES"
+2 DO ONE^LRTT5P1
+3 SET LRPNOW=$$NOW^XLFDT
SET LRPTBF=$$FMTE^XLFDT(LRPSDT)
SET LRPTEF=$$FMTE^XLFDT(LRPEDT)
+4 USE IO
if $EXTRACT(IOST,1,2)="C-"
WRITE @IOF
DO HDR
+5 IF $ORDER(^TMP("LR",$JOB,0))=""
WRITE !!!,"No data to report"
GOTO CLEANUP
+6 DO ONE^LRTT5R1
+7 IF '$GET(LREND)
WRITE !!?20,"****** END OF REPORT ********"
+8 DO CLEANUP
+9 QUIT
LNCHECK ; from LRTT5R*
+1 if $GET(LREND)
QUIT
IF $Y>(IOSL-6)
Begin DoDot:1
+2 IF $EXTRACT(IOST,1,2)="C-"
KILL DIR
SET DIR(0)="E"
DO ^DIR
if $GET(DIRUT)
SET LREND=1
if LREND
QUIT
DO DHDR
QUIT
+3 DO DHDR
End DoDot:1
+4 QUIT
DHDR ; from LRTT5R*
+1 if $GET(LREND)
QUIT
WRITE @IOF
DO HDR
SET LRPPAGE=$GET(LRPPAGE)+1
SET LRPDTHDR="LEDI - "_LRPTITLE_" - DETAILED "
WRITE ?(IOM-$LENGTH(LRPDTHDR)\2),LRPDTHDR,?(IOM-15),"PAGE ",LRPPAGE,!,LRPDHEAD,!
+2 QUIT
HDR if $GET(LREND)
QUIT
+1 FOR LRPLN=$GET(LRPVAMC),"LEDI Management Report - "_LRPTITLE,"From "_LRPTBF_" To "_LRPTEF,"Date Printed: "_$$FMTE^XLFDT($$NOW^XLFDT)
WRITE !?(IOM-$LENGTH(LRPLN)\2),LRPLN
+2 SET LRPLN=""
SET $PIECE(LRPLN,"_",IOM+1)=""
WRITE !,LRPLN,!
+3 QUIT
CLEANUP ;
STOP KILL ^TMP("LR",$JOB),^TMP("LRTT5",$JOB)
IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+1 WRITE !!
if $EXTRACT(IOST,1,2)="P-"
WRITE @IOF
DO ^%ZISC
+2 KILL %,%I,%DT,%ZIS,%T,%Y,C,DIC,DFN,DTOUT,DUOUT,POP,DIR,LRPVAMC
+3 KILL LRAA,LRAASUB,LRAAT,LRPAC,LRPALOC,LRPALRSP,LRAN,LRPCNT,LRPDET,LRDPF
+4 KILL LRPDHEAD,LRPDIFF,LRPDNODE,LRPDTHDR,LRPDTYPE,LRPITB,LRPITE,LRAD,LRPLINE,LRPLN
+5 KILL LRLOC,LRLLOC,LRLOC44,LRLOCX,LRPLRAC,LRPLRDC,LRPLRDFN,LRPLRDN,LRPLRIDT,LRPLRRX,LRPLRRX1,LRPLRRX2
+6 KILL LRPLRSP,LRPLRSS,LRPLRST,LRPLRT,LRPLRTN,LRPLRTS,LRPMERGE,LRPN,LRPNN,LRPNNUM,LRPNOW
+7 KILL LRPNT,LRPNUM,LRPOC,LRPOCM,LRPOCNT,LRPOCT,LRPOCTT,LRPOK,LRPOOS,LRPORG,LRPORGN,LRPOS,LRPPAGE
+8 KILL LRPPATN,LRPPDOC,LRPQ,LRPQNUM,LRPRX1D,LRPRX1T,LRPSP,LRPSPEC,LRPSPN,LRPTB,LRPTBF
+9 KILL LRPTE,LRPTEF,LRTEST,LRTESTN,LRPTITLE,LRPTYPE,LRX,LREDT,LRSDT
+10 KILL LRPERR,VA,VADM,VAIN,X,X1,X2,Y,ZTDESC,ZTRTN,ZTSAVE,ZTSK,LRPSDT
+11 KILL LRPEDT,LRPOPTN,LREND
+12 QUIT
LRTT5U ;
TITLE(LRPUTYPE) ; from LRTT5, LRTT5A, displays "T" title, "Q" question, "D" description
+1 IF LRPUTYPE["T"
SET LRPLN="LEDI Utility - "_LRPTITLE
WRITE !!?(IOM-$LENGTH(LRPLN)\2),LRPLN,!
+2 IF LRPUTYPE["D"
Begin DoDot:1
+3 IF LRPQNUM=1
FOR LRPOS=1:1
SET LRPLN=$PIECE($TEXT(ONED+LRPOS),";;",2)
if LRPLN=""
QUIT
WRITE !,$$CJ^XLFSTR(LRPLN,IOM)
+4 WRITE !!
End DoDot:1
+5 QUIT
ONED ; description 1
+1 ;;This option generates a report of the turnaround time for selected lab
+2 ;;tests. Enter only those urgencies you want extracted. WKLD urgencies will
+3 ;;be included for each normal urgency selected. Enter the
+4 ;;test(s) you want the report display.
+5 ;; -
+6 ;;A detailed report is available to show the data being used to
+7 ;;compute the turnaround times.
+8 ;; -
+9 ;;Regular hours are from 7:01 AM to 5:00PM
+10 ;;Irregular hours includes all other times, holidays and weekends.
+11 ;;
+12 ;
+13 ;
+14 QUIT
READ ;
+1 DO ^DIR
if $DATA(DTOUT)!($DATA(DUOUT))
SET LREND=1
+2 QUIT