[613] | 1 | IBECEAU ;ALB/CPM - Cancel/Edit/Add... Utilities ;11-MAR-93
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**91,249**;21-MAR-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | CHECK(TALK) ; Retrieve the institution and MAS Service pointer.
|
---|
| 6 | ; Input: TALK -- 1 : do i/o (writes)
|
---|
| 7 | ; 0 : no i/o
|
---|
| 8 | N IBY,Y S (IBY,Y)=1
|
---|
| 9 | D SITE^IBAUTL I Y<1 S IBY=Y W:$G(TALK) !!,"You must define your facility in the IB SITE PARAMETER file before proceeding!",!
|
---|
| 10 | I IBY>0 D SERV^IBAUTL2 I IBY<1 W:$G(TALK) !!,"You must define the MAS Service Pointer in the IB SITE PARAMETER file",!,"before proceeding!",!
|
---|
| 11 | Q IBY>0
|
---|
| 12 | ;
|
---|
| 13 | PAUSE ; Go to end of page to pause.
|
---|
| 14 | N DIR,DIRUT,DUOUT,DTOUT,X,Y
|
---|
| 15 | W ! F Y=$Y:1:21 W !
|
---|
| 16 | S DIR("A")="Press RETURN to process the next charge or to return to the list"
|
---|
| 17 | S DIR(0)="E" D ^DIR K DIR
|
---|
| 18 | Q
|
---|
| 19 | ;
|
---|
| 20 | INPT(DAYS) ; Return a description for Billing Clock days.
|
---|
| 21 | ; Input: DAYS -- Number of days in a billing clock
|
---|
| 22 | ; Output: "1st", "2nd", "3rd", "4th"
|
---|
| 23 | Q $S(DAYS>270:"4th",DAYS>180:"3rd",DAYS>90:"2nd",1:"1st")
|
---|
| 24 | ;
|
---|
| 25 | LAST(PAR) ; Find last action filed for any parent action.
|
---|
| 26 | ; Input: PAR -- Parent IB Action
|
---|
| 27 | ; Output: Last action filed for parent (or parent if none)
|
---|
| 28 | N IBL,IBLDT,IBLAST
|
---|
| 29 | S IBLAST="",IBLDT=$O(^IB("APDT",PAR,"")) I +IBLDT S IBL=0 F S IBL=$O(^IB("APDT",PAR,IBLDT,IBL)) Q:'IBL S IBLAST=IBL
|
---|
| 30 | Q $S(IBLAST:IBLAST,1:PAR)
|
---|
| 31 | ;
|
---|
| 32 | BFO(DFN,DATE) ; Patient Billed For OPT Copay on a specified date?
|
---|
| 33 | ; Input: DFN -- Pointer to the patient in file #2
|
---|
| 34 | ; DATE -- Date of the Outpatient Visit
|
---|
| 35 | ; Output: 0 -- Not billed the OPT copay on the visit date
|
---|
| 36 | ; >0 -- Pointer to charge in file #350 that was billed
|
---|
| 37 | N IBATYP,IBATYPN,IBL,IBND,IBN,Y
|
---|
| 38 | I '$G(DFN)!'$G(DATE) G BFOQ
|
---|
| 39 | S IBN=0 F S IBN=$O(^IB("AFDT",DFN,-DATE,IBN)) Q:'IBN D I $P(IBATYPN,"^",11)=4,"^1^3^"[("^"_$P(IBATYP,"^",5)_"^"),"^1^2^3^4^8^20^"[("^"_+$P(IBND,"^",5)_"^") S Y=IBL Q
|
---|
| 40 | .S IBL=$$LAST(+$P($G(^IB(IBN,0)),"^",9)),IBND=$G(^IB(IBL,0))
|
---|
| 41 | .S IBATYP=$G(^IBE(350.1,+$P(IBND,"^",3),0))
|
---|
| 42 | .S IBATYPN=$G(^IBE(350.1,+$P(IBATYP,"^",9),0))
|
---|
| 43 | BFOQ Q +$G(Y)
|
---|
| 44 | ;
|
---|
| 45 | CNP(DFN,DATE) ; Did the patient have a C&P Exam on a specified date?
|
---|
| 46 | ; Input: DFN -- Pointer to the patient in file #2
|
---|
| 47 | ; DATE -- Date of the Outpatient Visit
|
---|
| 48 | ; Output: 0 -- Patient did not have a C&P Exam on the visit date
|
---|
| 49 | ; 1 -- Patient had a C&P Exam on the visit date
|
---|
| 50 | N I,IBD,IBSD,Y,IBVAL,IBCBK,IBFILTER,IBCNP,Z
|
---|
| 51 | I '$G(DFN)!'$G(DATE) G CNPQ
|
---|
| 52 | ; - check appts, stop codes
|
---|
| 53 | S IBVAL("DFN")=DFN,IBVAL("BDT")=DATE,IBVAL("EDT")=DATE+.9999
|
---|
| 54 | ; Only parent appt or add/edit encounters
|
---|
| 55 | S IBFILTER=""
|
---|
| 56 | S IBCBK="I '$P(Y0,U,6),$P(Y0,U,8)<3 N Z S Z=$P(Y0,U,8) I $S(Z=1:$P(Y0,U,10)=1&($P(Y0,U,12)<3),Z=2:$P(Y0,U,10)=1,1:0) S (IBCNP,SDSTOP)=1"
|
---|
| 57 | S IBCNP=0
|
---|
| 58 | D SCAN^IBSDU("PATIENT/DATE",.IBVAL,IBFILTER,IBCBK,1) K ^TMP("DIERR",$J)
|
---|
| 59 | I IBCNP S Y=1
|
---|
| 60 | CNPQ Q +$G(Y)
|
---|
| 61 | ;
|
---|
| 62 | HDR(OPT) ; Display the header for an action
|
---|
| 63 | ; Input: OPT -- Action Header
|
---|
| 64 | N ADD,HDR S ADD=OPT="A D D"
|
---|
| 65 | D CLEAR^VALM1 S IBY=1,HDR=OPT_" A C H A R G E"
|
---|
| 66 | I 'ADD S IBIDX=$G(^TMP("IBACMIDX",$J,IBNBR)),IBN=+$P(IBIDX,"^",4),IBND=$G(^IB(IBN,0))
|
---|
| 67 | W !?(80-$L(HDR)\2),HDR W:'ADD !?29,"Processing Charge #",IBNBR
|
---|
| 68 | W !,$$LINE,!?3,"Name: ",$P(IBNAM,"^") W:'ADD ?41,"Type: ",$P(IBIDX,"^",3)
|
---|
| 69 | I ADD W ?41,"** " W:'IBCLDA "NO " W "ACTIVE BILLING CLOCK **"
|
---|
| 70 | W !?5,"ID: ",$P(IBNAM,"^",2) W:'ADD ?42,"Amt:",$P(IBIDX,"^",5)," (",$P(IBIDX,"^",6),")"
|
---|
| 71 | I ADD,IBCLDA W ?44,"Clock Begin Date: ",$$DAT1^IBOUTL(IBCLDT)
|
---|
| 72 | W !,$$LINE,!
|
---|
| 73 | Q
|
---|
| 74 | ;
|
---|
| 75 | LINE() ; Write a line.
|
---|
| 76 | Q $TR($J("",80)," ","-")
|
---|
| 77 | ;
|
---|
| 78 | CLOCK(IBDOL,IBDAYPR,IBDAY) ; Display and update clock data.
|
---|
| 79 | ; Input: IBDOL -- Dollar amount to add or subtract
|
---|
| 80 | ; IBDAYPR -- Existing number of inpatient days
|
---|
| 81 | ; IBDAY -- Inpatient days to add or subtract
|
---|
| 82 | ; Also assumes that IBCLST,IBNAM, IBCLDA, and IBXA are defined.
|
---|
| 83 | D CLDSP^IBECEAU1(IBCLST,IBNAM) I $P(IBCLST,"^",4)'=1 W !,"** Please note that an active billing clock was not selected for updating **"
|
---|
| 84 | I IBXA=1!(IBXA=2) D CLAMT^IBECEAU1(IBCLST,IBDOL,IBCLDA)
|
---|
| 85 | I IBXA=3 D CLINP^IBECEAU1(IBDAYPR,IBDAY,IBCLDA)
|
---|
| 86 | Q
|
---|