| [613] | 1 | IBTRE6 ;ALB/AAS - CLAIMS TRACKING OUTPUT CLIN DATA ;2-SEP-1993 | 
|---|
|  | 2 | ;;2.0;INTEGRATED BILLING;**210**;21-MAR-94 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | ADMDIAG(IBTRN) ; -- output admitting diagnosis (inpatient) | 
|---|
|  | 6 | ; | 
|---|
|  | 7 | N IBRES,IBDX,X | 
|---|
|  | 8 | S IBRES="" | 
|---|
|  | 9 | I '$G(IBTRN) G ADMDQ | 
|---|
|  | 10 | S IBETYP=$$TRTP^IBTRE1(IBTRN) I IBETYP>1 G ADMDQ | 
|---|
|  | 11 | S IBDX=+$O(^IBT(356.9,"ADG",+$P(^IBT(356,+IBTRN,0),"^",5),0)) | 
|---|
|  | 12 | I $D(VAIN(9)) S IBRES=VAIN(9) G ADMDQ | 
|---|
|  | 13 | N VAIN,VAINDT,VA200 | 
|---|
|  | 14 | S VAINDT=$P($G(^IBT(356,+IBTRN,0)),U,6) | 
|---|
|  | 15 | S VA200="" D INP^VADPT | 
|---|
|  | 16 | S IBRES=VAIN(9) | 
|---|
|  | 17 | ADMDQ Q IBRES | 
|---|
|  | 18 | ; | 
|---|
|  | 19 | PDIAG(IBTRN) ; -- return primary diagnosis (inpatient) | 
|---|
|  | 20 | N IBRES,IBDX | 
|---|
|  | 21 | S IBRES="" | 
|---|
|  | 22 | I '$G(IBTRN) G PDIAGQ | 
|---|
|  | 23 | S IBDX=+$G(^IBT(356.9,+$O(^IBT(356.9,"ATP",+$P(^IBT(356,+IBTRN,0),"^",5),1,0)),0)) | 
|---|
|  | 24 | S IBRES=$$DIAG(IBDX,1,$$TRNDATE^IBACSV(IBTRN)) | 
|---|
|  | 25 | PDIAGQ Q IBRES | 
|---|
|  | 26 | ; | 
|---|
|  | 27 | SDIAG ; -- return secondary diagnosis (inpatient | 
|---|
|  | 28 | Q | 
|---|
|  | 29 | ; | 
|---|
|  | 30 | ODIAG ; -- return outpatient diagnosis | 
|---|
|  | 31 | Q | 
|---|
|  | 32 | ; | 
|---|
|  | 33 | DIAG(IBDX,IBTXT,IBDT) ; -- Expand diagnosis from pointer | 
|---|
|  | 34 | ; -- input IBDX  = pointer to diag | 
|---|
|  | 35 | ;          IBTXT = if want text added (zero = number only) | 
|---|
|  | 36 | N IBRES,IBZ | 
|---|
|  | 37 | I '$G(IBDX) Q "" | 
|---|
|  | 38 | S IBZ=$$ICD9^IBACSV(+IBDX,$G(IBDT)) I IBZ="" Q "" | 
|---|
|  | 39 | S IBRES=$P(IBZ,U) | 
|---|
|  | 40 | I $G(IBTXT) S IBRES=IBRES_" - "_$P(IBZ,U,3) | 
|---|
|  | 41 | Q IBRES | 
|---|
|  | 42 | ; | 
|---|
|  | 43 | ; | 
|---|
|  | 44 | APROV(IBTRN) ; -- return  provider (inpatient) | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | N X S X="" | 
|---|
|  | 47 | I '$G(IBTRN) G APROVQ | 
|---|
|  | 48 | S X=$O(^IBT(356.94,"ATP",+$P(^IBT(356,+IBTRN,0),"^",5),2,0)) I X S X=$P($G(^IBT(356.94,+X,0)),"^",3) G APROVQ | 
|---|
|  | 49 | S X=+$O(^IBT(356.94,"ATP",+$P(^IBT(356,+IBTRN,0),"^",5),1,0)) I X S X=$P($G(^IBT(356.94,+X,0)),"^",3) G APROVQ | 
|---|
|  | 50 | I $D(VAIN(2)) S X=VAIN(2) I 'X S X=$G(VAIN(11)) | 
|---|
|  | 51 | I '$D(VAIN(2)) D | 
|---|
|  | 52 | .N VAIN,VAINDT | 
|---|
|  | 53 | .S VAINDT=$P(^IBT(356,IBTRN,0),U,6) | 
|---|
|  | 54 | .S VA200="" D INP^VADPT | 
|---|
|  | 55 | .S X=VAIN(2) | 
|---|
|  | 56 | .I 'X S X=VAIN(11) | 
|---|
|  | 57 | APROVQ Q $P($G(^VA(200,+X,0)),"^") | 
|---|
|  | 58 | ; | 
|---|
|  | 59 | ATTEND ; -- return attendings (inpatient) | 
|---|
|  | 60 | Q | 
|---|
|  | 61 | ; | 
|---|
|  | 62 | PROV ; -- return providers (inpatient) | 
|---|
|  | 63 | Q | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | OPROV ; -- returns outpatient providers | 
|---|
|  | 66 | Q | 
|---|
|  | 67 | ; | 
|---|
|  | 68 | PROC(IBPR,IBTXT) ; -- Expand procedure from pointer | 
|---|
|  | 69 | ; input IBPR=proc^^date (format of ^IBT(356.91,IEN,0)) | 
|---|
|  | 70 | ;       IBTXT = if want text added (zero = number only) | 
|---|
|  | 71 | N IBRES,IBZ | 
|---|
|  | 72 | I '$G(Z) S Z=1 ; what is that? | 
|---|
|  | 73 | I '$G(IBPR) Q "" | 
|---|
|  | 74 | S IBZ=$$ICD0^IBACSV(+IBPR,$P(IBPR,U,3)) | 
|---|
|  | 75 | S IBRES=$P(IBZ,U) | 
|---|
|  | 76 | I $G(IBTXT),IBZ'="" S IBRES=IBRES_" - "_$P(IBZ,U,4) | 
|---|
|  | 77 | Q IBRES | 
|---|
|  | 78 | ; | 
|---|
|  | 79 | ; | 
|---|
|  | 80 | OPROC ; -- outpatient procedures | 
|---|
|  | 81 | Q | 
|---|
|  | 82 | ; | 
|---|
|  | 83 | IPROC ; -- inpatient procedures | 
|---|
|  | 84 | Q | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | LISTP(IBTRN,IBXY) ; -- return last y  procedures for a tracking entry | 
|---|
|  | 87 | ; -- input  ibtrn = tracking file pointer | 
|---|
|  | 88 | ; -- output array of procedure by date - ibxy(date)=procedure node | 
|---|
|  | 89 | ; | 
|---|
|  | 90 | N IBDGPM,IBDT,IBDA,IBX,IBCNT | 
|---|
|  | 91 | S (IBX,IBDT)="",IBXY=0 | 
|---|
|  | 92 | I '$G(IBTRN) G LISTPQ | 
|---|
|  | 93 | S IBDGPM=$P($G(^IBT(356,IBTRN,0)),"^",5) | 
|---|
|  | 94 | Q:'IBDGPM | 
|---|
|  | 95 | F  S IBDT=$O(^IBT(356.91,"APP",IBDGPM,IBDT)) Q:'IBDT  S IBDA="" F  S IBDA=$O(^IBT(356.91,"APP",IBDGPM,IBDT,IBDA)) Q:'IBDA  D | 
|---|
|  | 96 | .S IBX(-IBDT,IBDA)=$G(^IBT(356.91,IBDA,0)) | 
|---|
|  | 97 | ; | 
|---|
|  | 98 | S IBDT="" F  S IBDT=$O(IBX(IBDT)) Q:'IBDT  S IBDA=0 F  S IBDA=$O(IBX(IBDT,IBDA)) Q:'IBDA  D | 
|---|
|  | 99 | .S IBXY=IBXY+1 | 
|---|
|  | 100 | .S IBXY(IBXY)=IBX(IBDT,IBDA) | 
|---|
|  | 101 | LISTPQ Q | 
|---|
|  | 102 | ; | 
|---|
|  | 103 | LSTPDG(X,IBDT,Y) ; -- return current diagnosis for a tracking entry | 
|---|
|  | 104 | ; -- input      X = tracking file pointer | 
|---|
|  | 105 | ;            ibdt = date for current diagnosis (null = last) | 
|---|
|  | 106 | ;               y = 1= primary (default) | 
|---|
|  | 107 | ;                   2= secondary | 
|---|
|  | 108 | ; | 
|---|
|  | 109 | N IBY,IBX S (IBY,IBX)="" | 
|---|
|  | 110 | I '$G(X) G LSTPDQ | 
|---|
|  | 111 | S:'$G(IBDT) IBDT=DT S IBDT=-(IBDT+.9) | 
|---|
|  | 112 | S:'$G(Y) Y=1 I Y'=1,Y'=2 S Y=1 | 
|---|
|  | 113 | F  S IBDT=$O(^IBT(356.9,"APD",X,IBDT)) Q:'IBDT!($G(IBY))  S IBDA="" F  S IBDA=$O(^IBT(356.9,"APD",X,IBDT,IBDA)) Q:'IBDA!($G(IBY))  D | 
|---|
|  | 114 | .I $P(^IBT(356.9,IBDA,0),U,4)=Y S IBY=+^(0) | 
|---|
|  | 115 | LSTPDQ Q IBY | 
|---|
|  | 116 | ; | 
|---|
|  | 117 | DTCHK(DA,X) ; -- input transform for 356.94;.01.  date not before admission or after discharge | 
|---|
|  | 118 | N IBTRN,IBOK,IBCDT | 
|---|
|  | 119 | S IBOK=1 | 
|---|
|  | 120 | G:'DA!($G(X)<1) DTCHKQ | 
|---|
|  | 121 | S IBTRN=+$O(^IBT(356,"AD",+$P(^IBT(356.94,DA,0),"^",2),0)) | 
|---|
|  | 122 | G:'IBTRN DTCHKQ | 
|---|
|  | 123 | S IBCDT=$$CDT^IBTODD1(IBTRN) | 
|---|
|  | 124 | I X<$P(+IBCDT,".") S IBOK=0 G DTCHKQ ;before adm | 
|---|
|  | 125 | I $P(IBCDT,"^",2),X>$P(IBCDT,"^",2) S IBOK=0 G DTCHKQ ; after disch | 
|---|
|  | 126 | I X>$$FMADD^XLFDT(DT,7) S IBOK=0 G DTCHKQ | 
|---|
|  | 127 | ; | 
|---|
|  | 128 | DTCHKQ Q IBOK | 
|---|