| [613] | 1 | IBCRBC3 ;ALB/ARH - RATES: BILL CALCULATION SORT/STORE ;22-MAY-1996
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**52,106,138,51**;21-MAR-94
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 | SORTCI ; process charge array - create new array sorted by bedsection and revenue code
 | 
|---|
 | 6 |  ; if bs, rv cd, unit charge, cpt, div, item type, item ptr and component all match then charge is combined
 | 
|---|
 | 7 |  ; Input:  TMP($J,"IBCRCC",X) = ...  (from IBCRBC2)
 | 
|---|
 | 8 |  ; Output: TMP($J,"IBCRCS",BS,RV CD,Y) = 
 | 
|---|
 | 9 |  ;         RV CD PTR ^ BS PTR ^ UNIT $ ^ UNITS ^ CPT ^ DIV ^ ITEM TYPE ^ ITEM PTR ^ CHARGE COMPONENT
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 |  N IBI,IBLN,IBRVCD,IBBS,IBUNITS,IBCHG,IBCPT,IBDV,IBIT,IBIP,IBCMPT,IBTUNITS,IBK,IBJ,IBX K ^TMP($J,"IBCRCS")
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 |  S IBI=0 F  S IBI=$O(^TMP($J,"IBCRCC",IBI)) Q:'IBI  D
 | 
|---|
 | 14 |  . ;
 | 
|---|
 | 15 |  . S IBLN=^TMP($J,"IBCRCC",IBI)
 | 
|---|
 | 16 |  . S IBRVCD=$P(IBLN,U,6),IBBS=$P(IBLN,U,7),IBCHG=$P(IBLN,U,12),IBUNITS=$P(IBLN,U,13) Q:'IBCHG
 | 
|---|
 | 17 |  . S IBCPT=$P(IBLN,U,14),IBDV=$P(IBLN,U,15),IBIT=$P(IBLN,U,16),IBIP=$P(IBLN,U,17),IBCMPT=$P(IBLN,U,18)
 | 
|---|
 | 18 |  . ;
 | 
|---|
 | 19 |  . S (IBTUNITS,IBK)=0 ; combine like charges
 | 
|---|
 | 20 |  . S IBJ=0 F  S IBJ=$O(^TMP($J,"IBCRCS",+IBBS,+IBRVCD,IBJ)) Q:'IBJ  D  Q:+IBTUNITS
 | 
|---|
 | 21 |  .. S IBK=IBJ,IBX=$G(^TMP($J,"IBCRCS",+IBBS,+IBRVCD,IBJ))
 | 
|---|
 | 22 |  .. I IBCHG=$P(IBX,U,3),IBCPT=$P(IBX,U,5),IBDV=$P(IBX,U,6),IBIT=$P(IBX,U,7),IBIP=$P(IBX,U,8),IBCMPT=$P(IBX,U,9) D
 | 
|---|
 | 23 |  ... S IBTUNITS=$P(IBX,U,4)
 | 
|---|
 | 24 |  . ;
 | 
|---|
 | 25 |  . I 'IBTUNITS S IBK=IBK+1 ; no combination, new line item charge
 | 
|---|
 | 26 |  . S IBTUNITS=IBTUNITS+IBUNITS
 | 
|---|
 | 27 |  . ;
 | 
|---|
 | 28 |  . S ^TMP($J,"IBCRCS",+IBBS,+IBRVCD,IBK)=IBRVCD_U_+IBBS_U_IBCHG_U_IBTUNITS_U_IBCPT_U_IBDV_U_IBIT_U_IBIP_U_IBCMPT
 | 
|---|
 | 29 |  Q
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 |  ;
 | 
|---|
 | 32 | ADDBCHGS(IBIFN) ; store all auto calculated charges: add charges to bill:  sets RC multiple
 | 
|---|
 | 33 |  ; Input: TMP($J,"IBCRCS",BS,RV CD,X) = ... (from SORTCI)
 | 
|---|
 | 34 |  ;
 | 
|---|
 | 35 |  N IBX,IBI,IBJ,IBK,IBLN,IBRVCD,IBBS,IBCHG,IBUNITS,IBAUTOAD,IBCPT,IBDIV,IBITYP,IBIPTR,IBCMPNT,IBRCFN,Z
 | 
|---|
 | 36 |  ;
 | 
|---|
 | 37 |  D DSPHDR
 | 
|---|
 | 38 |  ;
 | 
|---|
 | 39 |  S IBI=0 F  S IBI=$O(^TMP($J,"IBCRCS",IBI)) Q:'IBI  D
 | 
