YTQTUSE ;ASF/ALB- PSYCHOLOGICAL TEST USEAGE REPORTING ; 7/30/09 10:44am
;;5.01;MENTAL HEALTH;**87,97**;Dec 30, 1994;Build 42
;called as a server option from YTQTUSE
1 N YSB,YSY,DFN,YSTST,YSCOMP,N,N1,A,YSCPLETE,YSGIVEN,YSCODEN,YSAD,Y
N XMA,XMDUZ,XMY,XMSUB,XMRG,XQSUB,XMTEXT
K ^TMP($J,"YSTAT")
S ^TMP($J,"YSTAT",1)=$$SITE^VASITE
S XMA=1 X XMREC
I XMRG="" S ^TMP($J,"YSTAT",12)="Dates can not be resolved" D SENDER Q ;-->out
S YSB=$P(XMRG,U),YSY=$P(XMRG,U,2)
S ^TMP($J,"YSTAT",2)="From: "_YSB_" To: "_YSY
S ^TMP($J,"YSTAT",3)=" "
TT ;test ck
S N=20
D STATS ;useage rollup
S YSTST=0 F S YSTST=$O(A(YSTST)) Q:YSTST'>0 D
. S N=N+1
. S ^TMP($J,"YSTAT",N)=+A(YSTST)_U_$P($G(^YTT(601.71,YSTST,0)),U)_U_YSTST_U_$$SITE^VASITE_U_A(YSTST)
SENDER ;
S XMSUB="MHA3 Automated Usage Report"
S XMY(XMFROM)=""
S XMTEXT="^TMP($J,""YSTAT"","
S XMDUZ="MH3 automated testing REPLY"
N XMFROM,XMZ,XMREC,XMCHAN D ^XMD
Q
STATS ;test count
N YSHLSTAT,YSHLP K A
S YSCODEN=0 F S YSCODEN=$O(^YTT(601.84,"AC",YSCODEN)) Q:YSCODEN'>0 D
. S YSGIVEN=YSB-.01
. F S YSGIVEN=$O(^YTT(601.84,"AC",YSCODEN,YSGIVEN)) Q:YSGIVEN'>0!(YSGIVEN>YSY) D
.. S YSAD=0
.. F S YSAD=$O(^YTT(601.84,"AC",YSCODEN,YSGIVEN,YSAD)) Q:YSAD'>0 D
... S YSCPLETE=$P(^YTT(601.84,YSAD,0),U,9)
... Q:YSCPLETE'="Y" ;-->out
... S YSHLSTAT=$P($G(^YTT(601.84,YSAD,2)),U)
... S YSHLP=$S(YSHLSTAT="S":2,YSHLSTAT="E":3,YSHLSTAT="T":4,1:5)
... S $P(A(YSCODEN),U)=$P($G(A(YSCODEN)),U)+1
... S $P(A(YSCODEN),U,YSHLP)=$P(A(YSCODEN),U,YSHLP)+1
Q
EN1 ;interactive login
;
N DIR,YSB,YSY,YSCPLETE,A,B,YSINS,YSLFT
S N=0,YSLFT=0
K DIR S DIR(0)="DA^2961001:NOW:TX",DIR("A")="Begin date/time: ",DIR("B")="T-1M" D ^DIR
Q:$D(DIRUT)
S YSB=Y
K DIR S DIR(0)="DA^2961001:NOW:TX",DIR("A")="End date/time: ",DIR("B")="NOW" D ^DIR
Q:$D(DIRUT)
S YSY=Y
D STATS
S YSTST=0 F S YSTST=$O(A(YSTST)) Q:YSTST'>0 D
. S N=N+1
. S B($P($G(^YTT(601.71,YSTST,0)),U))=A(YSTST)
. K A(YSTST)
D ^%ZIS Q:POP U IO
W @IOF,!,"MHA3 Test Count from: "
S Y=YSB D DD^%DT W Y
S Y=YSY D DD^%DT W " to: ",Y
W !,?5,"Count",?12,"Instrument",?60,"S E T ?"
S YSINS=0
F S YSINS=$O(B(YSINS)) Q:YSINS=""!(YSLFT) D
. D:(($Y+5)>IOSL) WAIT
. W !?5,$P(B(YSINS),U),?12,YSINS,?60,$P(B(YSINS),U,2,9)
D ^%ZISC
Q
WAIT ;
F I0=1:1:IOSL-$Y-4 W !
N DIR,DTOUT,DUOUT,DIRUT
I IOST?1"C".E S DIR(0)="E" D ^DIR K DIR S YSLFT=$D(DIRUT)
W @IOF Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HYTQTUSE 2439 printed Nov 22, 2024@17:29:06 Page 2
YTQTUSE ;ASF/ALB- PSYCHOLOGICAL TEST USEAGE REPORTING ; 7/30/09 10:44am
+1 ;;5.01;MENTAL HEALTH;**87,97**;Dec 30, 1994;Build 42
+2 ;called as a server option from YTQTUSE
1 NEW YSB,YSY,DFN,YSTST,YSCOMP,N,N1,A,YSCPLETE,YSGIVEN,YSCODEN,YSAD,Y
+1 NEW XMA,XMDUZ,XMY,XMSUB,XMRG,XQSUB,XMTEXT
+2 KILL ^TMP($JOB,"YSTAT")
+3 SET ^TMP($JOB,"YSTAT",1)=$$SITE^VASITE
+4 SET XMA=1
XECUTE XMREC
+5 ;-->out
IF XMRG=""
SET ^TMP($JOB,"YSTAT",12)="Dates can not be resolved"
DO SENDER
QUIT
+6 SET YSB=$PIECE(XMRG,U)
SET YSY=$PIECE(XMRG,U,2)
+7 SET ^TMP($JOB,"YSTAT",2)="From: "_YSB_" To: "_YSY
+8 SET ^TMP($JOB,"YSTAT",3)=" "
TT ;test ck
+1 SET N=20
+2 ;useage rollup
DO STATS
+3 SET YSTST=0
FOR
SET YSTST=$ORDER(A(YSTST))
if YSTST'>0
QUIT
Begin DoDot:1
+4 SET N=N+1
+5 SET ^TMP($JOB,"YSTAT",N)=+A(YSTST)_U_$PIECE($GET(^YTT(601.71,YSTST,0)),U)_U_YSTST_U_$$SITE^VASITE_U_A(YSTST)
End DoDot:1
SENDER ;
+1 SET XMSUB="MHA3 Automated Usage Report"
+2 SET XMY(XMFROM)=""
+3 SET XMTEXT="^TMP($J,""YSTAT"","
+4 SET XMDUZ="MH3 automated testing REPLY"
+5 NEW XMFROM,XMZ,XMREC,XMCHAN
DO ^XMD
+6 QUIT
STATS ;test count
+1 NEW YSHLSTAT,YSHLP
KILL A
+2 SET YSCODEN=0
FOR
SET YSCODEN=$ORDER(^YTT(601.84,"AC",YSCODEN))
if YSCODEN'>0
QUIT
Begin DoDot:1
+3 SET YSGIVEN=YSB-.01
+4 FOR
SET YSGIVEN=$ORDER(^YTT(601.84,"AC",YSCODEN,YSGIVEN))
if YSGIVEN'>0!(YSGIVEN>YSY)
QUIT
Begin DoDot:2
+5 SET YSAD=0
+6 FOR
SET YSAD=$ORDER(^YTT(601.84,"AC",YSCODEN,YSGIVEN,YSAD))
if YSAD'>0
QUIT
Begin DoDot:3
+7 SET YSCPLETE=$PIECE(^YTT(601.84,YSAD,0),U,9)
+8 ;-->out
if YSCPLETE'="Y"
QUIT
+9 SET YSHLSTAT=$PIECE($GET(^YTT(601.84,YSAD,2)),U)
+10 SET YSHLP=$SELECT(YSHLSTAT="S":2,YSHLSTAT="E":3,YSHLSTAT="T":4,1:5)
+11 SET $PIECE(A(YSCODEN),U)=$PIECE($GET(A(YSCODEN)),U)+1
+12 SET $PIECE(A(YSCODEN),U,YSHLP)=$PIECE(A(YSCODEN),U,YSHLP)+1
End DoDot:3
End DoDot:2
End DoDot:1
+13 QUIT
EN1 ;interactive login
+1 ;
+2 NEW DIR,YSB,YSY,YSCPLETE,A,B,YSINS,YSLFT
+3 SET N=0
SET YSLFT=0
+4 KILL DIR
SET DIR(0)="DA^2961001:NOW:TX"
SET DIR("A")="Begin date/time: "
SET DIR("B")="T-1M"
DO ^DIR
+5 if $DATA(DIRUT)
QUIT
+6 SET YSB=Y
+7 KILL DIR
SET DIR(0)="DA^2961001:NOW:TX"
SET DIR("A")="End date/time: "
SET DIR("B")="NOW"
DO ^DIR
+8 if $DATA(DIRUT)
QUIT
+9 SET YSY=Y
+10 DO STATS
+11 SET YSTST=0
FOR
SET YSTST=$ORDER(A(YSTST))
if YSTST'>0
QUIT
Begin DoDot:1
+12 SET N=N+1
+13 SET B($PIECE($GET(^YTT(601.71,YSTST,0)),U))=A(YSTST)
+14 KILL A(YSTST)
End DoDot:1
+15 DO ^%ZIS
if POP
QUIT
USE IO
+16 WRITE @IOF,!,"MHA3 Test Count from: "
+17 SET Y=YSB
DO DD^%DT
WRITE Y
+18 SET Y=YSY
DO DD^%DT
WRITE " to: ",Y
+19 WRITE !,?5,"Count",?12,"Instrument",?60,"S E T ?"
+20 SET YSINS=0
+21 FOR
SET YSINS=$ORDER(B(YSINS))
if YSINS=""!(YSLFT)
QUIT
Begin DoDot:1
+22 if (($Y+5)>IOSL)
DO WAIT
+23 WRITE !?5,$PIECE(B(YSINS),U),?12,YSINS,?60,$PIECE(B(YSINS),U,2,9)
End DoDot:1
+24 DO ^%ZISC
+25 QUIT
WAIT ;
+1 FOR I0=1:1:IOSL-$Y-4
WRITE !
+2 NEW DIR,DTOUT,DUOUT,DIRUT
+3 IF IOST?1"C".E
SET DIR(0)="E"
DO ^DIR
KILL DIR
SET YSLFT=$DATA(DIRUT)
+4 WRITE @IOF
QUIT