| 1 | IBEPTC2 ;ALB/CPM/ARH - TP LIST NON-BILLABLE STOP CODES AND CLINICS ; 05-AUG-93
 | 
|---|
| 2 |  ;;Version 2.0 ; INTEGRATED BILLING ;**55**; 21-MAR-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | EN ; Option entry point - describe output.
 | 
|---|
| 6 |  W !!?5,"This report may be used to generate a list of all clinic stop codes,"
 | 
|---|
| 7 |  W !?5,"and clinics that are non-billable in Third Party Billing or "
 | 
|---|
| 8 |  W !,?5,"that will not have bills created by the Third Party Auto Biller.",!
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ; - grab effective date
 | 
|---|
| 11 |  S %DT="AEX",%DT("A")="Please select the effective date for this list: ",%DT("B")=$$DAT2^IBOUTL(DT)
 | 
|---|
| 12 |  D ^%DT K %DT G:Y<0 ENQ S IBDAT=Y
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ; - select a device
 | 
|---|
| 15 |  S %ZIS="QM" D ^%ZIS G:POP ENQ
 | 
|---|
| 16 |  I $D(IO("Q")) D  G ENQ
 | 
|---|
| 17 |  .S ZTRTN="DQ^IBEPTC2",ZTDESC="LIST NON-BILLABLE STOPS/CLINICS",ZTSAVE("IBDAT")=""
 | 
|---|
| 18 |  .D ^%ZTLOAD W !!,$S($D(ZTSK):"This job has been queued.  The task number is "_ZTSK_".",1:"Unable to queue this job.")
 | 
|---|
| 19 |  .K ZTSK,IO("Q") D HOME^%ZIS
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  U IO
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 | DQ ; Tasked entry point.
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  ; - compile data
 | 
|---|
| 26 |  D ENQ1 F IBI=352.3,352.4 S IBJ=0 F  S IBJ=$O(^IBE(IBI,"AIVDTT2",IBJ)) Q:'IBJ  D
 | 
|---|
| 27 |  . S IBX=$$NBILL(IBI,IBJ,IBDAT)
 | 
|---|
| 28 |  . I +IBX S ^TMP("IBEPTC2",$J,IBI,1,$$VAL(IBI,IBJ)_IBJ)=IBJ Q
 | 
|---|
| 29 |  . I +$P(IBX,U,2) S ^TMP("IBEPTC2",$J,IBI,2,$E($$VAL(IBI,IBJ),1,20)_IBJ)=IBJ
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ; - print results
 | 
|---|
| 32 |  S (IBPAG,IBQ)=0 F IBI=352.3,352.4 D HDR,LST,PAUSE:'IBQ Q:IBQ
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | ENQ I '$D(ZTQUEUED) D ^%ZISC
 | 
|---|
| 35 |  K IBDAT,IBI,IBJ,IBQ,IBT,IBPAG
 | 
|---|
| 36 | ENQ1 K ^TMP("IBEPTC2",$J)
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | HDR ; Generate a report header.
 | 
|---|
| 40 |  I $E(IOST,1,2)="C-"!(IBPAG) W @IOF,*13
 | 
|---|
| 41 |  S IBPAG=IBPAG+1,IBT="LIST OF "_$S(IBI=352.3:"CLINIC STOP CODES",1:"CLINICS")_" FLAGGED FOR THIRD PARTY BILLING"
 | 
|---|
| 42 |  W $$DASH(),!?(80-$L(IBT)\2),IBT,!?33,"As Of: ",$$DAT1^IBOUTL(IBDAT)
 | 
|---|
| 43 |  W !?64,"Page: ",IBPAG,!?60,"Run Date: ",$$DAT1^IBOUTL(DT)
 | 
|---|
| 44 |  W !,$$DASH(),!
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | LST ; List all selected entries.
 | 
