| [613] | 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
 | 
|---|