| 1 | IBAUTL7 ;AAS/ALB - RX EXEMPTION UTILITY ROUTINE (CONT.) ; 2-NOV-92 | 
|---|
| 2 | ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | CURREX(IBSTAT,IBDT) ;update current status if current year | 
|---|
| 6 | ;  input :    dfn  =  patient file pointer | 
|---|
| 7 | ;            ibdt  =  internal form of effective date | 
|---|
| 8 | ;          ibstat  =  status = 1 if exempt, 0 if not exempt | 
|---|
| 9 | ; | 
|---|
| 10 | N X,Y,DIC,DIE,DR,DA | 
|---|
| 11 | I $S('$D(DFN):1,'$D(IBSTAT):1,IBSTAT=0:0,IBSTAT=1:0,1:1) G CURREXQ | 
|---|
| 12 | ; | 
|---|
| 13 | ; -- make sure ibdt > old current date | 
|---|
| 14 | S X=+$P($G(^IBA(354,DFN,0)),"^",3) | 
|---|
| 15 | I '$G(IBFORCE),$G(IBOLDAUT)'?7N,X>IBDT G CURREXQ ;only if most recent (I took this out for awhile but don't know why, its needed to keep from updating old over new) | 
|---|
| 16 | ; | 
|---|
| 17 | ; -- not greater than today | 
|---|
| 18 | ;I IBDT>DT G CURREXQ | 
|---|
| 19 | ; | 
|---|
| 20 | S DIE="^IBA(354,",DA=DFN,DR="[IB CURRENT STATUS]" D ^DIE ; set status in billing patient file | 
|---|
| 21 | I $D(Y) S IBEXERR=6,IBWHER=14 | 
|---|
| 22 | ;DR=".04////"_IBSTAT_";.03////"_IBDT_";.05////"_IBEXREA | 
|---|
| 23 | ; | 
|---|
| 24 | CURREXQ Q | 
|---|
| 25 | ; | 
|---|
| 26 | INACT(IBDT) ; -- must inactivate active exemptions before creating new exemption | 
|---|
| 27 | ;    should only be called from addex so event driver logic works | 
|---|
| 28 | ; | 
|---|
| 29 | N IBX,X,Y,DA,DR,DIE,DIC | 
|---|
| 30 | S IBX=0 F  S IBX=$O(^IBA(354.1,"AIVDT",1,DFN,-IBDT,IBX)) Q:'IBX  D | 
|---|
| 31 | .S DA=IBX | 
|---|
| 32 | .I $P($G(^IBA(354.1,DA,0)),"^",10)'=1 Q | 
|---|
| 33 | .I '$D(ZTQUEUED),$D(IBTALK) W:IBTALK<2 !,"Deleting Active flag from current entry" S IBTALK=IBTALK+1 | 
|---|
| 34 | .S DA=IBX,DIE="^IBA(354.1,",DR="[IB INACTIVATE EXEMPTION]" D ^DIE K DIC,DIE,DA,DR | 
|---|
| 35 | .I $D(Y) S IBEXERR=7,IBWHER=15 | 
|---|
| 36 | .;S IBACTION="CHG" | 
|---|
| 37 | .Q | 
|---|
| 38 | INACTQ Q | 
|---|
| 39 | ; | 
|---|
| 40 | DUPL() ; -- see if entry is a duplicate | 
|---|
| 41 | N X,Y | 
|---|
| 42 | S X=0 | 
|---|
| 43 | S Y=$$LST^IBARXEU0(DFN,IBDT) | 
|---|
| 44 | I IBDT=+Y,+IBEXREA=+$P(Y,"^",5),IBTYPE=$P(Y,"^",3) S X=1 | 
|---|
| 45 | Q X | 
|---|
| 46 | ; | 
|---|
| 47 | ; | 
|---|
| 48 | ALERT() ; -- use alerts or bulletins | 
|---|
| 49 | ;    returns 1 = use alerts | 
|---|
| 50 | ;            0 = use bulletins | 
|---|
| 51 | ; | 
|---|
| 52 | Q $P($G(^IBE(350.9,1,0)),"^",14) | 
|---|