| 1 | MDHL7X ; HOIFO/WAA -Generate HL7 Error Message ; 06/08/00
 | 
|---|
| 2 |  ;;1.0;CLINICAL PROCEDURES;;Apr 01, 2004
 | 
|---|
| 3 |  ; Reference IA #1131 for ^XMB("NETNAME") access.
 | 
|---|
| 4 |  ; Reference IA #2165 for HLMA1 calls.
 | 
|---|
| 5 |  ; Reference IA #2729 for XMXAPI calls.
 | 
|---|
| 6 |  D GENERR,GENACK Q
 | 
|---|
| 7 | GENERR ; Generate error message
 | 
|---|
| 8 |  N TXT,INST,MG,XMTO,XMDUZ,XMSUBJ,XMBODY,N,X S MG=0
 | 
|---|
| 9 |  S INST=DEVIEN
 | 
|---|
| 10 |  I INST>1 S MG=$P($G(^MDS(702.09,INST,0)),"^",2)
 | 
|---|
| 11 |  I 'MG!('$$MG^MDHL7U2(MG)) S MG=$$FIND1^DIC(3.8,"","BX","MD DEVICE ERRORS") Q:'MG
 | 
|---|
| 12 |  S MG=$$GET1^DIQ(3.8,+MG_",",.01)
 | 
|---|
| 13 |  S XMTO="G."_MG_"@"_^XMB("NETNAME"),XMINSTR("FROM")=.5
 | 
|---|
| 14 |  I '$D(X) S X=ECODE(0)
 | 
|---|
| 15 |  S TXT(1)=ERRTX,TXT(2)=X,TXT(3)=" "
 | 
|---|
| 16 |  S N=3
 | 
|---|
| 17 |  I 'ECODE D  ; This is to process Device errors
 | 
|---|
| 18 |  . N X
 | 
|---|
| 19 |  . S X=0
 | 
|---|
| 20 |  . F  S X=$O(ECODE(X)) Q:X<1  S N=N+1,TXT(N)=ECODE(X)
 | 
|---|
| 21 |  . S N=N+1,TXT(N)=" "
 | 
|---|
| 22 |  . Q
 | 
|---|
| 23 |  F X="MSH","PID","OBR","OBX" I $D(SEG(X)) S N=N+1,TXT(N)=SEG(X)
 | 
|---|
| 24 |  S XMSUBJ="A Clinical Instrument HL7 Error has occurred."
 | 
|---|
| 25 |  S XMBODY="TXT"
 | 
|---|
| 26 |  D SENDMSG^XMXAPI(DUZ,XMSUBJ,XMBODY,XMTO,.XMINSTR)
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | GENACK ; Generate an HL7 ACK message
 | 
|---|
| 29 |  ; Reference IA #2165 for GENACK^HLMA1 call
 | 
|---|
| 30 |  N HLA,HLEID,HLEIDS,HLARYTYP,HLFORMAT,HLRESLTA
 | 
|---|
| 31 |  S HLA("HLA",1)="MSA"_HL("FS")_$S($D(ERRTX):"AR",1:"AA")_HL("FS")_HL("MID")_$S($D(ERRTX):HL("FS")_ERRTX,1:"")
 | 
|---|
| 32 |  S HLEID=HL("EID"),HLEIDS=HL("EIDS"),HLARYTYP="LM",HLFORMAT=1,HLRESLTA=HL("MID")
 | 
|---|
| 33 |  D GENACK^HLMA1(HLEID,HLMTIENS,HLEIDS,HLARYTYP,HLFORMAT,.HLRESTLA)
 | 
|---|
| 34 |  N ERRTX Q
 | 
|---|