| 1 | XMJMOR ;ISC-SF/GMB-Range actions ;12/04/2002  10:10
 | 
|---|
| 2 |  ;;8.0;MailMan;**9**;Jun 28, 2002
 | 
|---|
| 3 |  ; Replaces ^XMA0,^XMA01 (ISC-WASH/CAP)
 | 
|---|
| 4 | DELETE(XMDUZ,XMK) ; Delete a range of messages
 | 
|---|
| 5 |  N XMWHICH,XMMSG,XMABORT
 | 
|---|
| 6 |  S XMABORT=0
 | 
|---|
| 7 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 8 |  . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XDEL",34302,34303,.XMMSG,.XMABORT)
 | 
|---|
| 9 |  . ;K ^TMP("XM",$J,".")
 | 
|---|
| 10 |  E  D
 | 
|---|
| 11 |  . D WHICH(XMDUZ,XMK,34301,34303.1,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 12 |  . D DELMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
 | 
|---|
| 13 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 14 |  Q:XMABORT
 | 
|---|
| 15 |  W:$D(XMMSG) !,XMMSG
 | 
|---|
| 16 |  Q
 | 
|---|
| 17 | FILTER(XMDUZ,XMK) ; Filter a range of messages
 | 
|---|
| 18 |  N XMWHICH,XMMSG,XMABORT
 | 
|---|
| 19 |  S XMABORT=0
 | 
|---|
| 20 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 21 |  . N XMKZ
 | 
|---|
| 22 |  . D SELMSG(XMDUZ,XMK,"XFLTR^XMXMSGS2",34306,.XMMSG)
 | 
|---|
| 23 |  . S XMKZ=""
 | 
|---|
| 24 |  . F  S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ  K:'$D(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) ^TMP("XM",$J,".",XMKZ)
 | 
|---|
| 25 |  E  D
 | 
|---|
| 26 |  . D WHICH(XMDUZ,XMK,34305,0,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 27 |  . D FLTRMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
 | 
|---|
| 28 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 29 |  Q:XMABORT
 | 
|---|
| 30 |  W:$D(XMMSG) !,XMMSG
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 | FORWARD(XMDUZ,XMK) ; Forward a range of messages
 | 
|---|
| 33 |  N XMWHICH,XMMSG,XMABORT,XMINSTR
 | 
|---|
| 34 |  S XMABORT=0
 | 
|---|
| 35 |  I $D(^TMP("XM",$J,".")) D  Q
 | 
|---|
| 36 |  . N XMKZ
 | 
|---|
| 37 |  . D INIT^XMXADDR
 | 
|---|
| 38 |  . S XMKZ=$O(^TMP("XM",$J,".",""))
 | 
|---|
| 39 |  . I '$O(^TMP("XM",$J,".",XMKZ)) D  Q
 | 
|---|
| 40 |  . . D FWDONE(XMDUZ,$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")),.XMINSTR,.XMABORT)
 | 
|---|
| 41 |  . D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,"",.XMABORT) Q:XMABORT  ; Forward
 | 
|---|
| 42 |  . D SELMSG(XMDUZ,XMK,"XFWD^XMXMSGS1",34309,.XMMSG)
 | 
|---|
| 43 |  . D CLEANUP^XMXADDR
 | 
|---|
| 44 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 45 |  . W:$D(XMMSG) !,XMMSG
 | 
|---|
| 46 |  D WHICH(XMDUZ,XMK,34308,0,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 47 |  D INIT^XMXADDR
 | 
|---|
| 48 |  I $P(XMWHICH,",",2,99)="",$P(XMWHICH,",",1)=+XMWHICH D  Q
 | 
|---|
| 49 |  . N XMZ
 | 
|---|
| 50 |  . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",+XMWHICH,""))
 | 
|---|
| 51 |  . I 'XMZ W !,$$EZBLD^DIALOG(34309.3) Q  ; No messages forwarded.
 | 
|---|
| 52 |  . D FWDONE(XMDUZ,XMZ,.XMINSTR,.XMABORT)
 | 
|---|
| 53 |  D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,"",.XMABORT) Q:XMABORT  ; Forward
 | 
|---|
| 54 |  S XMINSTR("ADDR FLAGS")="I"
 | 
|---|
| 55 |  D FWDMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,"",.XMINSTR,.XMMSG)
 | 
|---|
| 56 |  D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 57 |  W:$D(XMMSG) !,XMMSG
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | FWDONE(XMDUZ,XMZ,XMINSTR,XMABORT) ; Forward just one message
 | 
|---|
| 60 |  N XMZREC,XMRESTR
 | 
|---|
| 61 |  S XMZREC=^XMB(3.9,XMZ,0)
 | 
|---|
| 62 |  I '$$FORWARD^XMXSEC(XMDUZ,XMZ,XMZREC) D SHOW^XMJERR Q
 | 
|---|
| 63 |  D GETRESTR^XMXSEC1(XMDUZ,XMZ,XMZREC,"",.XMRESTR) ; Get restrictions on the msg
 | 
|---|
| 64 |  D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,.XMRESTR,.XMABORT) Q:XMABORT  ; Forward
 | 
