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