[613] | 1 | RAHLEXF ;HIRMFO/BNT - RAD/NUC MED HL7 Exceptions filer;01/06/99
|
---|
| 2 | ;;5.0;Radiology/Nuclear Medicine;**12,25**;Mar 16, 1998
|
---|
| 3 | ;
|
---|
| 4 | ;
|
---|
| 5 | ; This routine is called from the bridge routine (^RAHLTCPB) when an
|
---|
| 6 | ; error occurs while processing an HL7 Message.
|
---|
| 7 | ; The error is stored in the HL7 Message Exceptions File (#79.3)
|
---|
| 8 | ; And, if requested, sent to the HL7 MAIL GROUP for this application
|
---|
| 9 | ;
|
---|
| 10 | Q
|
---|
| 11 | EN1 ; Entry point called from Bridge routine.
|
---|
| 12 | N RAEXFIL,RADT,RAPT,RAEX,RAERRX,SFAC,X,Y,RALNGCS,RAUSR,HLRADT,RAMSG
|
---|
| 13 | ;
|
---|
| 14 | ; File number of Exceptions File
|
---|
| 15 | S RAEXFIL=79.3
|
---|
| 16 | ;
|
---|
| 17 | ; Date and Time of HL7 Transaction
|
---|
| 18 | S HLRADT=$E($P($G(^TMP("RARPT-HL7",$J,1)),"|",7),1,14)
|
---|
| 19 | S X=HLRADT,RADT=$$FMDATE^HLFNC(X)
|
---|
| 20 | ;
|
---|
| 21 | ; Radiology Patient Number
|
---|
| 22 | S RAPT=$G(^TMP("RARPT-REC",$J,RASUB,"RADFN"))
|
---|
| 23 | S RAPT="`"_RAPT
|
---|
| 24 | ;
|
---|
| 25 | ; Radiology Case Number
|
---|
| 26 | S RALNGCS=$P($G(^TMP("RARPT-REC",$J,RASUB,"RALONGCN")),"-",2)
|
---|
| 27 | ;
|
---|
| 28 | ; Error (Exception) Text
|
---|
| 29 | S RAERRX=RAERR
|
---|
| 30 | ;
|
---|
| 31 | ; Sending Application Name
|
---|
| 32 | S SFAC=$G(HL("SAN"))
|
---|
| 33 | ;
|
---|
| 34 | ; Name of Verifying Physician or Interpreting staff (COTS unit user)
|
---|
| 35 | S RAUSR=$G(^TMP("RARPT-REC",$J,RASUB,"RAVERF"))
|
---|
| 36 | I RAUSR]"" D
|
---|
| 37 | . D FIND^DIC(200,"",".01","AX",RAUSR,"","","","","RAOUT")
|
---|
| 38 | . Q:'$D(RAOUT("DILIST","ID",1,.01))
|
---|
| 39 | . S RAUSR=RAOUT("DILIST","ID",1,.01)
|
---|
| 40 | ;
|
---|
| 41 | ; IEN of entry in file 773 - Message Administration file.
|
---|
| 42 | S RAMSG=$P(^TMP("RARPT-HL7",$J,1),"|",10)
|
---|
| 43 | ;
|
---|
| 44 | ; Go File the exception
|
---|
| 45 | D RAERR
|
---|
| 46 | ;
|
---|
| 47 | ; Send mail message
|
---|
| 48 | D MAIL(SFAC,$G(HL("SAF")),RAERR,RALNGCS,$P(RAPT,"`",2),RADT,RAUSR)
|
---|
| 49 | ;
|
---|
| 50 | D EXIT
|
---|
| 51 | ;
|
---|
| 52 | Q
|
---|
| 53 | RAERR ; Build array and update Exceptions File.
|
---|
| 54 | S RAEX(0,RAEXFIL,"+1,",.01)=RADT
|
---|
| 55 | S RAEX(0,RAEXFIL,"+1,",.02)=SFAC
|
---|
| 56 | S RAEX(0,RAEXFIL,"+1,",1)=RAERRX
|
---|
| 57 | S:$G(RAPT)]"" RAEX(0,RAEXFIL,"+1,",.03)=RAPT
|
---|
| 58 | S:$G(RALNGCS)]"" RAEX(0,RAEXFIL,"+1,",.04)=RALNGCS
|
---|
| 59 | S:$G(RAUSR)]"" RAEX(0,RAEXFIL,"+1,",.06)=RAUSR
|
---|
| 60 | S:$G(RAMSG)]"" RAEX(0,RAEXFIL,"+1,",.05)=RAMSG
|
---|
| 61 | D UPDATE^DIE("E","RAEX(0)","")
|
---|
| 62 | Q
|
---|
| 63 | ;
|
---|
| 64 | MAIL(SAN,SAF,RAERR,RACN,RADFN,RADT,RAUSR) ; Send mail message with error text.
|
---|
| 65 | ;
|
---|
| 66 | ; INPUT PARAMETERS:
|
---|
| 67 | ; SAN = HL7 Sending Application (Required)
|
---|
| 68 | ; SAF = Sending Facility Name
|
---|
| 69 | ; RAERR = Error Message to display (Required)
|
---|
| 70 | ; RACN = Radiology Case Number
|
---|
| 71 | ; RADFN = Rad Patient File (#70) IEN
|
---|
| 72 | ; RADT = Date & Time of HL7 message (FileMan format)
|
---|
| 73 | ; RAUSR = Name of Verifying Physician
|
---|
| 74 | ;
|
---|
| 75 | N RAERTXT,RAMGP,XMY,XMDUZ,XMSUB,Y
|
---|
| 76 | ;
|
---|
| 77 | S RAMGP=$P($$GETAPP^HLCS2(SAN),"^",1) ; Get mail group
|
---|
| 78 | Q:RAMGP=""
|
---|
| 79 | ;
|
---|
| 80 | S RAPT=$P($G(^DPT(+RADFN,0)),"^")
|
---|
| 81 | S:RAPT="" RAPT="UNKNOWN"
|
---|
| 82 | ;
|
---|
| 83 | S RACN=$S($G(RACN)]"":$G(RACN),1:"???")
|
---|
| 84 | S RAUSR=$S($G(RAUSR)]"":$G(RAUSR),1:"UNKOWN")
|
---|
| 85 | S Y=RADT D DD^%DT S RADT=$S(Y]"":Y,1:"UNKOWN DATE/TIME")
|
---|
| 86 | S SAF=$S($G(SAF)]"":$G(SAF),1:SAN)
|
---|
| 87 | ;
|
---|
| 88 | S XMDUZ="Rad HL7 Interface Processor"
|
---|
| 89 | ;
|
---|
| 90 | S XMSUB="HL7 message from "_SAF_" application rejected."
|
---|
| 91 | ;
|
---|
| 92 | S RAERTXT(1)="There was a problem processing an HL7 message sent by "
|
---|
| 93 | S RAERTXT(2)=SAF_" on "_RADT_"."
|
---|
| 94 | S RAERTXT(3)=""
|
---|
| 95 | S RAERTXT(4)="The report entered on Case #"_RACN_" for "_RAPT
|
---|
| 96 | S RAERTXT(5)="was rejected by Radiology/Nuclear Medicine."
|
---|
| 97 | S RAERTXT(6)=""
|
---|
| 98 | S RAERTXT(7)="The reason given was:"
|
---|
| 99 | S RAERTXT(8)=RAERR
|
---|
| 100 | S RAERTXT(9)=""
|
---|
| 101 | S RAERTXT(10)="( This message has been sent to G."_RAMGP
|
---|
| 102 | S RAERTXT(11)=" and to the verifying physician, "_RAUSR_" )"
|
---|
| 103 | S XMTEXT="RAERTXT("
|
---|
| 104 | ;
|
---|
| 105 | S:$O(^XMB(3.8,"B",RAMGP,0)) XMY("G."_RAMGP)="" ; send to group
|
---|
| 106 | S:$G(RAUSR)]"" XMY(RAUSR)="" ; send to dictating doctor
|
---|
| 107 | ;
|
---|
| 108 | D ^XMD
|
---|
| 109 | ;
|
---|
| 110 | Q
|
---|
| 111 | EXIT ; Kill variables and return to bridge routine..
|
---|
| 112 | K RAEX,RADT,RAERRX,RAPT,SFAC,RAEXFIL,RALNGCS,RAUSR,RAMSG,X,Y
|
---|
| 113 | Q
|
---|