[613] | 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
|
---|