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

IBTODD1.m

Go to the documentation of this file.
  1. IBTODD1 ;ALB/AAS - CLAIMS TRACKING DENIED DAYS REPORT ; 27-OCT-93
  1. ;;2.0;INTEGRATED BILLING;**32,458**;21-MAR-94;Build 4
  1. ;
  1. % I '$D(DT) D DT^DICRW
  1. PRINT ; -- print data
  1. ; -- ^tmp($j,"ibtodd",event type,primary sort,secondary sort,ibtrc)=DFN ^ attending ^ treating specialty ^ service ^ ^ billing rate
  1. ;
  1. K IBCNT,IBEVNTYP,IBCNTO
  1. ;
  1. S IBEVNTYP=0 F S IBEVNTYP=$O(^TMP($J,"IBTODD",IBEVNTYP)) Q:'IBEVNTYP!(IBQUIT) D
  1. .I 'IBSUM D HDR
  1. .I 'IBSUM,$O(^TMP($J,"IBTODD",IBEVNTYP,""))="" W !!,"No Denials Found in Date Range." Q
  1. .S IBI="",IBISV=""
  1. .F S IBI=$O(^TMP($J,"IBTODD",IBEVNTYP,IBI)) Q:IBI=""!(IBQUIT) D
  1. ..I IBSORT'="P",IBISV'=IBI D SUBT^IBTODD2
  1. ..S IBISV=IBI D SUBH^IBTODD2(IBI) Q:IBQUIT
  1. ..S IBJ="" F S IBJ=$O(^TMP($J,"IBTODD",IBEVNTYP,IBI,IBJ)) Q:IBJ=""!(IBQUIT) D
  1. ...S IBTRC=""
  1. ...F S IBTRC=$O(^TMP($J,"IBTODD",IBEVNTYP,IBI,IBJ,IBTRC)) Q:IBTRC=""!(IBQUIT) S IBDATA=^(IBTRC) D ONE
  1. .I 'IBSUM D SUBT^IBTODD2
  1. ;
  1. I IBQUIT G PRINTQ
  1. D SUM^IBTODD2
  1. ;
  1. PRINTQ Q
  1. ;
  1. ONE ; -- print one entry
  1. ; -- ^tmp($j,"ibtodd",event type,primary sort,secondary sort,ibtrc)=DFN ^ attending ^ treating specialty ^ service ^ ^ billing rate
  1. ;
  1. S IBAPL=$$APPEAL(IBTRC)
  1. D CNTS
  1. S IBTALL=+$P($G(^IBT(356.2,+IBTRC,1)),"^",7) ;entire admission denied
  1. Q:IBSUM
  1. ;
  1. I IOSL<($Y+6) D HDR,SUBH^IBTODD2(IBI)
  1. S DFN=+IBDATA D PID^VADPT
  1. S IBTRCD=$G(^IBT(356.2,+IBTRC,0))
  1. I IBEVNTYP'=1 G LO
  1. ;
  1. L1 W !,$E($P(^DPT(DFN,0),"^"),1,19),?22,VA("BID")
  1. S IBCDT=$$CDT($P(IBTRCD,"^",2))
  1. W ?28,$$DAT1^IBOUTL(+IBCDT\1) W:$P(IBCDT,"^",2) " to"
  1. W ?40,$J($P(IBDATA,"^",2),8)
  1. I IBTALL W ?54,"ALL"
  1. I 'IBTALL W ?54,$$DAT1^IBOUTL($P(IBTRCD,"^",15),"2P") W:$P(IBTRCD,"^",16) " to"
  1. I IBTALL!('$P(IBTRCD,"^",16)) W " (",$P(IBDATA,"^",7),")"
  1. K IBDEN,IBC S IBDEN=0,IBC=0
  1. F S IBDEN=$O(^IBT(356.2,+IBTRC,12,IBDEN)) Q:'IBDEN S IBC=IBC+1,IBC(IBC)=^(IBDEN,0)
  1. W:$G(IBC(1)) ?68,$E($$EXPAND^IBTRE(356.212,.01,+IBC(1)),1,25)
  1. W ?98,$S(+$P(IBAPL,"^",2):"YES",1:"NO")
  1. W ?103,$J(+IBAPL,8)
  1. W ?116,$E($$EXPAND^IBTRE(42.4,3,$P(IBDATA,"^",4)),1,4) W:$P(IBDATA,"^",4)="" "UNKN"
  1. W ?120,$$CHRG(+$P(IBDATA,"^",6))
  1. ;
  1. ;
  1. L2 W !?28,$$DAT1^IBOUTL($P(IBCDT,"^",2)\1,"2P")
  1. W ?54,$$DAT1^IBOUTL($P(IBTRCD,"^",16),"2P")
  1. I 'IBTALL,$P(IBTRCD,"^",16) W " (",$P(IBDATA,"^",7),")"
  1. W ?68,$E($$EXPAND^IBTRE(356.212,.01,$G(IBC(2))),1,25)
  1. ;
  1. I $O(IBC(2)) S IBDEN=2 F S IBDEN=$O(IBC(IBDEN)) Q:'IBDEN W !?70,$E($$EXPAND^IBTRE(356.212,.01,$G(IBC(IBDEN))),1,25)
  1. ONEQ W !
  1. Q
  1. ;
  1. LO ; -- print one line for non-inpatient
  1. W !,$E($P(^DPT(DFN,0),"^"),1,19),?22,VA("BID")
  1. S IBCDT=$P($G(^IBT(356,+$P(IBTRCD,U,2),0)),U,6)
  1. W ?28,$$FMTE^XLFDT(+IBCDT,2)
  1. W ?50,$P(IBTRCD,"^",26)
  1. W ?78,$S(+$P(IBAPL,"^",2):"YES",1:"NO")
  1. W ?88,$S(+IBAPL:"YES",1:"NO")
  1. W ?98,$$CHRG(+$P(IBDATA,"^",6))
  1. Q
  1. ;
  1. ;
  1. CNTS ; -- develop summary data
  1. S IBSERV=$P(IBDATA,"^",4)
  1. I IBSERV="" S IBSERV="UNKNOWN"
  1. S IBSUBT=$G(IBSUBT)+$P(IBDATA,"^",7)
  1. ;
  1. I IBEVNTYP=1 D
  1. .S:'$D(IBCNT(IBSERV)) IBCNT(IBSERV)=""
  1. .S $P(IBCNT(IBSERV),"^")=$P(IBCNT(IBSERV),"^")+$P(IBDATA,"^",7)
  1. .S $P(IBCNT(IBSERV),"^",2)=$P(IBCNT(IBSERV),"^",2)+$P(IBDATA,"^",6)
  1. .S $P(IBCNT(IBSERV),"^",3)=$P(IBCNT(IBSERV),"^",3)+1
  1. .S $P(IBCNT(IBSERV),"^",4)=$P(IBCNT(IBSERV),"^",4)+$G(IBAPL)
  1. .;S:$P(IBCNT(IBSERV),"^",6)<$P(IBDATA,"^",6) $P(IBCNT(IBSERV),"^",6)=$P(IBDATA,"^",6)
  1. .S IBTOTL=$G(IBTOTL)+$P(IBDATA,"^",7)
  1. ;
  1. I IBEVNTYP'=1 D
  1. .S:'$D(IBCNTO(IBSERV)) IBCNTO(IBSERV)=""
  1. .S $P(IBCNTO(IBSERV),"^",2)=$P(IBCNTO(IBSERV),"^",2)+$P(IBDATA,"^",6)
  1. .S $P(IBCNTO(IBSERV),"^",3)=$P(IBCNTO(IBSERV),"^",3)+1
  1. .S $P(IBCNTO(IBSERV),"^",4)=$P(IBCNTO(IBSERV),"^",4)+$P($G(IBAPL),U,2)
  1. .S $P(IBCNTO(IBSERV),"^",5)=$P(IBCNTO(IBSERV),"^",5)+$G(IBAPL)
  1. Q
  1. ;
  1. HDR ; -- Print header for billing report
  1. Q:IBQUIT N IBEVO S IBEVO=$P($G(^IBE(356.6,+IBEVNTYP,0))," ",1)
  1. I $E(IOST,1,2)="C-",IBPAG D PAUSE^VALM1 I $D(DIRUT) S IBQUIT=1 Q
  1. I $E(IOST,1,2)="C-"!(IBPAG) W @IOF
  1. S IBPAG=IBPAG+1
  1. W !,"MCCR/UR DENIED DAYS "_IBEVO_" Denials Dated ",$$FMTE^XLFDT(IBBDT),$S(IBBDT'=IBEDT:" to "_$$FMTE^XLFDT(IBEDT),1:"")," "
  1. W ?(IOM-33),"Page ",IBPAG," ",IBHDT
  1. I $G(IBEVNTYP)'=1 G HDRO
  1. W !!,?28,"Dates of",?54,"Dates",?103,"Days Approved"
  1. W !,"Patient",?22,"PtID",?28,"Care",?40,"Attending",?54,"Denied",?68,"Denial Reason",?94,"Appealed",?105,"on Appeal",?116,"SRVS",?125,"Amount"
  1. W !,$TR($J(" ",IOM)," ","-")
  1. Q
  1. ;
  1. HDRO ; -- Print Header for non-Inpatient denials
  1. W !!,"Patient",?22,"PtID",?28,"Episode Date",?50,"Outpatient Treatment",?75,"Appealed",?85,"Approved",?103,"Amount"
  1. W !,$TR($J(" ",IOM)," ","-")
  1. Q
  1. ;
  1. CDT(IBTRN) ; -- compute dates of care
  1. N X,Y S X=$G(^IBT(356,+IBTRN,0)),Y=""
  1. I $P(X,"^",5) S DGPM=$G(^DGPM($P(X,"^",5),0)) D
  1. .S Y=+DGPM
  1. .I $P(DGPM,"^",17) S Y=Y_"^"_+$G(^DGPM($P(DGPM,"^",17),0))
  1. I 'Y S Y=$P(X,"^",6)
  1. Q Y
  1. ;
  1. APPEAL(IBTRC) ; -- Find appeals
  1. N X,Y,IBAPEAL,IBTRN,IBTRSV S (Y,X)=0
  1. S IBTRSV=IBTRC
  1. S IBTRC=0 F S IBTRC=$O(^IBT(356.2,"AP",+IBTRSV,IBTRC)) Q:'IBTRC S Y=1,X=X+$$AP(IBTRC)
  1. ;
  1. Q X_"^"_Y
  1. ;
  1. AP(IBTRC) ; -- count days approved
  1. N X,Y,Z,AP,EV
  1. S (X,Z)=0
  1. S AP=$G(^IBT(356.2,+IBTRC,0)),EV=+$P($G(^IBT(356,+$P(AP,U,2),0)),U,18)
  1. I EV>1,EV<5,+$P(AP,U,29),+$P(AP,U,29)'=2 S Z=1
  1. I 'Z F S X=$O(^IBT(356.2,+IBTRC,14,X)) Q:'X S Y=$G(^(X,0)),Z=Z+$$FMDIFF^XLFDT($P(Y,"^",2),+Y)+1
  1. Q Z
  1. ;
  1. CHRG(D) ; return charge for output
  1. N X,X2 S X=+$G(D),X2="0$" D COMMA^%DTC
  1. Q X