| [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 | 
|---|