| [613] | 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
 | 
|---|