| 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
|
|---|