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