Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: HLEMRCV

HLEMRCV.m

Go to the documentation of this file.
HLEMRCV ;ALB/CJM - Mailman server for HL7 Monitoring Events;12 JUN 1997 10:00 am
 ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13,1995
 ;
RECEIVE ;Description: Read the exception message and file it.
 ;!!!! for testing interactively !!!!!!!!!!!!
 ;S XMER=0
 ;S XMFROM="HL7 EVENT LOG AT SAN FRANCISCO"
 ;S XMPOS=0
 ;S XMREC="D REC^XMS3"
 ;S XMRG="**APPLICATION DATA**"
 ;S XMXX="S.HLEM EVENT LOG SERVER"
 ;S XMZ=8557
 ;!!!!!!
 ;
 N EVENT,EXIT,TEMP
 S EXIT=0
 F  X XMREC Q:(XMER<0)  D  Q:EXIT
 .I $E(XMRG,1,2)="**" S EXIT=1 Q
 .N LABEL,DATA
 .S LABEL=$P(XMRG,":"),DATA=$P(XMRG,":",2,99)
 .Q:'$L(LABEL)
 .S EVENT(LABEL)=DATA
 ;
 ;don't save IEN from sending site
 K EVENT("IEN")
 ;
 ;need to get local pointers
 ;event type
 S:$D(EVENT("TYPE")) TEMP=$$FIND^HLEMT($P($G(EVENT("TYPE")),"^",2),$P($G(EVENT("TYPE")),"^"))
 I '$G(TEMP) D ERROR("UNKNOWN EVENT TYPE AT REMOTE SITE: "_EVENT("TYPE"),XMZ) Q
 S EVENT("TYPE")=TEMP
 ;get the institution ien
 S:$D(EVENT("SITE")) EVENT("SITE")=$$INSTIEN^HLEMU(EVENT("SITE"))
 ;
 ;don't enter duplicates (no updating at present)
 I $L($G(EVENT("ID"))),$D(^HLEV(776.4,"C",EVENT("ID"))) Q
 ;
 ;establish this event on this system
 S EVENT=$$STORE^HLEME1(.EVENT,.ERROR)
 ;
 ;if successful
 I EVENT D
 .;add a note with the ien of the message for traceability
 .I $$ADDNOTE^HLEME(EVENT,"REMOTE EVENT ADDED BY SERVER AT "_$$NOW^XLFDT_", MAILMAN MESSAGE IEN: "_$G(XMZ))
 ;
 ;if not successful
 I 'EVENT D ERROR("Fileman Failed to store remote event:  "_$G(ERROR),$G(XMZ)) Q
 ;
 ;handle application data
 I $E(XMRG,1,4)="**AP" D
 .S EXIT=0
 .F  X XMREC Q:(XMER<0)  D  Q:EXIT
 ..I $E(XMRG,1,4)="**NO" S EXIT=1 Q
 ..N VAR
 ..I $P(XMRG,":")="VARIABLE" D
 ...S VAR=$P(XMRG,":",2)
 ...X XMREC
 ...I $P(XMRG,":")="VALUE" S @VAR=$P(XMRG,":",2,99) I $$STOREVAR^HLEME(EVENT,.@VAR,VAR)
 ;
 ;handle notes
 I $E(XMRG,1,4)="**NO" D
 .S EXIT=0
 .F  X XMREC Q:(XMER<0)  D  Q:EXIT
 ..N VAR
 ..I $P(XMRG,":")="VAR" D
 ...S VAR=$P(XMRG,":",2)
 ...X XMREC
 ...I $L(XMRG) D
 ..I $$ADDNOTE^HLEME(EVENT,XMRG)
 ;
 S XMSER="S.HLEM EVENT LOG SERVER"
 D REMSBMSG^XMA1C
 Q
 ;
ERROR(COMMENT,MAIL) ;
 ;establishes a new event if this routine encounters an error.
 ;MAIL is the message id of the MailMan mesage
 ;
 N NEWEVENT,VAR
 S NEWEVENT=$$EVENT^HLEME("SRVR ERROR","HEALTH LEVEL SEVEN")
 S VAR("MAIL IEN")=$G(MAIL)
 I $$STOREVAR^HLEME(NEWEVENT,.VAR)
 I $$ADDNOTE^HLEME(NEWEVENT,$G(COMMENT))
 Q