| 1 | IBJDF42 ;ALB/RB - FIRST PARTY FOLLOW-UP REPORT (PRINT);15-APR-00
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**123,204**;21-MAR-94
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ; - Print the Follow-up report.
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  S IBCT(1)="INELIGIBLE",IBCT(2)="EMERG/HUMAN.",IBCT(18)="C MEANS TEST"
 | 
|---|
| 7 |  S IBCT(22)="RX COPAY/SC",IBCT(23)="RX COPAY/NSC"
 | 
|---|
| 8 |  S IBCT(33)="ADHC LTC"
 | 
|---|
| 9 |  S IBCT(34)="DOM LTC"
 | 
|---|
| 10 |  S IBCT(35)="RESPITE INPT LTC"
 | 
|---|
| 11 |  S IBCT(36)="RESPITE OPT LTC"
 | 
|---|
| 12 |  S IBCT(37)="GERIATRIC INPT LTC"
 | 
|---|
| 13 |  S IBCT(38)="GERIATRIC OPT LTC"
 | 
|---|
| 14 |  S IBCT(39)="NURSING HOME LTC"
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  S IBQ=0 D NOW^%DTC S IBRUN=$$DAT2^IBOUTL(%) G:IBRPT="S" SUM
 | 
|---|
| 17 |  S IBPRTFLG=0 D DET D PAUSE:'IBPRTFLG I IBQ!'IBPRTFLG G ENQ
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  D PAUSE I IBQ G ENQ
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 | SUM I 'IBQ D PRT^IBJDF43 ; Print summary.
 | 
|---|
| 22 | ENQ K IB0,IBAI,IBC,IBCAT,IBCD,IBC1,IBC2,IBCT,IBCNT,IBN,IBP,IBPAG,IBQ,IBRUN,IBS
 | 
|---|
| 23 |  K IBST,IBTOT,%,DFN,IBPRTFLG
 | 
|---|
| 24 |  Q
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | DET ; - Print report for a specific category.
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  D HDR1 G:IBQ DETQ
 | 
|---|
| 29 |  S (IBPT,IB,IBCAT,IB0)=""
 | 
|---|
| 30 |  F  S IBPT=$O(^TMP("IBJDF4",$J,IBPT)) Q:IBPT=""  D  Q:IBQ
 | 
|---|
| 31 |  . I $O(^TMP("IBJDF4",$J,IBPT,0))="" Q
 | 
|---|
| 32 |  . S IBP=$G(^TMP("IBJDF4",$J,IBPT))
 | 
|---|
| 33 |  . I $Y>(IOSL-14) D PAUSE Q:IBQ  D HDR1 Q:IBQ
 | 
|---|
| 34 |  . D WPAT
 | 
|---|
| 35 |  . F IB=16,19 D  Q:IBQ
 | 
|---|
| 36 |  . . I IBSTA="A",IB'=16 Q
 | 
|---|
| 37 |  . . I IBSTA="S",IB=16 Q
 | 
|---|
| 38 |  . . I '$D(^TMP("IBJDF4",$J,IBPT,IB)) D  Q
 | 
|---|
| 39 |  . . . I $Y>(IOSL-5) D PAUSE Q:IBQ  D HDR1,WPAT,HDR2 Q:IBQ
 | 
|---|
| 40 |  . . . W !,"-> NO "_$S(IB=16:"ACTIVE",1:"SUSPENDED")_" BILLS."
 | 
|---|
| 41 |  . . I $Y>(IOSL-9) D PAUSE Q:IBQ  D HDR1,WPAT Q:IBQ
 | 
|---|
| 42 |  . . D HDR2
 | 
|---|
| 43 |  . . K IBFLG S IBTOT="",IBCNT=0
 | 
|---|
| 44 |  . . F  S IBCAT=$O(^TMP("IBJDF4",$J,IBPT,IB,IBCAT)) Q:IBCAT=""  D  Q:IBQ
 | 
|---|
| 45 |  . . . F  S IB0=$O(^TMP("IBJDF4",$J,IBPT,IB,IBCAT,IB0)) Q:IB0=""  D  Q:IBQ
 | 
|---|
| 46 |  . . . . S IBN=$G(^TMP("IBJDF4",$J,IBPT,IB,IBCAT,IB0))
 | 
