| 1 | FBAAV3 ;AISC/GRR-CREATE & ELECTRONICALLY TRANSMIT TRANSACTIONS FOR TRAVEL PAYMENTS ;2/8/2005 | 
|---|
| 2 | ;;3.5;FEE BASIS;**3,89**;JAN 30, 1995 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | DETT ; process a travel batch | 
|---|
| 5 | S FBTXT=0 | 
|---|
| 6 | F K=0:0 S K=$O(^FBAAC("AD",J,K)) Q:K'>0  F L=0:0 S L=$O(^FBAAC("AD",J,K,L)) Q:L'>0  S Y(0)=$G(^FBAAC(K,3,L,0)) I Y(0)]"",+$P(Y(0),U,3) D | 
|---|
| 7 | .S FBPICN=K_U_L | 
|---|
| 8 | .I 'FBTXT S FBTXT=1 D NEWMSG^FBAAV01,STORE^FBAAV01,UPD^FBAAV0 | 
|---|
| 9 | .D GOT | 
|---|
| 10 | D:FBTXT XMIT^FBAAV01 Q | 
|---|
| 11 | GOT ; process a travel line item | 
|---|
| 12 | N DFN,FBPNAMX | 
|---|
| 13 | S FBTD=$$AUSDT($P(Y(0),U)) | 
|---|
| 14 | S FBAP=$$AUSAMT($P(Y(0),"^",3),8) | 
|---|
| 15 | S DFN=K | 
|---|
| 16 | Q:'DFN | 
|---|
| 17 | Q:'$D(^DPT(DFN,0)) | 
|---|
| 18 | ; Note: Prior to the following line Y(0) = 0 node of subfile #162.04 | 
|---|
| 19 | ;       After the line, Y(0) will = 0 node of file #2 | 
|---|
| 20 | S Y(0)=^DPT(DFN,0) | 
|---|
| 21 | D PAT^FBAAUTL2 | 
|---|
| 22 | S FBPNAMX=$$HL7NAME^FBAAV4(DFN) ; formatted patient name | 
|---|
| 23 | S FBSTR="T"_FBAASN_FBSSN_"T"_FBPNAMX_FBAP_FBAAON_FBTD_"0"_$E(PAD,1,8) | 
|---|
| 24 | S FBSTR=FBSTR_$$PADZ^FBAAV01(FBPICN,30)_FBTD_"$" | 
|---|
| 25 | D STORE^FBAAV01 | 
|---|
| 26 | K FBPICN | 
|---|
| 27 | Q | 
|---|
| 28 | ; | 
|---|
| 29 | AUSDT(FBDT) ;called to format date from VA FileMan internal to YYYYMMDD | 
|---|
| 30 | ; if input date is blank or invalid, eight spaces will be returned | 
|---|
| 31 | ; | 
|---|
| 32 | N FBRET | 
|---|
| 33 | S:FBDT FBRET=$$FMTHL7^XLFDT($P(FBDT,".")) | 
|---|
| 34 | S:$G(FBRET)=""!($G(FBRET)<0) FBRET="        " | 
|---|
| 35 | Q FBRET | 
|---|
| 36 | ; | 
|---|
| 37 | AUSAMT(FBAMT,FBL,FBS) ; called to format signed dollar amount for Austin | 
|---|
| 38 | ; input | 
|---|
| 39 | ;   FBAMT - dollar amount | 
|---|
| 40 | ;   FBL   - (optional) length of return sting | 
|---|
| 41 | ;   FBS   - (optional) =true(1) if return value could be negative (-) | 
|---|
| 42 | ;           default is false (0) | 
|---|
| 43 | ; result | 
|---|
| 44 | ;   string value, right justified, 0 padded, decimal point removed, | 
|---|
| 45 | ;   with rightmost 2 numeric characters the cents | 
|---|
| 46 | ;   if FBS true then rightmost character indicate the sign (' ' or '-') | 
|---|
| 47 | ;   example with FBS false: 12.41 with length 8 would return '00001241' | 
|---|
| 48 | ;   example with FBS true:  12.41 with length 9 would return '00001241 ' | 
|---|
| 49 | ;   example with FBS true: -12.41 with length 9 would return '00001241-' | 
|---|
| 50 | ; | 
|---|
| 51 | N FBRET | 
|---|
| 52 | ; | 
|---|
| 53 | ; use absolute value | 
|---|
| 54 | S FBRET=$S(FBAMT<0:-FBAMT,1:FBAMT) | 
|---|
| 55 | ; | 
|---|
| 56 | ; format with 2 decimals places | 
|---|
| 57 | S FBRET=$FN(FBRET,"",2) | 
|---|
| 58 | ; | 
|---|
| 59 | ; remove the decimal point | 
|---|
| 60 | S FBRET=$TR(FBRET,".","") | 
|---|
| 61 | ; | 
|---|
| 62 | ; add the suffix denoting the sign when applicable (when FBS true) | 
|---|
| 63 | S FBRET=FBRET_$S('$G(FBS):"",FBAMT<0:"-",1:" ") | 
|---|
| 64 | ; | 
|---|
| 65 | ; right justify and 0 pad | 
|---|
| 66 | S FBRET=$$RJ^XLFSTR(FBRET,$G(FBL),"0") | 
|---|
| 67 | ; | 
|---|
| 68 | ; return result | 
|---|
| 69 | Q FBRET | 
|---|
| 70 | ; | 
|---|
| 71 | ;FBAAV3 | 
|---|