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
|
---|