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