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

IBOTR3.m

Go to the documentation of this file.
  1. IBOTR3 ;ALB/CPM - INSURANCE PAYMENT TREND REPORT - OUTPUT ; 5-JUN-91
  1. ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
  1. ;
  1. ;MAP TO DGCROTR3
  1. ;
  1. S (IBQUIT,IBPAG)=0,IBLINE="",$P(IBLINE,"-",IOM)="",Y=DT D D^DIQ S IBTDT=Y
  1. I $D(IBAF) D ADDFLD^IBOTR4
  1. I '$D(^TMP($J,"IBOTR")) D S IBCALC=3 D PAUSE G END
  1. . S IBX=$S("bB"'[IBBRT:IBBRT,IBBRN="C":"A",1:"I")
  1. . D HDR W !!," NO INFORMATION MATCHES SELECTION CRITERIA."
  1. ;
  1. S IBX="" F S IBX=$O(^TMP($J,"IBOTR",IBX)) Q:IBX="" S IBTT="0^0^0^0" D HDR Q:IBQUIT D INS Q:IBQUIT
  1. END K ^TMP($J),IBQUIT,IBINS,IBPAG,IBLINE,IBTDT,IBX,IBTT,IBTI,IBCALC,IBBN,IBD,X,X1,X2,IBAFT,IBI
  1. Q
  1. ;
  1. INS ; Loop through each Insurance company.
  1. S IBINS="" F S IBINS=$O(^TMP($J,"IBOTR",IBX,IBINS)) Q:IBINS="" S IBTI="0^0^0^0" D BILLNO Q:IBQUIT
  1. D:'IBQUIT GTOT^IBOTR4 ; Write grand totals for Inpt/Outpt report.
  1. Q
  1. ;
  1. BILLNO ; Loop through all bills for an Insurance company.
  1. I $Y>(IOSL-11) S IBCALC=11 D PAUSE Q:IBQUIT D HDR Q:IBQUIT
  1. D INSADD S IBBN=""
  1. F S IBBN=$O(^TMP($J,"IBOTR",IBX,IBINS,IBBN)) Q:IBBN="" S IBD=^(IBBN) D DETAIL Q:IBQUIT
  1. D:'IBQUIT SUBTOT^IBOTR4 ; Write sub-totals for each insurance company.
  1. Q
  1. ;
  1. DETAIL ; Write out detail lines.
  1. N IBPEN S IBPEN=$S($P(IBBN,"@@",2)["*":0,1:$P(IBD,"^",6)-$P(IBD,"^",7))
  1. I $Y>(IOSL-3) S IBCALC=3 D PAUSE Q:IBQUIT D HDR Q:IBQUIT D INSADD
  1. W !,$P(IBBN,"@@",2),?10,$P(IBBN,"@@"),?34,$$DATE($P(IBD,"^",2)),?44,$$DATE($P(IBD,"^",3))
  1. W ?54,$$DATE($P(IBD,"^",4)),?64,$$DATE($P(IBD,"^",5))
  1. S X1=$P(IBD,"^",5),X2=$P(IBD,"^",4) D ^%DTC W ?75,$J(X,4)
  1. W ?80,$J($P(IBD,"^",6),9,2),?90,$J($P(IBD,"^",7),9,2)
  1. W ?101,$J($P(IBD,"^",6)-$P(IBD,"^",7),9,2),?111,$J(IBPEN,9,2)
  1. W ?123,$J($S(+$P(IBD,"^",6)=0:0,1:$P(IBD,"^",7)/$P(IBD,"^",6)*100),6,2)
  1. S $P(IBTI,"^")=$P(IBTI,"^")+1,$P(IBTI,"^",2)=$P(IBTI,"^",2)+$P(IBD,"^",6),$P(IBTI,"^",3)=$P(IBTI,"^",3)+$P(IBD,"^",7),$P(IBTI,"^",4)=$P(IBTI,"^",4)+IBPEN
  1. S $P(IBTT,"^")=$P(IBTT,"^")+1,$P(IBTT,"^",2)=$P(IBTT,"^",2)+$P(IBD,"^",6),$P(IBTT,"^",3)=$P(IBTT,"^",3)+$P(IBD,"^",7),$P(IBTT,"^",4)=$P(IBTT,"^",4)+IBPEN
  1. Q
  1. ;
  1. HDR ; Print the report header.
  1. S IBPAG=IBPAG+1 W:$E(IOST,1,2)["C-"!(IBPAG>1) @IOF W IBRTN," PAYMENT TREND REPORT -- "
  1. W $S(IBX="I":"INPATIENT",IBX="O":"OUTPATIENT",1:"COMBINED INPATIENT AND OUTPATIENT")," BILLING"
  1. W ?105,IBTDT," PAGE: ",IBPAG
  1. W !?6,IBDFN,": ",$$DATE(IBBDT)," - ",$$DATE(IBEDT),?57,"Note: '*' after the Bill Number denotes a CLOSED bill"
  1. W:$D(IBAF) !?6,IBAFT
  1. W !,"BILL",?10,"PATIENT",?55,"DATE",?64,"DATE BILL",?76,"#"
  1. W ?82,"AMOUNT",?91,"AMOUNT",?103,"AMOUNT",?112,"AMOUNT",?122,"PERCENT"
  1. W !,"NUMBER",?10,"NAME/ (AGE)",?34,"BILL FROM - TO",?54,"PRINTED"
  1. W ?65,"CLOSED",?75,"DAYS",?82,"BILLED",?90,"COLLECTED",?103,"UNPAID"
  1. W ?112,"PENDING",?122,"COLLECTED",!,IBLINE
  1. S IBQUIT=$$STOP^IBOUTL("Trend Report")
  1. Q
  1. ;
  1. DATE(IBX) S:IBX]"" IBX=$E(IBX,4,5)_"/"_$E(IBX,6,7)_"/"_$E(IBX,2,3) Q IBX
  1. ;
  1. PAUSE Q:$E(IOST,1,2)'="C-"
  1. F IBI=$Y:1:(IOSL-IBCALC) W !
  1. S DIR(0)="E" D ^DIR K DIR I $D(DIRUT)!($D(DUOUT)) S IBQUIT=1 K DIRUT,DTOUT,DUOUT
  1. Q
  1. ;
  1. INSADD ; Display Insurance Company name and address. Input: IBINS
  1. N D,IEN
  1. W !!?8,"PRIMARY INSURANCE CARRIER: ",$P(IBINS,"@@")
  1. S IEN=$P(IBINS,"@@",2) G:'IEN INSADDQ
  1. S D=$G(^DIC(36,IEN,.11)) G:D="" INSADDQ
  1. W:$P(D,"^")]"" !?36,$P(D,"^")
  1. W:$P(D,"^",2)]"" !?36,$P(D,"^",2)
  1. W:$P(D,"^",3)]"" !?36,$P(D,"^",3)
  1. W:$P(D,"^")]""!($P(D,"^",2)]"")!($P(D,"^",3)]"") !?36
  1. W $P(D,"^",4) W:$P(D,"^",4)]""&($P(D,"^",5)]"") ", "
  1. W $P($G(^DIC(5,+$P(D,"^",5),0)),"^")
  1. W:$P(D,"^",6)]""&($P(D,"^",4)]""!($P(D,"^",5)]"")) " "
  1. W $P(D,"^",6)
  1. INSADDQ W ! Q