1 | IBTUBOA ;ALB/RB - UNBILLED AMOUNTS - GENERATE UNBILLED REPORTS ;01-JAN-01
|
---|
2 | ;;2.0;INTEGRATED BILLING;**19,31,32,91,123,159,192,155,276**;21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | % ; - Entry point from Taskman.
|
---|
6 | ;ARRAY VARIABLES:
|
---|
7 | ; IBAVG("BILLS-I")=number of inpatient institutional claims
|
---|
8 | ; IBAVG("BILLS-P")=number of inpatient professional claims
|
---|
9 | ; IBAVG("EPISD-I")=number of inpt. episodes for institutional claims
|
---|
10 | ; IBAVG("EPISD-P")=number of inpt. episodes for professional claims
|
---|
11 | ; IBAVG("$AMNT-I")=inpatient institutional amount billed
|
---|
12 | ; IBAVG("$AMNT-P")=inpatient professional amount billed
|
---|
13 | ; IBUNB("EPISM-I")=number of inpatient episodes missing inst. claims
|
---|
14 | ; IBUNB("EPISM-P")=number of inpatient episodes missing prof. claims
|
---|
15 | ; IBUNB("EPISM-I-MRA")=number of MRA req inpat institutional claims
|
---|
16 | ; IBUNB("EPISM-P-MRA")=number of MRA req inpat professional claims
|
---|
17 | ; IBUNB("EPISM-A")=number of inpatient admissions missing claims
|
---|
18 | ; (any type: Prof,Inst or both)
|
---|
19 | ; IBUNB("EPISM-A-MRA")=number inpt MRA req admissions missing claims
|
---|
20 | ; (any type: Prof,Inst or both)
|
---|
21 | ; IBUNB("ENCNTRS")=number of outpatient encounters missing claims
|
---|
22 | ; IBUNB("CPTMS-I")=number of CPT codes missing institutional claims
|
---|
23 | ; IBUNB("CPTMS-I-MRA")=number of MRA req CPT codes missing inst claims
|
---|
24 | ; IBUNB("CPTMS-P")=number of CPT codes missing professional claims
|
---|
25 | ; IBUNB("CPTMS-P-MRA")=number of MRA req CPT codes missing prof claims
|
---|
26 | ; IBUNB("PRESCRP")=number of unbilled prescriptions
|
---|
27 | ; IBUNB("PRESCRP-MRA")=number of MRA req prescriptions
|
---|
28 | ; IBUNB("UNBILIP")=unbilled inpatient amount
|
---|
29 | ; IBUNB("UNBILIP-MRA")=MRA req inpatient amount
|
---|
30 | ; IBUNB("UNBILOP")=unbilled outpatient amount
|
---|
31 | ; IBUNB("UNBILOP-MRA")=MRA req outpatient amount
|
---|
32 | ; IBUNB("UNBILRX")=unbilled prescription amount
|
---|
33 | ; IBUNB("UNBILRX-MRA")=MRA req prescription amount
|
---|
34 | ; IBUNB("UNBILTL")=total unbilled amount
|
---|
35 | ; IBUNB("UNBILTL-MRA")=total MRA req amount
|
---|
36 | ;
|
---|
37 | ;ARRAY VARIABLES FOR DM EXTRACT:
|
---|
38 | ; IB(1)=Number of inpatient episodes missing institutional claims
|
---|
39 | ; IB(2)=Amount of inpatient episodes missing institutional claims
|
---|
40 | ; IB(3)=Number of inpatient episodes missing professional claims
|
---|
41 | ; IB(4)=Amount of inpatient episodes missing professional claims
|
---|
42 | ; IB(5)=Number of all inpatient episodes missing claims
|
---|
43 | ; IB(6)=Amount of all inpatient episodes missing claims
|
---|
44 | ; IB(7)=Number of unbilled outpatient encounters prior to 9/1/99
|
---|
45 | ; IB(8)=Amount of unbilled outpatient encounters prior to 9/1/99
|
---|
46 | ; IB(9)=Number of procedures without an institutional charge
|
---|
47 | ; IB(10)=Amount of procedures without an institutional charge
|
---|
48 | ; IB(11)=Number of procedures without a professional charge
|
---|
49 | ; IB(12)=Amount of procedures without a professional charge
|
---|
50 | ; IB(13)=Number of all procedures without a charge
|
---|
51 | ; IB(14)=Number of encounters associated with all procedures without
|
---|
52 | ; a charge
|
---|
53 | ; IB(15)=Number of all encounters missing claims
|
---|
54 | ; IB(16)=Amount of all encounters missing claims
|
---|
55 | ; IB(17)=Number of unbilled prescriptions and refills
|
---|
56 | ; IB(18)=Amount of unbilled prescriptions and refills
|
---|
57 | ; IB(19)=Amount of all unbilled episodes of care
|
---|
58 | ;
|
---|
59 | N IB,IBAMTI,IBAMTP,IBIAV,IBIA,IBNODE,IBOE,IBPA,IBQUERY,IBRX,IBSAV,IBT
|
---|
60 | N IBAMTIM,IBAMTPM,IBTYP,IBX,IBY,DFN,DGPM,I,J
|
---|
61 | ;
|
---|
62 | K ^TMP($J,"IBTUB-INPT"),^TMP($J,"IBTUB-OPT"),^TMP($J,"IBTUB-RX")
|
---|
63 | K ^TMP($J,"IBTUB-INPT_MRA"),^TMP($J,"IBTUB-OPT_MRA"),^TMP($J,"IBTUB-RX_MRA")
|
---|
64 | ;
|
---|
65 | ; - Initialize DM extract variables, if necessary.
|
---|
66 | I $G(IBXTRACT) D E^IBJDE(37,1) F IBX=1:1:19 S IB(IBX)=0
|
---|
67 | ;
|
---|
68 | ; - Initialize Unbilled Amounts variables.
|
---|
69 | S (IBUNB("ENCNTRS"),IBUNB("PRESCRP"),IBUNB("PRESCRP-MRA"))=0
|
---|
70 | F IBX="IP","OP","RX" S IBUNB("UNBIL"_IBX)=0,IBUNB("UNBIL"_IBX_"-MRA")=0
|
---|
71 | F IBX="I","P" S (IBUNB("EPISM-"_IBX),IBUNB("EPISM-"_IBX_"-MRA"),IBUNB("CPTMS-"_IBX),IBUNB("CPTMS-"_IBX_"-MRA"))=0
|
---|
72 | S (IBUNB("EPISM-A"),IBUNB("EPISM-A-MRA"))=0
|
---|
73 | ;
|
---|
74 | ; - Retrieve the Rate Type code for Reimbursable Insurance
|
---|
75 | S IBRT=$S($O(^DGCR(399.3,"B","REIMBURSABLE INS.",0)):$O(^(0)),1:8)
|
---|
76 | ;
|
---|
77 | ; - If Compile/Store - Checks if the Average Bill Amounts exists for
|
---|
78 | ; IBTIMON. If it does not, calls IBTUBAV to calculate/updated it.
|
---|
79 | I $G(IBCOMP) D
|
---|
80 | . I $P($G(^IBE(356.19,IBTIMON,1)),"^",14)'="" Q
|
---|
81 | . ;
|
---|
82 | . ; - DQ^IBTUBAV will kill the variables IBTIMON and IBCOMP - That's why
|
---|
83 | . ; they are being set again after this call.
|
---|
84 | . S IBSAV=IBTIMON D DQ^IBTUBAV S IBTIMON=IBSAV,IBCOMP=1
|
---|
85 | ;
|
---|
86 | PROC ; - Loops through all the entries in the Claims Tracking file for the
|
---|
87 | ; period selected and calculate the Unbilled Amounts
|
---|
88 | S IBDT=IBBDT-.1
|
---|
89 | ;
|
---|
90 | F S IBDT=$O(^IBT(356,"D",IBDT)) Q:'IBDT!(IBDT>IBEDT) D
|
---|
91 | . S IBX=0 F S IBX=$O(^IBT(356,"D",IBDT,IBX)) Q:'IBX D
|
---|
92 | . . S IBNODE=$G(^IBT(356,IBX,0)) Q:IBNODE=""
|
---|
93 | . . I $P(IBNODE,U,12) Q ; Tort-Feasor,Workman's Comp,No-fault Auto Acc.
|
---|
94 | . . I $P(IBNODE,U,19) Q ; Reason not billable assigned.
|
---|
95 | . . I '$P(IBNODE,U,20) Q ; Inactive.
|
---|
96 | . . S DFN=+$P(IBNODE,U,2)
|
---|
97 | . . I '$$PTCHK^IBTUBOU(DFN,IBNODE) Q ; Has a non-veteran eligibility.
|
---|
98 | . . I '$$INSURED^IBCNS1(DFN,IBDT) Q ; Not insured during care.
|
---|
99 | . . I $P(IBNODE,U,5),IBSEL[1,$$COV^IBTUBOU(DFN,IBDT,1) D Q ;Inpatient
|
---|
100 | . . . S DGPM=+$P(IBNODE,U,5) D INPT^IBTUBO2(DGPM)
|
---|
101 | . . I $P(IBNODE,U,4),IBSEL[2,$$COV^IBTUBOU(DFN,IBDT,2) D Q ;Outpatient
|
---|
102 | . . . S IBOE=+$P(IBNODE,U,4) I $$NCCL^IBTUBOU(IBOE) Q ; Non-Count Clinic
|
---|
103 | . . . D OPT^IBTUBO1(IBOE,.IBQUERY)
|
---|
104 | . . I $P(IBNODE,U,8),IBSEL[3,$$COV^IBTUBOU(DFN,IBDT,3) D Q ;Prescription
|
---|
105 | . . . N IBIFN,IBCSTAT S IBIFN=+$P(IBNODE,U,11)
|
---|
106 | . . . I IBIFN S IBCSTAT=$$GET1^DIQ(399,IBIFN_",",.13,"I") Q:$S(IBCSTAT=0:1,IBCSTAT=1:0,IBCSTAT=2:1,IBCSTAT=3:1,IBCSTAT=4:1,IBCSTAT=5:1,IBCSTAT=7:0,1:1) ;already billed (modified in T9)
|
---|
107 | . . . S IBRX=+$P(IBNODE,U,8) D RX^IBTUBO2(IBRX)
|
---|
108 | . . ;
|
---|
109 | . . ; - Check CT entry event type to get unbilled amounts, if necessary.
|
---|
110 | . . S IBTYP=$P($G(^IBE(356.6,+$P(IBNODE,U,18),0)),U,8)
|
---|
111 | . . I IBTYP=1,IBSEL[1,$$COV^IBTUBOU(DFN,IBDT,1) D
|
---|
112 | . . . D INPT^IBTUBO2(+$O(^DGPM("APTT1",DFN,IBDT,0)))
|
---|
113 | . . I IBTYP=2,IBSEL[2,$$COV^IBTUBOU(DFN,IBDT,2) D
|
---|
114 | . . . D OPT^IBTUBO1("",.IBQUERY)
|
---|
115 | ;
|
---|
116 | I $G(IBXTRACT) D XTRACT^IBTUBOU ; Load extract file, if necessary.
|
---|
117 | ;
|
---|
118 | ; - Calculate the Amount Inpatient INST. & PROF. Unbilled Amounts,
|
---|
119 | ; based on average amounts of Billed Amounts
|
---|
120 | S IBIAV=$$INPAVG^IBTUBOU(IBTIMON)
|
---|
121 | S IBAMTI=$P(IBIAV,"^")*IBUNB("EPISM-I") ; Inst
|
---|
122 | S IBAMTIM=$P(IBIAV,"^")*IBUNB("EPISM-I-MRA") ; Inst
|
---|
123 | S IBAMTP=$P(IBIAV,"^",2)*IBUNB("EPISM-P") ; Prof
|
---|
124 | S IBAMTPM=$P(IBIAV,"^",2)*IBUNB("EPISM-P-MRA") ; Prof
|
---|
125 | ;
|
---|
126 | ; - Calculate Unbilled Amounts Totals
|
---|
127 | S IBUNB("UNBILIP")=$J(IBAMTI+IBAMTP,0,2)
|
---|
128 | S IBUNB("UNBILIP-MRA")=$J(IBAMTIM+IBAMTPM,0,2)
|
---|
129 | S IBUNB("UNBILOP")=$J(IBUNB("UNBILOP"),0,2)
|
---|
130 | S IBUNB("UNBILOP-MRA")=$J(IBUNB("UNBILOP-MRA"),0,2)
|
---|
131 | S IBUNB("UNBILRX")=$J(IBUNB("UNBILRX"),0,2)
|
---|
132 | S IBUNB("UNBILRX-MRA")=$J(IBUNB("UNBILRX-MRA"),0,2)
|
---|
133 | S IBUNB("UNBILTL")=$J(IBUNB("UNBILIP")+IBUNB("UNBILOP")+IBUNB("UNBILRX"),0,2)
|
---|
134 | S IBUNB("UNBILTL-MRA")=$J(IBUNB("UNBILIP-MRA")+IBUNB("UNBILOP-MRA")+IBUNB("UNBILRX-MRA"),0,2)
|
---|
135 | ;
|
---|
136 | ; - If Compile/Store - update Unbilled Amounts data on file #356.19
|
---|
137 | I $G(IBCOMP) D LD^IBTUBOU(3,IBTIMON)
|
---|
138 | ;
|
---|
139 | PRT ; - Print report(s).
|
---|
140 | I $G(IBQUERY) D CLOSE^IBSDU(.IBQUERY)
|
---|
141 | D REPORT^IBTUBO3
|
---|
142 | ;
|
---|
143 | END K ^TMP($J,"IBTUB-INPT"),^TMP($J,"IBTUB-OPT"),^TMP($J,"IBTUB-RX")
|
---|
144 | K IBDT,IBRT,IBUNB
|
---|
145 | I $D(ZTQUEUED) S ZTREQ="@" Q
|
---|
146 | D ^%ZISC K IBTEMON,IBXTRACT,D,D0,DA,DIC,DIE
|
---|
147 | Q
|
---|