[613] | 1 | VAFHLZBT ;ALB/KCL - CREATE HL7 BENEFICIARY TRAVEL (ZBT) SEGMENT ; 12-SEPTEMBER-1997
|
---|
| 2 | ;;5.3;Registration;**122**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | ;
|
---|
| 5 | ; This generic extrinsic function is designed to return the HL7
|
---|
| 6 | ; Beneficiary Travel (ZBT) segment. This segment contains VA-
|
---|
| 7 | ; specific Beneficiary Travel data for a selected patient.
|
---|
| 8 | ;
|
---|
| 9 | ;
|
---|
| 10 | EN(VAFDATE,VAFSTR,VAFHLQ,VAFHLFS) ; --
|
---|
| 11 | ; Entry point for creating HL7 ZBT segment
|
---|
| 12 | ;
|
---|
| 13 | ; Input(s):
|
---|
| 14 | ; VAFDATE - internal entry number of Bene Travel Claim (#392) file
|
---|
| 15 | ; VAFSTR - (optional) string of fields requested, separated by
|
---|
| 16 | ; commas. If not passed, return all data fields.
|
---|
| 17 | ; VAFHLQ - (optional) HL7 null variable.
|
---|
| 18 | ; VAFHLFS - (optional) HL7 field separator.
|
---|
| 19 | ;
|
---|
| 20 | ; Output:
|
---|
| 21 | ; String containing the desired components of the HL7 ZBT segment
|
---|
| 22 | ;
|
---|
| 23 | ;
|
---|
| 24 | N VAFANOD,VAFCERT,VAFCLM,VAFMTS,VAFY,X,Y
|
---|
| 25 | ;
|
---|
| 26 | ; if VAFHLQ or VAFHLFS not passed, use default HL7 variables
|
---|
| 27 | S VAFHLQ=$S($D(VAFHLQ):VAFHLQ,1:$G(HLQ)),VAFHLFS=$S($D(VAFHLFS):VAFHLFS,1:$G(HLFS))
|
---|
| 28 | ;
|
---|
| 29 | ; if VAFDATE not passed, exit
|
---|
| 30 | I '$G(VAFDATE) S VAFY=1 G ENQ
|
---|
| 31 | ;
|
---|
| 32 | ; zero node from BENE TRAVEL CLAIM (#392) file
|
---|
| 33 | S VAFCLM=$G(^DGBT(392,VAFDATE,0))
|
---|
| 34 | ; convert 5th piece to pointer value
|
---|
| 35 | S Y=0,X=$P(VAFCLM,"^",5) I X'="" D ^%DT S X=9999999-Y
|
---|
| 36 | ;
|
---|
| 37 | ; zero & 'A' node from BENE TRAVEL CERT. (#392.2) file
|
---|
| 38 | S VAFCERT=$G(^DGBT(392.2,+$O(^DGBT(392.2,"C",+$P(VAFCLM,"^",2),+X)),0)),VAFANOD=$G(^("A"))
|
---|
| 39 | I VAFCERT="" S VAFCERT=$G(^DGBT(392.2,+$O(^DGBT(392.2,"C",+$P(VAFCLM,"^",2),0)),0)),VAFANOD=$G(^("A"))
|
---|
| 40 | ;
|
---|
| 41 | ; if no certificate, exit
|
---|
| 42 | I VAFCERT="" S VAFY=1 G ENQ
|
---|
| 43 | ;
|
---|
| 44 | ; if VAFSTR not passed, return all data fields
|
---|
| 45 | I $G(VAFSTR)']"" S VAFSTR="2,3,4,5,6,7"
|
---|
| 46 | S $P(VAFY,VAFHLFS,8)="",VAFSTR=","_VAFSTR_","
|
---|
| 47 | ;
|
---|
| 48 | S $P(VAFY,VAFHLFS,1)=1 ; Set Id - always 1
|
---|
| 49 | I VAFSTR[",2," S $P(VAFY,VAFHLFS,2)=$S($P(VAFCERT,"^",1)]"":$$HLDATE^HLFNC($P(VAFCERT,"^",1)),1:VAFHLQ) ; Date Certified
|
---|
| 50 | I VAFSTR[",3," S X=$$YN^VAFHLFNC($P(VAFCERT,"^",3)),$P(VAFY,VAFHLFS,3)=$S(X]"":X,1:VAFHLQ) ; Eligible
|
---|
| 51 | I VAFSTR[",4," S $P(VAFY,VAFHLFS,4)=$S($P(VAFCERT,"^",4)]"":$P(VAFCERT,"^",4),1:VAFHLQ) ; Amount Certified (amount of income reported)
|
---|
| 52 | ;
|
---|
| 53 | I VAFSTR[",5," D
|
---|
| 54 | .I $P(VAFANOD,"^",8)]"" D
|
---|
| 55 | ..S VAFMTS=$P(VAFANOD,"^",8)
|
---|
| 56 | ..I $L(VAFMTS)>1 S VAFMTS=$TR(VAFMTS," ","")
|
---|
| 57 | ..I $L(VAFMTS)<1 S VAFMTST="" Q
|
---|
| 58 | ..S VAFMTST=+$O(^DG(408.32,"C",VAFMTS,0)),VAFMTST=$G(^DG(408.32,+VAFMTST,0)),VAFMTST=$P(VAFMTST,"^",2)
|
---|
| 59 | .S $P(VAFY,VAFHLFS,5)=$S($G(VAFMTST)]"":VAFMTST,1:VAFHLQ) ; Means Test Status
|
---|
| 60 | ;
|
---|
| 61 | I VAFSTR[",6," D
|
---|
| 62 | .I $P(VAFANOD,"^",9)]"" D
|
---|
| 63 | ..S VAFELIG=+$O(^DIC(8,"B",$P(VAFANOD,"^",9),0)),VAFELIG=$P($G(^DIC(8,VAFELIG,0)),"^",9)
|
---|
| 64 | .S $P(VAFY,VAFHLFS,6)=$S(+$G(VAFELIG)>0:VAFELIG,1:VAFHLQ) ; Primary Eligibility Code
|
---|
| 65 | ;
|
---|
| 66 | I VAFSTR[",7," S $P(VAFY,VAFHLFS,7)=$S($P(VAFCLM,"^",1)]"":$$HLDATE^HLFNC($P(VAFCLM,"^",1)),1:VAFHLQ) ; Claim Date
|
---|
| 67 | ;
|
---|
| 68 | ENQ Q "ZBT"_VAFHLFS_$G(VAFY)
|
---|