1 | BPSOSUC ;BHAM ISC/FCS/DRS/FLS - ECME 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 | Q
|
---|
5 | ; CATEG returns the status of a Transaction or Log of Transaction
|
---|
6 | ; entry. It is used mainly by STATUS^BPSOSRX but is also
|
---|
7 | ; called by some other routines as well as computed fields of BPS Log
|
---|
8 | ; of Transactions and BPS Tranasctions
|
---|
9 | CATEG(N,WANTREV) ;
|
---|
10 | ; N - If decimal, IEN from BPS Transaction
|
---|
11 | ; - If integer, IEN from BPS Log of Transactions
|
---|
12 | ; $G(WANTREV) = true if you care about reversals
|
---|
13 | ; (that's the default if N is an IEN59)
|
---|
14 | ; $G(WANTREV) = false if you want to ignore reversals
|
---|
15 | ; (that's the default if IEN57)
|
---|
16 | ;
|
---|
17 | ; Many routines rely on these exact return values; do not change them:
|
---|
18 | ; Return values:
|
---|
19 | ; For both reversals and submissions:
|
---|
20 | ; CORRUPT - Should never happen
|
---|
21 | ;
|
---|
22 | ; For submissions:
|
---|
23 | ; E PAYABLE, E CAPTURED, E DUPLICATE, E REJECTED, E OTHER, and
|
---|
24 | ; E STRANDED
|
---|
25 | ;
|
---|
26 | ; For Reversals:
|
---|
27 | ; E REVERSAL ACCEPTED, E REVERSAL REJECTED, E REVERSAL OTHER, and
|
---|
28 | ; E REVERSAL STRANDED
|
---|
29 | ;
|
---|
30 | I N<1 Q "" ; Should not happen
|
---|
31 | N FILENUM S FILENUM=$S(N[".":9002313.59,1:9002313.57)
|
---|
32 | I '$D(WANTREV) S WANTREV=$S(FILENUM=9002313.57:0,FILENUM=9002313.59:1)
|
---|
33 | N RETVAL,CLAIM,RESP,X,RESP500,CODE,STAT,DISYS
|
---|
34 | I '$$GET1^DIQ(FILENUM,N_",",.01) Q "CORRUPT"
|
---|
35 | S CLAIM=$$GET1^DIQ(FILENUM,N_",",3,"I")
|
---|
36 | S RESP=$$GET1^DIQ(FILENUM,N_",",4,"I")
|
---|
37 | S CODE=$$GET1^DIQ(FILENUM,N_",",201,"I")
|
---|
38 | S STAT=$$GET1^DIQ(FILENUM,N_",",202,"I")
|
---|
39 | I $P(STAT,";")="E REVERSAL STRANDED" Q "E REVERSAL STRANDED"
|
---|
40 | I $P(STAT,";")="E STRANDED" Q "E STRANDED"
|
---|
41 | ; During a reversal/resubmit, you may get the next line between the reversal and
|
---|
42 | ; and the resubmit
|
---|
43 | I 'CLAIM S RETVAL="E OTHER" Q RETVAL
|
---|
44 | I WANTREV S X=$$GET1^DIQ(FILENUM,N_",",401,"I") I X D Q RETVAL
|
---|
45 | . S RESP=$$GET1^DIQ(FILENUM,N_",",402,"I")
|
---|
46 | . S RETVAL="E REVERSAL "
|
---|
47 | . I 'RESP S RETVAL=RETVAL_"OTHER" Q
|
---|
48 | . S RESP500=$$RESP500^BPSOSQ4(RESP,"I")
|
---|
49 | . S X=$$RESP1000^BPSOSQ4(RESP,1,"I")
|
---|
50 | . I RESP500="R"!(X="R") S RETVAL=RETVAL_"REJECTED" Q
|
---|
51 | . ; Treat Duplicate of Accepted Reversal ("S") as Accepted
|
---|
52 | . I RESP500="A",X="A"!(X="S") S RETVAL=RETVAL_"ACCEPTED" Q
|
---|
53 | . S RETVAL=RETVAL_"OTHER"
|
---|
54 | ; Response not received yet
|
---|
55 | I 'RESP S RETVAL="E OTHER" Q RETVAL
|
---|
56 | S RESP500=$$RESP500^BPSOSQ4(RESP,"I")
|
---|
57 | N POS S POS=$$GET1^DIQ(FILENUM,N_",",14)
|
---|
58 | S X=$$RESP1000^BPSOSQ4(RESP,POS,"I")
|
---|
59 | I X="P"!(X="DP") Q "E PAYABLE"
|
---|
60 | I X="D" Q "E DUPLICATE" ; SHOULD NEVER HAPPEN as of 02/06/2001
|
---|
61 | I X="R" Q "E REJECTED"
|
---|
62 | I X="C"!(X="DC") Q "E CAPTURED"
|
---|
63 | ; 1000 indefinite, fall back to 500
|
---|
64 | I RESP500="R" Q "E REJECTED"
|
---|
65 | Q "E OTHER" ; corrupt?
|
---|