[613] | 1 | VDEFREQ1 ;INTEGIC/AM & BPOIFO/JG - VDEF Request Processor 2; 21 Dec 2004 11:24 AM
|
---|
| 2 | ;;1.00;VDEF;;Dec 17, 2004
|
---|
| 3 | ;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | ; IA's: #4316 - Lookup to file #869.3
|
---|
| 6 | ;
|
---|
| 7 | Q ; No bozos
|
---|
| 8 | ;
|
---|
| 9 | ; Generate HL7 message
|
---|
| 10 | GENERATE(NVPIEN,HLA,HLCS,IEN577,SUBT,DSTPROT,DSTTYP,ZTSTOP,VDEFHL,DYNAMIC) ;
|
---|
| 11 | N CNT,ARYTYP,HLL,II,VDEFOPT,VDEFRES,EXTPRG
|
---|
| 12 | ;
|
---|
| 13 | ; Build the HLL("LINKS") array for VistA HL7 Dynamic Addressing from
|
---|
| 14 | ; the DYNAMIC array
|
---|
| 15 | F II=0:0 S II=$O(DYNAMIC(II)) Q:'II D
|
---|
| 16 | . N SUB S SUB=$G(DYNAMIC(II,0)) I SUB="" Q
|
---|
| 17 | . S HLL("LINKS",SUB)=$G(DYNAMIC(II,1))
|
---|
| 18 | ;
|
---|
| 19 | ; Set up control part of MSH for VistA HL7
|
---|
| 20 | S VDEFOPT("CONTPTR")=HLCS_HLCS_HLCS_SUBT
|
---|
| 21 | ;
|
---|
| 22 | ; Check to see if message extraction is active for this event
|
---|
| 23 | S EXTPRG=$$GET1^DIQ(577,IEN577_",",.3) S:EXTPRG="" EXTPRG="INACTIVE"
|
---|
| 24 | I EXTPRG="INACTIVE" D ERR^VDEFREQ("VDEF Event is not active") S ZTSTOP=1 Q
|
---|
| 25 | ;
|
---|
| 26 | ; Call the extraction program as a function and quit if error returned (ZTSTOP)
|
---|
| 27 | S ZTSTOP=0,@("ARYTYP=$$EN^"_EXTPRG_"(IEN577,NVPIEN,DSTTYP,.HLA,VDEFOPT(""CONTPTR""))")
|
---|
| 28 | K OUT Q:ZTSTOP'=0
|
---|
| 29 | ;
|
---|
| 30 | ; Send to VistA HL7, stop processing if error from HL7
|
---|
| 31 | D GENERATE^HLMA(DSTPROT,$P(ARYTYP,U,1),1,.VDEFRES)
|
---|
| 32 | I $P($G(VDEFRES),U,2) D ERR^VDEFREQ("VistA HL7 Error: "_$P(VDEFRES,U,3)) S ZTSTOP=2 Q
|
---|
| 33 | ;
|
---|
| 34 | ; Update date/time message created
|
---|
| 35 | D NOW^%DTC S FDA(1,579.31,IENS,.1)=% D FILE^DIE("","FDA(1)","ERR(1)") K FDA
|
---|
| 36 | I 'ZTSTOP,'$$S^%ZTLOAD(),$$GET1^DIQ(579.3,QIEN_",",.09,"I")'="S" Q
|
---|
| 37 | S ZTSTOP=1
|
---|
| 38 | Q
|
---|
| 39 | ;
|
---|
| 40 | ; Update statue of request
|
---|
| 41 | STATUS(IENS,STATUS) ;
|
---|
| 42 | ; If the status is to be changed to "P"rocessed, update related DTS
|
---|
| 43 | N FDA I STATUS="P" D NOW^%DTC S FDA(1,579.31,IENS,.13)=%
|
---|
| 44 | S FDA(1,579.31,IENS,.02)=STATUS D FILE^DIE("","FDA(1)","ERR(1)")
|
---|
| 45 | Q
|
---|