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