| 1 | IBPF1 ;ALB/CPM - FIND BILLING DATA TO ARCHIVE (CON'T.) ; 20-APR-92 | 
|---|
| 2 | ;;2.0;INTEGRATED BILLING;**45,347**;21-MAR-94;Build 24 | 
|---|
| 3 | ;;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | BILL ; Find all UB-82's which may be archived.  Check only those bills | 
|---|
| 6 | ; whose First Printed Date is prior to the last date on which a | 
|---|
| 7 | ; bill must have been closed out in Accounts Receivable. | 
|---|
| 8 | ; | 
|---|
| 9 | ;  Input:  IBEDT  --  last valid date on which a bill may be closed out | 
|---|
| 10 | ;         IBTMPL  --  search template in which to store entries | 
|---|
| 11 | ;  Output: IBCNT  --  number of IB Actions which may be archived. | 
|---|
| 12 | ; | 
|---|
| 13 | S (IBDT,IBN)="",IBCNT=0 | 
|---|
| 14 | F  S IBDT=$O(^DGCR(399,"AP",IBDT)) Q:'IBDT!(IBDT>IBEDT)  F  S IBN=$O(^DGCR(399,"AP",IBDT,IBN)) Q:'IBN  I $$ALL(IBN,IBEDT) S IBCNT=IBCNT+1,^DIBT(IBTMPL,1,IBN)="" | 
|---|
| 15 | K IBCLO,IBDT,IBN | 
|---|
| 16 | Q | 
|---|
| 17 | ; | 
|---|
| 18 | ; | 
|---|
| 19 | IB ; Find Pharmacy Co-pay IB Actions which may be archived.  Check | 
|---|
| 20 | ; only those Pharmacy Co-pay IB Actions which have been added to the | 
|---|
| 21 | ; database prior to the last date on which a bill must have been | 
|---|
| 22 | ; closed out in Accounts Receivable.  Only "parent actions" will | 
|---|
| 23 | ; be checked, and if the parent action may be archived, the parent | 
|---|
| 24 | ; and its "children" will all be marked for archiving. | 
|---|
| 25 | ; | 
|---|
| 26 | ;  Input:  IBEDT  --  last valid date on which a bill may be closed out | 
|---|
| 27 | ;         IBTMPL  --  search template in which to store entries | 
|---|
| 28 | ;  Output: IBCNT  --  number of IB Actions which may be archived. | 
|---|
| 29 | ; | 
|---|
| 30 | ; - first find all Pharmacy action types. | 
|---|
| 31 | K IBA F I=1:1 S IBATYPN=$P($T(PSO+I),";;",2,99) Q:IBATYPN=""  S IBATYP=$O(^IBE(350.1,"B",IBATYPN,0)) I IBATYP S IBA(IBATYP)="" | 
|---|
| 32 | ; | 
|---|
| 33 | ; - locate all Pharmacy Co-pay actions which may be archived. | 
|---|
| 34 | S (IBDT,IBN)="",IBCNT=0 | 
|---|
| 35 | F  S IBDT=$O(^IB("D",IBDT)) Q:'IBDT!(IBDT>(IBEDT+.3))  D | 
|---|
| 36 | . F  S IBN=$O(^IB("D",IBDT,IBN)) Q:'IBN  D:$D(^IB("AD",IBN)) | 
|---|
| 37 | ..  S IBND=$G(^IB(IBN,0)) Q:IBND=""  ; 0th node missing | 
|---|
| 38 | ..  Q:'$D(IBA(+$P(IBND,"^",3)))  ; not a Pharmacy co-pay action | 
|---|
| 39 | ..  Q:$$RXFILE(IBND)  ; billed prescription has not been archived | 
|---|
| 40 | ..  S IBAR=$P(IBND,"^",11) Q:IBAR="" | 
|---|
| 41 | ..  S X="RCFN03" X ^%ZOSF("TEST") | 
|---|
| 42 | ..  S IBAR=$S($T:$$BIEN^RCFN03(IBAR),1:$O(^PRCA(430,"B",IBAR,0))) | 
|---|
| 43 | ..  I IBAR,$$CLO(IBAR,IBEDT) F DA=0:0 S DA=$O(^IB("AD",IBN,DA)) Q:'DA  S IBCNT=IBCNT+1,^DIBT(IBTMPL,1,DA)="" | 
|---|
| 44 | ; | 
|---|
| 45 | ; - kill variables and quit. | 
|---|
| 46 | K DA,IBA,IBAR,IBATYP,IBATYPN,IBCLO,IBDT,IBN,IBND,X | 
|---|
| 47 | Q | 
|---|
| 48 | ; | 
|---|
| 49 | ; | 
|---|
| 50 | RXFILE(IBND) ; Is the prescription still resident on-line? | 
|---|
| 51 | ;         Input:    IBND  --  zeroth node of IB Action | 
|---|
| 52 | ;         Output:     1   --  the rx is still on file | 
|---|
| 53 | ;                     0   --  the rx is no longer on file (archived) | 
|---|
| 54 | N IBSL,RXCHK | 
|---|
| 55 | S IBSL=$P(IBND,"^",4) I +IBSL'=52 Q 0 | 
|---|
| 56 | S IBSL=$P(IBSL,":",2) | 
|---|
| 57 | S RXCHK=$$FILE^IBRXUTL(+IBSL,.01) | 
|---|
| 58 | I RXCHK'="" Q 1 | 
|---|
| 59 | Q 0 | 
|---|
| 60 | ; | 
|---|
| 61 | ALL(IBN,DATE) ; Are all bills for an episode of care closed before DATE? | 
|---|
| 62 | ;         Input:     IBN  --  ien of bill in file #399 | 
|---|
| 63 | ;                   DATE  --  the date by which the bills must be closed | 
|---|
| 64 | ;         Output:     1   --  all bills are closed | 
|---|
| 65 | ;                     0   --  at least one bill is not closed | 
|---|
| 66 | N I,X | 
|---|
| 67 | S X=$$CLO(IBN,DATE) | 
|---|
| 68 | I X S I=0 F  S I=$O(^DGCR(399,"AC",IBN,I)) Q:'I  I I'=IBN,'$$CLO(I,DATE) S X=0 Q | 
|---|
| 69 | Q X | 
|---|
| 70 | ; | 
|---|
| 71 | CLO(IBN,DATE) ; Is the bill closed before DATE? | 
|---|
| 72 | ;         Input:     IBN  --  ien of bill in file #399 | 
|---|
| 73 | ;                   DATE  --  the date by which the bill must be closed | 
|---|
| 74 | ;         Output:     1   --  the bill is closed | 
|---|
| 75 | ;                     0   --  the bill is not closed | 
|---|
| 76 | N CLO S CLO=$$PUR^PRCAFN(IBN) | 
|---|
| 77 | Q $S(CLO=-2:1,CLO=-1:0,1:CLO'>DATE) | 
|---|
| 78 | ; | 
|---|
| 79 | ; | 
|---|
| 80 | PSO ; Pharmacy Co-pay Action Types | 
|---|
| 81 | ;;PSO NSC RX COPAY CANCEL | 
|---|
| 82 | ;;PSO NSC RX COPAY NEW | 
|---|
| 83 | ;;PSO NSC RX COPAY UPDATE | 
|---|
| 84 | ;;PSO SC RX COPAY CANCEL | 
|---|
| 85 | ;;PSO SC RX COPAY NEW | 
|---|
| 86 | ;;PSO SC RX COPAY UPDATE | 
|---|
| 87 | ; | 
|---|