SDAMOSP ;ALB/CAW - Print for Appointment Statistics;4/15/92
;;5.3;Scheduling;**22**;Aug 13, 1993
;
HDR ;Report Header
;
I $E(IOST,1,2)="C-" D PAUSE^VALM1 I 'Y S SDSTOP=1 Q
HDR1 W @IOF,$S('SDFLG:"Division: "_$P($G(^DG(40.8,SDDV,0)),U),1:"MEDICAL CENTER")
W ?41,"Date Range: ",$$FDATE^VALM1(SDBEG)_" to "_$$FDATE^VALM1(SDEND)
D NOW^%DTC W ?95,"Run Date: ",$E($$FDTTM^VALM1(%),1,14),?125,"Page: ",SDPAGE S SDPAGE=SDPAGE+1
W !,?1,$S('SDFLG:"Clinic",1:"Division"),?34,"Checked-In",?48,"Checked-Out",?63,"No Action Taken",?83,"___No-show___",?99,"__Cancelled__",?114,"Inpatient",?127,"Total"
W !,?83,"Tot",?89,"CI",?94,"RB",?99,"Tot",?105,"CI",?110,"RB",!,SDASH
Q
;
BLD ;Build output from ^TMP global
;
S (SDSTOP,SDTOT,SDFLG)=0,SDDV="" F S SDDV=$O(^TMP("SDAMS",$J,SDDV)) Q:SDDV=""!(SDSTOP) D:SDSEL=5 HDR D
.S SDCL="" F S SDCL=$O(^TMP("SDAMS",$J,SDDV,SDCL)) Q:SDCL=""!(SDSTOP) D S SDNXT=$O(^TMP("SDAMS",$J,SDDV,SDCL)) I SDNXT'="" W:SDSEL=4 !,SDASH
..S SDCLI="" F S SDCLI=$O(^TMP("SDAMS",$J,SDDV,SDCL,SDCLI)) Q:'SDCLI!(SDSTOP) D
...S SDAT="" F S SDAT=$O(^TMP("SDAMS",$J,SDDV,SDCL,SDCLI,SDAT)) Q:'SDAT!(SDSTOP) S SDCNT(SDAT)=^(SDAT)
...W:SDSEL=5 !,SDCL F SDI=1:1:11 S SDTOT=$G(SDTOT)+$G(SDCNT(SDI))
...D:SDSEL=5 CNT
...I SDSEL=5 W ?124,$J(SDTOT,8) K SDTOT,SDCNT D CHK Q:SDSTOP
.Q:SDSTOP I SDSEL=5 W !,SDTDASH,!,"TOTAL" D TOTAL W ?124,$J(SDTOT,8) K SDTOT,SDCNT D CHK Q:SDSTOP
.I SDSEL=5 W !! D LEGEND
BLDQ I SDSTOP Q
;
MCTOT S SDFLG=1,SDDV="" D HDR F S SDDV=$O(^TMP("SDAMS",$J,SDDV)) Q:SDDV="" D Q:SDSTOP
.W !,$P($G(^DG(40.8,SDDV,0)),U)
.K SDTOT,SDCNT D TOTAL
.W ?124,$J(SDTOT,8)
.D CHK Q:SDSTOP
.S SDNXT=$O(^TMP("SDAMS",$J,SDDV)) W:SDNXT'="" !,SDASH
.K SDTOT,SDCNT
W !,SDTDASH,!,"TOTAL" F SDI=1:1:11 S SDCNT(SDI)=+$G(SDAT("SDAMS",$J,SDI)),SDTOT=$G(SDTOT)+$G(SDCNT(SDI))
D CNT
W ?124,$J(SDTOT,8) K SDTOT,SDCNT D CHK I SDSTOP G MCTOTQ
W !! D LEGEND
MCTOTQ Q
CNT ;Place no-show/no-show auto rebook & cancel/cancel auto-rebook together
S SDCNT(4)=+$G(SDCNT(4))+(+$G(SDCNT(6))),SDCNT(13)=+$G(SDCI(+SDCL,4))+(+$G(SDCI(+SDCL,6)))
S SDCNT(5)=+$G(SDCNT(5))+(+$G(SDCNT(7))),SDCNT(14)=+$G(SDCI(+SDCL,5))+(+$G(SDCI(+SDCL,7)))
F SDI=1,2,3,4,13,6,5,14,7,8 D
.W ?$$COL(SDI),$J($S($D(SDCNT(SDI)):SDCNT(SDI),1:0),$$LEN(SDI))
Q
;
CHK ;Check to pause on screen
I $E(IOST,1,2)="C-",($Y+6)>IOSL D PAUSE^VALM1 S SDY=Y D:SDY HDR1 I 'SDY S SDSTOP=1 Q
I ($Y+6)>IOSL D HDR1
Q
TOTAL ;Totals
F SDI=1:1:11 S SDCNT(SDI)=+$G(SDCL("SDAMS",$J,SDDV,SDI)),SDTOT=$G(SDTOT)+$G(SDCNT(SDI))
D CNT
K SDCNT
Q
;
LEGEND ;Legend on bottom of output
;
W !,?5,"o CI=Checked In ; RB=Rebooked"
W !,?5,"o 'Cancelled' appointments only reflect appointments cancelled using 'Cancel Clinic Availability'."
W !,?5,"o 'Checked-In' does not include no-shows or cancelled appointments that have been checked in."
Q
;
COL(SDI) ;Column placement of appt. status
;
;input - SDI (appt. type)
;output - column placement
Q $S(SDI=1:34,SDI=2:48,SDI=3:63,SDI=4:81,SDI=5:97,SDI=6:92,SDI=7:108,SDI=8:114,SDI=13:87,SDI=14:103)
;
LEN(SDI) ;Length of column
;
;input - SDI (appt. type)
;output - length of column
Q $S(SDI=1:10,SDI=2:11,SDI=3:15,SDI=4:5,SDI=6:4,SDI=5:5,SDI=7:4,SDI=8:9,SDI=13:4,SDI=14:4)
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDAMOSP 3276 printed Nov 22, 2024@17:58:01 Page 2
SDAMOSP ;ALB/CAW - Print for Appointment Statistics;4/15/92
+1 ;;5.3;Scheduling;**22**;Aug 13, 1993
+2 ;
HDR ;Report Header
+1 ;
+2 IF $EXTRACT(IOST,1,2)="C-"
DO PAUSE^VALM1
IF 'Y
SET SDSTOP=1
QUIT
HDR1 WRITE @IOF,$SELECT('SDFLG:"Division: "_$PIECE($GET(^DG(40.8,SDDV,0)),U),1:"MEDICAL CENTER")
+1 WRITE ?41,"Date Range: ",$$FDATE^VALM1(SDBEG)_" to "_$$FDATE^VALM1(SDEND)
+2 DO NOW^%DTC
WRITE ?95,"Run Date: ",$EXTRACT($$FDTTM^VALM1(%),1,14),?125,"Page: ",SDPAGE
SET SDPAGE=SDPAGE+1
+3 WRITE !,?1,$SELECT('SDFLG:"Clinic",1:"Division"),?34,"Checked-In",?48,"Checked-Out",?63,"No Action Taken",?83,"___No-show___",?99,"__Cancelled__",?114,"Inpatient",?127,"Total"
+4 WRITE !,?83,"Tot",?89,"CI",?94,"RB",?99,"Tot",?105,"CI",?110,"RB",!,SDASH
+5 QUIT
+6 ;
BLD ;Build output from ^TMP global
+1 ;
+2 SET (SDSTOP,SDTOT,SDFLG)=0
SET SDDV=""
FOR
SET SDDV=$ORDER(^TMP("SDAMS",$JOB,SDDV))
if SDDV=""!(SDSTOP)
QUIT
if SDSEL=5
DO HDR
Begin DoDot:1
+3 SET SDCL=""
FOR
SET SDCL=$ORDER(^TMP("SDAMS",$JOB,SDDV,SDCL))
if SDCL=""!(SDSTOP)
QUIT
Begin DoDot:2
+4 SET SDCLI=""
FOR
SET SDCLI=$ORDER(^TMP("SDAMS",$JOB,SDDV,SDCL,SDCLI))
if 'SDCLI!(SDSTOP)
QUIT
Begin DoDot:3
+5 SET SDAT=""
FOR
SET SDAT=$ORDER(^TMP("SDAMS",$JOB,SDDV,SDCL,SDCLI,SDAT))
if 'SDAT!(SDSTOP)
QUIT
SET SDCNT(SDAT)=^(SDAT)
+6 if SDSEL=5
WRITE !,SDCL
FOR SDI=1:1:11
SET SDTOT=$GET(SDTOT)+$GET(SDCNT(SDI))
+7 if SDSEL=5
DO CNT
+8 IF SDSEL=5
WRITE ?124,$JUSTIFY(SDTOT,8)
KILL SDTOT,SDCNT
DO CHK
if SDSTOP
QUIT
End DoDot:3
End DoDot:2
SET SDNXT=$ORDER(^TMP("SDAMS",$JOB,SDDV,SDCL))
IF SDNXT'=""
if SDSEL=4
WRITE !,SDASH
+9 if SDSTOP
QUIT
IF SDSEL=5
WRITE !,SDTDASH,!,"TOTAL"
DO TOTAL
WRITE ?124,$JUSTIFY(SDTOT,8)
KILL SDTOT,SDCNT
DO CHK
if SDSTOP
QUIT
+10 IF SDSEL=5
WRITE !!
DO LEGEND
End DoDot:1
BLDQ IF SDSTOP
QUIT
+1 ;
MCTOT SET SDFLG=1
SET SDDV=""
DO HDR
FOR
SET SDDV=$ORDER(^TMP("SDAMS",$JOB,SDDV))
if SDDV=""
QUIT
Begin DoDot:1
+1 WRITE !,$PIECE($GET(^DG(40.8,SDDV,0)),U)
+2 KILL SDTOT,SDCNT
DO TOTAL
+3 WRITE ?124,$JUSTIFY(SDTOT,8)
+4 DO CHK
if SDSTOP
QUIT
+5 SET SDNXT=$ORDER(^TMP("SDAMS",$JOB,SDDV))
if SDNXT'=""
WRITE !,SDASH
+6 KILL SDTOT,SDCNT
End DoDot:1
if SDSTOP
QUIT
+7 WRITE !,SDTDASH,!,"TOTAL"
FOR SDI=1:1:11
SET SDCNT(SDI)=+$GET(SDAT("SDAMS",$JOB,SDI))
SET SDTOT=$GET(SDTOT)+$GET(SDCNT(SDI))
+8 DO CNT
+9 WRITE ?124,$JUSTIFY(SDTOT,8)
KILL SDTOT,SDCNT
DO CHK
IF SDSTOP
GOTO MCTOTQ
+10 WRITE !!
DO LEGEND
MCTOTQ QUIT
CNT ;Place no-show/no-show auto rebook & cancel/cancel auto-rebook together
+1 SET SDCNT(4)=+$GET(SDCNT(4))+(+$GET(SDCNT(6)))
SET SDCNT(13)=+$GET(SDCI(+SDCL,4))+(+$GET(SDCI(+SDCL,6)))
+2 SET SDCNT(5)=+$GET(SDCNT(5))+(+$GET(SDCNT(7)))
SET SDCNT(14)=+$GET(SDCI(+SDCL,5))+(+$GET(SDCI(+SDCL,7)))
+3 FOR SDI=1,2,3,4,13,6,5,14,7,8
Begin DoDot:1
+4 WRITE ?$$COL(SDI),$JUSTIFY($SELECT($DATA(SDCNT(SDI)):SDCNT(SDI),1:0),$$LEN(SDI))
End DoDot:1
+5 QUIT
+6 ;
CHK ;Check to pause on screen
+1 IF $EXTRACT(IOST,1,2)="C-"
IF ($Y+6)>IOSL
DO PAUSE^VALM1
SET SDY=Y
if SDY
DO HDR1
IF 'SDY
SET SDSTOP=1
QUIT
+2 IF ($Y+6)>IOSL
DO HDR1
+3 QUIT
TOTAL ;Totals
+1 FOR SDI=1:1:11
SET SDCNT(SDI)=+$GET(SDCL("SDAMS",$JOB,SDDV,SDI))
SET SDTOT=$GET(SDTOT)+$GET(SDCNT(SDI))
+2 DO CNT
+3 KILL SDCNT
+4 QUIT
+5 ;
LEGEND ;Legend on bottom of output
+1 ;
+2 WRITE !,?5,"o CI=Checked In ; RB=Rebooked"
+3 WRITE !,?5,"o 'Cancelled' appointments only reflect appointments cancelled using 'Cancel Clinic Availability'."
+4 WRITE !,?5,"o 'Checked-In' does not include no-shows or cancelled appointments that have been checked in."
+5 QUIT
+6 ;
COL(SDI) ;Column placement of appt. status
+1 ;
+2 ;input - SDI (appt. type)
+3 ;output - column placement
+4 QUIT $SELECT(SDI=1:34,SDI=2:48,SDI=3:63,SDI=4:81,SDI=5:97,SDI=6:92,SDI=7:108,SDI=8:114,SDI=13:87,SDI=14:103)
+5 ;
LEN(SDI) ;Length of column
+1 ;
+2 ;input - SDI (appt. type)
+3 ;output - length of column
+4 QUIT $SELECT(SDI=1:10,SDI=2:11,SDI=3:15,SDI=4:5,SDI=6:4,SDI=5:5,SDI=7:4,SDI=8:9,SDI=13:4,SDI=14:4)
+5 ;