|---|
| 65 |  D FWD^XMKP(XMDUZ,XMZ,.XMINSTR)
 | 
|---|
| 66 |  D CLEANUP^XMXADDR
 | 
|---|
| 67 |  W !,$$EZBLD^DIALOG(34309.2) ; Message forwarded.
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 | LATER(XMDUZ,XMK) ; Later a range of messages
 | 
|---|
| 70 |  N XMWHICH,XMMSG,XMABORT,XMWHEN
 | 
|---|
| 71 |  S XMABORT=0
 | 
|---|
| 72 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 73 |  . D LTRDATE^XMJMD(.XMWHEN,.XMABORT) Q:XMABORT
 | 
|---|
| 74 |  . D SELMSG(XMDUZ,XMK,"XLATER^XMXMSGS2",34312,.XMMSG)
 | 
|---|
| 75 |  E  D
 | 
|---|
| 76 |  . D WHICH(XMDUZ,XMK,34311,0,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 77 |  . D LTRDATE^XMJMD(.XMWHEN,.XMABORT) Q:XMABORT
 | 
|---|
| 78 |  . D LATERMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMWHEN,.XMMSG)
 | 
|---|
| 79 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 80 |  Q:XMABORT
 | 
|---|
| 81 |  W:$D(XMMSG) !,XMMSG
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 | NEWTOGL(XMDUZ,XMK) ; New Toggle a range of messages
 | 
|---|
| 84 |  N XMWHICH,XMMSG,XMABORT
 | 
|---|
| 85 |  S XMABORT=0
 | 
|---|
| 86 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 87 |  . N XMKZ
 | 
|---|
| 88 |  . D SELMSG(XMDUZ,XMK,"XNTOGL^XMXMSGS2",34315,.XMMSG)
 | 
|---|
| 89 |  . S XMKZ=""
 | 
|---|
| 90 |  . F  S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ  K:'$D(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) ^TMP("XM",$J,".",XMKZ)
 | 
|---|
| 91 |  E  D
 | 
