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)),"^")
|
---|