Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBYPPR

IBYPPR.m

Go to the documentation of this file.
  1. IBYPPR ;ALB/ARH - IB*2.0*106 PRE/POST INIT: REASONABLE CHARGES ; 10-OCT-1998
  1. ;;2.0;INTEGRATED BILLING;**106**;21-MAR-94
  1. ;;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;
  1. ;
  1. Q
  1. PRE ; in 399, delete all xrefs for certain fields, these fields are all exported with this patch
  1. ; they must be deleted before the build inserts the updated fields because the xrefs have changed
  1. N IBX,X,Y,DIK,DA,IBFLD,IBXREF
  1. ;
  1. D BMES^XPDUTL("Pre-Installation Updates (Cross references will be updated during install)")
  1. ;
  1. F IBFLD=135,151 D
  1. . ;
  1. . S IBXREF=0 F S IBXREF=$O(^DD(399,IBFLD,1,IBXREF)) Q:'IBXREF D
  1. .. S DIK="^DD(399,"_IBFLD_",1,",DA(2)=399,DA(1)=IBFLD,DA=IBXREF
  1. .. D ^DIK K DIK,DA
  1. . S IBX=" >> ^DGCR(399,"_IBFLD_") cross references deleted." D MES^XPDUTL(IBX)
  1. ;
  1. F IBFLD=.01,1,5,6 D
  1. . ;
  1. . S IBXREF=0 F S IBXREF=$O(^DD(399.0304,IBFLD,1,IBXREF)) Q:'IBXREF D
  1. .. S DIK="^DD(399.0304,"_IBFLD_",1,",DA(2)=399.0304,DA(1)=IBFLD,DA=IBXREF
  1. .. D ^DIK K DIK,DA
  1. . S IBX=" >> ^DGCR(399,304,"_IBFLD_") cross references deleted." D MES^XPDUTL(IBX)
  1. ;
  1. ; Output Formatter Updates: the Data Element (364.7,.03) of a field has changed, update this before the
  1. ; installation so the incoming field can match correctly with the existing field
  1. N OLD,NEW,DIC,DIE,DR,X,Y
  1. ;
  1. ; change ACCEPT ASSIGNMENT (BX-27) (357) from N-GET FROM PREVIOUS EXTRACT (5) to N-ASSIGN OF BENEFITS INDICATOR (24)
  1. ;
  1. S DA=357
  1. S OLD=$O(^IBA(364.5,"B","N-GET FROM PREVIOUS EXTRACT",0))
  1. S NEW=$O(^IBA(364.5,"B","N-ASSIGN OF BENEFITS INDICATOR",0))
  1. I +OLD,+NEW,$P($G(^IBA(364.7,DA,0)),U,3)=OLD S DIE="^IBA(364.7,",DR=".03////"_NEW D ^DIE
  1. ;
  1. S IBX=" >> Output Formatter Fields Updated (#364.7,.03)." D MES^XPDUTL(IBX)
  1. ;
  1. D BMES^XPDUTL("Pre-Installation Updates Completed")
  1. Q
  1. ;
  1. POST ;
  1. N IBA
  1. S IBA(1)="",IBA(2)=" Reasonable Charges Post-Install .....",IBA(3)="" D MES^XPDUTL(.IBA) K IBA
  1. ;
  1. D DELCT ; clear Charge Type field for all Charge Sets (363.1, .04)
  1. D RSINDT ; add Rate Schedule Inactive dates (363, .06)
  1. ;
  1. D ADDBS^IBYPPR1 ; add Bedsections (399.1,.12)
  1. D ADDBE^IBYPPR1 ; add Billable Events (399.1, .21)
  1. D ADDBI^IBYPPR1 ; add Billable Items (363.21)
  1. D ADDRS^IBYPPR1 ; add Rate Schedule (363)
  1. D ADDBR^IBYPPR1 ; add Billing Rates (363.3)
  1. ;
  1. D SGBR ; add Billing Rates to Special Groups (363.32,11,.01)
  1. D RVACT ; activate 41 Revenue Codes (399.2,2)
  1. ;
  1. S IBA(1)="",IBA(2)=" Reasonable Charges Post-Install Complete",IBA(3)="" D MES^XPDUTL(.IBA) K IBA
  1. ;
  1. Q
  1. ;
  1. DELCT ; Delete Charge Type from all Non-Reasonable Charges Charge Sets (363.1,.04)
  1. N IBA,IBCS,IBLN,IBBRN,DIC,DIE,DR,DA,X,Y
  1. ;
  1. S IBCS=0 F S IBCS=$O(^IBE(363.1,IBCS)) Q:'IBCS D
  1. . S IBLN=$G(^IBE(363.1,IBCS,0)) I '$P(IBLN,U,4) Q
  1. . S IBBRN=$P($G(^IBE(363.3,+$P(IBLN,U,2),0)),U,1) I $E(IBBRN,1,3)="RC " Q
  1. . ;
  1. . S DR=".04////@",DIE="^IBE(363.1,",DA=+IBCS D ^DIE K DIE,DA,DR,X,Y
  1. ;
  1. DCQ S IBA(1)=" >> Removing Charge Types from non-RC Charge Sets (363.1)..."
  1. D MES^XPDUTL(.IBA)
  1. Q
  1. ;
  1. RSINDT ; add an inactive date to rate schedules if this is the first time the load is completed (363, .06)
  1. ; Reimbursable Ins, No Fault, and Workers Comp only
  1. ; if test account use 9/30/98, if production account use 8/31/99
  1. N IBA,IBRSFN,IBRS0,IBRSN,IBCNT,IBSTDT,DD,DO,DIC,DIE,DA,DR,X,Y S IBSTDT="",IBCNT=0
  1. ;
  1. I $O(^IBE(363.3,"B","RC INPATIENT FACILITY",0)) G RSINQ
  1. ;
  1. S IBSTDT=2990831 I '$$PROD^IBCORC S IBSTDT=2980930
  1. ;
  1. S IBRSFN=0 F S IBRSFN=$O(^IBE(363,IBRSFN)) Q:'IBRSFN D
  1. . S IBRS0=$G(^IBE(363,IBRSFN,0)),IBRSN=$E(IBRS0,1,3)
  1. . I IBRSN'="RI-",IBRSN'="NF-",IBRSN'="WC-" Q
  1. . I ($P(IBRS0,U,5)'="")!($P(IBRS0,U,6)'="") Q
  1. . ;
  1. . S IBCNT=IBCNT+1,DR=".06////"_IBSTDT,DIE="^IBE(363,",DA=+IBRSFN D ^DIE K DIE,DA,DR,X,Y
  1. ;
  1. RSINQ S IBA(1)=" >> "_IBCNT_" Rate Schedules inactivated on "_$E(IBSTDT,4,5)_"/"_$E(IBSTDT,6,7)_"/"_$E(IBSTDT,2,3)_" (363)..."
  1. D MES^XPDUTL(.IBA)
  1. Q
  1. ;
  1. SGBR ; add Billing Rates to the Special Groups (363.32,11,.01)
  1. N IBA,IBSET,IBSG,IBSGFN,IBBR,IBBRFN,IBCNT,DINUM,DD,DO,DLAYGO,DIC,DIE,DA,DR,X,Y S IBCNT=0
  1. ;
  1. F IBSET="STANDARD RVCD LINKS^RC OUTPATIENT FACILITY","STANDARD RVCD LINKS^RC PHYSICIAN","RC PROVIDER DISCOUNTS^RC PHYSICIAN" D
  1. . S IBSG=$P(IBSET,U,1) Q:IBSG="" S IBSGFN=$O(^IBE(363.32,"B",IBSG,0)) Q:'IBSGFN
  1. . S IBBR=$P(IBSET,U,2) Q:IBBR="" S IBBRFN=$O(^IBE(363.3,"B",IBBR,0)) Q:'IBBRFN
  1. . ;
  1. . I $O(^IBE(363.32,+IBSGFN,11,"B",+IBBRFN,0)) Q
  1. . ;
  1. . S DLAYGO=363.32,DA(1)=+IBSGFN,DIC="^IBE(363.32,"_DA(1)_",11,",DIC(0)="L",X=IBBR,DIC("P")="363.3211PA" D ^DIC K DIC,DIE S IBCNT=IBCNT+1
  1. ;
  1. SGBRQ S IBA(1)=" >> "_IBCNT_" Billing Rates added to Special Groups (363.32)..."
  1. D MES^XPDUTL(.IBA)
  1. Q
  1. ;
  1. RVACT ; activate (30) Revenue Codes exported in RV-CPT links (399.2,2)
  1. N IBA,IBLN,IBI,IBRVFN,IBACT,IBCNT,IBJ,DD,DO,DIC,DIE,DA,DR,X,Y S IBCNT=0,IBACT=""
  1. ;
  1. S IBLN=$P($T(RVF+1),";;",2)
  1. ;
  1. F IBI=1:1 S IBRVFN=$P(IBLN,",",IBI) Q:'IBRVFN D
  1. . ;
  1. . I +$P($G(^DGCR(399.2,IBRVFN,0)),U,3) Q
  1. . ;
  1. . S IBACT=IBACT_IBRVFN_","
  1. . S IBCNT=IBCNT+1,DR="2////1",DIE="^DGCR(399.2,",DA=+IBRVFN D ^DIE K DIE,DA,DR,X,Y
  1. ;
  1. I IBCNT>0 S IBJ=0 F IBI=1:15 S IBJ=IBJ+15 S IBLN=$P(IBACT,",",IBI,IBJ) Q:IBLN="" D MSG(" "_IBLN)
  1. ;
  1. RVAQ S IBA(1)=" >> "_IBCNT_" Revenue Codes activated (399.2)..."
  1. D MES^XPDUTL(.IBA)
  1. Q
  1. ;
  1. MCCRUTL(X,P) ; returns IFN of item in 399.1 if Name is found and piece P is true
  1. N IBX,IBY S IBY=""
  1. 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
  1. Q IBY
  1. ;
  1. MSG(X) ;
  1. N IBX S IBX=$O(IBA(999999),-1) S:'IBX IBX=1 S IBX=IBX+1
  1. S IBA(IBX)=$G(X)
  1. Q
  1. ;
  1. RVF ; Revenue Codes to (59) Activate (399.2,2)
  1. ;;301,302,305,306,307,309,310,311,312,320,322,323,324,333,341,342,351,352,359,360,362,370,401,402,403,404,410,413,420,430,440,441,450,460,470,471,480,481,482,610,636,730,731,740,750,761,901,910,914,915,916,918,920,921,922,924,943,
  1. ;;