1 | BPSOS03 ;BHAM ISC/FCS/DRS - 9002313.03 utilities ;06/01/2004
|
---|
2 | ;;1.0;E CLAIMS MGMT ENGINE;**1,5**;JUN 2004;Build 45
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | Q
|
---|
6 | ; General utilities for retrieval from 9002313.03, Claim Response
|
---|
7 | ; $$INSPAID is used by BPSOSQL
|
---|
8 | INSPAID(N) ;EP - from BPSOSQL - total amount paid by insurer
|
---|
9 | N RX,TOT,X S (TOT,RX)=0
|
---|
10 | F S RX=$O(^BPSR(N,1000,RX)) Q:'RX D
|
---|
11 | . ; Try Gross Amount Due, and if that's zero, Usual and Customary
|
---|
12 | . S X=$$INSPAID1(N,RX)
|
---|
13 | . S TOT=TOT+X
|
---|
14 | Q TOT
|
---|
15 | INSPAID1(N,RX) ;EP -
|
---|
16 | N X S X=$$509(N,RX) Q X
|
---|
17 | NETPAID1(N,RX) ; EP - computed field in 9002313.57 and 9002313.59
|
---|
18 | N X S X=$$509(N,RX) ; X = (#509) Total Amount Paid
|
---|
19 | N SUB S SUB=1 ; Do we need to subtract (#505) Patient Pay Amount?
|
---|
20 | N IEN02,INS,FMT S IEN02=$P(^BPSR(RESP,0),U)
|
---|
21 | I IEN02 D
|
---|
22 | . S INS=$P($G(^BPSC(IEN02,0)),U,2) Q:'INS ;IHS/SD/lwj 9/11/02
|
---|
23 | . S FMT=INS
|
---|
24 | . N X S X=$P(^BPSF(9002313.92,FMT,1),U,10)
|
---|
25 | . I X S SUB=0 ; Total paid means total paid by insurance
|
---|
26 | I SUB S X=X-$$505(N,RX)
|
---|
27 | I X<0,SUB D ; apparently this format is supposed to be excl.
|
---|
28 | . Q:'$G(FMT)
|
---|
29 | . S $P(^BPSF(9002313.92,FMT,1),U,10)=1
|
---|
30 | . S X=X+$$505(N,RX) ;*1.26*1*
|
---|
31 | Q X
|
---|
32 | REJTEXT(RESP,POS,ARR) ; EP - fills array (passed by ref)
|
---|
33 | K ARR
|
---|
34 | N A,I,X,R S (A,I)=0
|
---|
35 | F S A=$O(^BPSR(RESP,1000,POS,511,A)) Q:'A D
|
---|
36 | . S R=$P(^BPSR(RESP,1000,POS,511,A,0),U)
|
---|
37 | . Q:R=""
|
---|
38 | . N S S S=$O(^BPSF(9002313.93,"B",R,0))
|
---|
39 | . I S S X=$TR($G(^BPSF(9002313.93,S,0)),U,":")
|
---|
40 | . E S X=R_" unrecognized reject code"
|
---|
41 | . S I=I+1,ARR(I)=X
|
---|
42 | Q
|
---|
43 | MESSAGE(RESP,POS,N) ; EP - get additional message from response
|
---|
44 | I $G(N)=1 Q $P($G(^BPSR(RESP,1000,POS,504)),U)
|
---|
45 | I $G(N)=2 Q $P($G(^BPSR(RESP,1000,POS,526)),U)
|
---|
46 | Q $$MESSAGE(RESP,POS,1)_$$MESSAGE(RESP,POS,2)
|
---|
47 | DFF2EXT(X) Q $$DFF2EXT^BPSECFM(X)
|
---|
48 | 505(M,N) Q $$500(M,N,5) ; Patient Pay Amount
|
---|
49 | 506(M,N) Q $$500(M,N,6) ; Ingredient Cost Paid
|
---|
50 | 507(M,N) Q $$500(M,N,7) ; Contract Fee Paid
|
---|
51 | 508(M,N) Q $$500(M,N,8) ; Sales Tax Paid
|
---|
52 | 509(M,N) Q $$500(M,N,9) ; Total Amount Paid
|
---|
53 | 512(M,N) Q $$500(M,N,12) ; Accumulated Deductible Amount
|
---|
54 | 513(M,N) Q $$500(M,N,13) ; Remaining Deductible Amount
|
---|
55 | 514(M,N) Q $$500(M,N,14) ; Remaining Benefit Amount
|
---|
56 | 517(M,N) Q $$500(M,N,17) ; Amt Applied to Periodic Deduct
|
---|
57 | 518(M,N) Q $$500(M,N,18) ; Amount of Copay/CoInsurance
|
---|
58 | 519(M,N) Q $$500(M,N,19) ; Amt Attrib to Prod Selection
|
---|
59 | 520(M,N) Q $$500(M,N,20) ; Amt Exceed Per Benefit Max
|
---|
60 | 521(M,N) Q $$500(M,N,21) ; Incentive Fee Paid
|
---|
61 | 523(M,N) Q $$500(M,N,23) ; Amount Attributed to Sales Tax
|
---|
62 | 500(M,N,J) ; field #500+J signed numeric
|
---|
63 | Q:'M!'N ""
|
---|
64 | N X S X=$P($G(^BPSR(M,1000,N,500)),U,J)
|
---|
65 | I $E(X,1,2)?2U S X=$E(X,3,$L(X))
|
---|
66 | S X=$$DFF2EXT(X)
|
---|
67 | Q X
|
---|