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