| 1 | PRCHRCV ;DJM/WISC-IFCAP BAR DISPLAY ROUTINE  ;7/25/94  3:33 PM
 | 
|---|
| 2 | V ;;5.1;IFCAP;;Oct 20, 2000
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | SETUP(COUNT) ;ENTER HERE TO SET UP THE BAR GRAPH DISPLAY.
 | 
|---|
| 5 |  ;YOUR ROUTINE USING THIS BAR GRAPH MUST NOT WRITE ANYTHING TO THE SCREEN.
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ;   'COUNT' IS THE NUMBER OF ENTRIES BEING PROCESSED.
 | 
|---|
| 8 |  ;   THIS NUMBER WILL BECOME 100% ON THE BAR GRAPH.
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  I $Y>2 W @IOF
 | 
|---|
| 11 |  I COUNT="" W !!,"THERE IS NO 'COUNT' TO WORK WITH.  I QUIT." Q
 | 
|---|
| 12 |  S TREC=COUNT
 | 
|---|
| 13 |  I $E(IOST)="C",'$D(ZTQUEUED) S X="IORVON;IORVOFF" D ENDR^%ZISS
 | 
|---|
| 14 |  I $D(IORVON),$D(IORVOFF) S CURSOR=IORVON_" "_IORVOFF
 | 
|---|
| 15 |  D WAIT^PRCFYN
 | 
|---|
| 16 |  S CREC=$S($E(IOST)="C":1.24,1:4.99)
 | 
|---|
| 17 |  S X="There are "_TREC_" records to process." D MSG^PRCFQ
 | 
|---|
| 18 |  S LINE="---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+"
 | 
|---|
| 19 |  I TREC>80,$E(IOST)="C" W !!,?25,"P E R C E N T   C O M P L E T E",!!,"      10      20      30      40      50      60      70      80      90     100",!,LINE,!
 | 
|---|
| 20 |  S (MX,NX)=0,(XPOS,XCOUNT)=0
 | 
|---|
| 21 |  S:$Y>22 Y=22 S A=$Y,N=0,M=0,BTIME=$P($H,",",2)
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | UPDATE(INIT) ;ENTER HERE AFTER EACH RECORD IS PROCESSED.
 | 
|---|
| 25 |  ;   INIT=CURRENT NUMBER OF RECORDS PROCESSED.
 | 
|---|
| 26 |  ;   INIT DOES NOT NEED TO BE ENTERED.
 | 
|---|
| 27 |  ;   ENTERING INIT WILL PRESET THE BAR GRAPH TO WHATEVER PERCENT
 | 
|---|
| 28 |  ;   XCOUNT IS OF COUNT.
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  ;IF ENOUGH RECORDS HAVE BEEN COMPLETED THE BAR GRAPH WILL BE UPDATED.
 | 
|---|
| 31 |  S TEST=INIT
 | 
|---|
| 32 |  S XCOUNT=$S(INIT>0:INIT,1:XCOUNT)
 | 
|---|
| 33 |  S XCOUNT=XCOUNT+1 D:'$D(ZTQUEUED) PERCENT
 | 
|---|
| 34 |  I PERCENT=100 S DX=0,DY=A+4 I $E(IOST)="C" X IOXY
 | 
|---|
| 35 |  QUIT
 | 
|---|
| 36 | END K FY,BFY,EFY,CFY,AFY,NX,MX,ZERONODE,FLAG,X,Y,TREC,CREC,LREC,XPOS,DX,CY,MOP,ARCBIT,DIC,DLAYGO,A,N,M,PERCENT
 | 
|---|
| 37 |  QUIT
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | PERCENT ;
 | 
|---|
| 40 |  S PERCENT=XCOUNT/TREC*100\1
 | 
|---|
| 41 |  F  Q:PERCENT'>CREC  I PERCENT>CREC D
 | 
|---|
| 42 |  . W:$E(IOST)="C" CURSOR S XPOS=XPOS+1
 | 
|---|
| 43 |  . DO
 | 
|---|
| 44 |  . . W !,XCOUNT," of ",TREC," processed.  ",$J((PERCENT/1),0,0),"% complete  "
 | 
|---|
| 45 |  . . S TIME=$P($H,",",2)
 | 
|---|
| 46 |  . . S:BTIME>TIME TIME=TIME+86400
 | 
|---|
| 47 |  . . S TIME=TIME-BTIME D TIME(TIME)
 | 
|---|
| 48 |  . . W:$E(IOST)="C" !
 | 
|---|
| 49 |  . . W:HOURS HOURS," Hours, "
 | 
|---|
| 50 |  . . W MIN," Minutes, ",SEC," Seconds elapsed.   "
 | 
|---|
| 51 |  . . I PERCENT<50 D  QUIT
 | 
|---|
| 52 |  . . . S DX=XPOS,DY=A
 | 
|---|
| 53 |  . . . I $E(IOST)="C" X IOXY
 | 
|---|
| 54 |  . . . QUIT
 | 
|---|
| 55 |  . . S TTIME=TIME/(PERCENT*.01),RTIME=TTIME-TIME
 | 
|---|
| 56 |  . . S RTIME=$P(RTIME,".")
 | 
|---|
| 57 |  . . S HOURS=0,MIN=0
 | 
|---|
| 58 |  . . I RTIME>3600 S HOURS=RTIME\3600,RTIME=RTIME#3600
 | 
|---|
| 59 |  . . S MIN=RTIME\60,SEC=RTIME#60
 | 
|---|
| 60 |  . . W:$E(IOST)="C" ! W:HOURS HOURS," Hours, "
 | 
|---|
| 61 |  . . W MIN," Minutes, ",SEC," Seconds, remaining.   "
 | 
|---|
| 62 |  . . S DX=XPOS,DY=A
 | 
|---|
| 63 |  . . I $E(IOST)="C" X IOXY
 | 
|---|
| 64 |  . . QUIT
 | 
|---|
| 65 |  . S CREC=CREC+$S($E(IOST)="C":1.25,1:5)
 | 
|---|
| 66 |  . QUIT
 | 
|---|
| 67 |  QUIT
 | 
|---|
| 68 | TIME(X) ;
 | 
|---|
| 69 |  S HOURS=0,MIN=0,SEC=0
 | 
|---|
| 70 |  I X>3600 S HOURS=X\3600,X=X#3600
 | 
|---|
| 71 |  S MIN=X\60,SEC=X#60
 | 
|---|
| 72 |  Q
 | 
|---|