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