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