| 1 | SDAMOWP1 ;ALB/CAW - Appointment Waiting Time Print Routine ; 12/1/91 | 
|---|
| 2 | ;;5.3;Scheduling;**12,20**;Aug 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | HDR ; -- print header | 
|---|
| 5 | ; | 
|---|
| 6 | N Y | 
|---|
| 7 | D HDRD | 
|---|
| 8 | ; | 
|---|
| 9 | I $D(SDNO) D NO G HDR1 | 
|---|
| 10 | I SDSORT=1!(SDSORT=2) W !,?70,"   Clinic: ",$E(LEVEL1,1,23) | 
|---|
| 11 | I SDSORT=3!(SDSORT=4) W !,?70,"Stop Code: ",$E(LEVEL1,1,23) | 
|---|
| 12 | ; | 
|---|
| 13 | HDR1 W !,"Sorted By: ",$P($T(SORT1+SDSORT),";;",2) | 
|---|
| 14 | I SDSORT'=5,$D(^TMP("SDWTTOT",$J,+SDDIV,LEVEL1,"PRIM")) W ?70,"    Total: ",+^("PRIM") | 
|---|
| 15 | I SDSORT=5,$D(^TMP("SDWTTOTD",$J,+SDDIV,"DIV")) W ?70,"    Total: ",+^("DIV") | 
|---|
| 16 | ; | 
|---|
| 17 | W !,SDASH | 
|---|
| 18 | I SDSEL=1 W !,"Patient",?20,"ID",?26,$S("^3^4^5^"[(U_SDSORT_U):"Clinic",1:""),?46,"Check-In",?62,"Appointment",?78,"Elapsed",?92,"Check-Out",?109,"Elapsed",?120,"Total" | 
|---|
| 19 | I SDSEL=1 W !,?46,"Date/Time",?62,"Date/Time",?78,"Time",?92,"Date/Time",?109,"Time",?120,"Time",!,SDASH | 
|---|
| 20 | HDRQ Q | 
|---|
| 21 | ; | 
|---|
| 22 | HDRD ; Print header with dates | 
|---|
| 23 | ; | 
|---|
| 24 | W @IOF,"Appointment Waiting Time Report",?51,"Report Date: ",$P($$NOW^VALM1,":",1,2) | 
|---|
| 25 | S SDPAGE=SDPAGE+1 W ?108,"Page: ",SDPAGE | 
|---|
| 26 | W !,SDASH | 
|---|
| 27 | ; | 
|---|
| 28 | W !,"Dates    : ",$$FDATE^VALM1(SDBEG)," to ",$$FDATE^VALM1(SDEND) | 
|---|
| 29 | I $D(SDNO) D NODIV G HDRDQ | 
|---|
| 30 | S SDDIVNAM=$E($S($D(^DG(40.8,+SDDIV,0)):$P(^(0),U),1:""),1,SDLEN) | 
|---|
| 31 | I SDDIVNAM'="" W ?70," Division: ",SDDIVNAM | 
|---|
| 32 | HDRDQ Q | 
|---|
| 33 | ; | 
|---|
| 34 | HDRT(SORT) ; Print header for totals | 
|---|
| 35 | ; | 
|---|
| 36 | N SRT S SRT=$G(SORT) | 
|---|
| 37 | W !,$S("^1^2^"[(U_SRT_U):"Clinic","^3^4^"[(U_SRT_U):"Stop Code",1:"Division"),?40,"Appointments",?56,"Total CI Time",?71,"Total CO Time",?86,"Average Pre",?101,"Average Post",?116,"Average Total" | 
|---|
| 38 | W !,?86,"Waiting Time",?101,"Waiting Time",?116,"Waiting Time" | 
|---|
| 39 | W !,SDASH | 
|---|
| 40 | Q | 
|---|
| 41 | TOT(WHAT,LEVEL1,DIV) ; Print totals | 
|---|
| 42 | ; | 
|---|
| 43 | N TOTAL,TOTAL1,TOTAL2,TOTAL3,TOTAL4 | 
|---|
| 44 | I WHAT="PRIM" S TOTAL=$G(^TMP("SDWTTOT",$J,+DIV,LEVEL1,"PRIM")) | 
|---|
| 45 | I WHAT="DIV" S TOTAL=$G(^TMP("SDWTTOTD",$J,+DIV,"DIV")) | 
|---|
| 46 | I WHAT="GRAND" S TOTAL=$G(^TMP("SDWTTOTG",$J,"GRAND")) | 
|---|
| 47 | S TOTAL1=$P(TOTAL,U,1),TOTAL2=$P(TOTAL,U,2),TOTAL3=$P(TOTAL,U,3),TOTAL4=$P(TOTAL,U,4) | 
|---|
| 48 | W !,$G(LEVEL1) | 
|---|
| 49 | W ?40,TOTAL1 | 
|---|
| 50 | W ?56,$$HRS^SDAMOWP(TOTAL2) | 
|---|
| 51 | W ?71,$$HRS^SDAMOWP(TOTAL3) | 
|---|
| 52 | W ?86,$$HRS^SDAMOWP($P((TOTAL2/TOTAL1),".")) | 
|---|
| 53 | W ?101,$$HRS^SDAMOWP($P((TOTAL3/TOTAL1),".")) | 
|---|
| 54 | W ?116,$$HRS^SDAMOWP($P((TOTAL4/TOTAL1),".")) | 
|---|
| 55 | TOTQ Q | 
|---|
| 56 | ; | 
|---|
| 57 | SORT1 ; -- hdr labels for sort | 
|---|
| 58 | ;;DIVISION, CLINIC, PATIENT | 
|---|
| 59 | ;;DIVISION, CLINIC, APPOINTMENT DATE/TIME | 
|---|
| 60 | ;;DIVISION, STOP CODE, CLINIC | 
|---|
| 61 | ;;DIVISION, STOP CODE, PATIENT | 
|---|
| 62 | ;;DIVISION, PATIENT, APPOINTMENT DATE/TIME | 
|---|
| 63 | ;;$$END | 
|---|
| 64 | Q | 
|---|
| 65 | ; | 
|---|
| 66 | TOTP(SORT,DIV,LEVEL1) ; Print totals | 
|---|
| 67 | ; | 
|---|
| 68 | D HDRD,HDRT(SORT) | 
|---|
| 69 | F  S LEVEL1=$O(^TMP("SDWTTOT",$J,+DIV,LEVEL1)) Q:LEVEL1=""!(SDQUIT)  D | 
|---|
| 70 | .D CHECK(SORT) Q:SDQUIT | 
|---|
| 71 | .D TOT("PRIM",LEVEL1,DIV) | 
|---|
| 72 | Q:SDQUIT | 
|---|
| 73 | W !,SDASH1 | 
|---|
| 74 | D TOT("DIV","TOTAL",DIV),LEGEND | 
|---|
| 75 | D PAUSE^SDAMOWP | 
|---|
| 76 | Q | 
|---|
| 77 | ; | 
|---|
| 78 | CHECK(SORT) ; check to see if header should be printed | 
|---|
| 79 | I 'SDPAGE D HDRT(SORT) Q | 
|---|
| 80 | I $E(IOST,1,2)="C-",($Y+6)>IOSL D PAUSE^VALM1 I 'Y S SDQUIT=1 Q | 
|---|
| 81 | I ($Y+6)>IOSL W @IOF D HDRT(SORT) | 
|---|
| 82 | Q | 
|---|
| 83 | ; | 
|---|
| 84 | LEGEND ; Print legend on bottom | 
|---|
| 85 | ; | 
|---|
| 86 | W !!,?5,"o  Check-In Date/Time - Time the patient first checks in at the clinic reception area." | 
|---|
| 87 | W !,?5,"o  Appointment Date/Time - Time of the veteran's scheduled appointment." | 
|---|
| 88 | W !,?5,"o  Elapsed Time(s) - 1.  The elapsed period of time from the patient checking in at the clinic to the appointment time. " | 
|---|
| 89 | W !,?5,"                         (Appointment time minus Check-In time)" | 
|---|
| 90 | W !,?5,"o                    2.  The elapsed period of time from the appointment time to the time the patient checks out." | 
|---|
| 91 | W !,?5,"                         (Check-Out time minus Appointment Time)" | 
|---|
| 92 | W !,?5,"o  Total Waiting Time - The elapsed period of time from the patient's check-in date/time to the time leaving the clinic" | 
|---|
| 93 | W !,?5,"                        after service is completed.  (Check-Out time minus Check-In time)" | 
|---|
| 94 | LEGENDQ Q | 
|---|
| 95 | ; | 
|---|
| 96 | NODIV ; Print divisions when no appts found | 
|---|
| 97 | ; | 
|---|
| 98 | N DIV S DIV="" W !,?70,"Division(s): " | 
|---|
| 99 | I VAUTD=1 W "All" G NODIVQ | 
|---|
| 100 | F  S DIV=$O(VAUTD(DIV)) Q:DIV=""  W ?83,VAUTD(DIV),! | 
|---|
| 101 | NODIVQ Q | 
|---|
| 102 | ; | 
|---|
| 103 | NO ; Print stop code or clinic when no appts found | 
|---|
| 104 | ; | 
|---|
| 105 | N SDWHAT S SDWHAT="" W !,?72,$S(SDSORT=1!(SDSORT=2):"Clinic(s): ",SDSORT=3!(SDSORT=4):"Stop Code(s): ",1:"") | 
|---|
| 106 | I SDSORT=1!(SDSORT=2),VAUTC=1 W "All" G NOQ | 
|---|
| 107 | I SDSORT=1!(SDSORT=2) F  S SDWHAT=$O(VAUTC(SDWHAT)) Q:SDWHAT=""  W ?83,VAUTC(SDWHAT),! | 
|---|
| 108 | I SDSORT=3!(SDSORT=4),VAUTS=1 W "All" G NOQ | 
|---|
| 109 | I SDSORT=3!(SDSORT=4) F  S SDWHAT=$O(VAUTS(SDWHAT)) Q:SDWHAT=""  W ?87,VAUTS(SDWHAT),! | 
|---|
| 110 | NOQ Q | 
|---|