| 1 | IBCONS3 ;ALB/AAS - NSC W/INSURANCE OUTPUT, TRACKING INTEFACE ; 21-OCT-93
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**19,36,91,120**;21-MAR-94
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | TRACK ; -- Claims tracking interface for patients with insurance reports.
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  I $D(ZTQUEUED),$$S^%ZTLOAD S (ZTSTOP,IBQUIT)=1
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  N IBNO,IBTRN,IBXX
 | 
|---|
| 9 |  S IBRMARK=""
 | 
|---|
| 10 |  ; -- if there get reason not billable
 | 
|---|
| 11 |  I IBINPT D  ;look for inpatient tracking records
 | 
|---|
| 12 |  .Q:'$G(IBADMVT)
 | 
|---|
| 13 |  .S IBTRN=$O(^IBT(356,"AD",+IBADMVT,0))
 | 
|---|
| 14 |  .Q:'$G(IBTRN)
 | 
|---|
| 15 |  .S IBRMARK=$$RMARK(IBTRN)
 | 
|---|
| 16 |  .Q
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  I 'IBINPT D  ;look for outpatient tracking records
 | 
|---|
| 19 |  .I $G(IBOE) S IBTRN=$O(^IBT(356,"ASCE",+IBOE,0))
 | 
|---|
| 20 |  .;Patch 36 if assoc stop code link to primary encounter IBOE
 | 
|---|
| 21 |  .I '$G(IBTRN) S IBXX=$$SCE^IBSDU(+IBOE,6) S:IBXX IBTRN=$O(^IBT(356,"ASCE",+IBXX,0))
 | 
|---|
| 22 |  .I $P($G(IBOE(1)),U,2),'($G(IBTRN)) N X,IBTMP F IBNO=1:1 Q:$G(IBOE(IBNO))=""  F X=1:1 Q:($P(IBOE(IBNO),U,X)="")!($G(IBTRN))  D
 | 
|---|
| 23 |  ..S IBTMP=$P(IBOE(IBNO),U,X)
 | 
|---|
| 24 |  ..I $O(^IBT(356,"ASCE",+IBTMP,0)) S IBTRN=$O(^IBT(356,"ASCE",+IBTMP,0)) Q
 | 
|---|
| 25 |  .I '$G(IBTRN) D
 | 
|---|
| 26 |  ..N IBETYP S IBETYP=+$O(^IBE(356.6,"B","OUTPATIENT VISIT",0))
 | 
|---|
| 27 |  ..S X=$O(^IBT(356,"APTY",DFN,IBETYP,($P(I,".")-.0000001))) S:$P(X,".")=$P(I,".") IBTRN=$O(^(X,0))
 | 
|---|
| 28 |  .Q:'$G(IBTRN)
 | 
|---|
| 29 |  .S IBRMARK=$$RMARK(IBTRN)
 | 
|---|
| 30 |  .Q
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ; -- if not in ct and parameter set to add, add to ct. (INPT ONLY P120)
 | 
|---|
| 33 |  I IBINPT,'$G(IBTRN),$P(IBTRKR,"^",23) D ADD
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 | TRACKQ Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | ADD ; -- if not there see if should add
 | 
|---|
| 38 |  ;    if inpatient, not before ct start date, inpt tracking on
 | 
|---|
| 39 |  I IBINPT,I'<+IBTRKR,$P(IBTRKR,"^",2) D
 | 
|---|
| 40 |  .;
 | 
|---|
| 41 |  .Q:'$G(IBADMVT)
 | 
|---|
| 42 |  .N I,J,X,Y,DA,DR,DIE,DIC,IBETYP,IBADMDT,IBTRN
 | 
|---|
| 43 |  .S IBADMDT=$P(^DGPM(IBADMVT,0),"^")
 | 
|---|
| 44 |  .S IBETYP=+$O(^IBE(356.6,"B","INPATIENT ADMISSION",0))
 | 
|---|
| 45 |  .S IBTRN=$O(^IBT(356,"ASCH",+$$SCH^IBTRKR2(IBADMVT),0))
 | 
|---|
| 46 |  .D:'IBTRN ADDT^IBTUTL
 | 
|---|
| 47 |  .I IBTRN<1 Q
 | 
|---|
| 48 |  .S DA=IBTRN,DIE="^IBT(356,"
 | 
|---|
| 49 |  .L +^IBT(356,+IBTRN):10 I '$T Q
 | 
|---|
| 50 |  .S DR=$$ADMDR^IBTUTL(IBADMDT,IBETYP,IBADMVT,0)
 | 
|---|
| 51 |  .D ^DIE
 | 
|---|
| 52 |  .L -^IBT(356,+IBTRN)
 | 
|---|
| 53 |  .Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  ; patch 120, removed add opt to CT from here to call tracker routine to add opt CT entries so will get all the non-billable checks
 | 
|---|
| 56 | ADDQ Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | RMARK(IBTRN) ; -- returns external reason not billable
 | 
|---|
| 59 |  Q $P($G(^IBE(356.8,+$P($G(^IBT(356,+$G(IBTRN),0)),"^",19),0)),"^")
 | 
|---|