[613] | 1 | SDOQMPR ;LRVAMC/JRC ;ALB/SCK - Monitoring Report ; 7/17/96
|
---|
| 2 | ;;5.3;SCHEDULING;**47**;AUG 13, 1993
|
---|
| 3 | ; MODIFIED FOR NATIONAL RELEASE
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | START U IO
|
---|
| 7 | S (ALDCTOTL,ALDCNT)=0,$P(ALDCDASH,"-",133)=""
|
---|
| 8 | S (END,PAGE)=0
|
---|
| 9 | S $P(DASH,"=",132)=""
|
---|
| 10 | S Y=DT D DD^%DT S ALDCNOW=Y
|
---|
| 11 | S Y=$P($G(^TMP("SDPM",$J,0)),U) D DD^%DT S ALDCSTDT=Y
|
---|
| 12 | S Y=$P($G(^TMP("SDPM",$J,0)),U,2) D DD^%DT S ALDCLAST=Y
|
---|
| 13 | ;
|
---|
| 14 | I '$D(^TMP("SDPM",$J,0)) D Q
|
---|
| 15 | . D HEADER
|
---|
| 16 | . W !!?5,"Either no appointment monitoring data found, or there was no data available for these clinics"
|
---|
| 17 | ;
|
---|
| 18 | K ^TMP($J)
|
---|
| 19 | D SET,LOOP,KILL
|
---|
| 20 | Q
|
---|
| 21 | SET ;
|
---|
| 22 | N PMDIV
|
---|
| 23 | ;
|
---|
| 24 | S ALDCIEN=0 F S ALDCIEN=$O(^TMP("SDPM",$J,ALDCIEN)) Q:ALDCIEN'>0 D
|
---|
| 25 | .S ALDCDATE=0 F S ALDCDATE=$O(^TMP("SDPM",$J,ALDCIEN,ALDCDATE)) Q:ALDCDATE'>0 D
|
---|
| 26 | ..Q:'$D(^SC(ALDCIEN,0))
|
---|
| 27 | ..S ALDCNAME=$P(^SC(ALDCIEN,0),U)
|
---|
| 28 | ..Q:$E(ALDCNAME,1,2)="ZZ" ;ZZ clinics
|
---|
| 29 | ..S ALDCNCT=$P($G(^SC(ALDCIEN,0)),U,17) Q:ALDCNCT="Y" ;Non-Count Clincis
|
---|
| 30 | ..S ALDCSTOP="UNKNOWN",ALDCSCD=$P($G(^SC(ALDCIEN,0)),U,7) S:ALDCSCD]"" ALDCSTOP=$P($G(^DIC(40.7,+ALDCSCD,0)),U)
|
---|
| 31 | .. Q:+$P($G(^DIC(40.7,+ALDCSCD,0)),U,2)=0
|
---|
| 32 | .. S ALDCODE=$P($G(^DIC(40.7,+ALDCSCD,0)),U,2)
|
---|
| 33 | .. S ALDCGET=$G(^TMP("SDPM",$J,ALDCIEN,ALDCDATE))
|
---|
| 34 | .. S PMDIV=$P(ALDCGET,U,7) S:PMDIV']"" PMDIV="ND" ;Get Division
|
---|
| 35 | .. S ALDCGET=$P(ALDCGET,U,1,6) ;Remove division
|
---|
| 36 | .. S ^TMP($J,PMDIV,ALDCSTOP,ALDCNAME,ALDCDATE,ALDCIEN)=ALDCGET_U_ALDCODE
|
---|
| 37 | Q
|
---|
| 38 | ;
|
---|
| 39 | LOOP ;
|
---|
| 40 | N PMDIV
|
---|
| 41 | S (ALDCNT,ALDCTOTL,ALDC2T,ALDCSLTA,ALDCDAYT,ALDCDAYS,ALDCAVG,ALDCOPEN,ALDCOST,ALDC2,ALDC3T,ALDC4T,ALDC4A,ALDC3A,ALDC5,ALDC5T,ALDC5A,ALDC6,ALDC6T,ALDC6A,ALDCOB)=0
|
---|
| 42 | ;
|
---|
| 43 | S PMDIV="" F S PMDIV=$O(^TMP($J,PMDIV)) Q:PMDIV="" D Q:END
|
---|
| 44 | . D HEADER
|
---|
| 45 | . S ALDCSTOP="" F S ALDCSTOP=$O(^TMP($J,PMDIV,ALDCSTOP)) Q:ALDCSTOP="" D Q:END
|
---|
| 46 | .. D HDR2
|
---|
| 47 | .. S ALDCNAME="",ALDCLINE=0 F S ALDCNAME=$O(^TMP($J,PMDIV,ALDCSTOP,ALDCNAME)) Q:ALDCNAME="" D Q:END
|
---|
| 48 | ...S ALDCDATE=0 F S ALDCDATE=$O(^TMP($J,PMDIV,ALDCSTOP,ALDCNAME,ALDCDATE)) Q:ALDCDATE'>0 D Q:END
|
---|
| 49 | ....S ALDCIEN=0 F S ALDCIEN=$O(^TMP($J,PMDIV,ALDCSTOP,ALDCNAME,ALDCDATE,ALDCIEN)) Q:ALDCIEN'>0 D Q:END
|
---|
| 50 | .....S ALDCGET=$G(^TMP($J,PMDIV,ALDCSTOP,ALDCNAME,ALDCDATE,ALDCIEN))
|
---|
| 51 | .....S ALDC1=$P(ALDCGET,U),ALDC2=$P(ALDCGET,U,2),ALDC3=$P(ALDCGET,U,3),ALDC4=$P(ALDCGET,U,4),ALDC5=$P(ALDCGET,U,5),ALDC6=$P(ALDCGET,U,6),ALDCD=" ("_$P(ALDCGET,U,7)_") ",ALDCPSTP=" "_ALDCSTOP_ALDCD
|
---|
| 52 | .....K ALDCSTAR S ALDCWK=66-($L(ALDCPSTP)*.5),$P(ALDCSTAR,"*",ALDCWK)="",ALDCPSTP=ALDCSTAR_ALDCPSTP_ALDCSTAR
|
---|
| 53 | .....S:ALDC2>0 ALDCOPEN=ALDCOPEN+1
|
---|
| 54 | .....S ALDC2T=ALDC2T+ALDC2 ;# slots on run date
|
---|
| 55 | .....S ALDC3T=ALDC3T+ALDC3 ;# appts on run date
|
---|
| 56 | .....S ALDC4T=ALDC4T+ALDC4 ;# slots from run date to first avlbe appt
|
---|
| 57 | .....S ALDC5T=ALDC5T+ALDC5 ;# appts from run date to first avlbe appt
|
---|
| 58 | .....S ALDC6T=ALDC6T+ALDC6 ;# of open days (days clinic held)
|
---|
| 59 | .....D ADD
|
---|
| 60 | .....S ALDCNT=ALDCNT+1
|
---|
| 61 | .... D:$Y+5>IOSL HEADER Q:END
|
---|
| 62 | ....W:ALDCSTOP'=ALDCOST !!,ALDCPSTP
|
---|
| 63 | ....S ALDCOST=ALDCSTOP
|
---|
| 64 | ...S ALDCTOTL=ALDCTOTL+ALDCNT
|
---|
| 65 | ...S ALDC4A=ALDC4T/ALDCNT ;average slots to first available appt
|
---|
| 66 | ...S ALDC5A=ALDC5T/ALDCNT ;average appts to first available appt
|
---|
| 67 | ...S ALDC6A=ALDC6T/ALDCNT ;average open days (days clinic is held)
|
---|
| 68 | ...I (ALDC3T>0)&(ALDCOPEN>0) S ALDC3A=ALDC3T/ALDCOPEN ;avg appts
|
---|
| 69 | ...I (ALDC2T>0)&(ALDCOPEN>0) S ALDCSLTA=ALDC2T/ALDCOPEN ;avg slots
|
---|
| 70 | ...I (ALDC4A>0)&(ALDC5A>0) S ALDCOB=ALDC5A/ALDC4A ;overbooks
|
---|
| 71 | ...S ALDCAVG=ALDCDAYT/ALDCNT
|
---|
| 72 | ...I ALDCLINE=3 W ! S ALDCLINE=0
|
---|
| 73 | ...W !,?2,$E(ALDCNAME,1,23),?30,$J(ALDCAVG,6,2),?42,$J(ALDCSLTA,6,2),?55,$J(ALDC3A,6,2),?70,$J(ALDC4A,6,2),?82,$J(ALDC5A,6,2),?95,$J(ALDC6A,6,2),?107,$J(ALDCOPEN,6),?120,$J(ALDCOB,6,2)
|
---|
| 74 | ...S ALDCLINE=ALDCLINE+1
|
---|
| 75 | ...S (ALDCNT,ALDCDAYS,ALDCDAYT,ALDC2T,ALDC3T,ALDC4T,ALDCOPEN,ALDCSLTA,ALDC3A,ALDC4A,ALDC5,ALDC5A,ALDC5T,ALDC6,ALDC6T,ALDC6A,ALDCOB)=0
|
---|
| 76 | Q
|
---|
| 77 | ADD ;Calculate number of days to next available appointment
|
---|
| 78 | S X2=ALDCDATE,X1=ALDC1 D ^%DTC S ALDCDAYS=X
|
---|
| 79 | S ALDCDAYT=ALDCDAYT+ALDCDAYS
|
---|
| 80 | Q
|
---|
| 81 | HEADER ;
|
---|
| 82 | I PAGE,$E(IOST,1,2)="C-" W !,"Press RETURN to continue or '^' to exit: " R X:DTIME S END='$T!(X="^") Q:END
|
---|
| 83 | HDR1 W:$E(IOST,1,2)'="C-" @IOF
|
---|
| 84 | S PAGE=PAGE+1
|
---|
| 85 | W !?110,"Run Date: ",ALDCNOW
|
---|
| 86 | W !?3,"OUTPATIENT CLINIC WAITING TIME PROJECT from "_ALDCSTDT_" thru "_ALDCLAST,?114,"PAGE: ",PAGE,!
|
---|
| 87 | W !?32,"[****************************** AVERAGE ******************************]"
|
---|
| 88 | W !,?70,"SLOTS TO",?82,"APPTS TO",?95,"OPEN"
|
---|
| 89 | W !,?32,"WAIT",?55,"APPTS",?70,"FIRST",?82,"FIRST",?95,"DAYS TO",?120,"OVER"
|
---|
| 90 | W !,?32,"IN",?42,"SLOTS PER",?55,"PER OPEN",?70,"AVAIL",?82,"AVAIL",?95,"FIRST",?109,"OPEN",?120,"BOOK"
|
---|
| 91 | W !?5,"Clinic",?32,"DAYS",?42,"OPEN DAY",?55,"DAY",?70,"APPT",?82,"APPT",?95,"APPT",?109,"DAYS",?120,"RATE"
|
---|
| 92 | W !,DASH
|
---|
| 93 | W !!,"DIVSION: ",$S(+PMDIV>0:$P($G(^DG(40.8,PMDIV,0)),U),1:"None Specified")
|
---|
| 94 | Q
|
---|
| 95 | ;
|
---|
| 96 | HDR2 W:ALDCSTOP=ALDCOST !!,ALDCPSTP
|
---|
| 97 | S ALDCLINE=0
|
---|
| 98 | Q
|
---|
| 99 | ;
|
---|
| 100 | KILL K X,Y,ALDCDATE,ALDC1,ALDCSTDT,ALDCLAST,ALDCNT,ALDCDAYT,ALDC3T,ALDCSTOP,ALDCOST,ALDCPAGE,ALDC2,ALDC3,ALDC4,ALDC5,ALDC6,ALDC2T
|
---|
| 101 | K ALDCAVG,ALDCDASH,ALDCDAYS,X1,X2,ALDCGET,ALDCIEN,ALDCNAME,ALDCOPEN,ALDCSCD,ALDCSLTA,ALDCTOTL,ALDCNCT,ALDC3A,ALDC4A,ALDC5A
|
---|
| 102 | K ALDC6A,ALDC4T,ALDC5T,ALDC6T,ALDCOB
|
---|
| 103 | K ^TMP($J)
|
---|
| 104 | Q
|
---|