[613] | 1 | HLCSMM ;ISC/MTC-Create Mail Message and Entry in the HL7 Transmission File ;11/03/2000 08:53
|
---|
| 2 | ;;1.6;HEALTH LEVEL SEVEN;**17,35,57,66,68**;Oct 13, 1995
|
---|
| 3 | Q
|
---|
| 4 | ;
|
---|
| 5 | EN(HLD0,HLD1) ; This routine will send a Message from the Out Queue to the
|
---|
| 6 | ; MailGroup Specified in the Logical Link file (#870). It is called
|
---|
| 7 | ; from HLCSMM1 routine that monitors the queue for a link. The MM LLP
|
---|
| 8 | ; uses <CR> stuffing to indicate the end of segments. The message
|
---|
| 9 | ; will use the following format within the XMB global.
|
---|
| 10 | ; ^XMB(3.9,..1)=Segment 1
|
---|
| 11 | ; ^XMB(3.9,..2)="" - End of segment 1
|
---|
| 12 | ; ^XMB(3.9,..3)=Segment 2
|
---|
| 13 | ; ^XMB(3.9,..4)=Continuation of segment 2
|
---|
| 14 | ; ^XMB(3.9,..5)="" - End of segment 2
|
---|
| 15 | ; " "
|
---|
| 16 | ; This processing will enable segment greater than 245.
|
---|
| 17 | ;
|
---|
| 18 | ; INPUT : HLD0 - IEN of Logical Link file (#870)
|
---|
| 19 | ; : HLD1 - IEN of OutQueue Mutiple (Message)
|
---|
| 20 | ;
|
---|
| 21 | ; OUTPUT: NONE
|
---|
| 22 | ;
|
---|
| 23 | N HLI,HLI0,HLSERV,HLFAC,HLERR,HLOGLINK,HLMSTXT,HLPARENT,HLPTXT,HLPARM
|
---|
| 24 | ;
|
---|
| 25 | S HLOGLINK=$G(^HLCS(870,HLD0,0))
|
---|
| 26 | ;-- get MailMan LLP parameters
|
---|
| 27 | S HLPARM=$G(^HLCS(870,HLD0,100))
|
---|
| 28 | ;-- facility
|
---|
| 29 | S HLFAC=$P($$SITE^VASITE,"^",2)
|
---|
| 30 | I HLFAC="" S HLFAC="Unknown"
|
---|
| 31 | ;-- date
|
---|
| 32 | D NOW^%DTC S Y=% X ^DD("DD") S HLDT=Y
|
---|
| 33 | ;-- logical link name
|
---|
| 34 | S HLDAN=$P(HLOGLINK,U)
|
---|
| 35 | ;
|
---|
| 36 | ;-- Build MailMan variables
|
---|
| 37 | ;
|
---|
| 38 | NEWMM ;Patch 66-introduce new Mailman API's
|
---|
| 39 | N XMSUB,XMTO,XMINSTR
|
---|
| 40 | I '$G(DUZ) N DUZ D DUZ^XUP(.5)
|
---|
| 41 | S XMSUB="HL7 Msg "_HLDT_" from "_HLFAC,XMSUB=$E(XMSUB,1,65)
|
---|
| 42 | S XMTO="G."_$P(^XMB(3.8,$P(HLPARM,U),0),U)
|
---|
| 43 | S XMINSTR("FROM")=.5
|
---|
| 44 | S XMINSTR("ADDR FLAGS")="R" ; Ignore any restrictions (domain closed or protected by security key)
|
---|
| 45 | D SENDMSG^XMXAPI(DUZ,XMSUB,"^HLCS(870,HLD0,2,HLD1,1)",XMTO,.XMINSTR)
|
---|
| 46 | ;-- Set message status to 'done'
|
---|
| 47 | S $P(^HLCS(870,HLD0,2,HLD1,0),"^",2)="D"
|
---|
| 48 | I $G(XMERR) D ERROR
|
---|
| 49 | Q
|
---|
| 50 | ERROR ;-- send Mail Message indicating error
|
---|
| 51 | Q:'$G(XMERR)
|
---|
| 52 | Q:'$D(^TMP("XMERR",$J))
|
---|
| 53 | N HLX,HLY,HLZ,HLPARAM,XMSUB,XMTO,XMINSTR
|
---|
| 54 | N DUZ D DUZ^XUP(.5) ; Want to make sure this message is sent. It won't be if DUZ is not a valid user.
|
---|
| 55 | K ^TMP($J,"HLERR")
|
---|
| 56 | S HLNXST="ERROR" D STATUS^HLCSMM1(HLNXST) H 1
|
---|
| 57 | S HLPARAM=$$PARAM^HLCS2,XMTO("G."_$P(HLPARAM,U,8))="",XMTO(.5)=""
|
---|
| 58 | S (HLX,HLZ)=0
|
---|
| 59 | F S HLX=$O(^TMP("XMERR",$J,HLX)) Q:'HLX D
|
---|
| 60 | . S HLZ=HLZ+1,^TMP($J,"HLERR",HLZ)=""
|
---|
| 61 | . S HLY=0
|
---|
| 62 | . F S HLY=$O(^TMP("XMERR",$J,HLX,"TEXT",HLY)) Q:'HLY D
|
---|
| 63 | . . S HLZ=HLZ+1,^TMP($J,"HLERR",HLZ)=$G(^TMP("XMERR",$J,HLX,"TEXT",HLY))
|
---|
| 64 | . I $D(^TMP("XMERR",$J,HLX,"PARAM","VALUE")) S HLZ=HLZ+1,^TMP($J,"HLERR",HLZ)=^TMP("XMERR",$J,HLX,"PARAM","VALUE")
|
---|
| 65 | S HLZ=HLZ+1,^TMP($J,"HLERR",HLZ)=""
|
---|
| 66 | S HLZ=HLZ+1,^TMP($J,"HLERR",HLZ)="HL7 Logical Link: "_$G(HLDAN)
|
---|
| 67 | S XMSUB="Error handing HL7 message off to Mailman"
|
---|
| 68 | S XMINSTR("FROM")="POSTMASTER" ; msg will appear new, nomatter who receives it.
|
---|
| 69 | D SENDMSG^XMXAPI(DUZ,XMSUB,"^TMP($J,""HLERR"")",.XMTO,.XMINSTR)
|
---|
| 70 | K ^TMP($J,"HLERR"),XMERR,^TMP("XMERR",$J)
|
---|
| 71 | Q
|
---|