| 1 | IBCRLN ;ALB/ARH - RATES: DISPLAY PROVIDER DISCOUNT ; 10-OCT-1998
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**106,148**;21-MAR-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | EN ; -- main entry point for IBCR PROVIDER DISCOUNT
 | 
|---|
| 6 |  D EN^VALM("IBCR PROVIDER DISCOUNT")
 | 
|---|
| 7 |  Q
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | HDR ; -- header code
 | 
|---|
| 10 |  S VALMHDR(1)="Provider Discounts for "_$P($G(^IBE(363.32,+$G(IBSGFN),0)),U,1)_" Group."
 | 
|---|
| 11 |  Q
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 | INIT ; -- init variables and list array
 | 
|---|
| 14 |  K ^TMP("IBCRLN",$J),^TMP("IBCRLNX1",$J)
 | 
|---|
| 15 |  I '$G(IBSGFN) S IBSGFN=$$GETSG^IBCRU1(2) I IBSGFN'>0 S VALMQUIT="" Q
 | 
|---|
| 16 |  D BLD
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | HELP ; -- help code
 | 
|---|
| 20 |  S X="?" D DISP^XQORM1 W !!
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 | EXIT ; -- exit code
 | 
|---|
| 24 |  K ^TMP("IBCRLN",$J),^TMP("IBCRLNX1",$J)
 | 
|---|
| 25 |  D CLEAR^VALM1,CLEAN^VALM10
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | BLD ; build charge set display array
 | 
|---|
| 29 |  N IBPDN,IBPDFN,IBPD0,IBPCVA,IBPCFN,IBPC,IBX,IBY,IBZ S VALMCNT=0 K ^TMP($J,"IBCRLN")
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  D SORT
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  ; create LM display array
 | 
|---|
| 34 |  S IBPDN="" F  S IBPDN=$O(^TMP($J,"IBCRLN",IBPDN)) Q:IBPDN=""  D
 | 
|---|
| 35 |  . ;
 | 
|---|
| 36 |  . S IBPDFN=+$G(^TMP($J,"IBCRLN",IBPDN)),IBPD0=$G(^IBE(363.34,+IBPDFN,0)) I $P(IBPD0,U,2)'=+$G(IBSGFN) Q
 | 
|---|
| 37 |  . ;
 | 
|---|
| 38 |  . D SET("",IBPDFN) S IBY="        Provider Type: "_$P(IBPD0,U,1)
 | 
|---|
| 39 |  . D SET(IBY) D CNTRL^VALM10(VALMCNT,1,80,IOINHI,IOINORM) D SET("")
 | 
|---|
| 40 |  . ;
 | 
|---|
| 41 |  . S IBY=""
 | 
|---|
| 42 |  . S IBZ=$P(IBPD0,U,3) I IBZ'="" S IBX=$J(IBZ,3)_"%",IBY=$$SETFLD^VALM1(IBX,IBY,"PCNT")
 | 
|---|
| 43 |  . ;
 | 
|---|
| 44 |  . I '$O(^IBE(363.34,+IBPDFN,11,0)) S IBX="No Person Class Assigned",IBY=$$SETFLD^VALM1(IBX,IBY,"PRVPC") D SET(IBY) S IBY=""
 | 
|---|
| 45 |  . ;
 | 
|---|
| 46 |  . S IBPCVA="" F  S IBPCVA=$O(^TMP($J,"IBCRLN",IBPDN,IBPCVA)) Q:IBPCVA=""  D
 | 
|---|
| 47 |  .. ;
 | 
|---|
| 48 |  .. S IBPCFN=+$G(^TMP($J,"IBCRLN",IBPDN,IBPCVA)) Q:'IBPCFN
 | 
|---|
| 49 |  .. S IBPC=$$CODE2TXT^XUA4A72(+IBPCFN)
 | 
|---|
| 50 |  .. I $P(IBPC,U,1)'="" S IBX=IBPCVA_"  "_$P(IBPC,U,1),IBY=$$SETFLD^VALM1(IBX,IBY,"PRVPC") D SET(IBY) S IBY=""
 | 
|---|
| 51 |  .. I $P(IBPC,U,2)'="" S IBX="             "_$P(IBPC,U,2),IBY=$$SETFLD^VALM1(IBX,IBY,"PRVPC") D SET(IBY) S IBY=""
 | 
|---|
| 52 |  .. I $P(IBPC,U,3)'="" S IBX="                 "_$P(IBPC,U,3),IBY=$$SETFLD^VALM1(IBX,IBY,"PRVPC") D SET(IBY) S IBY=""
 | 
|---|
| 53 |  . I IBY'="" D SET(IBY) S IBY=""
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  I VALMCNT=0 D SET(" "),SET("No Provider Discounts for this Group")
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  K ^TMP($J,"IBCRLN")
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | SET(X,PDFN) ; set up list manager screen array
 | 
|---|
| 62 |  S VALMCNT=VALMCNT+1
 | 
|---|
| 63 |  S ^TMP("IBCRLN",$J,VALMCNT,0)=X
 | 
|---|
| 64 |  I +$G(PDFN) S ^TMP("IBCRLNX1",$J,+PDFN)=VALMCNT
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 | SORT ; sort the provider discount group by Provider Type then VA Code (IBSGFN expected)
 | 
|---|
| 68 |  N IBPDFN,IBPD0,IBPDN,IBPCFN,IBPCVA
 | 
|---|
| 69 |  S IBPDFN=0 F  S IBPDFN=$O(^IBE(363.34,IBPDFN)) Q:'IBPDFN  D
 | 
|---|
| 70 |  . S IBPD0=$G(^IBE(363.34,IBPDFN,0)),IBPDN=$P(IBPD0,U,1)_" " I $P(IBPD0,U,2)'=+$G(IBSGFN) Q
 | 
|---|
| 71 |  . S ^TMP($J,"IBCRLN",IBPDN)=IBPDFN
 | 
|---|
| 72 |  . S IBPCFN=0 F  S IBPCFN=$O(^IBE(363.34,IBPDFN,11,"B",IBPCFN)) Q:'IBPCFN  D
 | 
|---|
| 73 |  .. S IBPCVA=$$IEN2CODE^XUA4A72(IBPCFN)_" "
 | 
|---|
| 74 |  .. S ^TMP($J,"IBCRLN",IBPDN,IBPCVA)=IBPCFN
 | 
|---|
| 75 |  Q
 | 
|---|