VAFHLA04 ;ALB/JLU;CREATES THE REGISTRATION MESSAGE; ;;5.3;Registration;**91,179**;Jun 06, 1996 ;hl7v1.6 EN(VAFHDFN,VAFHDT) ;THE MAIN ENTRY POINT FOR THE A04 MESSAGE TYPE ; S ERR="^TMP(""VAFHERR"",$J)" K ^TMP("VAFHERR",$J) I '$D(VAFHDFN)!('$D(VAFHDT)) S @ERR@(1)="-1^Can not build the A04 message. Parameters not defined correctly." D EBULL^VAFHUTL2("","","",ERR) G EX I VAFHDFN=""!(VAFHDT="") S @ERR@(1)="-1^Can not build the A04 message. Parameters are null." D EBULL^VAFHUTL2(VAFHDFN,VAFHDT,"",ERR) G EX ; S VAFHPID="1,2,4,6,7,8,11,12,13,14,16,19" S VAFHZPD="2,3,4,5,6,7,8,9,10,11,12,13,14,15" K HLERR S CTR=1,HLSDT="VAFHREG" K HL D INIT^HLFNC2("VAFH A04",.HL) I $D(HL)#2 G EX ;. S @ERR@(1)="-1^Can not build the A04 message. Failed during HLFNC2" ;. S @ERR@(2)=HL ;. D EBULL^VAFHUTL2(VAFHDFN,VAFHDT,"",ERR) S HLMTN="ADT"_$E(HL("ECH"))_"A04" S VAFHGBL="^TMP(""HLS"",$J)" K ^TMP("HLS",$J) S SING="" ;SINGLE MESSAGES (NOT BATCH) ; BAT ;THIS ENTRY POINT IS TO BE CONSIDERED IF A BATCH PROCESS IS NEEDED. ; S VAFHPTR=VAFHDFN_";DPT(" S VAFHPIV=$$PIVNW^VAFHPIVT(VAFHDFN,VAFHDT,3,VAFHPTR) I VAFHPIV<0 S @ERR@(1)="-1^Can not build the A04 message. Failed to get a PIVOT entry." D EBULL^VAFHUTL2(VAFHDFN,VAFHDT,"",ERR) G EX S EVN=$$EVN^VAFHLEVN("A04","05") I +EVN=-1 S @ERR@(1)=EVN D EBULL^VAFHUTL2(VAFHDFN,VAFHDT,+VAFHPIV,ERR) G EX S @VAFHGBL@(CTR)=EVN S CTR=CTR+1,@VAFHGBL@(CTR)=$$EN^VAFHLPID(VAFHDFN,VAFHPID) S CTR=CTR+1,@VAFHGBL@(CTR)=$$EN^VAFHLZPD(VAFHDFN,VAFHZPD) S PV1=$$OPV1^VAFHCPV(VAFHDFN,+VAFHPIV,VAFHDT,VAFHPTR,50) I +PV1=-1 S @ERR@(1)=PV1 D EBULL^VAFHUTL2(VAFHDFN,VAFHDT,+VAFHPIV,ERR) G EX ;;;I $P(PV1,HLFS,3)'="O" S $P(PV1,HLFS,3)="T" ;;;I $P(PV1,HLFS,3)]"",$P(PV1,HLFS,3)'="O" S $P(PV1,HLFS,3)="T" S $P(PV1,HLFS,3)="T" S CTR=CTR+1,@VAFHGBL@(CTR)=PV1 I $D(SING) DO .D GENERATE^HLMA("VAFH A04","GM",1,.HLRST) ; EX ; D KILL^HLTRANS K VAFHGBL,VAFHDT,VAFHPTR,VAFHPID,VAFHZPD,PV1,EVN,CTR,SING,ERR K ^TMP("HLS",$J),^TMP("VAFHERR",$J) Q