1 | PXBCC ;ISL/JVS - CURSOR CONTROLS-UTILITY ROUTINES ;9/10/04 11:33am
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**7,73,141,124,164**;Aug 12, 1996
|
---|
3 | ;
|
---|
4 | ; Variable List
|
---|
5 | ; PXBSAVE= A Second copy fo the top Margin in a window
|
---|
6 | ; PXBCNT= A Count of how many Items listed in top window
|
---|
7 | ;
|
---|
8 | ZERO ;--ZERO $X & $Y
|
---|
9 | N DX,DY
|
---|
10 | S DX=0,DY=0 X ^%ZOSF("XY")
|
---|
11 | Q
|
---|
12 | DXDY ;RESET $X $Y
|
---|
13 | X ^%ZOSF("XY")
|
---|
14 | Q
|
---|
15 | INHI() ; Switch to highlighted video (IOINHI must be defined by caller)
|
---|
16 | S DX=$X#81,DY=$Y#25 W IOINHI X ^%ZOSF("XY")
|
---|
17 | Q ""
|
---|
18 | INLO() ; Switch to lowlighted video (IOINLOW must be defined by caller)
|
---|
19 | S DX=$X#81,DY=$Y#25 W IOINLOW X ^%ZOSF("XY")
|
---|
20 | Q ""
|
---|
21 | FIX ;--FIX
|
---|
22 | D TERM,FULL0 W IOUOFF,IOG0
|
---|
23 | Q
|
---|
24 | FIX1 ;--FIX
|
---|
25 | D TERM,FULL0 W IOUOFF,IOG0
|
---|
26 | Q
|
---|
27 | WINDOW(PXBCNT,DOWN) ;--set up window area
|
---|
28 | N I,IOTM,IOBM
|
---|
29 | I PXBCNT>10 S IOTM=17
|
---|
30 | I PXBCNT<11 S IOTM=PXBCNT+7
|
---|
31 | S PXBSAVE=IOTM I '$D(IOSC) D TERM
|
---|
32 | S IOBM=(IOSL-1)
|
---|
33 | W IOSC W @IOSTBM W IORC ;--Create smaller window
|
---|
34 | I '$D(DOWN) F I=1:1:2 W IOCUD ;-- move cursor down twice
|
---|
35 | S PXBWIN=""
|
---|
36 | Q
|
---|
37 | WIN17(PXBCNT) ;--set up window area on the 17th line
|
---|
38 | N I,IOTM,IOBM
|
---|
39 | W IOCUOFF
|
---|
40 | S IOTM=17
|
---|
41 | S PXBSAVE=IOTM I '$D(IOSC) D TERM
|
---|
42 | S IOBM=(IOSL-0)
|
---|
43 | W IOSC W @IOSTBM W IORC ;--Create smaller window
|
---|
44 | S PXBWIN=""
|
---|
45 | W IOCUON
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | WINDOW1(PXBCNT) ;--set up window area
|
---|
49 | N I,IOTM,IOBM
|
---|
50 | S IOBM=IOSL-1
|
---|
51 | W IOSC W @IOSTBM W IORC ;--Create smaller window
|
---|
52 | F I=1:1:2 W IOCUD ;-- move currsor down once
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | TERM ;--set up the terminal variables
|
---|
56 | N X
|
---|
57 | S X="IOSGRO;IOSTBM;IOCUU;IOSC;IORC;IOCUD;IOHOME;IOELALL;IORVON;IORVOFF;IOCUF;IONEL;IOBON;IOBOFF;IOUON;IOUOFF;IOELEOL;IOEDALL;IOEDEOP;IOCUB;IOECH;IOELBOL;IOIND"
|
---|
58 | D ENDR^%ZISS,GSET^%ZISS
|
---|
59 | S X="IOINLOW;IOINHI;IOINORM;IOCUOFF;IOCUON;IORI;IOIND;IORESET;IOCUOFF;IOCUON;IOSGR0"
|
---|
60 | D ENDR^%ZISS
|
---|
61 | I IOSTBM="" S IOSTBM=1
|
---|
62 | Q
|
---|
63 | FULL ;--set terminal to full scrolling window
|
---|
64 | N IOTM,IOBM,X
|
---|
65 | K PXBWIN
|
---|
66 | I '$D(IOSTBM) D TERM
|
---|
67 | I IOSTBM]"" S IOTM=1,IOBM=(IOSL-(1)) W IOSC W @IOSTBM W IORC
|
---|
68 | S X=IOM X ^%ZOSF("RM")
|
---|
69 | Q
|
---|
70 | FULL0 ;--set terminal to full scrolling window
|
---|
71 | N IOTM,IOBM,X
|
---|
72 | I '$D(IOSTBM) D TERM
|
---|
73 | I IOSTBM]"" S IOTM=1,IOBM=IOSL W IOSC W @IOSTBM W IORC
|
---|
74 | S X=IOM X ^%ZOSF("RM")
|
---|
75 | Q
|
---|
76 | CLEAR1 ;--clean out all cursor control variables
|
---|
77 | D KILL^%ZISS,GKILL^%ZISS
|
---|
78 | Q
|
---|
79 | UNDON ;--underline on
|
---|
80 | I '$D(IOUON) D TERM^PXBCC
|
---|
81 | W IOUON
|
---|
82 | Q
|
---|
83 | UNDOFF ;--underline off
|
---|
84 | I '$D(IOUON) D TERM^PXBCC
|
---|
85 | W IOUOFF
|
---|
86 | Q
|
---|
87 | REVCPT(LINE,PXRVON) ;--Reverse Video a particular CPT CODE,PROVIDER OR POV
|
---|
88 | ;
|
---|
89 | ; INPUT: LINE = Selection from PXBSAM array
|
---|
90 | ; PXRVON = Flag to turn reverse video on/off
|
---|
91 | ; where: 1 = reverse video on
|
---|
92 | ; 0 = reverse video off
|
---|
93 | ;
|
---|
94 | Q:$G(NOREV)=1
|
---|
95 | N ENTRY,XLINE,I,IOTM,IOBM,COL,DX,DY
|
---|
96 | S ENTRY=$G(PXBSAM(LINE))
|
---|
97 | ;Actual line on which CPT code displayed
|
---|
98 | ;S XLINE=LINE#10+4
|
---|
99 | S XLINE=PXBSAM(LINE,"LINE")#10+4 ;PX*1.0*164
|
---|
100 | I XLINE<5 S XLINE=XLINE+10
|
---|
101 | I '$D(IOSC) D TERM
|
---|
102 | S COL=4
|
---|
103 | W IOSC S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
104 | F I=1:1:XLINE W IOCUD
|
---|
105 | F I=1:1:COL W IOCUF
|
---|
106 | S DY=XLINE,DX=COL D DXDY
|
---|
107 | I $G(PXRVON) W IORVON,$P(ENTRY,"^",1),IORVOFF
|
---|
108 | I '$G(PXRVON) W IORVOFF,$P(ENTRY,"^",1)
|
---|
109 | S IOTM=PXBSAVE,IOBM=IOSL W @IOSTBM W IORC
|
---|
110 | Q
|
---|
111 | REVPRV(LINE) ;--Reverse Video a particular CPT CODE,PROVIDER OR POV
|
---|
112 | Q:$G(NOREV)=1 Q:$G(FROM)["CPT" Q:$G(FROM)["PL"
|
---|
113 | N ENTRY,XLINE,I,IOTM,IOBM,COL,DX,DY
|
---|
114 | S ENTRY=$G(PXBSAM(LINE)),XLINE=(LINE#10)+4
|
---|
115 | I XLINE<5 S XLINE=XLINE+10
|
---|
116 | I '$D(IOSC) D TERM
|
---|
117 | S COL=4
|
---|
118 | W IOSC S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
119 | F I=1:1:XLINE W IOCUD
|
---|
120 | F I=1:1:COL W IOCUF
|
---|
121 | S DY=XLINE,DX=COL D DXDY
|
---|
122 | W IORVON,$P(ENTRY,"^",1),IORVOFF
|
---|
123 | S IOTM=PXBSAVE,IOBM=IOSL W @IOSTBM W IORC
|
---|
124 | Q
|
---|
125 | REVPOV(LINE) ;--Reverse Video a particular CPT CODE,PROVIDER OR POV
|
---|
126 | Q:$G(NOREV)=1
|
---|
127 | N ENTRY,XLINE,I,IOTM,IOBM,COL,DX,DY
|
---|
128 | S ENTRY=$G(PXBSAM(LINE)),XLINE=(LINE*2-1#10)+4
|
---|
129 | I XLINE<5 S XLINE=XLINE+10
|
---|
130 | I '$D(IOSC) D TERM
|
---|
131 | S COL=4
|
---|
132 | W IOSC S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
133 | F I=1:1:XLINE W IOCUD
|
---|
134 | F I=1:1:COL W IOCUF
|
---|
135 | S DY=XLINE,DX=COL D DXDY
|
---|
136 | W IORVON,$J($P($P(ENTRY,"^",1),".",1),4),".",$P($P(ENTRY,"^",1),".",2),IORVOFF
|
---|
137 | S IOTM=PXBSAVE,IOBM=IOSL W @IOSTBM W IORC
|
---|
138 | Q
|
---|
139 | REVSTP(LINE) ;--Reverse Video a particular CPT CODE,PROVIDER OR POV
|
---|
140 | Q:$G(NOREV)=1
|
---|
141 | N ENTRY,XLINE,I,IOTM,IOBM,COL,DX,DY
|
---|
142 | S ENTRY=$G(PXBSAM(LINE)),XLINE=(LINE#10)+4
|
---|
143 | I XLINE<5 S XLINE=XLINE+10
|
---|
144 | I '$D(IOSC) D TERM
|
---|
145 | S COL=4
|
---|
146 | W IOSC S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
147 | F I=1:1:XLINE W IOCUD
|
---|
148 | F I=1:1:COL W IOCUF
|
---|
149 | S DY=XLINE,DX=COL D DXDY
|
---|
150 | W IORVON,$P(ENTRY,"^",1),IORVOFF
|
---|
151 | S IOTM=PXBSAVE,IOBM=IOSL W @IOSTBM W IORC
|
---|
152 | Q
|
---|
153 | ;
|
---|
154 | UREV(LINE) ;--Reverse Video a particular CPT CODE,PROVIDER OR POV
|
---|
155 | Q
|
---|
156 | ;--**OUT OF ORDER
|
---|
157 | N ENTRY,XLINE,I,IOTM,IOBM,DX,DY
|
---|
158 | S ENTRY=$G(PXBSAM(LINE)),XLINE=LINE+4
|
---|
159 | I '$D(IOSC) D TERM
|
---|
160 | W IOSC S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
161 | F I=1:1:XLINE W IOCUD
|
---|
162 | F I=1:1:4 W IOCUF
|
---|
163 | S DY=XLINE,DX=COL D DXDY
|
---|
164 | W $P(ENTRY,"^",1)
|
---|
165 | S IOTM=PXBSAVE,IOBM=IOSL W @IOSTBM W IORC
|
---|
166 | Q
|
---|
167 | ;
|
---|
168 | RREV(LINE,COLUMN,ENTRY) ;--Reverse REQUESTED information
|
---|
169 | Q:$G(NOREV)=1
|
---|
170 | N XLINE,I,IOTM,IOBM,DX,DY
|
---|
171 | S XLINE=LINE+1
|
---|
172 | I '$D(IOSC) D TERM
|
---|
173 | W IOSC S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
174 | F I=1:1:XLINE W IOCUD
|
---|
175 | F I=1:1:COLUMN W IOCUF
|
---|
176 | S DY=XLINE,DX=COLUMN D DXDY
|
---|
177 | W IOELEOL,IOINHI,ENTRY,IOINLOW
|
---|
178 | S IOTM=PXBSAVE,IOBM=IOSL W @IOSTBM W IORC
|
---|
179 | Q
|
---|
180 | RREVST(LINE,COLUMN,ENTRY) ;--Reverse REQUESTED information
|
---|
181 | Q:$G(NOREV)=1
|
---|
182 | N XLINE,I,IOTM,IOBM,DX,DY
|
---|
183 | S XLINE=LINE+1
|
---|
184 | I '$D(IOSC) D TERM
|
---|
185 | W IOSC S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
186 | F I=1:1:XLINE W IOCUD
|
---|
187 | F I=1:1:COLUMN W IOCUF
|
---|
188 | S DY=XLINE,DX=COLUMN D DXDY
|
---|
189 | W IORVON,ENTRY,IORVOFF
|
---|
190 | S IOTM=PXBSAVE,IOBM=IOSL W @IOSTBM W IORC
|
---|
191 | Q
|
---|
192 | RREVH(LINE,COLUMN,ENTRY) ;--Reverse REQUESTED information
|
---|
193 | Q:$G(NOREV)=1
|
---|
194 | N XLINE,I,IOTM,IOBM,DX,DY
|
---|
195 | S XLINE=LINE+1
|
---|
196 | I '$D(IOSC) D TERM
|
---|
197 | W IOSC S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
198 | F I=1:1:XLINE W IOCUD
|
---|
199 | F I=1:1:COLUMN W IOCUF
|
---|
200 | S DY=XLINE,DX=COLUMN D DXDY
|
---|
201 | W IOELEOL,IOINHI,IOUON,ENTRY,IOINLOW,IOUON F I=1:1:5 W " "
|
---|
202 | W IOUOFF
|
---|
203 | S IOTM=PXBSAVE,IOBM=IOSL W @IOSTBM W IORC
|
---|
204 | Q
|
---|
205 | LOC(LINE,COLUMN) ;--Locate Cursor to specified position
|
---|
206 | N PXBOS
|
---|
207 | S PXBOS=^%ZOSF("OS")
|
---|
208 | I PXBOS'["MSM" N DY,DX S DY=LINE,DX=COLUMN X IOXY,^%ZOSF("XY") Q
|
---|
209 | N XLINE,I,IOTM,IOBM,DX,DY
|
---|
210 | W IOCUOFF
|
---|
211 | I '$D(IOSTBM) D TERM
|
---|
212 | S IOTM=1,IOBM=IOSL W @IOSTBM W IOHOME D ZERO
|
---|
213 | I $D(LINE) F I=1:1:LINE W IOIND
|
---|
214 | F I=1:1:COLUMN W IOCUF
|
---|
215 | I $D(LINE) S DY=LINE
|
---|
216 | E S DY=$Y
|
---|
217 | S DX=COLUMN D DXDY
|
---|
218 | W IOCUON
|
---|
219 | Q
|
---|
220 | ;
|
---|
221 | ERASE ;---ERASE THE LIST GOING UPWARDS
|
---|
222 | N PXI
|
---|
223 | I '$D(IOCUU) D TERM^PXBCC
|
---|
224 | D LOC^PXBCC(15,1)
|
---|
225 | S PXI=0 F I=1:1:11 W IORI,IOELALL
|
---|
226 | Q
|
---|