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