[613] | 1 | HLEMRCV ;ALB/CJM - Mailman server for HL7 Monitoring Events;12 JUN 1997 10:00 am
|
---|
| 2 | ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13,1995
|
---|
| 3 | ;
|
---|
| 4 | RECEIVE ;Description: Read the exception message and file it.
|
---|
| 5 | ;!!!! for testing interactively !!!!!!!!!!!!
|
---|
| 6 | ;S XMER=0
|
---|
| 7 | ;S XMFROM="HL7 EVENT LOG AT SAN FRANCISCO"
|
---|
| 8 | ;S XMPOS=0
|
---|
| 9 | ;S XMREC="D REC^XMS3"
|
---|
| 10 | ;S XMRG="**APPLICATION DATA**"
|
---|
| 11 | ;S XMXX="S.HLEM EVENT LOG SERVER"
|
---|
| 12 | ;S XMZ=8557
|
---|
| 13 | ;!!!!!!
|
---|
| 14 | ;
|
---|
| 15 | N EVENT,EXIT,TEMP
|
---|
| 16 | S EXIT=0
|
---|
| 17 | F X XMREC Q:(XMER<0) D Q:EXIT
|
---|
| 18 | .I $E(XMRG,1,2)="**" S EXIT=1 Q
|
---|
| 19 | .N LABEL,DATA
|
---|
| 20 | .S LABEL=$P(XMRG,":"),DATA=$P(XMRG,":",2,99)
|
---|
| 21 | .Q:'$L(LABEL)
|
---|
| 22 | .S EVENT(LABEL)=DATA
|
---|
| 23 | ;
|
---|
| 24 | ;don't save IEN from sending site
|
---|
| 25 | K EVENT("IEN")
|
---|
| 26 | ;
|
---|
| 27 | ;need to get local pointers
|
---|
| 28 | ;event type
|
---|
| 29 | S:$D(EVENT("TYPE")) TEMP=$$FIND^HLEMT($P($G(EVENT("TYPE")),"^",2),$P($G(EVENT("TYPE")),"^"))
|
---|
| 30 | I '$G(TEMP) D ERROR("UNKNOWN EVENT TYPE AT REMOTE SITE: "_EVENT("TYPE"),XMZ) Q
|
---|
| 31 | S EVENT("TYPE")=TEMP
|
---|
| 32 | ;get the institution ien
|
---|
| 33 | S:$D(EVENT("SITE")) EVENT("SITE")=$$INSTIEN^HLEMU(EVENT("SITE"))
|
---|
| 34 | ;
|
---|
| 35 | ;don't enter duplicates (no updating at present)
|
---|
| 36 | I $L($G(EVENT("ID"))),$D(^HLEV(776.4,"C",EVENT("ID"))) Q
|
---|
| 37 | ;
|
---|
| 38 | ;establish this event on this system
|
---|
| 39 | S EVENT=$$STORE^HLEME1(.EVENT,.ERROR)
|
---|
| 40 | ;
|
---|
| 41 | ;if successful
|
---|
| 42 | I EVENT D
|
---|
| 43 | .;add a note with the ien of the message for traceability
|
---|
| 44 | .I $$ADDNOTE^HLEME(EVENT,"REMOTE EVENT ADDED BY SERVER AT "_$$NOW^XLFDT_", MAILMAN MESSAGE IEN: "_$G(XMZ))
|
---|
| 45 | ;
|
---|
| 46 | ;if not successful
|
---|
| 47 | I 'EVENT D ERROR("Fileman Failed to store remote event: "_$G(ERROR),$G(XMZ)) Q
|
---|
| 48 | ;
|
---|
| 49 | ;handle application data
|
---|
| 50 | I $E(XMRG,1,4)="**AP" D
|
---|
| 51 | .S EXIT=0
|
---|
| 52 | .F X XMREC Q:(XMER<0) D Q:EXIT
|
---|
| 53 | ..I $E(XMRG,1,4)="**NO" S EXIT=1 Q
|
---|
| 54 | ..N VAR
|
---|
| 55 | ..I $P(XMRG,":")="VARIABLE" D
|
---|
| 56 | ...S VAR=$P(XMRG,":",2)
|
---|
| 57 | ...X XMREC
|
---|
| 58 | ...I $P(XMRG,":")="VALUE" S @VAR=$P(XMRG,":",2,99) I $$STOREVAR^HLEME(EVENT,.@VAR,VAR)
|
---|
| 59 | ;
|
---|
| 60 | ;handle notes
|
---|
| 61 | I $E(XMRG,1,4)="**NO" D
|
---|
| 62 | .S EXIT=0
|
---|
| 63 | .F X XMREC Q:(XMER<0) D Q:EXIT
|
---|
| 64 | ..N VAR
|
---|
| 65 | ..I $P(XMRG,":")="VAR" D
|
---|
| 66 | ...S VAR=$P(XMRG,":",2)
|
---|
| 67 | ...X XMREC
|
---|
| 68 | ...I $L(XMRG) D
|
---|
| 69 | ..I $$ADDNOTE^HLEME(EVENT,XMRG)
|
---|
| 70 | ;
|
---|
| 71 | S XMSER="S.HLEM EVENT LOG SERVER"
|
---|
| 72 | D REMSBMSG^XMA1C
|
---|
| 73 | Q
|
---|
| 74 | ;
|
---|
| 75 | ERROR(COMMENT,MAIL) ;
|
---|
| 76 | ;establishes a new event if this routine encounters an error.
|
---|
| 77 | ;MAIL is the message id of the MailMan mesage
|
---|
| 78 | ;
|
---|
| 79 | N NEWEVENT,VAR
|
---|
| 80 | S NEWEVENT=$$EVENT^HLEME("SRVR ERROR","HEALTH LEVEL SEVEN")
|
---|
| 81 | S VAR("MAIL IEN")=$G(MAIL)
|
---|
| 82 | I $$STOREVAR^HLEME(NEWEVENT,.VAR)
|
---|
| 83 | I $$ADDNOTE^HLEME(NEWEVENT,$G(COMMENT))
|
---|
| 84 | Q
|
---|