Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBCONS3

IBCONS3.m

Go to the documentation of this file.
  1. IBCONS3 ;ALB/AAS - NSC W/INSURANCE OUTPUT, TRACKING INTEFACE ; 21-OCT-93
  1. ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
  1. ;
  1. TRACK ; -- Claims tracking interface for patients with insurance reports.
  1. ;
  1. I $D(ZTQUEUED),$$S^%ZTLOAD S (ZTSTOP,IBQUIT)=1
  1. ;
  1. N IBTRN
  1. S IBRMARK=""
  1. ; -- if there get reason not billable
  1. I IBINPT D ;look for inpatient tracking records
  1. .Q:'$G(IBADMVT)
  1. .S IBTRN=$O(^IBT(356,"AD",+IBADMVT,0))
  1. .Q:'$G(IBTRN)
  1. .S IBRMARK=$$RMARK(IBTRN)
  1. .Q
  1. ;
  1. I 'IBINPT D ;look for outpatient tracking records
  1. .I $G(IBOE) S IBTRN=$O(^IBT(356,"ASCE",+IBOE,0))
  1. .I '$G(IBOE) D
  1. ..S IBETYP=+$O(^IBE(356.6,"B","OUTPATIENT VISIT",0))
  1. ..S X=$O(^IBT(356,"APTY",DFN,IBETYP,($P(I,".")-.0000001))) S:$P(X,".")=$P(I,".") IBTRN=$O(^(X,0))
  1. .Q:'$G(IBTRN)
  1. .S IBRMARK=$$RMARK(IBTRN)
  1. .Q
  1. ;
  1. ; -- if not in ct and parameter set to add, add to ct.
  1. I '$G(IBTRN),$P(IBTRKR,"^",23) D ADD
  1. ;
  1. TRACKQ Q
  1. ;
  1. ADD ; -- if not there see if should add
  1. ; if inpatient, not before ct start date, inpt tracking on
  1. I IBINPT,I'<+IBTRKR,$P(IBTRKR,"^",2) D
  1. .;
  1. .Q:'$G(IBADMVT)
  1. .N I,J,X,Y,DA,DR,DIE,DIC,IBETYP,IBADMDT,IBTRN
  1. .S IBADMDT=$P(^DGPM(IBADMVT,0),"^")
  1. .S IBETYP=+$O(^IBE(356.6,"B","INPATIENT ADMISSION",0))
  1. .S IBTRN=$O(^IBT(356,"ASCH",+$$SCH^IBTRKR2(IBADMVT),0))
  1. .D:'IBTRN ADDT^IBTUTL
  1. .I IBTRN<1 Q
  1. .S DA=IBTRN,DIE="^IBT(356,"
  1. .L +^IBT(356,+IBTRN):10 I '$T Q
  1. .S DR=$$ADMDR^IBTUTL(IBADMDT,IBETYP,IBADMVT,0)
  1. .D ^DIE
  1. .L -^IBT(356,+IBTRN)
  1. .Q
  1. ;
  1. ; -- if outpatient, not before ct start date, opt tracking on
  1. I 'IBINPT,I'<+IBTRKR,$P(IBTRKR,"^",3),I'>$$FMDIFF^XLFDT(DT,-2) D
  1. .;
  1. .N IBTDT S IBTDT=I
  1. .N I,J,X,Y,DA,DR,DIC,DIE,IBETYP,IBTRN
  1. .S IBETYP=+$O(^IBE(356.6,"B","OUTPATIENT VISIT",0))
  1. .;
  1. .; -- if encounter add encounter
  1. .I +$G(IBOE) D Q
  1. ..S X=$P($G(^SCE(+IBOE,0)),"^",6) I X,X'=+IBOE Q
  1. ..D OPT^IBTUTL1(DFN,IBETYP,IBTDT,+IBOE) Q
  1. .;
  1. .S IBTDT=$P(IBTDT,".")
  1. .; -- must not be before encounter is created
  1. .Q:IBTDT>($$FMDIFF^XLFDT(DT,-2))
  1. .;
  1. .; -- see if already entry for same day.
  1. .S X=$O(^IBT(356,"APTY",DFN,IBETYP,(IBTDT-.0000001))) I $P(X,".")=IBTDT Q
  1. .D ADDT^IBTUTL
  1. .S DA=IBTRN,DIE="^IBT(356,"
  1. .I IBTRN<1 Q
  1. .L +^IBT(356,+IBTRN):10 I '$T Q
  1. .S DR=".02////"_$G(DFN)_";.06////"_IBTDT_";.18////"_IBETYP_";.2////1;.24////1;1.01///NOW;1.02////"_DUZ_";.17////"_$$EABD^IBTUTL(IBETYP)
  1. .D ^DIE
  1. .L -^IBT(356,+IBTRN)
  1. .Q
  1. ADDQ Q
  1. ;
  1. RMARK(IBTRN) ; -- returns external reason not billable
  1. Q $P($G(^IBE(356.8,+$P($G(^IBT(356,+$G(IBTRN),0)),"^",19),0)),"^")