| 1 | XMJMR ;ISC-SF/GMB-Interactive Reply ;04/24/2002  10:28
 | 
|---|
| 2 |  ;;8.0;MailMan;;Jun 28, 2002
 | 
|---|
| 3 |  ; Replaces REPLY^XMA11,^XMA2,^XMA20,^XMAH1 (ISC-WASH/CAP/THM)
 | 
|---|
| 4 | REPLY(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMINSTR,XMPTR,XMRESPSO,XMINCL,XMRESP) ;
 | 
|---|
| 5 |  N XMABORT,XMZ,XMID,XMWHICH,XMZI
 | 
|---|
| 6 |  S XMABORT=0
 | 
|---|
| 7 |  D INIT^XMJMR1(XMDUZ,.XMK,.XMKN,XMZO,XMZOSUBJ,XMZOFROM,.XMINSTR,XMINCL,.XMZI,.XMWHICH,.XMABORT) Q:XMABORT
 | 
|---|
| 8 |  D CRE8XMZ^XMXSEND("R"_XMZO,.XMZ,1) I XMZ<1 S XMABORT=1 Q
 | 
|---|
| 9 |  S XMID=$S(XMDUZ=.6:DUZ,1:XMDUZ)
 | 
|---|
| 10 |  D EDITON^XMJMS(XMID,XMZ,XMZO)
 | 
|---|
| 11 |  D PROCESS(XMID,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,.XMINSTR,XMPTR,XMRESPSO,.XMRESP,.XMZI,.XMWHICH,.XMABORT)
 | 
|---|
| 12 |  I XMABORT=DTIME D HALT^XMJMS($$EZBLD^DIALOG(34220)) ; replying to
 | 
|---|
| 13 |  D EDITOFF^XMJMS(XMID)
 | 
|---|
| 14 |  D:XMABORT KILLMSG^XMXUTIL(XMZ)
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 | PROCESS(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,XMINSTR,XMPTR,XMRESPSO,XMRESP,XMZI,XMWHICH,XMABORT) ;
 | 
|---|
| 17 |  N XMRESTR
 | 
|---|
| 18 |  S XMRESTR("REPLYTO")=XMZO
 | 
