Changeset 623 for WorldVistAEHR/trunk/r/HEALTH_LEVEL_SEVEN-HL/HLCSMON.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/HEALTH_LEVEL_SEVEN-HL/HLCSMON.m
r613 r623 1 HLCSMON ;SF-DISPLAY DRIVER PROGRAM ;12/11/2007 17:07 2 ;;1.6;HEALTH LEVEL SEVEN;**34,40,48,49,65,66,73,109,122**;Oct 13, 1995;Build 14 3 ;Per VHA Directive 2004-038, this routine should not be modified. 4 ; 5 ;This Program drives a real-time display monitor for the HL7 6 ;Package. All the data used by this display is stored in file 7 ;# 870. Several callable entry points were broken 8 ;out of this routine and placed into HLCSMON1 9 ; 10 ;This routine has no required input parameters other than require that 11 ;U be defined, it does not instantiate any parameters either. 12 ; 13 ; 14 ;HLARY=array of all,HLARYD=array of display,HLARYO=array of old values 15 ;HLPTR1=top of display,HLPTR2=bottom of display,HLPTR3=last in HLVARY 16 INIT N HLARY,HLARYD,HLARYO,HLCOFF,HLCON,HLDISP,HLPTR1,HLPTR2,HLPTR3,HLRESP 17 N HLDEV,HLERR,HLEVL,HLHDR,HLNODE,HLOCK 18 N HLPARAM,HLPROC,HLPROD,HLSEND,HLSENT,HLSITE 19 N HLI,HLREC,HLRUNCNT,HLSTAT,HLTMSTAT,HLLMSTAT,HLVIEW,HLXX,HLYY,X,Y,DX,DY 20 ; 21 ; patch HL*1.6*122 start 22 D HOME^%ZIS 23 W @IOF 24 ; patch HL*1.6*122 end 25 ; 26 D ^HLCSTERM ;Sets up variables to control display attributes 27 INIT1 ; 28 ; Next 4 lines copied here from top of START by patch 73... 29 ;HLRUNCNT=number of in filers^out filers, HLDISP=display mode 30 S HLRUNCNT="-1^-1",HLPTR1=1 S:'$D(HLDISP) HLDISP="S" 31 D BUILDARY ;Build an array for display 32 QUIT:$$LOCKED(.HLOCK) ;-> Anything locked? 33 ; 34 W HLCOFF ;Shut Cursor off 35 D HEADER^HLCSTERM ;Write header 36 D WDATA^HLCSMON1(5,17,"","","Incoming filers running => ") 37 D WDATA^HLCSMON1(5,18,"","","Outgoing filers running => ") 38 D WDATA^HLCSMON1(5,20,"","","Select a Command:") 39 D WDATA^HLCSMON1(1,21,"","","(N)EXT (B)ACKUP (A)LL LINKS (S)CREENED (V)IEWS (Q)UIT (?) HELP: ") 40 ;HLRUNCNT=number of in filers^out filers, HLDISP=display mode 41 S HLRUNCNT="-1^-1",HLPTR1=1 S:'$D(HLDISP) HLDISP="S" 42 START ; 43 D BUILDARY ;Build an array for display 44 D DISPLAY^HLCSMON1 ;Display the array just built 45 D READ 46 ;HLRESP=user response 47 I '$L(HLRESP) G START 48 G:HLRESP="Q" EXIT 49 ;any of following commands, kill old values 50 K HLARYO,HLTMSTAT,HLLMSTAT 51 I HLRESP="?" D HELP G INIT1 52 I HLRESP="V" D VIEW G INIT1 53 I "AS"[HLRESP K HLARY,HLEVL S HLDISP=HLRESP G INIT1 54 I "NB"[HLRESP D NEXT 55 G START 56 ; 57 READ ;Prompt the user for the next action 58 D WDATA^HLCSMON1(71,21,"","","",1) 59 W HLCON 60 R X#1:3 61 W HLCOFF 62 S HLRESP=$S(X="":X,"Qq^"[X:"Q","Bb"[X:"B","Nn"[X:"N","Aa"[X:"A","Vv"[X:"V",X="?":"?","Ss"[X:"S",1:"") 63 Q 64 ; 65 VIEW ;select new view 66 W HLCON,!! 67 N DIC 68 S DIC="^HLCS(869.3,1,6,",DIC(0)="QEA" 69 D ^DIC Q:Y<0 70 S HLVIEW=+Y,HLDISP="V" 71 W HLCOFF 72 Q 73 ; 74 NEXT ; 75 ;Next page 76 I HLRESP="N" D 77 . ;no more 78 . I HLPTR2=HLPTR3 D EOB Q 79 . S Y=HLPTR2+10,HLEVL(HLPTR1)="" 80 . ;exceed list, get last 10 81 . I Y>HLPTR3 S HLPTR2=HLPTR3,HLPTR1=HLPTR2-9 Q 82 . S HLPTR1=HLPTR2,HLPTR2=Y 83 ; 84 ;Backup a page 85 I HLRESP="B" D 86 . ;top of list 87 . I HLPTR1=1 D EOB Q 88 . I HLDISP="S" S HLPTR1=$O(HLEVL(HLPTR1),-1) Q 89 . S Y=HLPTR1-9 90 . ;can't go back 10, reset to top 91 . I Y'>0 S HLPTR1=1,HLPTR2=10 Q 92 . S HLPTR2=HLPTR1,HLPTR1=Y 93 ; 94 ;Erase what might be displayed on line 22 95 D WDATA^HLCSMON1(1,22,IOELALL,"","") 96 Q 97 EOB D WDATA^HLCSMON1(5,22,IORVON,IORVOFF,"CANNOT "_$S(HLRESP="N":"ADVANCE",1:"BACKUP")_" BEYOND END OF BUFFER") 98 W $C(7) H 2 99 Q 100 ; 101 BUILDARY ; 102 K HLARYD 103 ; 104 ;if view is defined, get links 105 I $G(HLVIEW) D S HLVIEW=0,HLDISP="V" 106 . N HLTMP 107 . K HLARY,HLEVL S HLI=0 108 . F S HLI=$O(^HLCS(869.3,1,6,HLVIEW,1,HLI)) Q:'HLI S HLYY=+$P($G(^(HLI,0)),U,2) D 109 .. S Y=$P($G(^HLCS(870,HLI,0)),U) Q:Y="" 110 .. ;build array by DISPLAY ORDER and then by NAME 111 .. I HLYY S HLTMP(HLYY,HLI)="" Q 112 .. S HLTMP(Y,HLI)="" 113 . S (HLI,HLYY)=0 114 . ;rebuild array to put in proper order 115 . F S HLI=$O(HLTMP(HLI)),HLXX=0 Q:HLI="" D 116 .. F S HLXX=$O(HLTMP(HLI,HLXX)) Q:'HLXX S HLYY=HLYY+1,HLARY(HLYY,HLXX)="" 117 . S HLPTR3=HLYY 118 ; 119 I '$D(HLARY) S HLYY=0,HLXX="" D 120 . ;build array in alphabetical order 121 . F S HLXX=$O(^HLCS(870,"B",HLXX)) Q:HLXX="" S Y=$O(^(HLXX,0)),HLYY=HLYY+1,HLARY(HLYY,Y)="" 122 . S HLPTR3=HLYY 123 ; 124 S HLI=HLPTR1,HLYY=6 ;HLYY=6TH Line of display 125 ;HLARYD(6) through HLARYD(15) with 6 through 15 also representing line 126 ;numbers on the display 127 F HLI=HLI:1 S HLXX=$O(HLARY(HLI,0)) Q:HLYY=16!'HLXX D COPY 128 S HLPTR2=HLI-1 129 ;Set all HLARY elements not defined on this pass to null 130 F HLYY=HLYY:1:15 S HLARYD(HLYY)="" 131 Q 132 COPY ; 133 Q:'$D(^HLCS(870,HLXX)) 134 ; 135 ;These lock tags lock nodes in the global so that the screen is 136 ;refreshed in real-time. The lock forces the buffer to be refreshed, 137 ;so that the display is up to date. 138 ; 139 ;**109** 140 ;L +^HLCS(870,HLXX,0):0 L -^HLCS(870,HLXX,0) D CHKLOCK 141 ; 142 ; Set, even if not able to lock... 143 S Y=$G(^HLCS(870,HLXX,0)) 144 ; 145 ;name^rec^proc^send^sent^device^state^error 146 S HLARYD(HLYY)=$P(Y,U)_"^^^^^"_$P(Y,U,4)_"^"_$P(Y,U,5)_"^"_$P(Y,U,19) 147 ; 148 ;**109** 149 ;L +^HLCS(870,HLXX,"IN QUEUE BACK POINTER"):0 D CHKLOCK 150 ;L -^HLCS(870,HLXX,"IN QUEUE BACK POINTER") 151 ; 152 S $P(HLARYD(HLYY),U,2)=$G(^HLCS(870,HLXX,"IN QUEUE BACK POINTER")) 153 ; 154 ;**109** 155 ;L +^HLCS(870,HLXX,"IN QUEUE FRONT POINTER"):0 D CHKLOCK 156 ;L -^HLCS(870,HLXX,"IN QUEUE FRONT POINTER") 157 ; 158 S $P(HLARYD(HLYY),U,3)=$G(^HLCS(870,HLXX,"IN QUEUE FRONT POINTER")) 159 ; 160 ;**109** 161 ;L +^HLCS(870,HLXX,"OUT QUEUE BACK POINTER"):0 D CHKLOCK 162 ;L -^HLCS(870,HLXX,"OUT QUEUE BACK POINTER") 163 ; 164 S $P(HLARYD(HLYY),U,4)=$G(^HLCS(870,HLXX,"OUT QUEUE BACK POINTER")) 165 ; 166 ;**109** 167 ;L +^HLCS(870,HLXX,"OUT QUEUE FRONT POINTER"):0 D CHKLOCK 168 ;L -^HLCS(870,HLXX,"OUT QUEUE FRONT POINTER") 169 ; 170 S $P(HLARYD(HLYY),U,5)=$G(^HLCS(870,HLXX,"OUT QUEUE FRONT POINTER")) 171 ; 172 S X=HLARYD(HLYY),Y=$P(X,U,2)+$P(X,U,3)+$P(X,U,4)+$P(X,U,5) 173 ;if Select and the Y=0, nothing to report 174 I 'Y,HLDISP="S" S HLARYD(HLYY)="" Q 175 S HLYY=HLYY+1 176 Q 177 ; 178 CHKLOCK ; Call here immediately after trying to lock. And, BE SURE that 179 ; nothing might occur that would change $T after the lock attempt!! 180 ; $T,HLXX -- req 181 N NM870 182 QUIT:$T ;-> Lock obtained... 183 S NM870=$P($G(^HLCS(870,+HLXX,0)),U) 184 S NM870=$S(NM870]"":NM870_" (IEN #"_HLXX_")",1:"IEN #"_HLXX) 185 S HLOCK(NM870)="" 186 QUIT 187 ; 188 HELP ; 189 W HLCON,@IOF 190 W !,"You have the following options when monitoring the Messaging System:" 191 W !,"Enter the command letter parentheses: N,B,Q,A,S,V or ?" 192 W !!,"(N) takes you to the next page of the display of Logical Links." 193 W !!,"(B) takes you back one page." 194 W !!,"(Q) terminates the monitor." 195 W !!,"(A) provides a display of all links defined on your system." 196 W !!,"(S) displays only those links that have had message traffic." 197 W !!,"(V) prompts for a view name and displays links defined in view." 198 W !!," Note that (S) is the default display at startup." 199 W !!,"**PRESS <RET> TO CONTINUE**" 200 R X:DTIME 201 W @IOF 202 W !,?25,"Device Types and corresponding prefixes:" 203 W !!,?30,"PC -- Persistent TCP/IP Client" 204 W !!,?30,"NC -- Non-Persistent TCP/IP Client" 205 W !!,?30,"SS -- Single-threaded TCP/IP Server" 206 W !!,?30,"MS -- Multi-threaded TCP/IP Server" 207 W !!,?30,"SH -- Serial HLLP" 208 W !!,?30,"SX -- Serial X3.28" 209 W !!,?30,"MM -- MailMan" 210 W !!,"**PRESS <RET> TO CONTINUE**" 211 R X:DTIME 212 W HLCOFF 213 Q 214 EXIT ; 215 ;Turn Cursor back on 216 W HLCON 217 D KVAR^HLCSTERM 218 Q 219 ; 220 LOCKED(HLOCK) ; Anything locked? 221 ; 222 ; 223 ; Nothing locked... 224 I '$D(HLOCK) QUIT "" ;-> 225 ; 226 W !!,"Editing of logical link data is occurring right now. For this reason, some of" 227 W !,"the information on the 'System Link Monitor' report might not be accurate for" 228 W !,"the following node(s)..." 229 W ! 230 ; 231 S HLOCK="" 232 F S HLOCK=$O(HLOCK(HLOCK)) Q:HLOCK']"" D 233 . W !,?5,HLOCK 234 ; 235 S ACTION=$$BTE("Press RETURN to print report or '^' to exit... ",1) 236 ; 237 QUIT $S(ACTION=1:1,1:"") 238 ; 239 BTE(PMT,FF) ; 240 N DIR,DIRUT,DTOUT,DUOUT,X,Y 241 F X=1:1:$G(FF) W ! 242 S DIR(0)="EA",DIR("A")=PMT 243 D ^DIR 244 QUIT $S(Y=1:"",1:1) 245 ; 1 HLCSMON ;SF-DISPLAY DRIVER PROGRAM ;07/10/2000 12:18 2 ;;1.6;HEALTH LEVEL SEVEN;**34,40,48,49,65,66,73,109**;Oct 13, 1995 3 ; 4 ;This Program drives a real-time display monitor for the HL7 5 ;Package. All the data used by this display is stored in file 6 ;# 870. Several callable entry points were broken 7 ;out of this routine and placed into HLCSMON1 8 ; 9 ;This routine has no required input parameters other than require that 10 ;U be defined, it does not instantiate any parameters either. 11 ; 12 ; 13 ;HLARY=array of all,HLARYD=array of display,HLARYO=array of old values 14 ;HLPTR1=top of display,HLPTR2=bottom of display,HLPTR3=last in HLVARY 15 INIT N HLARY,HLARYD,HLARYO,HLCOFF,HLCON,HLDISP,HLPTR1,HLPTR2,HLPTR3,HLRESP 16 N HLDEV,HLERR,HLEVL,HLHDR,HLNODE,HLOCK 17 N HLPARAM,HLPROC,HLPROD,HLSEND,HLSENT,HLSITE 18 N HLI,HLREC,HLRUNCNT,HLSTAT,HLTMSTAT,HLLMSTAT,HLVIEW,HLXX,HLYY,X,Y,DX,DY 19 ; 20 D ^HLCSTERM ;Sets up variables to control display attributes 21 INIT1 ; 22 ; Next 4 lines copied here from top of START by patch 73... 23 ;HLRUNCNT=number of in filers^out filers, HLDISP=display mode 24 S HLRUNCNT="-1^-1",HLPTR1=1 S:'$D(HLDISP) HLDISP="S" 25 D BUILDARY ;Build an array for display 26 QUIT:$$LOCKED(.HLOCK) ;-> Anything locked? 27 ; 28 W HLCOFF ;Shut Cursor off 29 D HEADER^HLCSTERM ;Write header 30 D WDATA^HLCSMON1(5,17,"","","Incoming filers running => ") 31 D WDATA^HLCSMON1(5,18,"","","Outgoing filers running => ") 32 D WDATA^HLCSMON1(5,20,"","","Select a Command:") 33 D WDATA^HLCSMON1(1,21,"","","(N)EXT (B)ACKUP (A)LL LINKS (S)CREENED (V)IEWS (Q)UIT (?) HELP: ") 34 ;HLRUNCNT=number of in filers^out filers, HLDISP=display mode 35 S HLRUNCNT="-1^-1",HLPTR1=1 S:'$D(HLDISP) HLDISP="S" 36 START ; 37 D BUILDARY ;Build an array for display 38 D DISPLAY^HLCSMON1 ;Display the array just built 39 D READ 40 ;HLRESP=user response 41 I '$L(HLRESP) G START 42 G:HLRESP="Q" EXIT 43 ;any of following commands, kill old values 44 K HLARYO,HLTMSTAT,HLLMSTAT 45 I HLRESP="?" D HELP G INIT1 46 I HLRESP="V" D VIEW G INIT1 47 I "AS"[HLRESP K HLARY,HLEVL S HLDISP=HLRESP G INIT1 48 I "NB"[HLRESP D NEXT 49 G START 50 ; 51 READ ;Prompt the user for the next action 52 D WDATA^HLCSMON1(71,21,"","","",1) 53 W HLCON 54 R X#1:3 55 W HLCOFF 56 S HLRESP=$S(X="":X,"Qq^"[X:"Q","Bb"[X:"B","Nn"[X:"N","Aa"[X:"A","Vv"[X:"V",X="?":"?","Ss"[X:"S",1:"") 57 Q 58 ; 59 VIEW ;select new view 60 W HLCON,!! 61 N DIC 62 S DIC="^HLCS(869.3,1,6,",DIC(0)="QEA" 63 D ^DIC Q:Y<0 64 S HLVIEW=+Y,HLDISP="V" 65 W HLCOFF 66 Q 67 ; 68 NEXT ; 69 ;Next page 70 I HLRESP="N" D 71 . ;no more 72 . I HLPTR2=HLPTR3 D EOB Q 73 . S Y=HLPTR2+10,HLEVL(HLPTR1)="" 74 . ;exceed list, get last 10 75 . I Y>HLPTR3 S HLPTR2=HLPTR3,HLPTR1=HLPTR2-9 Q 76 . S HLPTR1=HLPTR2,HLPTR2=Y 77 ; 78 ;Backup a page 79 I HLRESP="B" D 80 . ;top of list 81 . I HLPTR1=1 D EOB Q 82 . I HLDISP="S" S HLPTR1=$O(HLEVL(HLPTR1),-1) Q 83 . S Y=HLPTR1-9 84 . ;can't go back 10, reset to top 85 . I Y'>0 S HLPTR1=1,HLPTR2=10 Q 86 . S HLPTR2=HLPTR1,HLPTR1=Y 87 ; 88 ;Erase what might be displayed on line 22 89 D WDATA^HLCSMON1(1,22,IOELALL,"","") 90 Q 91 EOB D WDATA^HLCSMON1(5,22,IORVON,IORVOFF,"CANNOT "_$S(HLRESP="N":"ADVANCE",1:"BACKUP")_" BEYOND END OF BUFFER") 92 W $C(7) H 2 93 Q 94 ; 95 BUILDARY ; 96 K HLARYD 97 ; 98 ;if view is defined, get links 99 I $G(HLVIEW) D S HLVIEW=0,HLDISP="V" 100 . N HLTMP 101 . K HLARY,HLEVL S HLI=0 102 . F S HLI=$O(^HLCS(869.3,1,6,HLVIEW,1,HLI)) Q:'HLI S HLYY=+$P($G(^(HLI,0)),U,2) D 103 .. S Y=$P($G(^HLCS(870,HLI,0)),U) Q:Y="" 104 .. ;build array by DISPLAY ORDER and then by NAME 105 .. I HLYY S HLTMP(HLYY,HLI)="" Q 106 .. S HLTMP(Y,HLI)="" 107 . S (HLI,HLYY)=0 108 . ;rebuild array to put in proper order 109 . F S HLI=$O(HLTMP(HLI)),HLXX=0 Q:HLI="" D 110 .. F S HLXX=$O(HLTMP(HLI,HLXX)) Q:'HLXX S HLYY=HLYY+1,HLARY(HLYY,HLXX)="" 111 . S HLPTR3=HLYY 112 ; 113 I '$D(HLARY) S HLYY=0,HLXX="" D 114 . ;build array in alphabetical order 115 . F S HLXX=$O(^HLCS(870,"B",HLXX)) Q:HLXX="" S Y=$O(^(HLXX,0)),HLYY=HLYY+1,HLARY(HLYY,Y)="" 116 . S HLPTR3=HLYY 117 ; 118 S HLI=HLPTR1,HLYY=6 ;HLYY=6TH Line of display 119 ;HLARYD(6) through HLARYD(15) with 6 through 15 also representing line 120 ;numbers on the display 121 F HLI=HLI:1 S HLXX=$O(HLARY(HLI,0)) Q:HLYY=16!'HLXX D COPY 122 S HLPTR2=HLI-1 123 ;Set all HLARY elements not defined on this pass to null 124 F HLYY=HLYY:1:15 S HLARYD(HLYY)="" 125 Q 126 COPY ; 127 Q:'$D(^HLCS(870,HLXX)) 128 ; 129 ;These lock tags lock nodes in the global so that the screen is 130 ;refreshed in real-time. The lock forces the buffer to be refreshed, 131 ;so that the display is up to date. 132 ; 133 ;**109** 134 ;L +^HLCS(870,HLXX,0):0 L -^HLCS(870,HLXX,0) D CHKLOCK 135 ; 136 ; Set, even if not able to lock... 137 S Y=$G(^HLCS(870,HLXX,0)) 138 ; 139 ;name^rec^proc^send^sent^device^state^error 140 S HLARYD(HLYY)=$P(Y,U)_"^^^^^"_$P(Y,U,4)_"^"_$P(Y,U,5)_"^"_$P(Y,U,19) 141 ; 142 ;**109** 143 ;L +^HLCS(870,HLXX,"IN QUEUE BACK POINTER"):0 D CHKLOCK 144 ;L -^HLCS(870,HLXX,"IN QUEUE BACK POINTER") 145 ; 146 S $P(HLARYD(HLYY),U,2)=$G(^HLCS(870,HLXX,"IN QUEUE BACK POINTER")) 147 ; 148 ;**109** 149 ;L +^HLCS(870,HLXX,"IN QUEUE FRONT POINTER"):0 D CHKLOCK 150 ;L -^HLCS(870,HLXX,"IN QUEUE FRONT POINTER") 151 ; 152 S $P(HLARYD(HLYY),U,3)=$G(^HLCS(870,HLXX,"IN QUEUE FRONT POINTER")) 153 ; 154 ;**109** 155 ;L +^HLCS(870,HLXX,"OUT QUEUE BACK POINTER"):0 D CHKLOCK 156 ;L -^HLCS(870,HLXX,"OUT QUEUE BACK POINTER") 157 ; 158 S $P(HLARYD(HLYY),U,4)=$G(^HLCS(870,HLXX,"OUT QUEUE BACK POINTER")) 159 ; 160 ;**109** 161 ;L +^HLCS(870,HLXX,"OUT QUEUE FRONT POINTER"):0 D CHKLOCK 162 ;L -^HLCS(870,HLXX,"OUT QUEUE FRONT POINTER") 163 ; 164 S $P(HLARYD(HLYY),U,5)=$G(^HLCS(870,HLXX,"OUT QUEUE FRONT POINTER")) 165 ; 166 S X=HLARYD(HLYY),Y=$P(X,U,2)+$P(X,U,3)+$P(X,U,4)+$P(X,U,5) 167 ;if Select and the Y=0, nothing to report 168 I 'Y,HLDISP="S" S HLARYD(HLYY)="" Q 169 S HLYY=HLYY+1 170 Q 171 ; 172 CHKLOCK ; Call here immediately after trying to lock. And, BE SURE that 173 ; nothing might occur that would change $T after the lock attempt!! 174 ; $T,HLXX -- req 175 N NM870 176 QUIT:$T ;-> Lock obtained... 177 S NM870=$P($G(^HLCS(870,+HLXX,0)),U) 178 S NM870=$S(NM870]"":NM870_" (IEN #"_HLXX_")",1:"IEN #"_HLXX) 179 S HLOCK(NM870)="" 180 QUIT 181 ; 182 HELP ; 183 W HLCON,@IOF 184 W !,"You have the following options when monitoring the Messaging System:" 185 W !,"Enter the command letter parentheses: N,B,Q,A,S,V or ?" 186 W !!,"(N) takes you to the next page of the display of Logical Links." 187 W !!,"(B) takes you back one page." 188 W !!,"(Q) terminates the monitor." 189 W !!,"(A) provides a display of all links defined on your system." 190 W !!,"(S) displays only those links that have had message traffic." 191 W !!,"(V) prompts for a view name and displays links defined in view." 192 W !!," Note that (S) is the default display at startup." 193 W !!,"**PRESS <RET> TO CONTINUE**" 194 R X:DTIME 195 W @IOF 196 W !,?25,"Device Types and corresponding prefixes:" 197 W !!,?30,"PC -- Persistent TCP/IP Client" 198 W !!,?30,"NC -- Non-Persistent TCP/IP Client" 199 W !!,?30,"SS -- Single-threaded TCP/IP Server" 200 W !!,?30,"MS -- Multi-threaded TCP/IP Server" 201 W !!,?30,"SH -- Serial HLLP" 202 W !!,?30,"SX -- Serial X3.28" 203 W !!,?30,"MM -- MailMan" 204 W !!,"**PRESS <RET> TO CONTINUE**" 205 R X:DTIME 206 W HLCOFF 207 Q 208 EXIT ; 209 ;Turn Cursor back on 210 W HLCON 211 D KVAR^HLCSTERM 212 Q 213 ; 214 LOCKED(HLOCK) ; Anything locked? 215 ; 216 ; 217 ; Nothing locked... 218 I '$D(HLOCK) QUIT "" ;-> 219 ; 220 W !!,"Editing of logical link data is occurring right now. For this reason, some of" 221 W !,"the information on the 'System Link Monitor' report might not be accurate for" 222 W !,"the following node(s)..." 223 W ! 224 ; 225 S HLOCK="" 226 F S HLOCK=$O(HLOCK(HLOCK)) Q:HLOCK']"" D 227 . W !,?5,HLOCK 228 ; 229 S ACTION=$$BTE("Press RETURN to print report or '^' to exit... ",1) 230 ; 231 QUIT $S(ACTION=1:1,1:"") 232 ; 233 BTE(PMT,FF) ; 234 N DIR,DIRUT,DTOUT,DUOUT,X,Y 235 F X=1:1:$G(FF) W ! 236 S DIR(0)="EA",DIR("A")=PMT 237 D ^DIR 238 QUIT $S(Y=1:"",1:1) 239 ;
Note:
See TracChangeset
for help on using the changeset viewer.