| [613] | 1 | IBAMTC2 ;ALB/CJM - INTEGRATED BILLING, CLEANUP OF UNCLOSED EVENTS, UNPASSED CHARGES ; 04-APRIL-1992
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**132,176**;21-MAR-94
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | MAIN ;
 | 
|---|
 | 6 |  N IBAGE,IBFREQ,IBCHG,DFN,IBN,IBND,IBSL,IBDISC,DIE,DR,DA,IBQUIT,IBPASS,IBOLD,IBDATE,IBDUZ S IBDUZ=$G(DUZ)
 | 
|---|
 | 7 |  D NOW^%DTC S IBDATE=X
 | 
|---|
 | 8 |  S IBAGE=44,IBFREQ=15 ; age of unpassed charges to report, frequency
 | 
|---|
 | 9 |  ; loop through all incomplete entries in file 350
 | 
|---|
 | 10 |  N IBFLLTC
 | 
|---|
 | 11 |  S IBN="" F  S IBN=$O(^IB("AC",1,IBN)) Q:'IBN  S IBND=$G(^IB(IBN,0)) D
 | 
|---|
 | 12 |  .Q:($P(IBND,"^",5)'=1)!($P(IBND,"^",16)']"")
 | 
|---|
 | 13 |  .I $P(IBND,"^",16)=IBN S IBFLLTC="" D  Q:IBFLLTC="L"
 | 
|---|
 | 14 |  ..;
 | 
|---|
 | 15 |  ..N IBDISC,IBSL,VAIN,VAINDT,IBLDT D DISC Q:+IBDISC=0
 | 
|---|
 | 16 |  ..S DFN=$P(IBND,"^",2),VAINDT=IBDISC D INP^VADPT S IBFLLTC=$P($$TREATSP^IBAECU2($P($G(^DIC(45.7,+VAIN(3),0)),U,2)),"^",1)
 | 
|---|
 | 17 |  ..S IBLDT=$$LASTMJ^IBAECU() I IBLDT>0,$E(IBDISC,1,5)<$E(IBLDT,1,5),IBFLLTC="L" D CLOSE
 | 
|---|
 | 18 |  .I $P(IBND,"^",16)=IBN D
 | 
|---|
 | 19 |  ..D EVENT
 | 
|---|
 | 20 |  .E  D CHARGE
 | 
|---|
 | 21 |  Q
 | 
|---|
 | 22 | EVENT ; closes events if the patient was discharged
 | 
|---|
 | 23 |  S (IBPASS,IBQUIT)=0
 | 
|---|
 | 24 |  D DISC I IBDISC D CLOSE D:'IBQUIT FNDCHGS,PASS:IBCHG,BULLET1^IBAMTC3
 | 
|---|
 | 25 |  Q
 | 
|---|
 | 26 | DISC ; gets the discharge date
 | 
|---|
 | 27 |  S IBDISC="",IBSL=$P(IBND,"^",4)
 | 
|---|
 | 28 |  I $P(IBSL,":")=405 S IBDISC=$P(IBSL,":",2) S:IBDISC]"" IBDISC=$P($G(^DGPM(IBDISC,0)),"^",17)
 | 
|---|
 | 29 |  S:IBDISC IBDISC=($P($G(^DGPM(IBDISC,0)),"^")\1)
 | 
|---|
 | 30 |  Q
 | 
|---|
 | 31 | CLOSE ;
 | 
|---|
 | 32 |  S IBQUIT=1
 | 
|---|
 | 33 |  L +^IB(IBN):3 I $T D
 | 
|---|
 | 34 |  .S IBQUIT=0
 | 
|---|
 | 35 |  .S DIE="^IB(",DA=IBN,DR=".05////2"
 | 
|---|
 | 36 |  .D ^DIE L -^IB(IBN)
 | 
|---|
 | 37 |  Q
 | 
|---|
 | 38 | FNDCHGS ;
 | 
|---|
 | 39 |  N I S IBCHG="" F I=1:1 S IBCHG=$O(^IB("ACT",IBN,IBCHG)) Q:'IBCHG  S IBCHG(I)=IBCHG
 | 
|---|
 | 40 |  S IBCHG=(I-1)
 | 
|---|
 | 41 |  Q
 | 
|---|
 | 42 | PASS ; pass the charges if they appear correct, complete, and can be locked
 | 
|---|
 | 43 |  S IBPASS=0
 | 
|---|
 | 44 |  N IBI,IBNOS,IBADMIT S DFN=$P(IBND,"^",2),IBADMIT=($P(IBND,"^",17)\1)
 | 
|---|
 | 45 |  Q:+$$MVT^DGPMOBS($P(IBSL,":",2))
 | 
|---|
 | 46 |  I IBDISC=$P(IBND,"^",17) Q:$P(IBND,"^",18)'=IBDISC
 | 
|---|
 | 47 |  E  S X1=$P(IBND,"^",18),X2=1 D C^%DTC Q:X'=IBDISC
 | 
|---|
 | 48 |  S IBPASS=1 F IBI=1:1:IBCHG L +^IB(IBCHG(IBI)):1 S IBPASS=$T Q:'IBPASS  I ($P($G(^IB(IBCHG(IBI),0)),"^",15)>IBDISC)!($P($G(^IB(IBCHG(IBI),0)),"^",14)<IBADMIT) S IBPASS=0 Q
 | 
|---|
 | 49 |  I IBPASS N IBN F IBI=1:1:IBCHG S IBNOS=IBCHG(IBI),IBY=1 D FILER^IBAUTL5 D:IBY<1 ^IBAERR1
 | 
|---|
 | 50 |  F IBI=1:1:IBCHG L -^IB(IBCHG(IBI))
 | 
|---|
 | 51 |  Q
 | 
|---|
 | 52 |  ;
 | 
|---|
 | 53 | CHARGE ; if the charge is old send a bulletin
 | 
|---|
 | 54 |  N IBWHEN S IBWHEN=$P($G(^IB(IBN,1)),"^",2)
 | 
|---|
 | 55 |  S X2=IBWHEN,X1=IBDATE D ^%DTC
 | 
|---|
 | 56 |  S IBOLD=(+$FN(X,"T")) I IBOLD>IBAGE,X#IBFREQ=0 D BULLET2^IBAMTC3
 | 
|---|
 | 57 |  Q
 | 
|---|