[613] | 1 | FBRXUTL ;WIOFO/SAB-FEE BASIS PHARMACY UTILITY ;4/8/2004
|
---|
| 2 | ;;3.5;FEE BASIS;**78**;JAN 30, 1995
|
---|
| 3 | Q
|
---|
| 4 | ;
|
---|
| 5 | RXSUM(FBDT,FBSN) ; fee prescription costs extrinsic function
|
---|
| 6 | ; Integration Agreement #4395
|
---|
| 7 | ; This API returns the count and cost of prescriptions paid
|
---|
| 8 | ; through the fee software for a specified date.
|
---|
| 9 | ;
|
---|
| 10 | ; Usage: S X=$$FEERX(FBDT,FBSN)
|
---|
| 11 | ; input
|
---|
| 12 | ; FBDT - date, required, VA FileMan internal format
|
---|
| 13 | ; Used to select prescriptions based on Date Certified for
|
---|
| 14 | ; Payment.
|
---|
| 15 | ; FBSN - station number, required, 3 digit value
|
---|
| 16 | ; Used to select prescriptions based on the VAMC that approved
|
---|
| 17 | ; payment when querying the national Fee Replacement system.
|
---|
| 18 | ; Prescriptions will be included when the approving station
|
---|
| 19 | ; number Starts With this 3 digit value so satellite
|
---|
| 20 | ; station 688A1 would be included when FBSN = 688.
|
---|
| 21 | ; This parameter will not be evaluated until the API is
|
---|
| 22 | ; modified to obtain data from the Fee Replacement system.
|
---|
| 23 | ; Return value is a string
|
---|
| 24 | ; string value = count ^ total amount paid
|
---|
| 25 | ; where
|
---|
| 26 | ; count = the number of prescriptions for the date and station
|
---|
| 27 | ; total amount paid = sum of the Amount Paid for the prescriptions
|
---|
| 28 | ; in dollars and cents
|
---|
| 29 | ; OR
|
---|
| 30 | ; X = -1 ^ exception number ^ exception text
|
---|
| 31 | ;
|
---|
| 32 | ; Examples S var=$$FEERX^FBZSAB9(DT,688) could return values like
|
---|
| 33 | ; 8^10.54
|
---|
| 34 | ; 0^0.00
|
---|
| 35 | ; -1^110^Database Unavailable
|
---|
| 36 | ;
|
---|
| 37 | ; List of Exceptions
|
---|
| 38 | ; 101^Valid date not specified.
|
---|
| 39 | ; 102^Valid station number not specified.
|
---|
| 40 | ; 110^Database Unavailable.
|
---|
| 41 | ; The database unavailable exception will not occur until this API
|
---|
| 42 | ; is modified to obtain data from the fee replacement system.
|
---|
| 43 | ; However, calling applications should code to handle this exception
|
---|
| 44 | ; now so appropriate action will be taken once the data is moved from
|
---|
| 45 | ; the local VistA system to the remote fee replacement system.
|
---|
| 46 | ;
|
---|
| 47 | N FBDFN,FBC,FBDA,FBDA1,FBRET,FBTAMT
|
---|
| 48 | S FBDT=$G(FBDT)
|
---|
| 49 | S FBSN=$G(FBSN)
|
---|
| 50 | S FBRET=""
|
---|
| 51 | ;
|
---|
| 52 | ; check for required input
|
---|
| 53 | I FBRET'<0 D
|
---|
| 54 | . I FBDT'?7N S FBRET="-1^101^Valid date not specified." Q
|
---|
| 55 | . I $$FMTHL7^XLFDT(FBDT)<0 S FBRET="-1^101^Valid date not specified." Q
|
---|
| 56 | . I FBSN'?3N S FBRET="-1^102^Valid station number not specified." Q
|
---|
| 57 | . I $$IEN^XUAF4(FBSN)'>0 S FBRET="-1^102^Valid station number not specified." Q
|
---|
| 58 | ;
|
---|
| 59 | ; get count and total amount
|
---|
| 60 | I FBRET'<0 D
|
---|
| 61 | . S FBC=0 ; initialize count
|
---|
| 62 | . S FBTAMT=0 ; initialize total amount paid
|
---|
| 63 | . ;
|
---|
| 64 | . ; find prescriptions using File #162.1 "AA" cross-reference
|
---|
| 65 | . ; loop thru patient within date certified
|
---|
| 66 | . S FBDFN=""
|
---|
| 67 | . F S FBDFN=$O(^FBAA(162.1,"AA",FBDT,FBDFN)) Q:FBDFN="" D
|
---|
| 68 | . . ; loop thru invoice ien
|
---|
| 69 | . . S FBDA1=0
|
---|
| 70 | . . F S FBDA1=$O(^FBAA(162.1,"AA",FBDT,FBDFN,FBDA1)) Q:'FBDA1 D
|
---|
| 71 | . . . ; loop thru prescription ien
|
---|
| 72 | . . . S FBDA=0
|
---|
| 73 | . . . F S FBDA=$O(^FBAA(162.1,"AA",FBDT,FBDFN,FBDA1,FBDA)) Q:'FBDA D
|
---|
| 74 | . . . . ; add prescription to count and total amount paid
|
---|
| 75 | . . . . S FBC=FBC+1
|
---|
| 76 | . . . . S FBTAMT=FBTAMT+$P($G(^FBAA(162.1,FBDA1,"RX",FBDA,0)),U,16)
|
---|
| 77 | . ;
|
---|
| 78 | . S FBRET=FBC_U_$FN(FBTAMT,"",2)
|
---|
| 79 | ;
|
---|
| 80 | Q FBRET
|
---|
| 81 | ;
|
---|
| 82 | ;FBRXUTL
|
---|