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