1 | IBDF2D1 ;ALB/CJM - ENCOUNTER FORM - PRINT SELECTION LIST (cont'd) ;NOV 16,1992
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
|
---|
3 | GETCOL(COL) ;finds next column
|
---|
4 | ;COL - array where output data stored,SHOULD BE PASSED BY REFERENCE
|
---|
5 | ;COL=last column number processed
|
---|
6 | ;COL("Y")=columns starting row relative to block
|
---|
7 | ;COL("X")=column's starting column relative to block
|
---|
8 | ;COL("H")=column's height, i.e., maximum # of selections
|
---|
9 | ;
|
---|
10 | S COL=$G(COL)+1
|
---|
11 | S NEEDUPR=0
|
---|
12 | I COL=1 S COL("H")=+IBLIST("H",1),COL("X")=+IBLIST("X",1),COL("Y")=+IBLIST("Y",1)
|
---|
13 | I COL>IBLIST("NUMCOL") S COL=0 Q
|
---|
14 | I $G(IBLIST("Y",COL))'=+$G(IBLIST("Y",COL)) D
|
---|
15 | .I COL=1 S COL("Y")=$S(IBBLK("HDR")="":BOX,1:2+BOX)
|
---|
16 | .I COL'=1 Q ;leave value from prior col
|
---|
17 | E S COL("Y")=$G(IBLIST("Y",COL))
|
---|
18 | I $G(IBLIST("X",COL))'=+$G(IBLIST("X",COL)) D
|
---|
19 | .Q:COL=1
|
---|
20 | .S COL("X")=COL("X")+CWIDTH+$S(IBLIST("SEP")=" ":2,IBLIST("SEP")=" ":4,1:0)
|
---|
21 | E S COL("X")=$G(IBLIST("X",COL))
|
---|
22 | I $G(IBLIST("H",COL))'=+$G(IBLIST("H",COL)) D
|
---|
23 | .I COL=1 S COL("H")=IBBLK("H")
|
---|
24 | .I COL'=1 Q ;leave value from prior col
|
---|
25 | E S COL("H")=$G(IBLIST("H",COL))
|
---|
26 | I BOX,'LINE,COL("X")=0 S COL("X")=1
|
---|
27 | I (COL("X")+CWIDTH+(('LINE)&BOX))>IBBLK("W") S COL=0 Q
|
---|
28 | I (COL("Y")+COL("H"))>(IBBLK("H")-(2*BOX)) S COL("H")=(IBBLK("H")-(COL("Y")+BOX))
|
---|
29 | S COL("ROWSLEFT")=COL("H"),COL("NEXTROW")=0
|
---|
30 | Q
|
---|
31 | ;
|
---|
32 | DRWCOL(COL) ;draws one column of the selection list except for its contents and rows
|
---|
33 | N I,OFFSET,WIDTH
|
---|
34 | I LINE,(COL("X")'=0)!('BOX),ALL D DRWVLINE^IBDFU($$Y^IBDF2D,$$X^IBDF2D,COL("H"),"|")
|
---|
35 | I LINE,('BOX)!(COL("X")+CWIDTH'=IBBLK("W")),ALL D DRWVLINE^IBDFU($$Y^IBDF2D,$$X^IBDF2D+(CWIDTH-1),COL("H"),"|")
|
---|
36 | ;
|
---|
37 | ;draw the column header
|
---|
38 | I IBLIST("HDR")'="",(COL("ROWSLEFT")>0) D:ALL D DECREASE^IBDF2D(.COL)
|
---|
39 | .S IBLIST("DHDR")=$TR(IBLIST("DHDR"),"RS","rs")
|
---|
40 | .;only affects forms with big print - bold otherwise not available
|
---|
41 | .I (IBLIST("DHDR")["s")!(IBLIST("DHDR")["r"),IBLIST("DHDR")'["B",IBFORM("WIDTH")<100 S IBLIST("DHDR")=IBLIST("DHDR")_"B"
|
---|
42 | .I IBFORM("WIDTH")>100 S IBLIST("DHDR")=$TR(IBLIST("DHDR"),"B")
|
---|
43 | .;
|
---|
44 | .S WIDTH=CWIDTH-(2*LINE)
|
---|
45 | .S OFFSET=LINE
|
---|
46 | .I IBLIST("DHDR")["C",$L(IBLIST("HDR"))<WIDTH S OFFSET=OFFSET+((WIDTH-$L(IBLIST("HDR")))\2)
|
---|
47 | .D DRWSTR^IBDFU($$Y^IBDF2D,($$X^IBDF2D)+LINE,$J("",OFFSET)_IBLIST("HDR"),$TR(IBLIST("DHDR"),"C",""),WIDTH)
|
---|
48 | ;
|
---|
49 | ;draw the header line for the subcolumns
|
---|
50 | I COL("ROWSLEFT")>0,IBLIST("CHDR")]"" D:ALL D DECREASE^IBDF2D(.COL)
|
---|
51 | .S IBLIST("DSCHDR")=$TR(IBLIST("DSCHDR"),"R","r")
|
---|
52 | .;only affects forms with big print - bold otherwise not available
|
---|
53 | .I IBLIST("DSCHDR")["r",IBLIST("DSCHDR")'["B",IBFORM("WIDTH")<100 S IBLIST("DSCHDR")=IBLIST("DSCHDR")_"B"
|
---|
54 | .I IBFORM("WIDTH")>100 S IBLIST("DSCHDR")=$TR(IBLIST("DSCHDR"),"B")
|
---|
55 | .;
|
---|
56 | .;apply options across entire line?
|
---|
57 | .;if nothing else applies uderline SCs (maybe)
|
---|
58 | .I IBLIST("ULSLCTNS")!LINE!(BOX&(CWIDTH>(IBBLK("W")-3-(2*(IBLIST("SEP1")))))) D Q
|
---|
59 | ..I IBLIST("DSCHDR")="",IBLIST("ULSLCTNS") S IBLIST("DSCHDR")=IBLIST("DSCHDR")_"U"
|
---|
60 | ..D DRWSTR^IBDFU($$Y^IBDF2D,($$X^IBDF2D)+LINE,IBLIST("CHDR"),IBLIST("DSCHDR"),CWIDTH-(2*LINE))
|
---|
61 | .;
|
---|
62 | .;apply display options just to the text, not accross the column
|
---|
63 | .I IBLIST("DSCHDR")="" S IBLIST("DSCHDR")="U"
|
---|
64 | .F I=1-IBLIST("SC0"):1:8 I IBLIST("SCTYPE",I)'="",IBLIST("SCHDR",I)'="" D DRWSTR^IBDFU($$Y^IBDF2D,(($$X^IBDF2D)+IBLIST("SCOS",I)),IBLIST("SCHDR",I),IBLIST("DSCHDR"),$L(IBLIST("SCHDR",I)))
|
---|
65 | Q
|
---|
66 | ;
|
---|
67 | CNVRTHT(HPLINES,LINES) ;changes HPLINES=number of handprint lines into LINES=print lines on the page
|
---|
68 | ;pass LINES by reference
|
---|
69 | S LINES=$FN(1.5*HPLINES,"",0)
|
---|
70 | Q
|
---|
71 | ;
|
---|
72 | CNVRTLEN(HPWIDTH,WIDTH) ;changes HPWIDTH=width in terms of handprint characters into width in terms of columns(machine print characters)
|
---|
73 | ;pass WIDTH by reference
|
---|
74 | ;
|
---|
75 | N COLWIDTH
|
---|
76 | D
|
---|
77 | .I IBFORM("WIDTH")>96 S COLWIDTH=720/16.67 Q
|
---|
78 | .I IBFORM("WIDTH")>80 S COLWIDTH=60 Q
|
---|
79 | .S COLWIDTH=72
|
---|
80 | S WIDTH=$FN(.49+((HPWIDTH*103.65924)/COLWIDTH),"",0)
|
---|
81 | Q
|
---|