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