| 1 | ABSVLBL2 ;VAMC ALTOONA/CTB - GENERIC LABEL PRINTING ROUTINE  ;1/11/01  10:16 AM | 
|---|
| 2 | V ;;4.0;VOLUNTARY SERVICE;**23**;JULY 6, 1994 | 
|---|
| 3 | ;GIVEN LIST OF RECORDS IN ^TMP($J,"VLABEL",N)=DA | 
|---|
| 4 | ;PRINT MULTI COLUMN LABEL | 
|---|
| 5 | ;NLABEL=NUMBER OF LABELS/ROW | 
|---|
| 6 | ;NLINES=NUMBER OF LINES/LABEL | 
|---|
| 7 | ;NPAGE=NUMBER OF LABELS/PAGE | 
|---|
| 8 | ;NSETS=NUMBER OF SETS/LABEL | 
|---|
| 9 | ;COLL=COLLATED/UNCOLLATED | 
|---|
| 10 | ;LOFFSET=LEFT OFFSET | 
|---|
| 11 | ;DIC=GLOBAL REFERENCE OF FILE | 
|---|
| 12 | ;DR=FIELD NUMBERS TO BE INCLUDED IN LABEL | 
|---|
| 13 | ;BLANKS=NUMBER OF BLANK LABELS | 
|---|
| 14 | LABEL(DIC,DR,PARAMS) ; | 
|---|
| 15 | Q:$G(DIC)=""  Q:$G(DR)="" | 
|---|
| 16 | S NLABEL=$P(PARAMS,"^",2),NLINES=$P(PARAMS,"^",4),NPAGE=$P(PARAMS,"^",3),NCOL=$P(PARAMS,"^",5),LOFFSET=$P(PARAMS,"^",6),TOFFSET1=+$P(PARAMS,"^",7),TOFFSET2=+$P(PARAMS,"^",8),BLANKS=+$P(PARAMS,"^",10) | 
|---|
| 17 | S NSETS=$P(PARAMS,"^",11),COLL=$P(PARAMS,"^",12) | 
|---|
| 18 | I +$G(NLABEL)=0 S NLABEL=1 | 
|---|
| 19 | I +$G(NLINES)=0 S NLINES=6 | 
|---|
| 20 | I +$G(NPAGE)=0 S NPAGE=99999 | 
|---|
| 21 | D REBUILD | 
|---|
| 22 | I TOFFSET1>0 F I=0:1:TOFFSET1 W ! | 
|---|
| 23 | I BLANKS D | 
|---|
| 24 | . S BLNKROW=BLANKS\NLABEL I BLNKROW>0 F I=1:1:(BLNKROW*NLINES) W ! | 
|---|
| 25 | . S BLANKS=BLANKS#NLABEL | 
|---|
| 26 | S NEXT=0 F  D  Q:NEXT=""  W @IOF,! I TOFFSET2>0 F I=0:1:TOFFSET2 W ! | 
|---|
| 27 | . F NNPAGE=$S(BLANKS:BLNKROW+1,1:1):1:NPAGE D  Q:NEXT="" | 
|---|
| 28 | . . K LINE F COL=1:1:NLABEL D:BLANKS BLANKS S NEXT=$O(^TMP($J,"XVLABEL",NEXT)) Q:NEXT=""  S DA=^(NEXT) D:DA'="" ONELABEL(DA) | 
|---|
| 29 | . . F I=1:1:NLINES D ONELINE | 
|---|
| 30 | . . K LINE | 
|---|
| 31 | . . QUIT | 
|---|
| 32 | . QUIT | 
|---|
| 33 | QUIT | 
|---|
| 34 | ONELINE ; | 
|---|
| 35 | F J=1:1:NLABEL W ?(((J-1)*(IOM\NLABEL+1))+LOFFSET),$E($G(LINE(J,I)),1,(IOM\NLABEL-1)) | 
|---|
| 36 | I NNPAGE=NPAGE,I=NLINES QUIT | 
|---|
| 37 | W ! | 
|---|
| 38 | QUIT | 
|---|
| 39 | ONELABEL(DA) ; | 
|---|
| 40 | N X | 
|---|
| 41 | F I=1:1:$L(DR,";") S X=$G(X)_"LAB("_I_");" | 
|---|
| 42 | D EXT^ABSVU2(DIC,DA,DR,X) | 
|---|
| 43 | D COMPRESS | 
|---|
| 44 | K LAB | 
|---|
| 45 | QUIT | 
|---|
| 46 | COMPRESS NEW A,B | 
|---|
| 47 | S B=1 | 
|---|
| 48 | I $G(LAB(1))="" S COL=COL-1 QUIT | 
|---|
| 49 | F A=1:1:I I $G(LAB(A))]"" S LINE(COL,B)=$$REMPUNC^ABSVU2(LAB(A)),B=B+1 | 
|---|
| 50 | QUIT | 
|---|
| 51 | BLANKS ;BUILD BLANK LABELS | 
|---|
| 52 | F  D  Q:BLANKS=0 | 
|---|
| 53 | . F I=1:1:NLINES S $P(LINE(COL,I)," ",30)="" | 
|---|
| 54 | . S COL=COL+1 | 
|---|
| 55 | . S BLANKS=BLANKS-1 Q:'BLANKS | 
|---|
| 56 | . I COL>NLABEL D ONELINE K LINE S COL=1 | 
|---|
| 57 | QUIT | 
|---|
| 58 | REBUILD ;REBUILD LIST FOR # OF PATIENTS | 
|---|
| 59 | IF NSETS>1 D  QUIT | 
|---|
| 60 | . I COLL=1 D COLL QUIT | 
|---|
| 61 | . D UNCOLL QUIT | 
|---|
| 62 | . QUIT | 
|---|
| 63 | S N=0 F  S N=$O(^TMP($J,"VLABEL",N)) Q:'N  S ^TMP($J,"XVLABEL",COUNT)=^(N),COUNT=COUNT+1 | 
|---|
| 64 | QUIT | 
|---|
| 65 | COLL ;REBUILD LIST - COLLATED 1,2,3,4,5,1,2,3,4,5 | 
|---|
| 66 | S COUNT=1 D | 
|---|
| 67 | . F I=1:1:NSETS D | 
|---|
| 68 | . .S N="" F  S N=$O(^TMP($J,"VLABEL",N)) Q:'N  S ^TMP($J,"XVLABEL",COUNT)=^(N),COUNT=COUNT+1 | 
|---|
| 69 | . QUIT | 
|---|
| 70 | QUIT | 
|---|
| 71 | UNCOLL ;REBUILD LIST - UNCOLLATED 1,1,2,2,3,3,4,4,5,5 | 
|---|
| 72 | N X | 
|---|
| 73 | S COUNT=1,N=0 F  S N=$O(^TMP($J,"VLABEL",N)) Q:'N  S X=^(N) F I=1:1:NSETS S ^TMP($J,"XVLABEL",COUNT)=X,COUNT=COUNT+1 | 
|---|