1 | IBYPPL ;ALB/ARH - IB*2*307 POST INIT: CMAC 2005, INACTIVATE OLD CHARGES ; 06-JUN-2005
|
---|
2 | ;;2.0;INTEGRATED BILLING;**307**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | Q
|
---|
6 | POST ;
|
---|
7 | N IBA S IBA(1)="",IBA(2)=" IB*2*307 CMAC 2005 Post-Install .....",IBA(3)="" D MES^XPDUTL(.IBA) K IBA
|
---|
8 | ;
|
---|
9 | D CHGINA("CMAC",3050401) ; inactivate all CMAC charges effective before 04/01/05 in #363.2
|
---|
10 | ;
|
---|
11 | S IBA(1)="",IBA(2)=" IB*2*307 CMAC 2005 Post-Install Complete",IBA(3)="" D MES^XPDUTL(.IBA) K IBA
|
---|
12 | Q
|
---|
13 | ;
|
---|
14 | CHGINA(BRATE,NEXT) ; inactivate charges for a particular Billing Rate
|
---|
15 | ; For procedure charges of requested Billing Rate, inactivate all charges effective before the date passed in.
|
---|
16 | ; - For each charge the inactive date used is one day before the procedures next charge effective date.
|
---|
17 | ; - If no date is passed in then the last charge is left active.
|
---|
18 | ; - If a date is passed in it is used as the default in case no 'next' date is found.
|
---|
19 | ; BRATE - Billing Rate, any charges whose billing rate contain BRATE will be inactivated
|
---|
20 | ; NEXT - if set, beginning effective date of charges that should not be inactivated
|
---|
21 | ;
|
---|
22 | N IBA,IBI,IBX,IBCS,IBCS0,IBBR0,IBXRF,IBITM,IBNEF,IBCI,IBCI0,IBCIEF,IBCIIA,IBNEWIA
|
---|
23 | N DD,DO,DLAYGO,DIC,DIE,DA,DR,X,Y,IBCNT S IBCNT=0 Q:$G(BRATE)="" S NEXT=$G(NEXT) I NEXT'="",NEXT'?7N Q
|
---|
24 | ;
|
---|
25 | S IBA(1)=" >> Inactivating Existing "_BRATE_" Charges, Please Wait..." D MES^XPDUTL(.IBA) K IBA
|
---|
26 | ;
|
---|
27 | S IBCS=0 F S IBCS=$O(^IBE(363.1,IBCS)) Q:'IBCS D
|
---|
28 | . S IBCS0=$G(^IBE(363.1,IBCS,0)) Q:IBCS0=""
|
---|
29 | . S IBBR0=$G(^IBE(363.3,+$P(IBCS0,U,2),0))
|
---|
30 | . ;
|
---|
31 | . I $P(IBBR0,U,1)'[BRATE Q
|
---|
32 | . ;
|
---|
33 | . S IBXRF="AIVDTS"_IBCS
|
---|
34 | . S IBITM=0 F S IBITM=$O(^IBA(363.2,IBXRF,IBITM)) Q:'IBITM D
|
---|
35 | .. S IBNEF="" F S IBNEF=$O(^IBA(363.2,IBXRF,IBITM,IBNEF)) Q:IBNEF="" D
|
---|
36 | ... ;
|
---|
37 | ... S IBCI=0 F S IBCI=$O(^IBA(363.2,IBXRF,IBITM,IBNEF,IBCI)) Q:'IBCI D
|
---|
38 | .... S IBCI0=$G(^IBA(363.2,IBCI,0)) Q:IBCI0=""
|
---|
39 | .... S IBCIEF=$P(IBCI0,U,3),IBCIIA=$P(IBCI0,U,4),IBNEWIA=""
|
---|
40 | .... ;
|
---|
41 | .... I +NEXT,IBCIEF'<NEXT Q
|
---|
42 | .... ;
|
---|
43 | .... S IBNEWIA=-$O(^IBA(363.2,IBXRF,IBITM,-IBCIEF),-1) I 'IBNEWIA S IBNEWIA=NEXT
|
---|
44 | .... ;
|
---|
45 | .... I 'IBNEWIA Q
|
---|
46 | .... I +IBCIIA,IBCIIA'>IBNEWIA Q
|
---|
47 | .... ;
|
---|
48 | .... S IBNEWIA=$$FMADD^XLFDT(IBNEWIA,-1)
|
---|
49 | .... ;
|
---|
50 | .... S DR=".04////"_+IBNEWIA,DIE="^IBA(363.2,",DA=+IBCI D ^DIE K DIE,DIC,DA,DR,X,Y S IBCNT=IBCNT+1
|
---|
51 | ;
|
---|
52 | S IBA(1)=" Done. "_IBCNT_" existing charges inactivated " D MES^XPDUTL(.IBA) K IBA
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | ;
|
---|
56 | ;
|
---|
57 | MCCRUTL(X,P) ; returns IFN of item in 399.1 if Name is found and piece P is true
|
---|
58 | N IBX,IBY S IBY=""
|
---|
59 | I $G(X)'="" S IBX=0 F S IBX=$O(^DGCR(399.1,"B",X,IBX)) Q:'IBX I $P($G(^DGCR(399.1,IBX,0)),U,+$G(P)) S IBY=IBX
|
---|
60 | Q IBY
|
---|
61 | ;
|
---|
62 | MSG(X) ;
|
---|
63 | N IBX S IBX=$O(IBA(999999),-1) S:'IBX IBX=1 S IBX=IBX+1
|
---|
64 | S IBA(IBX)=$G(X)
|
---|
65 | Q
|
---|