[613] | 1 | IBCRLM ;ALB/ARH - RATES: DISPLAY REVENUE CODE LINKS ; 10-OCT-1998
|
---|
| 2 | ;;2.0;INTEGRATED BILLING;**106**;21-MAR-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | EN ; -- main entry point for IBCR REVENUE CODE LINK
|
---|
| 6 | D EN^VALM("IBCR REVENUE CODE LINK")
|
---|
| 7 | Q
|
---|
| 8 | ;
|
---|
| 9 | HDR ; -- header code
|
---|
| 10 | I +$G(IBCPT) S VALMHDR(1)="Revenue Codes linked to "_$P($$CPT^ICPTCOD(+IBCPT),U,2)
|
---|
| 11 | I +$G(IBCPT) S VALMSG="* revenue code used on a bill for "_$P($$CPT^ICPTCOD(+IBCPT),U,2)
|
---|
| 12 | Q
|
---|
| 13 | ;
|
---|
| 14 | INIT ; -- init variables and list array
|
---|
| 15 | K ^TMP("IBCRLM",$J)
|
---|
| 16 | I '$G(IBCPT) S IBCPT=$$GETCPT^IBCRU1("",1) I IBCPT'>0 S VALMQUIT="" Q
|
---|
| 17 | D BLD
|
---|
| 18 | Q
|
---|
| 19 | ;
|
---|
| 20 | HELP ; -- help code
|
---|
| 21 | S X="?" D DISP^XQORM1 W !!
|
---|
| 22 | Q
|
---|
| 23 | ;
|
---|
| 24 | EXIT ; -- exit code
|
---|
| 25 | K ^TMP("IBCRLM",$J) D CLEAR^VALM1,CLEAN^VALM10
|
---|
| 26 | Q
|
---|
| 27 | ;
|
---|
| 28 | BLD ; build charge set display array
|
---|
| 29 | N IBRLFN,IBCPT1,IBRL0,IBLABEL,IBBRFN,IBCSFN,IBX,IBY,RVCPTARR,BRCSARR S VALMCNT=0
|
---|
| 30 | ;
|
---|
| 31 | D FNDSRT(+$G(IBCPT),.RVCPTARR,.BRCSARR)
|
---|
| 32 | ;
|
---|
| 33 | ; create LM display array
|
---|
| 34 | S IBCPT1="" F S IBCPT1=$O(RVCPTARR(IBCPT1)) Q:IBCPT1="" D
|
---|
| 35 | . S IBRLFN="" F S IBRLFN=$O(RVCPTARR(IBCPT1,IBRLFN)) Q:IBRLFN="" D
|
---|
| 36 | .. ;
|
---|
| 37 | .. S IBY="",IBRL0=$G(^IBE(363.33,+IBRLFN,0)) Q:IBRL0=""
|
---|
| 38 | .. ;
|
---|
| 39 | .. I $D(BRCSARR(IBRLFN)) S IBX="*",IBY=$$SETFLD^VALM1(IBX,IBY,"USED")
|
---|
| 40 | .. S IBX=$P($$CPT^ICPTCOD(+$P(IBRL0,U,3)),U,2),IBY=$$SETFLD^VALM1(IBX,IBY,"PRC1")
|
---|
| 41 | .. I +$P(IBRL0,U,4) S IBX=$P($$CPT^ICPTCOD(+$P(IBRL0,U,4)),U,2),IBY=$$SETFLD^VALM1(IBX,IBY,"PRC2")
|
---|
| 42 | .. S IBX=$P($G(^DGCR(399.2,+$P(IBRL0,U,1),0)),U,1),IBY=$$SETFLD^VALM1(IBX,IBY,"RVCD")
|
---|
| 43 | .. S IBX=$P($G(^DGCR(399.2,+$P(IBRL0,U,1),0)),U,2),IBY=$$SETFLD^VALM1(IBX,IBY,"RVDS")
|
---|
| 44 | .. S IBX=$P($G(^IBE(363.32,+$P(IBRL0,U,2),0)),U,1),IBY=$$SETFLD^VALM1(IBX,IBY,"SGRP")
|
---|
| 45 | .. D SET(IBY) S IBY=""
|
---|
| 46 | .. ;
|
---|
| 47 | .. S IBLABEL="applied to bills for:"
|
---|
| 48 | .. S IBBRFN=0 F S IBBRFN=$O(BRCSARR(IBRLFN,IBBRFN)) Q:'IBBRFN D
|
---|
| 49 | ... S IBCSFN="" F S IBCSFN=$O(BRCSARR(IBRLFN,IBBRFN,IBCSFN)) Q:IBCSFN="" D Q:'IBCSFN
|
---|
| 50 | .... S IBX=IBLABEL,IBY=$$SETFLD^VALM1(IBX,IBY,"RVDS"),IBLABEL=""
|
---|
| 51 | .... I +IBCSFN S IBX=$P($G(^IBE(363.1,+IBCSFN,0)),U,1),IBY=$$SETFLD^VALM1(IBX,IBY,"SGRP")
|
---|
| 52 | .... I 'IBCSFN S IBX=$P($G(^IBE(363.3,+IBBRFN,0)),U,1),IBY=$$SETFLD^VALM1(IBX,IBY,"SGRP")
|
---|
| 53 | .... D SET(IBY) S IBY=""
|
---|
| 54 | .. ;
|
---|
| 55 | .. S IBY="" D SET(IBY) S IBY=""
|
---|
| 56 | ;
|
---|
| 57 | I VALMCNT=0 D SET(" "),SET("No Revenue Code links for this CPT.")
|
---|
| 58 | Q
|
---|
| 59 | ;
|
---|
| 60 | SET(X) ; set up list manager screen array
|
---|
| 61 | S VALMCNT=VALMCNT+1
|
---|
| 62 | S ^TMP("IBCRLM",$J,VALMCNT,0)=X
|
---|
| 63 | Q
|
---|
| 64 | ;
|
---|
| 65 | FNDSRT(CPT,CPTARR,BRARR) ; find and sort all revenue code links for a CPT
|
---|
| 66 | ; array of all links for a CPT: CPTARR(procedure 1, ifn of rev link) = special group
|
---|
| 67 | ; array of links used on bills: BRARR(ifn of rv link, billing rate, charge set) = special group
|
---|
| 68 | N IBSGFN,IBSG0,IBRLFN,IBCPT1,IBSGFN1,IBSG10,IBX,RLARR K CPTARR,BRARR Q:'$G(CPT)
|
---|
| 69 | ;
|
---|
| 70 | S IBSGFN=0 F S IBSGFN=$O(^IBE(363.32,IBSGFN)) Q:'IBSGFN D
|
---|
| 71 | . S IBSG0=$G(^IBE(363.32,IBSGFN,0)) I $P(IBSG0,U,2)'=1 Q
|
---|
| 72 | . ;
|
---|
| 73 | . ; find all revenue code links for the CPT
|
---|
| 74 | . K RLARR S RLARR=1,IBX=$$GRVLNK^IBCRU6(CPT,IBSGFN,.RLARR) Q:'IBX
|
---|
| 75 | . S IBRLFN=0 F S IBRLFN=$O(RLARR(IBRLFN)) Q:'IBRLFN D
|
---|
| 76 | .. S IBCPT1=$P($G(^IBE(363.33,IBRLFN,0)),U,3)
|
---|
| 77 | .. S CPTARR(IBCPT1,IBRLFN)=IBSGFN
|
---|
| 78 | . ;
|
---|
| 79 | . ; find the primary link to be used on a bill for the billing rates and charge sets
|
---|
| 80 | . S IBSGFN1=0 F S IBSGFN1=$O(^IBE(363.32,IBSGFN,11,IBSGFN1)) Q:'IBSGFN1 D
|
---|
| 81 | .. S IBSG10=$G(^IBE(363.32,IBSGFN,11,IBSGFN1,0))
|
---|
| 82 | .. S IBRLFN=$$RVLNK^IBCRU6(CPT,+$P(IBSG10,U,1),+$P(IBSG10,U,2))
|
---|
| 83 | .. I +IBRLFN S BRARR(+IBRLFN,+$P(IBSG10,U,1),+$P(IBSG10,U,2))=IBSGFN
|
---|
| 84 | ;
|
---|
| 85 | Q
|
---|