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