GMRCSTLB ;SLC/JFR,WAT - Totals format for LOCAL CSLT COMPL RATE ;
;;3.0;CONSULT/REQUEST TRACKING;**67**;DEC 27, 1997;Build 1
;;
;875 (file 100.01), 2638 (file 100.01), 3744 (VADPT)
; portions copied from GMRCSTL1 & GMRCSTL2
;
Q ; can't start here
;
PRTTOT(GEN,INDEX,NAME,ARRN) ; totals for printed report
N COUNT,SVCUSG
S COUNT=$O(^TMP("GMRCR",$J,ARRN," "),-1)
I GEN=2 D
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)=""
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)=" GROUPER: "_NAME_" Totals:"
I GEN=1 D
. I ^TMP("GMRCTOT",$J,1,INDEX,"T")=0 D Q ;collect zero servs for summ
.. Q:$P(^GMR(123.5,INDEX,0),U,2)=1
.. S ^TMP("GMRCTOT",$J,0,NAME)=""
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)=" "
. S COUNT=COUNT+1
. S SVCUSG=$P(^GMR(123.5,INDEX,0),U,2),^TMP("GMRCR",$J,ARRN,COUNT,0)="SERVICE: "_NAME_$S($G(SVCUSG)=9:" <disabled>",1:"")
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)="Total Requests To Service:"_$J(^TMP("GMRCTOT",$J,1,INDEX,"T"),30,0)
I GEN=2,^TMP("GMRCTOT",$J,2,INDEX,"T")>0 D
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)="Total Requests To Grouper:"_$J(^TMP("GMRCTOT",$J,2,INDEX,"T"),30,0)
I $G(^TMP("GMRCTOT",$J,GEN,INDEX,"T"))>0 D
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)="Total Requests Pending Resolution: "_$J(^TMP("GMRCTOT",$J,GEN,INDEX,"P"),21,0)
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)="Total Requests Completed: "_$J(^TMP("GMRCTOT",$J,GEN,INDEX,"C"),30,0)
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)="Total Requests Completed with Results: "_$J(^TMP("GMRCTOT",$J,GEN,INDEX,"R"),17,0)
. N GMRCPCT
. I ^TMP("GMRCTOT",$J,GEN,INDEX,"T")=0 S GMRCPCT="N/A"
. I '$D(GMRCPCT) S GMRCPCT=(^TMP("GMRCTOT",$J,GEN,INDEX,"C")/^TMP("GMRCTOT",$J,GEN,INDEX,"T"))*100
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)="Percentage of Total Requests Completed: "_$S(+GMRCPCT'=GMRCPCT:$J(GMRCPCT,16),1:($J(GMRCPCT,19,2)_"%"))
. K GMRCPCT
. I ^TMP("GMRCTOT",$J,GEN,INDEX,"C")=0 S GMRCPCT="N/A"
. I '$D(GMRCPCT) S GMRCPCT=(^TMP("GMRCTOT",$J,GEN,INDEX,"R")/^TMP("GMRCTOT",$J,GEN,INDEX,"C"))*100
. S COUNT=COUNT+1
. S ^TMP("GMRCR",$J,ARRN,COUNT,0)="Percentage of Total Completed Requests with Results: "_$S(+GMRCPCT'=GMRCPCT:GMRCPCT,1:($J(GMRCPCT,6,2)_"%"))
Q
;
DELTOT(GEN,INDEX,NAME,ARRN) ; format for delimited
;
I ^TMP("GMRCTOT",$J,GEN,INDEX,"T")=0 Q
N STRING,COUNT,SVCUSG
S COUNT=$O(^TMP("GMRCR",$J,ARRN," "),-1)
S SVCUSG=$P(^GMR(123.5,INDEX,0),U,2),STRING=$S(GEN=2:"GROUPER: ",1:"")_NAME_$S($G(SVCUSG)=9:" <disabled>",1:"")_";"
S STRING=STRING_^TMP("GMRCTOT",$J,GEN,INDEX,"T")_";"
S STRING=STRING_^TMP("GMRCTOT",$J,GEN,INDEX,"P")_";"
S STRING=STRING_^TMP("GMRCTOT",$J,GEN,INDEX,"C")_";"
S STRING=STRING_^TMP("GMRCTOT",$J,GEN,INDEX,"R")_";"
D ;get % completed
. N GMRCPCT
. S GMRCPCT=(^TMP("GMRCTOT",$J,GEN,INDEX,"C")/^TMP("GMRCTOT",$J,GEN,INDEX,"T"))*100
. S STRING=STRING_$J(GMRCPCT,0,2)_";"
. Q
D ; get % completed w/results
. I ^TMP("GMRCTOT",$J,GEN,INDEX,"C")=0 S STRING=STRING_"N/A;" Q
. N GMRCPCT
. S GMRCPCT=(^TMP("GMRCTOT",$J,GEN,INDEX,"R")/^TMP("GMRCTOT",$J,GEN,INDEX,"C"))*100
. S STRING=STRING_$J(GMRCPCT,0,2)
. Q
S COUNT=COUNT+1
S ^TMP("GMRCR",$J,ARRN,COUNT,0)=STRING
Q
;
ONESTAT(ARRN,SVCN,STAT,DT1,DT2) ;Process one status
; Input -- ARRN "CP" - to be printed
; "DEL" - in delimited format
; SVCN = node in ^TMP("GMRCLIST,$J
; STAT = status being worked on
; DT1 = starting date
; DT2 = ending date
;
; Output - None
;
N GMRCPT,GMRCXDT,TEMP,GMRCSVC,GMRCSVCG,GMRCSVCP
S GMRCSVC=$P(^TMP("GMRCSLIST",$J,SVCN),"^",1)
S GMRCSVCP=$P(^TMP("GMRCSLIST",$J,SVCN),"^",2)
S GMRCSVCG=$P(^TMP("GMRCSLIST",$J,SVCN),"^",3)
S GMRCXDT=$S(DT1="ALL":0,1:9999999-DT2-.6)
F S GMRCXDT=$O(^GMR(123,"AE",GMRCSVC,STAT,GMRCXDT)) Q:GMRCXDT=""!(GMRCXDT>(9999999-DT1)) D
.S GMRCPT=0
.;Loop for one consult at a time
.F S GMRCPT=$O(^GMR(123,"AE",GMRCSVC,STAT,GMRCXDT,GMRCPT)) Q:GMRCPT="" D
.. N PROS
..; Check for bad "AE" x-ref
..I '$D(^GMR(123,GMRCPT,0)) D Q
...K ^GMR(123,"AE",GMRCSVC,STAT,GMRCXDT,GMRCPT)
.. I $$TESTPAT^VADPT(+$P(^GMR(123,GMRCPT,0),U,2)) Q ; exclude test pats
.. D I $G(PROS) Q
... N SVC S SVC=$P(^GMR(123,GMRCPT,0),U,5)
... I +$G(^GMR(123.5,SVC,"INT")) S PROS=1 ; exclude PROS consults
.. I $P($G(^GMR(123,GMRCPT,12)),U,5)="P" Q ; exclude IFC placer
..; Add to totals
..; for all status for this service
..S ^TMP("GMRCTOT",$J,1,GMRCSVC,"T")=^TMP("GMRCTOT",$J,1,GMRCSVC,"T")+1
..; pending for this service
..S:",3,4,5,6,8,9,11,99,"[(","_STAT_",") ^TMP("GMRCTOT",$J,1,GMRCSVC,"P")=^TMP("GMRCTOT",$J,1,GMRCSVC,"P")+1
.. I STAT=2 D
... S ^TMP("GMRCTOT",$J,1,GMRCSVC,"C")=+$G(^TMP("GMRCTOT",$J,1,GMRCSVC,"C"))+1
... Q:'$O(^GMR(123,+$G(GMRCPT),50,0)) ; Q if no results
... S ^TMP("GMRCTOT",$J,1,GMRCSVC,"R")=+$G(^TMP("GMRCTOT",$J,1,GMRCSVC,"R"))+1
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMRCSTLB 4957 printed Dec 13, 2024@01:47:25 Page 2
GMRCSTLB ;SLC/JFR,WAT - Totals format for LOCAL CSLT COMPL RATE ;
+1 ;;3.0;CONSULT/REQUEST TRACKING;**67**;DEC 27, 1997;Build 1
+2 ;;
+3 ;875 (file 100.01), 2638 (file 100.01), 3744 (VADPT)
+4 ; portions copied from GMRCSTL1 & GMRCSTL2
+5 ;
+6 ; can't start here
QUIT
+7 ;
PRTTOT(GEN,INDEX,NAME,ARRN) ; totals for printed report
+1 NEW COUNT,SVCUSG
+2 SET COUNT=$ORDER(^TMP("GMRCR",$JOB,ARRN," "),-1)
+3 IF GEN=2
Begin DoDot:1
+4 SET COUNT=COUNT+1
+5 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)=""
+6 SET COUNT=COUNT+1
+7 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)=" GROUPER: "_NAME_" Totals:"
End DoDot:1
+8 IF GEN=1
Begin DoDot:1
+9 ;collect zero servs for summ
IF ^TMP("GMRCTOT",$JOB,1,INDEX,"T")=0
Begin DoDot:2
+10 if $PIECE(^GMR(123.5,INDEX,0),U,2)=1
QUIT
+11 SET ^TMP("GMRCTOT",$JOB,0,NAME)=""
End DoDot:2
QUIT
+12 SET COUNT=COUNT+1
+13 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)=" "
+14 SET COUNT=COUNT+1
+15 SET SVCUSG=$PIECE(^GMR(123.5,INDEX,0),U,2)
SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)="SERVICE: "_NAME_$SELECT($GET(SVCUSG)=9:" <disabled>",1:"")
+16 SET COUNT=COUNT+1
+17 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)="Total Requests To Service:"_$JUSTIFY(^TMP("GMRCTOT",$JOB,1,INDEX,"T"),30,0)
End DoDot:1
+18 IF GEN=2
IF ^TMP("GMRCTOT",$JOB,2,INDEX,"T")>0
Begin DoDot:1
+19 SET COUNT=COUNT+1
+20 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)="Total Requests To Grouper:"_$JUSTIFY(^TMP("GMRCTOT",$JOB,2,INDEX,"T"),30,0)
End DoDot:1
+21 IF $GET(^TMP("GMRCTOT",$JOB,GEN,INDEX,"T"))>0
Begin DoDot:1
+22 SET COUNT=COUNT+1
+23 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)="Total Requests Pending Resolution: "_$JUSTIFY(^TMP("GMRCTOT",$JOB,GEN,INDEX,"P"),21,0)
+24 SET COUNT=COUNT+1
+25 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)="Total Requests Completed: "_$JUSTIFY(^TMP("GMRCTOT",$JOB,GEN,INDEX,"C"),30,0)
+26 SET COUNT=COUNT+1
+27 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)="Total Requests Completed with Results: "_$JUSTIFY(^TMP("GMRCTOT",$JOB,GEN,INDEX,"R"),17,0)
+28 NEW GMRCPCT
+29 IF ^TMP("GMRCTOT",$JOB,GEN,INDEX,"T")=0
SET GMRCPCT="N/A"
+30 IF '$DATA(GMRCPCT)
SET GMRCPCT=(^TMP("GMRCTOT",$JOB,GEN,INDEX,"C")/^TMP("GMRCTOT",$JOB,GEN,INDEX,"T"))*100
+31 SET COUNT=COUNT+1
+32 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)="Percentage of Total Requests Completed: "_$SELECT(+GMRCPCT'=GMRCPCT:$JUSTIFY(GMRCPCT,16),1:($JUSTIFY(GMRCPCT,19,2)_"%"))
+33 KILL GMRCPCT
+34 IF ^TMP("GMRCTOT",$JOB,GEN,INDEX,"C")=0
SET GMRCPCT="N/A"
+35 IF '$DATA(GMRCPCT)
SET GMRCPCT=(^TMP("GMRCTOT",$JOB,GEN,INDEX,"R")/^TMP("GMRCTOT",$JOB,GEN,INDEX,"C"))*100
+36 SET COUNT=COUNT+1
+37 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)="Percentage of Total Completed Requests with Results: "_$SELECT(+GMRCPCT'=GMRCPCT:GMRCPCT,1:($JUSTIFY(GMRCPCT,6,2)_"%"))
End DoDot:1
+38 QUIT
+39 ;
DELTOT(GEN,INDEX,NAME,ARRN) ; format for delimited
+1 ;
+2 IF ^TMP("GMRCTOT",$JOB,GEN,INDEX,"T")=0
QUIT
+3 NEW STRING,COUNT,SVCUSG
+4 SET COUNT=$ORDER(^TMP("GMRCR",$JOB,ARRN," "),-1)
+5 SET SVCUSG=$PIECE(^GMR(123.5,INDEX,0),U,2)
SET STRING=$SELECT(GEN=2:"GROUPER: ",1:"")_NAME_$SELECT($GET(SVCUSG)=9:" <disabled>",1:"")_";"
+6 SET STRING=STRING_^TMP("GMRCTOT",$JOB,GEN,INDEX,"T")_";"
+7 SET STRING=STRING_^TMP("GMRCTOT",$JOB,GEN,INDEX,"P")_";"
+8 SET STRING=STRING_^TMP("GMRCTOT",$JOB,GEN,INDEX,"C")_";"
+9 SET STRING=STRING_^TMP("GMRCTOT",$JOB,GEN,INDEX,"R")_";"
+10 ;get % completed
Begin DoDot:1
+11 NEW GMRCPCT
+12 SET GMRCPCT=(^TMP("GMRCTOT",$JOB,GEN,INDEX,"C")/^TMP("GMRCTOT",$JOB,GEN,INDEX,"T"))*100
+13 SET STRING=STRING_$JUSTIFY(GMRCPCT,0,2)_";"
+14 QUIT
End DoDot:1
+15 ; get % completed w/results
Begin DoDot:1
+16 IF ^TMP("GMRCTOT",$JOB,GEN,INDEX,"C")=0
SET STRING=STRING_"N/A;"
QUIT
+17 NEW GMRCPCT
+18 SET GMRCPCT=(^TMP("GMRCTOT",$JOB,GEN,INDEX,"R")/^TMP("GMRCTOT",$JOB,GEN,INDEX,"C"))*100
+19 SET STRING=STRING_$JUSTIFY(GMRCPCT,0,2)
+20 QUIT
End DoDot:1
+21 SET COUNT=COUNT+1
+22 SET ^TMP("GMRCR",$JOB,ARRN,COUNT,0)=STRING
+23 QUIT
+24 ;
ONESTAT(ARRN,SVCN,STAT,DT1,DT2) ;Process one status
+1 ; Input -- ARRN "CP" - to be printed
+2 ; "DEL" - in delimited format
+3 ; SVCN = node in ^TMP("GMRCLIST,$J
+4 ; STAT = status being worked on
+5 ; DT1 = starting date
+6 ; DT2 = ending date
+7 ;
+8 ; Output - None
+9 ;
+10 NEW GMRCPT,GMRCXDT,TEMP,GMRCSVC,GMRCSVCG,GMRCSVCP
+11 SET GMRCSVC=$PIECE(^TMP("GMRCSLIST",$JOB,SVCN),"^",1)
+12 SET GMRCSVCP=$PIECE(^TMP("GMRCSLIST",$JOB,SVCN),"^",2)
+13 SET GMRCSVCG=$PIECE(^TMP("GMRCSLIST",$JOB,SVCN),"^",3)
+14 SET GMRCXDT=$SELECT(DT1="ALL":0,1:9999999-DT2-.6)
+15 FOR
SET GMRCXDT=$ORDER(^GMR(123,"AE",GMRCSVC,STAT,GMRCXDT))
if GMRCXDT=""!(GMRCXDT>(9999999-DT1))
QUIT
Begin DoDot:1
+16 SET GMRCPT=0
+17 ;Loop for one consult at a time
+18 FOR
SET GMRCPT=$ORDER(^GMR(123,"AE",GMRCSVC,STAT,GMRCXDT,GMRCPT))
if GMRCPT=""
QUIT
Begin DoDot:2
+19 NEW PROS
+20 ; Check for bad "AE" x-ref
+21 IF '$DATA(^GMR(123,GMRCPT,0))
Begin DoDot:3
+22 KILL ^GMR(123,"AE",GMRCSVC,STAT,GMRCXDT,GMRCPT)
End DoDot:3
QUIT
+23 ; exclude test pats
IF $$TESTPAT^VADPT(+$PIECE(^GMR(123,GMRCPT,0),U,2))
QUIT
+24 Begin DoDot:3
+25 NEW SVC
SET SVC=$PIECE(^GMR(123,GMRCPT,0),U,5)
+26 ; exclude PROS consults
IF +$GET(^GMR(123.5,SVC,"INT"))
SET PROS=1
End DoDot:3
IF $GET(PROS)
QUIT
+27 ; exclude IFC placer
IF $PIECE($GET(^GMR(123,GMRCPT,12)),U,5)="P"
QUIT
+28 ; Add to totals
+29 ; for all status for this service
+30 SET ^TMP("GMRCTOT",$JOB,1,GMRCSVC,"T")=^TMP("GMRCTOT",$JOB,1,GMRCSVC,"T")+1
+31 ; pending for this service
+32 if ",3,4,5,6,8,9,11,99,"[(","_STAT_",")
SET ^TMP("GMRCTOT",$JOB,1,GMRCSVC,"P")=^TMP("GMRCTOT",$JOB,1,GMRCSVC,"P")+1
+33 IF STAT=2
Begin DoDot:3
+34 SET ^TMP("GMRCTOT",$JOB,1,GMRCSVC,"C")=+$GET(^TMP("GMRCTOT",$JOB,1,GMRCSVC,"C"))+1
+35 ; Q if no results
if '$ORDER(^GMR(123,+$GET(GMRCPT),50,0))
QUIT
+36 SET ^TMP("GMRCTOT",$JOB,1,GMRCSVC,"R")=+$GET(^TMP("GMRCTOT",$JOB,1,GMRCSVC,"R"))+1
End DoDot:3
End DoDot:2
End DoDot:1
+37 QUIT
+38 ;