| 1 | IBCNSA2 ;ALB/NLR - ANNUAL BENEFITS EDIT, DIE CALLS ; 28-MAY-1993
 | 
|---|
| 2 |  ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | ED(IBT) ;
 | 
|---|
| 6 |  D FULL^VALM1 W !!
 | 
|---|
| 7 |  D SAVEAB
 | 
|---|
| 8 |  L +^IBA(355.4,+IBCAB):5 I '$T D LOCKED^IBTRCD1 G EDQ
 | 
|---|
| 9 |  S DIE="^IBA(355.4,",DA=IBCAB
 | 
|---|
| 10 |  S DR=IBT
 | 
|---|
| 11 |  D ^DIE K DIE,DIC,DA,DR
 | 
|---|
| 12 |  D COMP
 | 
|---|
| 13 |  I IBDIF=1 D EDUP
 | 
|---|
| 14 |  D EXIT
 | 
|---|
| 15 |  L -^IBA(355.4,+IBCAB)
 | 
|---|
| 16 | EDQ Q
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 | SAVEAB ;
 | 
|---|
| 19 |  K ^TMP($J,"IBAB")
 | 
|---|
| 20 |  S ^TMP($J,"IBAB",355.4,IBCAB,0)=$G(^IBA(355.4,IBCAB,0))
 | 
|---|
| 21 |  S ^TMP($J,"IBAB",355.4,IBCAB,1)=$G(^IBA(355.4,IBCAB,1))
 | 
|---|
| 22 |  S ^TMP($J,"IBAB",355.4,IBCAB,2)=$G(^IBA(355.4,IBCAB,2))
 | 
|---|
| 23 |  S ^TMP($J,"IBAB",355.4,IBCAB,3)=$G(^IBA(355.4,IBCAB,3))
 | 
|---|
| 24 |  S ^TMP($J,"IBAB",355.4,IBCAB,4)=$G(^IBA(355.4,IBCAB,4))
 | 
|---|
| 25 |  S ^TMP($J,"IBAB",355.4,IBCAB,5)=$G(^IBA(355.4,IBCAB,5))
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 | COMP ;
 | 
|---|
| 28 |  S IBDIF=0
 | 
|---|
| 29 |  I $G(^IBA(355.4,IBCAB,0))'=^TMP($J,"IBAB",355.4,IBCAB,0) S IBDIF=1 Q
 | 
|---|
| 30 |  I $G(^IBA(355.4,IBCAB,1))'=^TMP($J,"IBAB",355.4,IBCAB,1) S IBDIF=1 Q
 | 
|---|
| 31 |  I $G(^IBA(355.4,IBCAB,2))'=^TMP($J,"IBAB",355.4,IBCAB,2) S IBDIF=1 Q
 | 
|---|
| 32 |  I $G(^IBA(355.4,IBCAB,3))'=^TMP($J,"IBAB",355.4,IBCAB,3) S IBDIF=1 Q
 | 
|---|
| 33 |  I $G(^IBA(355.4,IBCAB,4))'=^TMP($J,"IBAB",355.4,IBCAB,4) S IBDIF=1 Q
 | 
|---|
| 34 |  I $G(^IBA(355.4,IBCAB,5))'=^TMP($J,"IBAB",355.4,IBCAB,5) S IBDIF=1 Q
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | EDUP ;  -- enter date and user if editing has taken place
 | 
|---|
| 37 |  S DIE="^IBA(355.4,",DA=IBCAB
 | 
|---|
| 38 |  S DR="1.05///NOW;1.06////"_DUZ
 | 
|---|
| 39 |  D ^DIE K DIE,DIC,DA,DR
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 | CY ;
 | 
|---|
| 42 |  D FULL^VALM1 W !!
 | 
|---|
| 43 |  S IBYR1=IBYR K IBYR D INIT^IBCNSA
 | 
|---|
| 44 |  I $D(VALMQUIT) S IBYR=IBYR1 K VALMQUIT D EXITRP
 | 
|---|
| 45 |  I IBYR=IBYR1 D
 | 
|---|
| 46 |  .K IBYR1,VALMQUIT D EXITRP
 | 
|---|
| 47 |  E  D EXIT
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 | EXIT D HDR^IBCNSA("Annual Benefits"),BLD^IBCNSA
 | 
|---|
| 52 | EXITRP K VALMQUIT S VALMBCK="R"
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | DATECHK ; -- called from input transform from annual benefits (355.4,.01)
 | 
|---|
| 56 |  ;    make sure benefit years do not overlap
 | 
|---|
| 57 |  ;    kills x if not okay
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  Q:'$D(X)
 | 
|---|
| 60 |  N BEFORE,AFTER,MINUS,PLUS,ZZ
 | 
|---|
| 61 |  S MINUS=X-10000
 | 
|---|
| 62 |  S PLUS=X+10000
 | 
|---|
| 63 |  I '$G(IBCPOL) S IBCPOL=$P($G(^IBA(355.4,$G(DA),0)),"^",2)
 | 
|---|
| 64 |  Q:'IBCPOL
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ; -- find most recent entry
 | 
|---|
| 67 |  S ZZ=-$O(^IBA(355.4,"APY",IBCPOL,""))
 | 
|---|
| 68 |  I 'ZZ Q  ;if not prior entires quit.
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  ; -- if x>most recent entry
 | 
|---|
| 71 |  I X>ZZ K:X<(ZZ+10000) X Q
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  Q:'$D(X)
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 |  ; -- find policy date prior to (before or less than) x
 | 
|---|
| 76 |  S BEFORE=-$O(^IBA(355.4,"APY",+IBCPOL,-X))
 | 
|---|
| 77 |  S AFTER=-$O(^IBA(355.4,"APY",+IBCPOL,-PLUS))
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  I 'BEFORE D  Q
 | 
|---|
| 80 |  .I AFTER=X Q
 | 
|---|
| 81 |  .I AFTER,AFTER>X K X
 | 
|---|
| 82 |  .Q
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 |  ; -- if it exists,not exactly one year,if within one year of prior year
 | 
|---|
| 85 |  I BEFORE D  Q
 | 
|---|
| 86 |  .I BEFORE=MINUS Q
 | 
|---|
| 87 |  .I BEFORE>MINUS K X Q
 | 
|---|
| 88 |  .I X=AFTER Q
 | 
|---|
| 89 |  .I AFTER>X K X
 | 
|---|
| 90 |  .Q 
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  Q
 | 
|---|