|---|
| 19 |  D:$D(XMWHICH) COPYTEXT^XMJMR1(XMZI,XMZ,XMWHICH,(XMZI'=XMZO))
 | 
|---|
| 20 |  D BODY^XMJMS(XMDUZ,XMZ,XMZOSUBJ,.XMRESTR,.XMABORT) Q:XMABORT
 | 
|---|
| 21 |  D REPLYMSG^XMJMRO(XMDUZ,XMK,XMKN,XMZO,XMZ,XMZOSUBJ,.XMRESTR,XMPTR,XMRESPSO,.XMRESP,.XMABORT) Q:XMABORT
 | 
|---|
| 22 |  I XMZOFROM["@",$$UP^XLFSTR(XMZOFROM)'["POSTMASTER" D REMOTE(XMDUZ,XMZO,XMZOSUBJ,XMZ,.XMINSTR)
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 | REMOTE(XMDUZ,XMZO,XMZOSUBJ,XMZ,XMINSTR) ;
 | 
|---|
| 25 |  N DIR,Y,XMSUBJ,XMTO,XMABORT
 | 
|---|
| 26 |  S XMABORT=0
 | 
|---|
| 27 |  S DIR("A")=$$EZBLD^DIALOG(34206) ; Do you wish to send this reply across the network?
 | 
|---|
| 28 |  S DIR(0)="Y",DIR("B")=$$EZBLD^DIALOG(39053) ; No
 | 
|---|
| 29 |  D BLD^DIALOG(34207,"","","DIR(""?"")") ; Enter YES if you wish your response ...
 | 
|---|
| 30 |  S DIR("??")="^D RHELP^XMJMR"
 | 
|---|
| 31 |  D ^DIR Q:'Y!$D(DIRUT)
 | 
|---|
| 32 |  S XMRE=$$EZBLD^DIALOG(37006) ; Re:
 | 
|---|
| 33 |  S XMSUBJ=$S($$UP^XLFSTR($E(XMZOSUBJ,1,$L(XMRE)))=$$UP^XLFSTR(XMRE):XMZOSUBJ,1:$E(XMRE_XMZOSUBJ,1,65))
 | 
|---|
| 34 |  D SUBJ^XMJMS(.XMSUBJ,.XMABORT) Q:XMABORT
 | 
|---|
| 35 |  D REPLYTO(XMZO,.XMTO,.XMABORT) Q:XMABORT
 | 
|---|
| 36 |  W !,$$EZBLD^DIALOG(34211,XMTO) ; Addressing the reply to: |1|
 | 
|---|
| 37 |  D INIT^XMXADDR
 | 
|---|
| 38 |  S XMINSTR("EXACT")=1 ; Match on exact domain name
 | 
|---|
| 39 |  D ADDR^XMXADDR(XMDUZ,XMTO,.XMINSTR)
 | 
|---|
| 40 |  K XMINSTR("EXACT")
 | 
|---|
| 41 |  ;S:XMTO[".VA.GOV" XMTO=$TR($P(XMTO,"@"),"._+",", .")_"@"_$P(XMTO,"@",2)
 | 
|---|
| 42 |  I $$GOTADDR^XMXADDR D
 | 
|---|
| 43 |  . W !,$$EZBLD^DIALOG(34212) ; Sending network reply...
 | 
|---|
| 44 |  . D NETREPLY^XMXREPLY(XMDUZ,XMZO,XMZ,XMSUBJ,.XMINSTR)
 | 
|---|
| 45 |  . W $$EZBLD^DIALOG(34213) ; Sent
 | 
|---|
| 46 |  D CLEANUP^XMXADDR
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 | RHELP ;
 | 
|---|
| 49 |  N XMTEXT
 | 
|---|
| 50 |  D BLD^DIALOG(34208,"","","XMTEXT","F") ; A network response will go to all message ... (explains network reply)
 | 
|---|
| 51 |  D MSG^DIALOG("WH","","","","XMTEXT")
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 | REPLYTO(XMZ,XMFROM,XMABORT) ;
 | 
|---|
| 54 |  N XMREPLTO,XMF,XMR
 | 
|---|
| 55 |  D REPLYTO^XMXREPLY(XMZ,.XMFROM,.XMREPLTO)
 | 
|---|
| 56 |  S XMF=XMFROM
 | 
|---|
| 57 |  S XMFROM=$$REMADDR^XMXADDR3(XMFROM)
 | 
|---|
| 58 |  Q:$G(XMREPLTO)=""
 | 
|---|
| 59 |  S XMR=XMREPLTO
 | 
|---|
| 60 |  S XMREPLTO=$$REMADDR^XMXADDR3(XMREPLTO)
 | 
|---|
| 61 |  Q:$$UP^XLFSTR(XMREPLTO)=$$UP^XLFSTR(XMFROM)
 | 
|---|
| 62 |  N DIR,Y
 | 
|---|
| 63 |  S DIR(0)="S^"
 | 
|---|
| 64 |  S DIR(0)=DIR(0)_"F:'FROM'     "_XMF
 | 
|---|
| 65 |  S DIR(0)=DIR(0)_";R:'REPLY-TO' "_XMR
 | 
|---|
| 66 |  S DIR("B")="R"
 | 
|---|
| 67 |  D BLD^DIALOG(34214,"","","DIR(""A"")") ; This message has a 'reply-to' address ... (use which address?)
 | 
|---|
| 68 |  D BLD^DIALOG(34215,"","","DIR(""?"")") ; Generally, we recommend that you use ...
 | 
|---|
| 69 |  D ^DIR I $D(DIRUT) S XMABORT=1 Q
 | 
|---|
| 70 |  S:Y="R" XMFROM=XMREPLTO
 | 
|---|
| 71 |  Q
 | 
|---|
| 72 | RECOVER(XMDUZ,XMZ,XMZO) ;
 | 
|---|
| 73 |  I XMDUZ'=DUZ,$$ZCONFID^XMXSEC(XMZO) D  Q
 | 
|---|
| 74 |  . ; If user is surrogate & msg is confidential, delete unsent reply.
 | 
|---|
| 75 |  . D EDITOFF^XMJMS(XMDUZ)
 | 
|---|
| 76 |  . D KILLMSG^XMXUTIL(XMZ)
 | 
|---|
| 77 |  N XMSUBJ,DIR,Y,XMTEXT
 | 
|---|
| 78 |  S XMSUBJ=$P(^XMB(3.9,XMZO,0),U,1)
 | 
|---|
| 79 |  S:XMSUBJ["~U~" XMSUBJ=$$DECODEUP^XMXUTIL1(XMSUBJ)
 | 
|---|
| 80 |  W $C(7),!
 | 
|---|
| 81 |  ;You have / |1| has an unsent response in your buffer.
 | 
|---|
| 82 |  D BLD^DIALOG($S(XMDUZ=DUZ:34222,1:34222.1),XMV("NAME"),"","XMTEXT","F")
 | 
|---|
| 83 |  ;Subj: _XMSUBJ
 | 
|---|
| 84 |  D BLD^DIALOG(34536,XMSUBJ,"","XMTEXT","FS")
 | 
|---|
| 85 |  D MSG^DIALOG("WM","",79,"","XMTEXT")
 | 
|---|
| 86 |  W !
 | 
|---|
| 87 |  ;You may continue to reply, or delete the remaining text.
 | 
|---|
| 88 |  ;Shall we delete the unsent response?
 | 
|---|
| 89 |  D BLD^DIALOG(34222.3,"","","DIR(""A"")")
 | 
|---|
| 90 |  S DIR(0)="Y"
 | 
|---|
| 91 |  S DIR("B")=$$EZBLD^DIALOG(39053) ; No
 | 
|---|
| 92 |  D BLD^DIALOG(34223,"","","DIR(""?"")") ; Enter YES to delete the unsent response...
 | 
|---|
| 93 |  D ^DIR
 | 
|---|
| 94 |  I $D(DTOUT) D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering
 | 
|---|
| 95 |  I Y=1!$D(DUOUT) D  Q
 | 
|---|
| 96 |  . D EDITOFF^XMJMS(XMDUZ)
 | 
|---|
| 97 |  . D KILLMSG^XMXUTIL(XMZ)
 | 
|---|
| 98 |  N XMK,XMKN,XMZOSUBJ,XMZOFROM,XMINSTR,XMABORT,XMSECURE,XMPAKMAN,XMWHICH,XMPTR,XMRESPSO,XMRESP
 | 
|---|
| 99 |  S XMABORT=0
 | 
|---|
| 100 |  D RECINIT(XMDUZ,XMZO,.XMK,.XMKN,.XMZOSUBJ,.XMZOFROM,.XMINSTR,.XMPTR,.XMRESPSO,.XMRESP)
 | 
|---|
| 101 |  D WAIT^XMXUTIL
 | 
|---|
| 102 |  D INIT^XMJMR1(XMDUZ,.XMK,.XMKN,XMZO,XMZOSUBJ,XMZOFROM,.XMINSTR,0,"",.XMWHICH,.XMABORT) Q:XMV("NOSEND")
 | 
|---|
| 103 |  I XMABORT D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering
 | 
|---|
| 104 |  D PROCESS(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,.XMINSTR,XMPTR,XMRESPSO,.XMRESP,"",.XMWHICH,.XMABORT)
 | 
|---|
| 105 |  I XMABORT=DTIME D HALT^XMJMS($$EZBLD^DIALOG(34220)) ; replying to
 | 
|---|
| 106 |  D EDITOFF^XMJMS(XMDUZ)
 | 
|---|
| 107 |  D:XMABORT KILLMSG^XMXUTIL(XMZ)
 | 
|---|
| 108 |  Q
 | 
|---|
| 109 | RECINIT(XMDUZ,XMZO,XMK,XMKN,XMZOSUBJ,XMZOFROM,XMINSTR,XMPTR,XMRESPSO,XMRESP) ;
 | 
|---|
| 110 |  N XMSECBAD,XMIM,XMIU
 | 
|---|
| 111 |  S XMK=+$O(^XMB(3.7,"M",XMZO,XMDUZ,""))
 | 
|---|
| 112 |  S XMKN=$P($G(^XMB(3.7,XMDUZ,2,XMK,0)),U,1)
 | 
|---|
| 113 |  D DISPMSG^XMJMP(XMDUZ,XMK,XMKN,XMZO,.XMSECBAD,1)
 | 
|---|
| 114 |  I $G(XMSECBAD) D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering
 | 
|---|
| 115 |  D INMSG^XMXUTIL2(XMDUZ,0,XMZO,"","I",.XMIM,.XMINSTR,.XMIU)
 | 
|---|
| 116 |  S XMZOSUBJ=XMIM("SUBJ")
 | 
|---|
| 117 |  S XMZOFROM=XMIM("FROM")
 | 
|---|
| 118 |  S XMRESPSO=XMIM("RESPS")
 | 
|---|
| 119 |  S XMPTR=XMIU("IEN")
 | 
|---|
| 120 |  S XMRESP=XMIU("RESP")
 | 
|---|
| 121 |  Q
 | 
|---|