|---|
| 47 |  . . . . I $Y>(IOSL-5) D PAUSE Q:IBQ  D HDR1,WPAT,HDR2 Q:IBQ
 | 
|---|
| 48 |  . . . . D WBIL Q:IBQ
 | 
|---|
| 49 |  . . . . S IBCNT=IBCNT+1
 | 
|---|
| 50 |  . . . I 'IBQ,$O(^TMP("IBJDF4",$J,IBPT,IB,IBCAT))="" D
 | 
|---|
| 51 |  . . . . D TOT W !
 | 
|---|
| 52 |  . . ; - Display bill comment history, if selected.
 | 
|---|
| 53 |  . . S IBPRTFLG=1
 | 
|---|
| 54 |  . . D WCOM(IBPT,IB)
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  I 'IBPRTFLG D
 | 
|---|
| 57 |  . W !!!!!!,"There are no receivables for the parameters entered."
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | DETQ Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | WPAT ; - Write patient data.
 | 
|---|
| 62 |  N I,X
 | 
|---|
| 63 |  S DFN=$P(IBPT,"@@",2),IBAI=$G(^TMP("IBJDF4",$J,IBPT,0,"A"))
 | 
|---|
| 64 |  W !!,"Patient Name     : ",$P(IBP,U) W:IBAI["V" " *"
 | 
|---|
| 65 |  W ?63,"SSN: ",$$SSN($P(IBP,U,2)),!,"Means Test Status: ",$P(IBP,U,4)
 | 
|---|
| 66 |  W:$P(IBP,U,5)'="" " ("_$P(IBP,U,5)_")"
 | 
|---|
| 67 |  W ?58,"Medicaid: ",$$GET1^DIQ(2,DFN,.381)
 | 
|---|
| 68 |  W !,"RX Copay Status  : ",$P(IBP,U,6)
 | 
|---|
| 69 |  W:$P(IBP,U,7)'="" " ("_$P(IBP,U,7)_")"
 | 
|---|
| 70 |  W:$P(IBP,U,8) ?53,"Date of Death: ",$$DAT1^IBOUTL($P(IBP,U,8))
 | 
|---|
| 71 |  W !,"Eligibilities    : " S X=$$ELIG($P(IBP,U,3))
 | 
|---|
| 72 |  F I=1:1 Q:X=""  W ?19,$E(X,1,61) S X=$E(X,62,999) I X'="" W !
 | 
|---|
| 73 |  S X=$$INFO(IBAI)
 | 
|---|
| 74 |  I X'="" D
 | 
|---|
| 75 |  . W !,"Additional Info  : "
 | 
|---|
| 76 |  . F I=1:1 Q:X=""  W ?19,$E(X,1,61) S X=$E(X,62,999) I X'="" W !
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  Q
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 | WBIL ; - Write bill data.
 | 
|---|
| 81 |  W ! W:'$D(IBFLG(IBCAT)) IBCT(IBCAT) W ?13,IB0
 | 
|---|
| 82 |  W:$P(IBN,"^",6) ?25,$J("("_$P(IBN,"^",6)_")",4)
 | 
|---|
| 83 |  W ?30,$$DAT1^IBOUTL(+IBN)
 | 
|---|
| 84 |  W ?39,$J($FN($P(IBN,U,2),",",2),10),?50,$J($FN($P(IBN,U,3),",",2),10)
 | 
|---|
| 85 |  W ?61,$J($FN($P(IBN,U,4),",",2),9),?71,$J($FN($P(IBN,U,5),",",2),9)
 | 
|---|
| 86 |  S $P(IBTOT,"^")=$P(IBTOT,"^")+$P(IBN,U,2)
 | 
|---|
| 87 |  S $P(IBTOT,"^",2)=$P(IBTOT,"^",2)+$P(IBN,U,3)
 | 
|---|
| 88 |  S $P(IBTOT,"^",3)=$P(IBTOT,"^",3)+$P(IBN,U,4)
 | 
|---|
| 89 |  S $P(IBTOT,"^",4)=$P(IBTOT,"^",4)+$P(IBN,U,5)
 | 
|---|
| 90 |  S IBFLG(IBCAT)=""
 | 
|---|
| 91 |  Q
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 | WCOM(IBPT,IB) ; - Write bill comments.
 | 
|---|
| 94 |  N CMDT,CONT,DIWL,DIWR,IBIDX,IBTR,IBLN,IBX,X
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 |  S (IBIDX,IBTR,IBLN)="",DIWL=1,DIWR=64 K ^UTILITY($J,"W")
 | 
|---|
| 97 |  F  S IBIDX=$O(^TMP("IBJDF4",$J,IBPT,0,"C",IB,IBIDX)) Q:IBIDX=""  D  Q:IBQ
 | 
|---|
| 98 |  . I $Y>(IOSL-6) D WCPB Q:IBQ
 | 
|---|
| 99 |  . D WCD(IBIDX)
 | 
|---|
| 100 |  . F  S IBTR=$O(^TMP("IBJDF4",$J,IBPT,0,"C",IB,IBIDX,IBTR)) Q:IBTR=""  D  Q:IBQ
 | 
|---|
| 101 |  . . S CMDT=$G(^TMP("IBJDF4",$J,IBPT,0,"C",IB,IBIDX,IBTR))
 | 
|---|
| 102 |  . . I $Y>(IOSL-4) D WCPB Q:IBQ
 | 
|---|
| 103 |  . . S CONT=0 D WCD(,1,)
 | 
|---|
| 104 |  . . F  S IBLN=$O(^TMP("IBJDF4",$J,IBPT,0,"C",IB,IBIDX,IBTR,IBLN)) Q:IBLN=""  D  Q:IBQ
 | 
|---|
| 105 |  . . . S IBX=$G(^TMP("IBJDF4",$J,IBPT,0,"C",IB,IBIDX,IBTR,IBLN))
 | 
|---|
| 106 |  . . . I $E(IBX)=" ",$L(IBX)>1 S $E(IBX)=""
 | 
|---|
| 107 |  . . . S X=IBX D ^DIWP
 | 
|---|
| 108 |  . . . I 'CONT,$L(IBX)<66 D WCTX
 | 
|---|
| 109 |  . . . S CONT=$L(IBX)>65
 | 
|---|
| 110 |  . . . I '$O(^TMP("IBJDF4",$J,IBPT,0,"C",IB,IBIDX,IBTR,IBLN)) D
 | 
|---|
| 111 |  . . . . D:$D(^UTILITY($J,"W")) WCTX
 | 
|---|
| 112 |  K ^UTILITY($J,"W")
 | 
|---|
| 113 |  Q
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 | WCD(I,D,C) ; - Write the comment date.
 | 
|---|
| 116 |  ; Input: I - Index #         "(I)"
 | 
|---|
| 117 |  ;        D - Print the Date  " - MM/DD/YY"
 | 
|---|
| 118 |  ;        C - Print the Cont. "(Continued)"
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 |  W:$G(I) !,"(",I,")" W:$G(D) ?3," - ",$$DAT1^IBOUTL(CMDT),": "
 | 
|---|
| 121 |  W:$G(C) "(Continued)",!
 | 
|---|
| 122 |  Q
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 | WCTX ; - Write the comment text.
 | 
|---|
| 125 |  N LIN,WLIN,Z
 | 
|---|
| 126 |  S LIN=""
 | 
|---|
| 127 |  F  S LIN=$O(^UTILITY($J,"W",1,LIN)) Q:LIN=""  D  Q:IBQ
 | 
|---|
| 128 |  . S WLIN=$G(^UTILITY($J,"W",1,LIN,0)) Q:WLIN=""
 | 
|---|
| 129 |  . W ?16,WLIN
 | 
|---|
| 130 |  . I '$O(^UTILITY($J,"W",1,LIN)) W ! Q
 | 
|---|
| 131 |  . I $Y>(IOSL-4) D WCPB,WCD(IBIDX,1,1) Q
 | 
|---|
| 132 |  . W !
 | 
|---|
| 133 |  K ^UTILITY($J,"W")
 | 
|---|
| 134 |  Q
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 | WCPB ; - Page Break in the middle of the Comments
 | 
|---|
| 137 |  D PAUSE Q:IBQ  D HDR1,WPAT W !!
 | 
|---|
| 138 |  Q
 | 
|---|
| 139 |  ;
 | 
|---|
| 140 | HDR1 ; - Write the report header.
 | 
|---|
| 141 |  N X,I
 | 
|---|
| 142 |  W:'$G(IBPAG) ! I $E(IOST,1,2)="C-"!$G(IBPAG) W @IOF,*13
 | 
|---|
| 143 |  S IBPAG=$G(IBPAG)+1 W "First Party Follow-Up Report"
 | 
|---|
| 144 |  W ?34,"Run Date: ",IBRUN,?71,"Page: ",$J(IBPAG,3)
 | 
|---|
| 145 |  S X="ALL "_$S(IBSTA'="S":"ACTIVE",1:"")_$S(IBSTA="B":" AND ",1:"")
 | 
|---|
| 146 |  S X=X_$S(IBSTA'="A":"SUSPENDED",1:"")_$$TYPE(IBSEL)_" RECEIVABLES"
 | 
|---|
| 147 |  I IBSMN'="A" S X=X_" OVER "_IBSMN_" AND UNDER "_IBSMX_" DAYS OLD"
 | 
|---|
| 148 |  S X=X_" / BY "_$S(IBSN="N":"NAME",1:"LAST 4 SSN")
 | 
|---|
| 149 |  S X=X_" ("_$S($G(IBSNA)="ALL":"ALL",1:"From "_$S(IBSNF="":"FIRST",1:IBSNF)_" to "_$S(IBSNL="zzzzz":"LAST",1:IBSNL))_")"
 | 
|---|
| 150 |  S X=X_" / "_$S('IBSAM:"NO ",1:"")_"MINIMUM BALANCE"
 | 
|---|
| 151 |  S X=X_$S(IBSAM:": $"_$FN(IBSAM,",",2),1:"")
 | 
|---|
| 152 |  S X=X_" / "_$S('IBSH:"NO ",IBSH1="A":"ALL ",1:"ONLY ")_"COMMENTS"
 | 
|---|
| 153 |  S X=X_$S($G(IBSH2):" LESS THAN "_IBSH2_" DAYS OLD",1:"")
 | 
|---|
| 154 |  S X=X_" / RECEIVABLES REFERRED TO RC "_$S('IBSRC:"NOT ",1:"")_"INCLUDED"
 | 
|---|
| 155 |  F I=1:1 W !,$E(X,1,80) S X=$E(X,81,999) I X="" Q
 | 
|---|
| 156 |  ;
 | 
|---|
| 157 |  S IBQ=$$STOP^IBOUTL("First Party Follow-Up Report")
 | 
|---|
| 158 |  Q
 | 
|---|
| 159 |  ;
 | 
|---|
| 160 | TYPE(SEL) ; Returns a string with the type of receivables (description)
 | 
|---|
| 161 |  ; selected or NULL if ALL receivable type have been selected.
 | 
|---|
| 162 |  ; SEL - User input for the parameter "Type of Receivable"
 | 
|---|
| 163 |  ;
 | 
|---|
| 164 |  N TYPE,I,X
 | 
|---|
| 165 |  I SEL="1,2,3," Q ""
 | 
|---|
| 166 |  S TYPE="",X="EMERGENCY/HUMANITARIAN^INELIGIBLE^C-MEANS TEST & RX COPAY"
 | 
|---|
| 167 |  F I=2:1:($L(SEL,",")-1) D
 | 
|---|
| 168 |  . S TYPE=TYPE_$S(I=($L(SEL,",")-1)&(TYPE'=""):" AND ",1:", ")
 | 
|---|
| 169 |  . S TYPE=TYPE_$P(X,"^",+$P(SEL,",",I))
 | 
|---|
| 170 |  S $E(TYPE,1)=""
 | 
|---|
| 171 |  ;
 | 
|---|
| 172 |  Q TYPE
 | 
|---|
| 173 |  ;
 | 
|---|
| 174 | HDR2 ; - Write bill sub-header.
 | 
|---|
| 175 |  W ! I IBSTA="B" W !,$S(IB=16:"ACTIVE",1:"SUSPENDED")
 | 
|---|
| 176 |  W ! I IBSTA="B" W $S(IB=16:"======",1:"=========")
 | 
|---|
| 177 |  W:IBSH ?26,"COM" W ?30,"Last",?40,"Current",?51,"Principal"
 | 
|---|
| 178 |  W !,"Category",?13,"Bill Number",?26,"REF"
 | 
|---|
| 179 |  W ?30,"Payment",?40,"Balance",?51,"Balance",?62,"Interest",?72,"Admin."
 | 
|---|
| 180 |  W !,$$DASH(80,1)
 | 
|---|
| 181 |  Q
 | 
|---|
| 182 |  ;
 | 
|---|
| 183 | TOT ; - Write balance total for patient.
 | 
|---|
| 184 |  N I,J
 | 
|---|
| 185 |  I IBCNT>1 W ! F I=40,51,62,72 W ?I,$E("---------",1,$S(I>60:8,1:9))
 | 
|---|
| 186 |  W:IBCNT'>1 !
 | 
|---|
| 187 |  W !,"Account Balance: $"_$FN($P(IBP,"^",10),",",2)
 | 
|---|
| 188 |  I IBCNT'>1 Q
 | 
|---|
| 189 |  S J=1 F I=39,50,60,70 W ?I,$J($FN($P(IBTOT,"^",J),",",2),10) S J=J+1
 | 
|---|
| 190 |  Q
 | 
|---|
| 191 |  ;
 | 
|---|
| 192 | DASH(X,Y) ; - Return a dashed line.
 | 
|---|
| 193 |  Q $TR($J("",X)," ",$S(Y:"-",1:"="))
 | 
|---|
| 194 |  ;
 | 
|---|
| 195 | ELIG(X) ; - Return eligibility code name.
 | 
|---|
| 196 |  ; X - Eligibility codes separated by semi-collon (;)
 | 
|---|
| 197 |  ;
 | 
|---|
| 198 |  N ELIG,I
 | 
|---|
| 199 |  S ELIG="" F I=1:1:$L(X,";") D
 | 
|---|
| 200 |  . I '$P(X,";",I) Q
 | 
|---|
| 201 |  . S ELIG=ELIG_", "_$E($P($G(^DIC(8,+$P(X,";",I),0)),U),1,20)
 | 
|---|
| 202 |  S $E(ELIG,1,2)=""
 | 
|---|
| 203 |  ;
 | 
|---|
| 204 |  Q ELIG
 | 
|---|
| 205 |  ;
 | 
|---|
| 206 | INFO(X) ; - Return the patient Additional Information about the Patient Accout
 | 
|---|
| 207 |  ; X - Flags representing the observations
 | 
|---|
| 208 |  ;
 | 
|---|
| 209 |  N INFO,I
 | 
|---|
| 210 |  S INFO="" F I=1:1:$L(X) D
 | 
|---|
| 211 |  . I $E(X,I)="V" S INFO=INFO_", '*' - VA EMPLOYEE"
 | 
|---|
| 212 |  . I $E(X,I)="R" S INFO=INFO_", REFERRED TO RC"
 | 
|---|
| 213 |  . I $E(X,I)="D" S INFO=INFO_", REFERRED TO DMC"
 | 
|---|
| 214 |  . I $E(X,I)="T" S INFO=INFO_", REFERRED TO TOP"
 | 
|---|
| 215 |  . I $E(X,I)="P" S INFO=INFO_", UNDER REPAYMENT PLAN"
 | 
|---|
| 216 |  . I $E(X,I)="F" S INFO=INFO_", UNDER DEFAULTED REPAYMENT PLAN"
 | 
|---|
| 217 |  S $E(INFO,1,2)=""
 | 
|---|
| 218 |  ;
 | 
|---|
| 219 |  Q INFO
 | 
|---|
| 220 |  ;
 | 
|---|
| 221 | SSN(X) ; - Format the SSN.
 | 
|---|
| 222 |  Q $S(X]"":$E(X,1,3)_"-"_$E(X,4,5)_"-"_$E(X,6,10),1:"")
 | 
|---|
| 223 |  ;
 | 
|---|
| 224 | PAUSE ; - Page break.
 | 
|---|
| 225 |  I $E(IOST,1,2)'="C-" Q
 | 
|---|
| 226 |  N IBX,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
 | 
|---|
| 227 |  F IBX=$Y:1:(IOSL-3) W !
 | 
|---|
| 228 |  S DIR(0)="E" D ^DIR S:$D(DIRUT)!($D(DUOUT)) IBQ=1
 | 
|---|
| 229 |  Q
 | 
|---|