|---|
| 48 |  I '$D(^TMP("IBEPTC2",$J,IBI)) W "All ",$S(IBI=352.3:"clinic stop codes",1:"clinics")," are billable and may be auto billed on this date." G LSTQ
 | 
|---|
| 49 |  F IBK=1,2 S IBK1=$S(IBK=1:"NON-BILLABLE",1:"NOT AUTO BILLED") D
 | 
|---|
| 50 |  .W !!,?(80-$L(IBK1)\2),IBK1,!!
 | 
|---|
| 51 |  .I '$D(^TMP("IBEPTC2",$J,IBI,IBK)) W !,"No ",$S(IBI=352.3:"clinic stop codes",1:"clinics")," are flagged as ",IBK1,!
 | 
|---|
| 52 |  .S IBJ="" F  S IBJ=$O(^TMP("IBEPTC2",$J,IBI,IBK,IBJ)) Q:IBJ=""  D  Q:IBQ
 | 
|---|
| 53 |  ..S IBH=+^TMP("IBEPTC2",$J,IBI,IBK,IBJ)
 | 
|---|
| 54 |  ..W:$X>40 ! I $Y>(IOSL-3) D PAUSE Q:IBQ  D HDR
 | 
|---|
| 55 |  ..W:$X>2 ?40 W $$VAL(IBI,IBH)
 | 
|---|
| 56 | LSTQ Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | NBILL(IBF,IBEN,IBD) ; Is the entry not billable as of the effective date?
 | 
|---|
| 59 |  ;  Input:    IBF  --  Base file (#352.3, #352.4)
 | 
|---|
| 60 |  ;           IBEN  --  Internal entry number for entry
 | 
|---|
| 61 |  ;            IBD  --  Effective date for non-billing
 | 
|---|
| 62 |  N Y S Y=0
 | 
|---|
| 63 |  I '$G(IBF)!'$G(IBEN)!'$G(IBD) G NBILLQ
 | 
|---|
| 64 |  I $G(IBF)=352.3 S Y=+$$NBST^IBEFUNC(IBEN,IBDAT)_U_+$$NABST^IBEFUNC(IBEN,IBDAT) G NBILLQ
 | 
|---|
| 65 |  I $G(IBF)=352.4 S Y=+$$NBCT^IBEFUNC(IBEN,IBDAT)_U_+$$NABCT^IBEFUNC(IBEN,IBDAT)
 | 
|---|
| 66 | NBILLQ Q Y
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 | VAL(IBF,IBEN) ; Return the entry name.
 | 
|---|
| 69 |  ;  Input:    IBF  --  Base file (#352.3, #352.4)
 | 
|---|
| 70 |  ;           IBEN  --  Internal entry number for entry
 | 
|---|
| 71 |  ;  Output:    Entry name (#.01 from respective file)
 | 
|---|
| 72 |  N Y S Y="'ENTRY NAME UNKNOWN'"
 | 
|---|
| 73 |  I '$G(IBF)!'$G(IBEN) G VALQ
 | 
|---|
| 74 |  I $G(IBF)=352.3 S Y=$P($G(^DIC(40.7,IBEN,0)),"^") G VALQ
 | 
|---|
| 75 |  I $G(IBF)=352.4 S Y=$P($G(^SC(IBEN,0)),"^")
 | 
|---|
| 76 | VALQ Q Y
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 | DASH() ; Return a dashed line.
 | 
|---|
| 79 |  Q $TR($J("",80)," ","=")
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | PAUSE ; Page break
 | 
|---|
| 82 |  Q:$E(IOST,1,2)'="C-"
 | 
|---|
| 83 |  N IBX,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
 | 
|---|
| 84 |  F IBX=$Y:1:(IOSL-3) W !
 | 
|---|
| 85 |  S DIR(0)="E" D ^DIR I $D(DIRUT)!($D(DUOUT)) S IBQ=1
 | 
|---|
| 86 |  Q
 | 
|---|