1 | IBCREC ;ALB/ARH - RATES: CM INACTIVATE CPT CHARGE OPTION ; 22-MAY-1996
|
---|
2 | ;;2.0;INTEGRATED BILLING;**52,131**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ENTER ; OPTION ENTRY POINT: inactivate all CPT procedures Charge Items that are currently inactive in the CPT file
|
---|
6 | ;
|
---|
7 | W @IOF W !,?8,"**** INACTIVATE CHARGES FOR ALL CURRENTLY INACTIVE CPTS ****"
|
---|
8 | W !!,?5,"For all Charge Sets based on CPT procedures, this option will add an",!,?5,"Inactive Date to each Charge Item that is a currently Inactive CPT code.",!!
|
---|
9 | ;
|
---|
10 | N DIR,DTOUT,DUOUT,DIRUT,X,Y,IBQUIT K ^TMP($J,"IBCREC")
|
---|
11 | ;
|
---|
12 | S DIR(0)="SO^1:Print List of Active Charges for Inactive CPT's;2:Inactivate Charges for Inactive CPT's"
|
---|
13 | D ^DIR K DIR I +Y<1!$D(DIRUT) Q
|
---|
14 | I +Y=1 D DEV Q:$G(IBQUIT) G RPT
|
---|
15 | ;
|
---|
16 | W !!!,"All charges for currently Inactive CPT codes will become inactive",!,"on the CPT Inactive Date.",!
|
---|
17 | ;
|
---|
18 | S DIR(0)="YO",DIR("A")="Is this correct, do you want to continue" D ^DIR K DIR I Y'=1 W !,"None inactivated",! Q
|
---|
19 | ;
|
---|
20 | I Y=1 W !,"Beginning Inactivations" W !,$$INACTCPT(0)," charges inactivated"
|
---|
21 | Q
|
---|
22 | ;
|
---|
23 | INACTCPT(SAVE) ; inactivate charges for all Inactive CPT codes, all sets checked
|
---|
24 | ; if an active charge for an Inactive CPT, the CPT's inactive date is added as the charges Inactive Date
|
---|
25 | ; if a CPT is inactive before the charges Effective date, that Effective date is added as the Inactive Date
|
---|
26 | ; Input: SAVE - if true, charge items that would be deleted are entered into TMP array for print instead
|
---|
27 | ; Output: returns the count of the charge items inactivated
|
---|
28 | ;
|
---|
29 | N IBCS,IBBI,IBXRF,IBSUB2,IBITM,IBEFDT,IBCIFN,IBCNT,IBINDTCI,IBINDATE,IBX,INDT S IBCNT=0
|
---|
30 | ;
|
---|
31 | S IBCS=0 F S IBCS=$O(^IBE(363.1,IBCS)) Q:'IBCS D
|
---|
32 | . ;
|
---|
33 | . S IBBI=$$CSBI^IBCRU3(IBCS) I +IBBI'=2 Q
|
---|
34 | . S IBXRF="AIVDTS"_+IBCS I '$D(ZTQUEUED),'$D(XPDNM) W "."
|
---|
35 | . I +$G(SAVE) S IBSUB2=$$TMPHDR(IBCS) Q:IBSUB2=""
|
---|
36 | . ;
|
---|
37 | . S IBITM=0 F S IBITM=$O(^IBA(363.2,IBXRF,IBITM)) Q:'IBITM D
|
---|
38 | .. ;
|
---|
39 | .. S IBX=$$CPT^ICPTCOD(IBITM,DT) I +$P(IBX,U,7) Q
|
---|
40 | .. S INDT=$P(IBX,U,6) I 'INDT Q
|
---|
41 | .. ;
|
---|
42 | .. S IBEFDT=-9999999 F S IBEFDT=$O(^IBA(363.2,IBXRF,IBITM,IBEFDT)) Q:'IBEFDT D
|
---|
43 | ... S IBCIFN=0 F S IBCIFN=$O(^IBA(363.2,IBXRF,IBITM,IBEFDT,IBCIFN)) Q:'IBCIFN D
|
---|
44 | .... ;
|
---|
45 | .... S IBINDTCI=$$INACTCI^IBCRU4(IBCIFN) I +IBINDTCI,IBINDTCI<INDT Q
|
---|
46 | .... ;
|
---|
47 | .... S IBINDATE=INDT I -IBEFDT>IBINDATE S IBINDATE=-IBEFDT
|
---|
48 | .... I IBINDATE=$P($G(^IBA(363.2,IBCIFN,0)),U,4) Q
|
---|
49 | .... ;
|
---|
50 | .... S IBCNT=IBCNT+1
|
---|
51 | .... I +$G(SAVE) D TMPLN^IBCROI1(IBCIFN,"IBCREC",IBSUB2,1) Q
|
---|
52 | .... D EDITCI^IBCREF(IBCIFN,"","","",IBINDATE)
|
---|
53 | Q IBCNT
|
---|
54 | ;
|
---|
55 | DATE(X) ;
|
---|
56 | Q $E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3)
|
---|
57 | ;
|
---|
58 | TMPHDR(CS) ; set up array header for printed report
|
---|
59 | N IBHDR,IBSUB2 S IBSUB2="BILLING RATE",IBHDR="Charges for Inactive CPT's"
|
---|
60 | D TMPHDR^IBCROI1("IBCREC",IBSUB2,0,IBHDR,"1^1")
|
---|
61 | Q IBSUB2
|
---|
62 | ;
|
---|
63 | DEV ; get device for printed report
|
---|
64 | S IBQUIT=0 S %ZIS="QM",%ZIS("A")="OUTPUT DEVICE: " D ^%ZIS I POP S IBQUIT=1 Q
|
---|
65 | I $D(IO("Q")) S ZTRTN="RPT^IBCREC",ZTDESC="Charges for Inactive CPT's" D ^%ZTLOAD K IO("Q") S IBQUIT=1
|
---|
66 | Q
|
---|
67 | ;
|
---|
68 | RPT ; print report - entry point for tasked jobs
|
---|
69 | N IBSCRPT,IBCNT S IBSCRPT="IBCREC" K ^TMP($J,"IBCREC")
|
---|
70 | S IBCNT=$$INACTCPT(1)
|
---|
71 | I $D(^TMP($J,"IBCREC")) S $P(^TMP($J,"IBCREC"),U,4)=IBCNT_" Charges for Inactive CPT's"
|
---|
72 | G RPT^IBCROI
|
---|
73 | Q
|
---|