VAFHLZTA ;ALB/ESD,TDM - Creation of ZTA segment ; 9/22/05 2:04pm
 ;;5.3;Registration;**68,653**;Aug 13, 1993;Build 2
 ;
 ; This generic extrinsic function returns the HL7 VA-Specific Temporary Address (ZTA) segment.
 ;
 ;
EN(DFN,VAFSTR,VAFNUM) ; Returns HL7 ZTA segment containing temporary address
 ;                 data.
 ;
 ;  Input - DFN as internal entry number of the PATIENT file
 ;          VAFSTR as string of fields requested separated by commas.
 ;          VAFNUM as SetId - set to 1.
 ;
 ; Output - string of components forming the ZTA segment.
 ;
 ; ******** Also assumes all HL7 variables returned from ********
 ;          INIT^HLTRANS are defined.
 ;
 ;
 N VAFNODE,VAFY,X,X1
 I '$G(DFN)!($G(VAFSTR)']"") G QUIT
 S VAFNODE=$G(^DPT(DFN,.121))
 S $P(VAFY,HLFS,7)="",VAFSTR=","_VAFSTR_","
 S $P(VAFY,HLFS,1)=1 ; SetId equal to 1
 I VAFSTR[",2," S X=$P(VAFNODE,"^",9),$P(VAFY,HLFS,2)=$$YN^VAFHLFNC(X) ; Temporary Address Enter/Edit?
 I VAFSTR[",3," S X=$$HLDATE^HLFNC($P(VAFNODE,"^",7)),$P(VAFY,HLFS,3)=$S(X]"":X,1:HLQ) ; Temporary Address Start Date
 I VAFSTR[",4," S X=$$HLDATE^HLFNC($P(VAFNODE,"^",8)),$P(VAFY,HLFS,4)=$S(X]"":X,1:HLQ) ; Temporary Address End Date
 I VAFSTR[",5,"!(VAFSTR[",6,") D
 . S X1=$$ADDR^VAFHLFNC($P(VAFNODE,"^",1,5)_"^"_$P(VAFNODE,"^",12),$P(VAFNODE,"^",11))
 . I VAFSTR[",5," S $P(VAFY,HLFS,5)=$S($P(X1,HLFS,1)]"":$P(X1,HLFS,1),1:HLQ) ; Temporary Address
 . I VAFSTR[",6," S $P(VAFY,HLFS,6)=$S($P(X1,HLFS,2)]"":$P(X1,HLFS,2),1:HLQ) ; Temporary Address County
 I VAFSTR[",7," S X=$$HLPHONE^HLFNC($P(VAFNODE,"^",10)),$P(VAFY,HLFS,7)=$S(X]"":X,1:HLQ) ; Temporary Address Phone
 I VAFSTR[",8," S X=$$HLDATE^HLFNC($P(VAFNODE,"^",13)),$P(VAFY,HLFS,8)=$S(X]"":X,1:HLQ) ; Temp Addr Last Updated
 I VAFSTR[",9," D   ; Temp Addr Site of Change
 . S X=$P(VAFNODE,"^",14),X=$$GET1^DIQ(4,(+X)_",",99)
 . S $P(VAFY,HLFS,9)=$S(X]"":X,1:HLQ)
QUIT Q "ZTA"_HLFS_$G(VAFY)
