1 | IBDFBKS3 ;ALB/CJM/AAS - ENCOUNTER FORM - create form spec for scanning (Broker Version) ; 6-JUN-95 [ 11/13/96 3:32 PM ]
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
|
---|
3 | ;
|
---|
4 | BUBBLE ;
|
---|
5 | N COUNT
|
---|
6 | ;
|
---|
7 | D PRINTEND ;the end program for the prior field
|
---|
8 | ;
|
---|
9 | D BLDARY^IBDFBKS("FIELD ' "_FIELD)
|
---|
10 | ;
|
---|
11 | ;** NAME **
|
---|
12 | D BLDARY^IBDFBKS(" NAME = """_NAME_""";")
|
---|
13 | ;
|
---|
14 | ;** ELEMTYPE **
|
---|
15 | D BLDARY^IBDFBKS(" ELEMTYPE = RECT;")
|
---|
16 | ;
|
---|
17 | ;** METRIC **
|
---|
18 | D BLDARY^IBDFBKS(" METRIC = 30 16 0 0 -16 -12 "_$G(IBDFILL,20)_" "_$G(IBDBKGND,5)_" 1;")
|
---|
19 | ;D BLDARY^IBDFBKS(" METRIC = 30 16 0 0 -16 -12 20 5 1;")
|
---|
20 | ;
|
---|
21 | ;** DATATYPE **
|
---|
22 | D BLDARY^IBDFBKS(" DATATYPE =INT;")
|
---|
23 | ;
|
---|
24 | ;** LENGTH **
|
---|
25 | I (TYPE=1)!(TYPE=2) D
|
---|
26 | .D BLDARY^IBDFBKS(" LENGTH = ")
|
---|
27 | .S COUNT=0
|
---|
28 | .S COL="" F S COL=$O(@SCAN@(PAGE,FID,TYPE,COL)) Q:COL="" S ROW="" F S ROW=$O(@SCAN@(PAGE,FID,TYPE,COL,ROW)) Q:ROW="" S COUNT=COUNT+1
|
---|
29 | .S IBDFSA(IBLC)=IBDFSA(IBLC)_COUNT_";"
|
---|
30 | I (TYPE=0)!(TYPE=3) D BLDARY^IBDFBKS(" LENGTH = 1;")
|
---|
31 | ;
|
---|
32 | ;** POINTS **
|
---|
33 | I (TYPE=0)!(TYPE=3) S Y=ROW,X=COL D FINDBUB(.Y,.X) D BLDARY^IBDFBKS(" POINTS = "_Y_" "_X_";")
|
---|
34 | I (TYPE=1)!(TYPE=2) D
|
---|
35 | .D BLDARY^IBDFBKS(" POINTS =")
|
---|
36 | .S COL="" F S COL=$O(@SCAN@(PAGE,FID,TYPE,COL)) Q:COL="" D
|
---|
37 | ..S ROW="" F S ROW=$O(@SCAN@(PAGE,FID,TYPE,COL,ROW)) Q:ROW="" D
|
---|
38 | ...S X=COL,Y=ROW
|
---|
39 | ...D FINDBUB(.Y,.X)
|
---|
40 | ...I $L(IBDFSA(IBLC))+$L(" "_Y_" "_X)<252 S IBDFSA(IBLC)=IBDFSA(IBLC)_" "_Y_" "_X Q
|
---|
41 | ...D BLDARY^IBDFBKS("~~~"_" "_Y_" "_X)
|
---|
42 | .S IBDFSA(IBLC)=IBDFSA(IBLC)_";"
|
---|
43 | ;
|
---|
44 | ;** PAGE **
|
---|
45 | D BLDARY^IBDFBKS(" PAGE = "_PAGE_";")
|
---|
46 | ;
|
---|
47 | ;** END ** program to enforce selection rule and to go to end of page
|
---|
48 | I TYPE=1 D ;exactly one required
|
---|
49 | .D ADDTOEND(" if (GETSTATUS("_FIELD_") == FIELD_BLANK){")
|
---|
50 | .;D ADDTOEND(" \' SHOW(\"""_$$CKNAM(NAME)_" is required!\"");")
|
---|
51 | .D ADDTOEND(" if (BATCH==0) {FIELDSTATUS = FIELD_BAD;}")
|
---|
52 | .D ADDTOEND(" if (BATCH==1) {saveunrf = "_FIELD_";}")
|
---|
53 | .D ADDTOEND(" }")
|
---|
54 | .D ADDTOEND(" if ((GETSTATUS("_FIELD_") == FIELD_TOOMANY)&&(BATCH == 1)) {")
|
---|
55 | .D ADDTOEND(" saveunrf = "_FIELD_";}")
|
---|
56 | ;
|
---|
57 | I TYPE=2 D ;at most one required
|
---|
58 | .D ADDTOEND(" if ((GETSTATUS("_FIELD_") == FIELD_TOOMANY)&&(BATCH == 1)) {")
|
---|
59 | .D ADDTOEND(" saveunrf = "_FIELD_";}")
|
---|
60 | ;
|
---|
61 | I TYPE=3,LAST'="" D ;at least one required
|
---|
62 | .D ADDTOEND(" INT field;")
|
---|
63 | .D ADDTOEND(" field="_FIRST_";") ;AAS Changed 11/14
|
---|
64 | .N X S X=LAST+1 D ADDTOEND(" while (field<"_X_"){") ;AAS changed 11/14
|
---|
65 | .D ADDTOEND(" if (GETSTATUS(field) != FIELD_BLANK) break;")
|
---|
66 | .D ADDTOEND(" field=field+1;")
|
---|
67 | .D ADDTOEND(" }")
|
---|
68 | .S X=LAST+1 D ADDTOEND(" if (field == "_X_"){")
|
---|
69 | .D ADDTOEND(" SHOW(\"""_$$CKNAM(OLDNAME)_" at least 1 required!\"");")
|
---|
70 | .D ADDTOEND(" FIELDSTATUS = FIELD_BAD;")
|
---|
71 | .D ADDTOEND(" }")
|
---|
72 | ;D ADDTOEND(" };")
|
---|
73 | ;
|
---|
74 | ;** XMAP **
|
---|
75 | ; -- only TYPE=0 (selection rule=anynumber) might be dynmaic
|
---|
76 | I (TYPE=0)!(TYPE=3) D BLDARY^IBDFBKS(" XMAP = "","_$S($P(NODE,"^",9):"D:"_FID_":"_$P(NODE,"^",10),1:"B:"_IEN_":"_$$GETCODE($P(NODE,"^",2),$P(NODE,"^")))_""";")
|
---|
77 | ;
|
---|
78 | I (TYPE=1)!(TYPE=2) D
|
---|
79 | .D BLDARY^IBDFBKS(" XMAP = """)
|
---|
80 | .S COL=""
|
---|
81 | .F S COL=$O(@SCAN@(PAGE,FID,TYPE,COL)) Q:COL="" D
|
---|
82 | ..S ROW="" F S ROW=$O(@SCAN@(PAGE,FID,TYPE,COL,ROW)) Q:ROW="" D
|
---|
83 | ...S IEN=$O(@SCAN@(PAGE,FID,TYPE,COL,ROW,0)) I IEN D
|
---|
84 | ....S NODE=$G(^(IEN))
|
---|
85 | ....N IBX
|
---|
86 | ....S IBX=","_$S($P(NODE,"^",9):"D:"_FID_":"_$P(NODE,"^",10),1:"B:"_IEN_":"_$$GETCODE($P(NODE,"^",2),$P(NODE,"^")))
|
---|
87 | ....I $L(IBDFSA(IBLC))+$L(IBX)<252 S IBDFSA(IBLC)=IBDFSA(IBLC)_IBX Q
|
---|
88 | ....D BLDARY^IBDFBKS("~~~"_IBX)
|
---|
89 | .S IBDFSA(IBLC)=IBDFSA(IBLC)_""";"
|
---|
90 | ;
|
---|
91 | ;** MAP **
|
---|
92 | I (TYPE=0)!(TYPE=3) D BLDARY^IBDFBKS(" MAP = "" ,"_$TR($P(NODE,"^",6),",;"," ")_""";")
|
---|
93 | ;
|
---|
94 | I (TYPE=1)!(TYPE=2) D
|
---|
95 | .D BLDARY^IBDFBKS(" MAP = "" ")
|
---|
96 | .;
|
---|
97 | .S COL="" F S COL=$O(@SCAN@(PAGE,FID,TYPE,COL)) Q:COL="" S ROW="" F S ROW=$O(@SCAN@(PAGE,FID,TYPE,COL,ROW)) Q:ROW="" S IEN=$O(@SCAN@(PAGE,FID,TYPE,COL,ROW,0)) D
|
---|
98 | ..I IEN S NODE=$G(@SCAN@(PAGE,FID,TYPE,COL,ROW,IEN))
|
---|
99 | ..I $L(IBDFSA(IBLC))+$L($TR($P(NODE,"^",6),",;"," "))<252 S IBDFSA(IBLC)=IBDFSA(IBLC)_","_$TR($P(NODE,"^",6),",;"," ") Q
|
---|
100 | ..D BLDARY^IBDFBKS("~~~"_","_$TR($P(NODE,"^",6),",;"," "))
|
---|
101 | .S IBDFSA(IBLC)=IBDFSA(IBLC)_""";"
|
---|
102 | I $D(OTHER($P(FID,"("),IEN)) S OTHER($P(FID,"("),IEN)=FIELD
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | FINDBUB(Y,X) ;
|
---|
106 | ;converts row,col of bubble to paperkeyboard points, with proper offsets added - call by reference
|
---|
107 | S X=((COL*COLWIDTH)+(XBUBOS+XOFFSET))*CONVERT
|
---|
108 | ;S X=1+$FN(X,"",0)
|
---|
109 | S X=$FN(X,"",0)
|
---|
110 | S Y=((ROW*ROWHT)+(YOFFSET+YBUBOS))*CONVERT
|
---|
111 | ;S Y=1+$FN(Y,"",0)
|
---|
112 | S Y=$FN(Y,"",0)
|
---|
113 | Q
|
---|
114 | ;
|
---|
115 | ADDTOBEG(TEXT) ;
|
---|
116 | I '$D(BEGIN) S BEGIN(1)=" BEGIN = {",BLN=1
|
---|
117 | S BLN=BLN+1
|
---|
118 | S BEGIN(BLN)=TEXT
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | PRINTBEG ;
|
---|
122 | I $D(BEGIN) D
|
---|
123 | .S BLN=0 F S BLN=$O(BEGIN(BLN)) Q:'BLN D BLDARY^IBDFBKS(BEGIN(BLN))
|
---|
124 | .D BLDARY^IBDFBKS(" };")
|
---|
125 | .K BEGIN
|
---|
126 | Q
|
---|
127 | ;
|
---|
128 | ADDTOEND(TEXT) ;
|
---|
129 | I '$D(END) S END(1)=" END = {",LN=1
|
---|
130 | S LN=LN+1
|
---|
131 | S END(LN)=TEXT
|
---|
132 | Q
|
---|
133 | ;
|
---|
134 | PRINTEND ;
|
---|
135 | I $D(END) D
|
---|
136 | .S LN=0 F S LN=$O(END(LN)) Q:'LN D BLDARY^IBDFBKS(END(LN))
|
---|
137 | .D BLDARY^IBDFBKS(" };")
|
---|
138 | .K END
|
---|
139 | I PRIORPG'=PAGE D PAGEEND(PRIORPG)
|
---|
140 | I PAGE>1,PRIORPG'=PAGE D PAGETOP(PAGE)
|
---|
141 | S PRIORPG=PAGE
|
---|
142 | Q
|
---|
143 | ;
|
---|
144 | GETCODE(VALUE,PI) ;returns the value after passing it through the output transform contained in the package interface file
|
---|
145 | ;
|
---|
146 | N X,Y S (Y,X)=VALUE
|
---|
147 | ;
|
---|
148 | I PI X $G(^IBE(357.6,PI,14))
|
---|
149 | Q Y
|
---|
150 | ;
|
---|
151 | PAGEEND(PAGE) ;end of page processing
|
---|
152 | N FLD
|
---|
153 | S FIELD=FIELD+1
|
---|
154 | F COUNT=1:1 S LINE=$T(BOTTOM+COUNT^IBDFBKS1),TAG=$P(LINE,";;"),LINE=$P(LINE,";;",2) Q:TAG["QUIT" D
|
---|
155 | .I TAG["NUMBER" D BLDARY^IBDFBKS("FIELD ' "_FIELD) Q
|
---|
156 | .I TAG["NAME" D BLDARY^IBDFBKS(" NAME = ""BOTTOM OF PAGE"_PAGE_""";") Q
|
---|
157 | .I TAG["PAGE" D BLDARY^IBDFBKS(" PAGE = "_PAGE_";") Q
|
---|
158 | .I TAG["SAVE" D Q
|
---|
159 | ..D BLDARY^IBDFBKS(" Save = STRCAT(\""SAVEFORM(\"",ITOA(GETIVALUE(7)));")
|
---|
160 | ..D BLDARY^IBDFBKS(" Save = STRCAT(Save,"","_PAGE_",,V)"");")
|
---|
161 | ..;
|
---|
162 | .I TAG["EXPORT" D Q
|
---|
163 | ..D BLDARY^IBDFBKS(" DDEEXEC(ddechan,\""$$NEW$$("");")
|
---|
164 | ..D BLDARY^IBDFBKS(" Data=\""$$ADD$$(FORMTYPE="_IBFORMID_",\"";")
|
---|
165 | ..D BLDARY^IBDFBKS(" DDEEXEC(ddechan,Data);")
|
---|
166 | ..D BLDARY^IBDFBKS(" Data=STRCAT(\""$$ADD$$(FORMID=\"",ITOA(GETIVALUE(7)));")
|
---|
167 | ..D BLDARY^IBDFBKS(" Data=STRCAT(Data,\"",\"");")
|
---|
168 | ..D BLDARY^IBDFBKS(" DDEEXEC(ddechan,Data);")
|
---|
169 | ..D BLDARY^IBDFBKS(" Data=\""$$ADD$$(PAGE="_PAGE_",\"";")
|
---|
170 | ..D BLDARY^IBDFBKS(" DDEEXEC(ddechan,Data);")
|
---|
171 | ..D BLDARY^IBDFBKS(" Data=\""$$ADD$$(DATA=,\"";")
|
---|
172 | ..D BLDARY^IBDFBKS(" DDEEXEC(ddechan,Data);")
|
---|
173 | ..;
|
---|
174 | ..D FIELDS^IBDFBKS4
|
---|
175 | .D BLDARY^IBDFBKS(LINE)
|
---|
176 | Q
|
---|
177 | ;
|
---|
178 | ;;;.I TAG["EXPORT" D Q
|
---|
179 | ;;;D BLDARY^IBDFBKS(" Data=STRCAT(\""FORMTYPE="_IBFORMID_"\"",RS);")
|
---|
180 | ;;;D BLDARY^IBDFBKS(" Data=STRCAT(Data,\""FORMID=\"");")
|
---|
181 | ;;;D BLDARY^IBDFBKS(" Data=STRCAT(Data,ITOA(GETIVALUE(7)));")
|
---|
182 | ;;;D BLDARY^IBDFBKS(" Data=STRCAT(Data,RS);")
|
---|
183 | ;;;D BLDARY^IBDFBKS(" Data=STRCAT(Data,\""PAGE="_PAGE_"\"");")
|
---|
184 | ;;;D BLDARY^IBDFBKS(" Data=STRCAT(Data,RS);")
|
---|
185 | ;;;D BLDARY^IBDFBKS(" Data=STRCAT(Data,\""DATA=\"");")
|
---|
186 | ;;;D BLDARY^IBDFBKS(" Data=STRCAT(Data,RS);")
|
---|
187 | ;;;..D BLDARY^IBDFBKS(" DDEEXEC(ddechan,Data);")
|
---|
188 | ;
|
---|
189 | PAGETOP(PAGE) ;add field for top of page
|
---|
190 | S FIELD=FIELD+1
|
---|
191 | F COUNT=1:1 S LINE=$T(TOPOFPG+COUNT^IBDFBKS1),TAG=$P(LINE,";;"),LINE=$P(LINE,";;",2) Q:TAG["QUIT" D
|
---|
192 | .I TAG["NUMBER" D BLDARY^IBDFBKS("FIELD ' "_FIELD) Q
|
---|
193 | .I TAG["FLDNAME" D BLDARY^IBDFBKS(" NAME = ""TOP OF PAGE "_PAGE_""";") Q
|
---|
194 | .I TAG["PAGE" D BLDARY^IBDFBKS(" PAGE = "_PAGE_";") Q
|
---|
195 | .D BLDARY^IBDFBKS(LINE)
|
---|
196 | Q
|
---|
197 | CKNAM(NAME) ; - format name with \ for paperkey when displaying name
|
---|
198 | F CHAR="\","'" I NAME[CHAR D
|
---|
199 | .F A=1:1:$L(NAME,CHAR)-1 S NAME=$P(NAME,CHAR,1,A)_"\"_CHAR_$P(NAME,CHAR,A+1,$L(NAME,CHAR))
|
---|
200 | Q NAME
|
---|