|---|
 | 40 |  . S IBJ=0 F  S IBJ=$O(^TMP($J,"IBCRCS",IBI,IBJ)) Q:'IBJ  D
 | 
|---|
 | 41 |  .. S IBK=0 F  S IBK=$O(^TMP($J,"IBCRCS",IBI,IBJ,IBK)) Q:'IBK  D
 | 
|---|
 | 42 |  ... S IBLN=$G(^TMP($J,"IBCRCS",IBI,IBJ,IBK)) Q:IBLN=""
 | 
|---|
 | 43 |  ... ;
 | 
|---|
 | 44 |  ... ; add charges to RC multiple
 | 
|---|
 | 45 |  ... S IBRVCD=$P(IBLN,U,1),IBBS=$P(IBLN,U,2),IBCHG=$P(IBLN,U,3),IBUNITS=$P(IBLN,U,4),IBAUTOAD=1
 | 
|---|
 | 46 |  ... S IBCPT=$P(IBLN,U,5),IBDIV=$P(IBLN,U,6),IBITYP=$P(IBLN,U,7),IBIPTR=$P(IBLN,U,8),IBCMPNT=$P(IBLN,U,9)
 | 
|---|
 | 47 |  ... ;
 | 
|---|
 | 48 |  ... S IBRCFN=$$ADDRC^IBCRBF(IBIFN,IBRVCD,IBBS,IBCHG,IBUNITS,IBCPT,IBDIV,IBAUTOAD,IBITYP,IBIPTR,IBCMPNT)
 | 
|---|
 | 49 |  ... ;
 | 
|---|
 | 50 |  ... I +IBRCFN D
 | 
|---|
 | 51 |  .... I IBITYP=3,IBIPTR'="" D DEFAULT^IBCSC5C(IBIFN,+IBRCFN)
 | 
|---|
 | 52 |  .... S IBX=IBRVCD_U_IBCHG_U_IBUNITS_U_IBBS_U_IBITYP_U_IBIPTR_U_IBCPT D DSPLN(IBX)
 | 
|---|
 | 53 |  ;
 | 
|---|
 | 54 |  D CLEANRX(IBIFN)
 | 
|---|
 | 55 |  Q
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 | CLEANRX(IBIFN) ; Clean up any procedures left over from deleted Rx entries
 | 
|---|
 | 58 |  N Z,DA,DIK
 | 
|---|
 | 59 |  S Z=0 F  S Z=$O(^TMP("IBCRRX",$J,Z)) Q:'Z  S DA=0 F  S DA=$O(^TMP("IBCRRX",$J,Z,DA)) Q:'DA  S DA(1)=IBIFN,DIK="^DGCR(399,"_DA(1)_",""CP""," D ^DIK
 | 
|---|
 | 60 |  K ^TMP("IBCRRX",$J)
 | 
|---|
 | 61 |  Q
 | 
|---|
 | 62 |  ;
 | 
|---|
 | 63 | DSPDL ;
 | 
|---|
 | 64 |  I $D(ZTQUEUED)!(+$G(IBAUTO)) Q
 | 
|---|
 | 65 |  W !,"Removing old Revenue Codes and Rate Schedules..."
 | 
|---|
 | 66 |  Q
 | 
|---|
 | 67 | DSPHDR ;
 | 
|---|
 | 68 |  I $D(ZTQUEUED)!(+$G(IBAUTO)) Q
 | 
|---|
 | 69 |  W !,"Updating Revenue Codes and Charges"
 | 
|---|
 | 70 |  W !,?9,"Rev Code",?19,"Units",?31,"Charge",?41,"Bedsection"
 | 
|---|
 | 71 |  Q
 | 
|---|
 | 72 | DSPLN(LN) ;
 | 
|---|
 | 73 |  I $D(ZTQUEUED)!(+$G(IBAUTO)) Q
 | 
|---|
 | 74 |  N RVCD,BS,ITM S LN=$G(LN)
 | 
|---|
 | 75 |  S RVCD=$P($G(^DGCR(399.2,+LN,0)),U,1),BS=$$EMUTL^IBCRU1(+$P(LN,U,4)),ITM=$$NAME^IBCSC61($P(LN,U,5),$P(LN,U,6))
 | 
|---|
 | 76 |  I ITM="",$P(LN,U,7) S ITM=$P($$CPT^ICPTCOD(+$P(LN,U,7),DT),U,2)
 | 
|---|
 | 77 |  W !,"Adding",?11,RVCD,?19,$J($P(LN,U,3),3),?28,"$",$J($P(LN,U,2),8,2),?41,$E(BS,U,26),?69,$E(ITM,1,11)
 | 
|---|
 | 78 |  Q
 | 
|---|