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

IBJDF12.m

Go to the documentation of this file.
  1. IBJDF12 ;ALB/CPM - THIRD PARTY FOLLOW-UP REPORT (PRINT) ;10-JAN-97
  1. ;;2.0;INTEGRATED BILLING;**69,118,128,123,204,205,554,618,663,739**;21-MAR-94;Build 3
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. EN ; - Print the Follow-up report.
  1. S IBQ=0 D NOW^%DTC S IBRUN=$$DAT2^IBOUTL(%)
  1. I 'IBSD D DET(0),PAUSE:'IBQ G ENQ
  1. S IBDIV=0 F S IBDIV=$O(VAUTD(IBDIV)) Q:'IBDIV D DET(IBDIV),PAUSE:'IBQ Q:IBQ
  1. ;
  1. ENQ K IBPAG,IBRUN,IBDIV,IBWIN,IBWPT,IBWDP,IBQ,IBH,IBZ,IBC,IBC1,IBC2,IBCD,%
  1. Q
  1. ;
  1. DET(IBDIV) ; - Print report for a specific division.
  1. ; Input: IBDIV=Pointer to the division in file #40.8
  1. S IBPAG=0
  1. I '$D(^TMP("IBJDF1",$J,IBDIV)) D G DETQ
  1. .S IBSEL=5 D HDR1 I IBQ Q
  1. .W !!,"There are no active receivables "
  1. .I IBSMN W IBSMN,$S(IBSMX>IBSMN:" to "_IBSMX,1:"")," days old "
  1. .I IBDIV W "for this division."
  1. ;
  1. S IBTYP=0 F S IBTYP=$O(^TMP("IBJDF1",$J,IBDIV,IBTYP)) Q:'IBTYP D Q:IBQ
  1. .D HDR1 I IBQ Q
  1. .S IBWIN="" F S IBWIN=$O(^TMP("IBJDF1",$J,IBDIV,IBTYP,IBWIN)) Q:IBWIN="" D Q:IBQ
  1. ..I $Y>(IOSL-5) D PAUSE Q:IBQ D HDR1 Q:IBQ
  1. ..D HDR2
  1. ..S IBWPT="" F S IBWPT=$O(^TMP("IBJDF1",$J,IBDIV,IBTYP,IBWIN,IBWPT)) Q:IBWPT="" D Q:IBQ
  1. ...S (IBH,IBWDP)="" F S IBWDP=$O(^TMP("IBJDF1",$J,IBDIV,IBTYP,IBWIN,IBWPT,IBWDP)) W:IBWDP="" ! Q:IBWDP="" S IBZ=$G(^(IBWDP)) D Q:IBQ
  1. ....I $Y>(IOSL-3) D PAUSE Q:IBQ D HDR1,HDR2 Q:IBQ S IBH=0
  1. ....W ! I 'IBH D WPAT S IBH=1
  1. ....D WBIL Q:IBQ
  1. ....;
  1. ....; - Display bill comment history, if necessary.
  1. ....I IBSH D WCOM Q:IBQ
  1. ;
  1. DETQ Q
  1. ;
  1. DASH(X) ; - Return a dashed line.
  1. Q $TR($J("",X)," ","=")
  1. ;
  1. PAUSE ; - Page break.
  1. I $E(IOST,1,2)'="C-" Q
  1. N IBX,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
  1. F IBX=$Y:1:(IOSL-3) W !
  1. S DIR(0)="E" D ^DIR I $D(DIRUT)!($D(DUOUT)) S IBQ=1
  1. Q
  1. ;
  1. HDR1 ; - Write the primary report header.
  1. I $E(IOST,1,2)="C-"!(IBPAG) W @IOF,*13
  1. S IBPAG=IBPAG+1
  1. W "Third Party Follow-Up Report"_$S(IBSDATE="D":" ( date of care )",1:" ( days in AR )")
  1. I IBDIV W " for ",$P($G(^DG(40.8,IBDIV,0)),U)
  1. W ?88,"Run Date: ",IBRUN,?123,"Page: ",$J(IBPAG,3)
  1. ; IB*2*554/DRF - Add NON-VA to header/IB*2.0*618 Changed to Community Care
  1. W !,"All active ",$S(IBSEL[1:"INPATIENT ",IBTYP[2:"OUTPATIENT ",IBSEL[3:"RX REFILL ",IBSEL[4:"COMMUNITY CARE ",1:""),"receivables "
  1. I IBSMN W IBSMN,$S(IBSMX>IBSMN:" to "_IBSMX,1:"")," days old "
  1. I IBSAM W "with balances of at least $",IBSAM
  1. W !!?37,"Other",?51,"Date",?92,"Original",?103,"Current"
  1. W !,"Patient (Age)",?37,"Carrier",?51,"Prepared",?61,"Bill No.",?73,"Bill Fr. Bill To",?94,"Amount",?103,"Balance",?114,"Subscriber ID" ;IB*2.0*739
  1. W !,$$DASH(IOM)
  1. I IBSRC W !,"Note: '(n)' or '(*)' next to balance means AR was referred to Regional Counsel"
  1. W ! S IBQ=$$STOP^IBOUTL("Third Party Follow-Up Report")
  1. Q
  1. ;
  1. HDR2 ; - Write the insurance company sub-header.
  1. N X,X13 W !?3,"Carrier: ",$P(IBWIN,"@@")
  1. S X=$G(^DIC(36,+$P(IBWIN,"@@",2),.11)),X13=$G(^(.13))
  1. I X]"" D
  1. .W ", ",$P(X,U),", ",$P(X,U,4),", ",$P($G(^DIC(5,+$P(X,U,5),0)),U,2)," ",$P(X,U,6)
  1. .I $P(X13,U,2)]"" W " Billing Phone: ",$P(X13,U,2) Q
  1. .I $P(X13,U)]"" W " Main Phone: ",$P(X13,U)
  1. Q
  1. ;
  1. WPAT ; - Write patient data.
  1. W $P(IBZ,U),?37,$P(IBZ,U,3) ;IB*2.0*739
  1. Q
  1. ;
  1. WBIL ; - Write bill data.
  1. W ?51,$$DAT1^IBOUTL(+IBWDP),?60,$P(IBWDP,"@@",2)
  1. W ?73,$$DAT1^IBOUTL($P(IBZ,U,4)),?82,$$DAT1^IBOUTL($P(IBZ,U,5))
  1. W ?90,$J($P(IBZ,U,6),10,2),?100,$J(+$P(IBZ,U,7),10,2)
  1. I $P($P(IBZ,U,7),"~",2) D
  1. . I $P($P(IBZ,U,7),"~",2)<6 W "(",$P($P(IBZ,U,7),"~",2),")" Q
  1. . W "(*)"
  1. I $P(IBZ,U,8)'=$P(IBZ,U,2) W ?114,$E($P(IBZ,U,8),1,18) ;Only print if ID is not SSN IB*2.0*739
  1. Q
  1. ;
  1. WCOM ; - Write the comments
  1. N CONT,DIWL,DIWR,IBC,IBC1,IBC2,X
  1. ;
  1. S (IBC,CONT)=0,DIWL=1,DIWR=104 K ^UTILITY($J,"W")
  1. F S IBC=$O(^TMP("IBJDF1",$J,IBDIV,IBTYP,IBWIN,IBWPT,IBWDP,IBC)) Q:'IBC D Q:IBQ
  1. . I $Y>(IOSL-4) D PAUSE Q:IBQ D HDR1,HDR2 Q:IBQ W ! D WPAT,WBIL
  1. . S IBC1=""
  1. . F S IBC1=$O(^TMP("IBJDF1",$J,IBDIV,IBTYP,IBWIN,IBWPT,IBWDP,IBC,IBC1)) Q:IBC1="" D Q:IBQ
  1. . . S IBC2=^TMP("IBJDF1",$J,IBDIV,IBTYP,IBWIN,IBWPT,IBWDP,IBC,IBC1)
  1. . . I $Y>(IOSL-4) D WCPB Q:IBQ
  1. . . I 'IBC1 S IBCD=IBC2 D WCD Q
  1. . . S X=IBC2 I $E(X)=" ",$L(X)>1 S $E(X)=""
  1. . . D ^DIWP
  1. . . I 'CONT,$L(IBC2)<66 D WCTXT Q
  1. . . S CONT=$L(IBC2)>65
  1. . . I '$O(^TMP("IBJDF1",$J,IBDIV,IBTYP,IBWIN,IBWPT,IBWDP,IBC,IBC1)) D
  1. . . . D:$D(^UTILITY($J,"W")) WCTXT
  1. K ^UTILITY($J,"W")
  1. Q
  1. ;
  1. WCD ; - Write comment date.
  1. W !?2,"Comment Date: ",$$DAT1^IBOUTL(IBCD)
  1. Q
  1. ;
  1. WCTXT ; - Write comment text
  1. N LIN,WLIN
  1. S LIN=""
  1. F S LIN=$O(^UTILITY($J,"W",1,LIN)) Q:LIN="" D Q:IBQ
  1. . S WLIN=$G(^UTILITY($J,"W",1,LIN,0))
  1. . I $Y>(IOSL-4) D WCPB Q:IBQ
  1. . W:WLIN'="" ?26,WLIN,!
  1. K ^UTILITY($J,"W")
  1. Q
  1. ;
  1. WCPB ; - Page Break in the middle of Comments
  1. ;
  1. D PAUSE Q:IBQ D HDR1,HDR2 Q:IBQ
  1. W ! D WPAT,WBIL D WCD W:IBC1>1 ?26,"(continued)",!
  1. Q
  1. ;
  1. SSN(X) ; - Format the SSN.
  1. Q $S(X]"":$E(X,1,3)_"-"_$E(X,4,5)_"-"_$E(X,6,10),1:"")