|---|
| 92 |  . D WHICH(XMDUZ,XMK,34314,0,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 93 |  . D NTOGLMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
 | 
|---|
| 94 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 95 |  Q:XMABORT
 | 
|---|
| 96 |  W:$D(XMMSG) !,XMMSG
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 | PRINT(XMDUZ,XMK,XMPRTHDR) ; Print a range of messages
 | 
|---|
| 99 |  N XMWHICH,XMMSG,XMRECIPS,XMABORT
 | 
|---|
| 100 |  ; XMPRTHDR 1=Print header
 | 
|---|
| 101 |  ;          0=don't (headerless print)
 | 
|---|
| 102 |  ; XMRECIPS 0=Don't print recipients
 | 
|---|
| 103 |  ;          1=Print summary recipients
 | 
|---|
| 104 |  ;          2=Print detail recipients
 | 
|---|
| 105 |  N XMSAVE,XMMSG,XMZLIST,I
 | 
|---|
| 106 |  S XMABORT=0
 | 
|---|
| 107 |  S:$G(XMPRTHDR)="" XMPRTHDR=1  ; default is to print with headers
 | 
|---|
| 108 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 109 |  . D LISTSEL(XMDUZ,XMK,.XMZLIST)
 | 
|---|
| 110 |  E  D  Q:XMABORT
 | 
|---|
| 111 |  . N XMWHICH
 | 
|---|
| 112 |  . D WHICH(XMDUZ,XMK,$S(XMPRTHDR:34317,1:34317.1),0,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 113 |  . D LIST(XMDUZ,XMK,.XMWHICH,.XMZLIST)
 | 
|---|
| 114 |  I '$D(XMZLIST) W !!,$$EZBLD^DIALOG(34319) Q  ; No valid messages selected.
 | 
|---|
| 115 |  I +XMZLIST(1)=XMZLIST(1) D PRTONE(XMDUZ,XMK,XMZLIST(1),XMPRTHDR,.XMABORT) Q
 | 
|---|
| 116 |  D QRECIP^XMJMP(.XMRECIPS,.XMABORT) Q:XMABORT
 | 
|---|
| 117 |  F I="DUZ","XMDUZ","XMV(","XMZLIST(","XMRECIPS","XMPRTHDR" S XMSAVE(I)=""
 | 
|---|
| 118 |  D EN^XUTMDEVQ("PLISTX^XMJMP",$$EZBLD^DIALOG(34501),.XMSAVE) ; MailMan: Print
 | 
|---|
| 119 |  Q:XMABORT!$G(POP)
 | 
|---|
| 120 |  W:$D(XMMSG) !!,XMMSG
 | 
|---|
| 121 |  Q
 | 
|---|
| 122 | LISTSEL(XMDUZ,XMK,XMZLIST) ;
 | 
|---|
| 123 |  N XMKZ,J,XMZ
 | 
|---|
| 124 |  S (XMKZ,J)=0
 | 
|---|
| 125 |  F  S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ  D
 | 
|---|
| 126 |  . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
 | 
|---|
| 127 |  . I J=0 S J=1,XMZLIST(1)=XMZ Q
 | 
|---|
| 128 |  . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
 | 
|---|
| 129 |  . S XMZLIST(J)=XMZLIST(J)_","_XMZ
 | 
|---|
| 130 |  Q
 | 
|---|
| 131 | LIST(XMDUZ,XMK,XMWHICH,XMZLIST) ;
 | 
|---|
| 132 |  N I,J,XMRANGE,XMKZ,XMZ,XMLAST
 | 
|---|
| 133 |  S J=0
 | 
|---|
| 134 |  F I=1:1:$L(XMWHICH,",") D
 | 
|---|
| 135 |  . S XMRANGE=$P(XMWHICH,",",I)
 | 
|---|
| 136 |  . Q:'XMRANGE
 | 
|---|
| 137 |  . S XMKZ=$P(XMRANGE,"-",1)-.1
 | 
|---|
| 138 |  . S XMLAST=$S(XMRANGE["-":$P(XMRANGE,"-",2),1:XMRANGE)
 | 
|---|
| 139 |  . F  S XMKZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) Q:'XMKZ!(XMKZ>XMLAST)  D
 | 
|---|
| 140 |  . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
 | 
|---|
| 141 |  . . I J=0 S J=1,XMZLIST(1)=XMZ Q
 | 
|---|
| 142 |  . . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
 | 
|---|
| 143 |  . . S XMZLIST(J)=XMZLIST(J)_","_XMZ
 | 
|---|
| 144 |  Q
 | 
|---|
| 145 | PRTONE(XMDUZ,XMK,XMZ,XMPRTHDR,XMABORT) ;
 | 
|---|
| 146 |  D PONE^XMJMP(XMDUZ,XMK,XMZ,XMPRTHDR,.XMABORT)
 | 
|---|
| 147 |  W !!,$$EZBLD^DIALOG($S(XMABORT:34318.4,1:34318.1)) ; Message (not) printed.
 | 
|---|
| 148 |  Q
 | 
|---|
| 149 | SAVE(XMDUZ,XMK) ; Save a range of messages to another basket
 | 
|---|
| 150 |  N XMWHICH,XMMSG,XMABORT,XMKTO,XMDIC
 | 
|---|
| 151 |  S XMABORT=0
 | 
|---|
| 152 |  S XMDIC("B")="@"  ; no default basket
 | 
|---|
| 153 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 154 |  . D SELBSKT^XMJBU(XMDUZ,$$EZBLD^DIALOG(34325),"L",.XMDIC,.XMKTO) ; Save messages to which basket?
 | 
|---|
| 155 |  . I XMKTO=U S XMMSG=$$EZBLD^DIALOG(34324.3) Q  ; No messages saved.
 | 
|---|
| 156 |  . I XMKTO=XMK S XMMSG=$$EZBLD^DIALOG(34326) Q  ; Same basket.  No messages saved.
 | 
|---|
| 157 |  . D SELMSG(XMDUZ,XMK,"XMOVE^XMXMSGS2",34324,.XMMSG)
 | 
|---|
| 158 |  . K ^TMP("XM",$J,".")
 | 
|---|
| 159 |  E  D
 | 
|---|
| 160 |  . D WHICH(XMDUZ,XMK,34323,0,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 161 |  . D SELBSKT^XMJBU(XMDUZ,$$EZBLD^DIALOG(34325),"L",.XMDIC,.XMKTO) ; Save messages to which basket?
 | 
|---|
| 162 |  . I XMKTO=U S XMMSG=$$EZBLD^DIALOG(34324.3) Q  ; No messages saved.
 | 
|---|
| 163 |  . I XMKTO=XMK S XMMSG=$$EZBLD^DIALOG(34326) Q  ; Same basket.  No messages saved.
 | 
|---|
| 164 |  . D MOVEMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMKTO,.XMMSG)
 | 
|---|
| 165 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 166 |  Q:XMABORT
 | 
|---|
| 167 |  W:$D(XMMSG) !,XMMSG
 | 
|---|
| 168 |  Q
 | 
|---|
| 169 | TERM(XMDUZ,XMK) ; Terminate a range of messages
 | 
|---|
| 170 |  N XMWHICH,XMMSG,XMABORT
 | 
|---|
| 171 |  S XMABORT=0
 | 
|---|
| 172 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 173 |  . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XTERM",34329,34330,.XMMSG,.XMABORT)
 | 
|---|
| 174 |  . ;K ^TMP("XM",$J,".")
 | 
|---|
| 175 |  E  D
 | 
|---|
| 176 |  . D WHICH(XMDUZ,XMK,34328,34330.1,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 177 |  . D TERMMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
 | 
|---|
| 178 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 179 |  Q:XMABORT
 | 
|---|
| 180 |  Q:'$D(XMMSG)
 | 
|---|
| 181 |  W !,XMMSG
 | 
|---|
| 182 |  I XMMSG W !,$$EZBLD^DIALOG($S(XMK<1:34331.1,1:34331)) ; You won't see future responses.  (In WASTE basket)
 | 
|---|
| 183 |  Q
 | 
|---|
| 184 | VAPOR(XMDUZ,XMK) ; Set Vaporize date for a range of messages
 | 
|---|
| 185 |  N XMWHICH,XMMSG,XMABORT,XMWHEN
 | 
|---|
| 186 |  S XMABORT=0
 | 
|---|
| 187 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 188 |  . D VAPRDATE(.XMWHEN,.XMABORT) Q:XMABORT
 | 
|---|
| 189 |  . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XVAPOR^XMXMSGS2",$S(XMWHEN="@":34337.2,1:34337),$S(XMWHEN="@":34338.2,1:34338),.XMMSG,.XMABORT)
 | 
|---|
| 190 |  E  D
 | 
|---|
| 191 |  . D VAPRDATE(.XMWHEN,.XMABORT) Q:XMABORT
 | 
|---|
| 192 |  . D WHICH(XMDUZ,XMK,$S(XMWHEN="@":34336.1,1:34336),$S(XMWHEN="@":34338.3,1:34338.1),.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 193 |  . D VAPORMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMWHEN,.XMMSG)
 | 
|---|
| 194 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 195 |  Q:XMABORT
 | 
|---|
| 196 |  W:$D(XMMSG) !,XMMSG
 | 
|---|
| 197 |  Q
 | 
|---|
| 198 | VAPRDATE(XMWHEN,XMABORT) ;
 | 
|---|
| 199 |  N DIR,X,Y
 | 
|---|
| 200 |  S DIR(0)="DO^NOW::EFT"
 | 
|---|
| 201 |  D BLD^DIALOG(37317.1,"","","DIR(""A"")")
 | 
|---|
| 202 |  D BLD^DIALOG(34339,"","","DIR(""?"")")
 | 
|---|
| 203 |  D ^DIR
 | 
|---|
| 204 |  I X="@" S XMWHEN="@" Q
 | 
|---|
| 205 |  I $D(DIRUT) S XMABORT=1 Q
 | 
|---|
| 206 |  S XMWHEN=Y
 | 
|---|
| 207 |  Q
 | 
|---|
| 208 | XMTPRI(XMDUZ,XMK) ; Toggle transmission priority for a range of msgs
 | 
|---|
| 209 |  ; XMDUZ better be .5 and XMK better be > 999!
 | 
|---|
| 210 |  N XMTPRI,XMWHICH,XMMSG,XMABORT
 | 
|---|
| 211 |  S XMABORT=0
 | 
|---|
| 212 |  I $D(^TMP("XM",$J,".")) D
 | 
|---|
| 213 |  . D ASKPRI^XMJMORX(.XMTPRI,.XMABORT) Q:XMABORT
 | 
|---|
| 214 |  . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XXP^XMXMSGS1",34334,34335,.XMMSG,.XMABORT)
 | 
|---|
| 215 |  E  D
 | 
|---|
| 216 |  . D WHICH(XMDUZ,XMK,34333,34335.1,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 217 |  . D ASKPRI^XMJMORX(.XMTPRI,.XMABORT) Q:XMABORT
 | 
|---|
| 218 |  . D XPMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMTPRI,.XMMSG)
 | 
|---|
| 219 |  . D:$D(XMERR) ZSHOW^XMJERR
 | 
|---|
| 220 |  Q:XMABORT
 | 
|---|
| 221 |  W:$D(XMMSG) !,XMMSG
 | 
|---|
| 222 |  Q
 | 
|---|
| 223 | WHICH(XMDUZ,XMK,XMPROMPT,XMCONFRM,XMWHICH,XMABORT) ;
 | 
|---|
| 224 |  N DIR,X,Y,XMHI,XMLO
 | 
|---|
| 225 |  S XMLO=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",""))
 | 
|---|
| 226 |  S XMHI=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",""),-1)
 | 
|---|
| 227 |  S DIR("A")=$$EZBLD^DIALOG(XMPROMPT) ; ... which messages?
 | 
|---|
| 228 |  S DIR("??")="XM-U-M-CHOOSE RANGE"
 | 
|---|
| 229 |  S DIR(0)="LC^"_XMLO_":"_XMHI
 | 
|---|
| 230 |  D ^DIR I $D(DIRUT) S XMABORT=1 Q
 | 
|---|
| 231 |  S XMWHICH=Y
 | 
|---|
| 232 |  I XMCONFRM D CONFIRM(XMCONFRM,.XMABORT)
 | 
|---|
| 233 |  Q
 | 
|---|
| 234 | CONFIRM(XMCONFRM,XMABORT) ;
 | 
|---|
| 235 |  N DIR
 | 
|---|
| 236 |  D BLD^DIALOG(XMCONFRM,"","","DIR(""A"")") ; Do you really want to ... these messages?
 | 
|---|
| 237 |  S DIR("B")=$$EZBLD^DIALOG(39053) ; No
 | 
|---|
| 238 |  S DIR(0)="Y"
 | 
|---|
| 239 |  D ^DIR I $D(DIRUT)!'Y S XMABORT=1
 | 
|---|
| 240 |  Q
 | 
|---|
| 241 | POSTPRIV() ;
 | 
|---|
| 242 |  Q:$$POSTPRIV^XMXSEC 1
 | 
|---|
| 243 |  D SHOW^XMJERR
 | 
|---|
| 244 |  Q 0
 | 
|---|
| 245 | SELMSG(XMDUZ,XMK,XMRTN,XMSUM,XMMSG) ;
 | 
|---|
| 246 |  N XMCNT,XMKZ,XMZ,XMKALL
 | 
|---|
| 247 |  S (XMCNT,XMKZ)=0
 | 
|---|
| 248 |  F  S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ  D
 | 
|---|
| 249 |  . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
 | 
|---|
| 250 |  . D @XMRTN
 | 
|---|
| 251 |  S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
 | 
|---|
| 252 |  D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
 | 
|---|
| 253 |  Q
 | 
|---|