| 1 | FBPAID1 ;AISC - SERVER ROUTINE TO UPDATE PAYMENTS CON'T ;10/17/2000 | 
|---|
| 2 | ;;3.5;FEE BASIS;**19**;JAN 30, 1995 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | PARSE ;set-up variables for payment record called from FBPAID | 
|---|
| 5 | ;  FBPROG = 3 for Outpatient (file 162) | 
|---|
| 6 | ;         = T for Travel (file 162) | 
|---|
| 7 | ;         = 5 for Pharmacy (file 162.1) | 
|---|
| 8 | ;         = 9 for Inpatient (file 162.5) | 
|---|
| 9 | ;         = $E(XMRG,7)      fee program and effected file | 
|---|
| 10 | ;  FBACT  = $E(XMRG,8)      type of activity | 
|---|
| 11 | ;  FBIEN(x)=$E(XMRG,9,38)   IEN for payment record to update | 
|---|
| 12 | ;  FBCKNUM= $E(XMRG,39,46)  check number | 
|---|
| 13 | ;  FBCKDT = $E(XMRG,47,52)  check date | 
|---|
| 14 | ;  FBINAMT= $E(XMRG,53,60)  interest amount | 
|---|
| 15 | ;  FBXDT  = $E(XMRG,61,66)  cancel date | 
|---|
| 16 | ;  FBRCOD = $E(XMRG,67)     reason code | 
|---|
| 17 | ;  FBXCOD = $E(XMRG,68)     cancel code | 
|---|
| 18 | ;  FBDAMT = $E(XMRG,69,76)  disbursed amount | 
|---|
| 19 | ;  FBAMT  = Amount paid out of payment record | 
|---|
| 20 | Q:$G(FBERR) | 
|---|
| 21 | S FBPROG=$E(XMRG,7) I $S(FBPROG=3:0,FBPROG=5:0,FBPROG=9:0,FBPROG="T":0,1:1) S FBERR=1 Q | 
|---|
| 22 | S FBACT=$E(XMRG,8) I $S(FBACT="C":0,FBACT="B":0,FBACT="X":0,1:1) S FBERR=1 Q | 
|---|
| 23 | S FBIEN=$E(XMRG,9,38) D  Q:$G(FBERR) | 
|---|
| 24 | . I FBPROG=3 D  Q:$G(FBERR) | 
|---|
| 25 | ..S FBIEN(3)=+$P(FBIEN,U),FBIEN(2)=+$P(FBIEN,U,2),FBIEN(1)=+$P(FBIEN,U,3),FBIEN=+$P(FBIEN,U,4) | 
|---|
| 26 | ..I '$D(^FBAAC(FBIEN(3),1,FBIEN(2),1,FBIEN(1),1,FBIEN,0)) D CHKMOVE | 
|---|
| 27 | ..I '$D(^FBAAC(FBIEN(3),1,FBIEN(2),1,FBIEN(1),1,FBIEN,0)) S FBERR=1,^TMP("FBERR",$J,3,I)="" | 
|---|
| 28 | . ; | 
|---|
| 29 | . I FBPROG=5 D  Q:$G(FBERR) | 
|---|
| 30 | ..S FBIEN(1)=+$P(FBIEN,U),FBIEN=+$P(FBIEN,U,2) | 
|---|
| 31 | ..I '$D(^FBAA(162.1,FBIEN(1),"RX",FBIEN,0)) S FBERR=1,^TMP("FBERR",$J,3,I)="" | 
|---|
| 32 | . ; | 
|---|
| 33 | . I FBPROG=9 D  Q:$G(FBERR) | 
|---|
| 34 | ..S FBIEN=+FBIEN I '$D(^FBAAI(FBIEN,0)) S FBERR=1,^TMP("FBERR",$J,3,I)="" | 
|---|
| 35 | . ; | 
|---|
| 36 | . I FBPROG="T" D  Q:$G(FBERR) | 
|---|
| 37 | ..S FBIEN(1)=+$P(FBIEN,U),FBIEN=+$P(FBIEN,U,2) | 
|---|
| 38 | ..I '$D(^FBAAC(FBIEN(1),3,FBIEN,0)) D CHKMOVE | 
|---|
| 39 | ..I '$D(^FBAAC(FBIEN(1),3,FBIEN,0)) S FBERR=1,^TMP("FBERR",$J,3,I)="" | 
|---|
| 40 | S FBCKNUM=$$EXTRL^FBMRASVR($E(XMRG,39,46),1),FBCKDT=$$DATE^FBPAID1($E(XMRG,47,52)) | 
|---|
| 41 | S FBINAMT=$S(+$E(XMRG,53,60):+$E(XMRG,53,58)_"."_$E(XMRG,59,60),1:0) | 
|---|
| 42 | S FBINAMT=$S(FBINAMT=0:0,$P(FBINAMT,".",2)'>0:$P(FBINAMT,"."),1:+FBINAMT) | 
|---|
| 43 | S FBXDT=$$DATE^FBPAID1($E(XMRG,61,66)) | 
|---|
| 44 | S FBRCOD=$E(XMRG,67),FBXCOD=$E(XMRG,68) | 
|---|
| 45 | S FBRCOD=$O(^FB(162.95,"C",FBRCOD,0)) | 
|---|
| 46 | S FBDAMT=$S(+$E(XMRG,69,76):+$E(XMRG,69,74)_"."_$E(XMRG,75,76),1:0) | 
|---|
| 47 | S FBDAMT=$S(FBDAMT=0:0,$P(FBDAMT,".",2)'>0:$P(FBDAMT,"."),1:+FBDAMT) | 
|---|
| 48 | Q | 
|---|
| 49 | ; | 
|---|
| 50 | BUL ;create server bulletin message | 
|---|
| 51 | S ^TMP("FBPAID",$J,0)=FBMCNT | 
|---|
| 52 | Q | 
|---|
| 53 | DATE(X) ;pass in 'X'=date in yymmdd format and return date in | 
|---|
| 54 | ;fileman format. | 
|---|
| 55 | N Y I '$G(X) Q "" | 
|---|
| 56 | S %DT="",X=$E(X,3,7)_$E(X,1,2) D ^%DT K %DT | 
|---|
| 57 | Q $S(Y=-1:"",1:Y) | 
|---|
| 58 | CHKMOVE ;check if payment moved | 
|---|
| 59 | ; input | 
|---|
| 60 | ;   FBPROG - fee program | 
|---|
| 61 | ;   FBIEN - ien of payment (from austin) | 
|---|
| 62 | ;   FBIEN() - ien(s) of higher level entries (1 for next higher, etc.) | 
|---|
| 63 | ; output | 
|---|
| 64 | ;   FBIEN   may be changed | 
|---|
| 65 | ;   FBIEN() may be changed | 
|---|
| 66 | N FBDA,FBFILE,FBNIENS,FBOIENS | 
|---|
| 67 | S FBFILE=$S(FBPROG=3:162.03,FBPROG="T":162.04,1:"") | 
|---|
| 68 | Q:FBFILE="" | 
|---|
| 69 | I FBPROG=3 D | 
|---|
| 70 | . S FBOIENS=FBIEN_","_FBIEN(1)_","_FBIEN(2)_","_FBIEN(3)_"," | 
|---|
| 71 | . S FBDA=$O(^FBAA(161.45,"C",FBFILE,FBOIENS,0)) | 
|---|
| 72 | . Q:'FBDA  ; not moved | 
|---|
| 73 | . S FBNIENS=$P($G(^FBAA(161.45,FBDA,0)),U,3) | 
|---|
| 74 | . Q:FBNIENS=""  ; don't know new iens | 
|---|
| 75 | . S FBIEN=$P(FBNIENS,",",1) | 
|---|
| 76 | . S FBIEN(1)=$P(FBNIENS,",",2) | 
|---|
| 77 | . S FBIEN(2)=$P(FBNIENS,",",3) | 
|---|
| 78 | . S FBIEN(3)=$P(FBNIENS,",",4) | 
|---|
| 79 | I FBPROG="T" D | 
|---|
| 80 | . S FBOIENS=FBIEN_","_FBIEN(1)_"," | 
|---|
| 81 | . S FBDA=$O(^FBAA(161.45,"C",FBFILE,FBOIENS,0)) | 
|---|
| 82 | . Q:'FBDA  ; not moved | 
|---|
| 83 | . S FBNIENS=$P($G(^FBAA(161.45,FBDA,0)),U,3) | 
|---|
| 84 | . Q:FBNIENS=""  ; don't known new iens | 
|---|
| 85 | . S FBIEN=$P(FBNIENS,",",1) | 
|---|
| 86 | . S FBIEN(1)=$P(FBNIENS,",",2) | 
|---|
| 87 | Q | 
|---|