| 1 | RCBDPSLM ;WISC/RFJ-patient statement top list manager routine ;1 Dec 00
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**162,198**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  N RCDEBTDA
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  F  D  Q:'RCDEBTDA
 | 
|---|
| 8 |  .   W !! S RCDEBTDA=$$SELACCT
 | 
|---|
| 9 |  .   I RCDEBTDA<1 S RCDEBTDA=0 Q
 | 
|---|
| 10 |  .   D EN^VALM("RCBD PATIENT STATEMENT")
 | 
|---|
| 11 |  Q
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 | INIT ;  initialization for list manager list
 | 
|---|
| 15 |  N ORIGAMT,RCBILLDA,RCDATE,RCEVENDA,RCEVENT,RCFINCOM,RCLINE,RCOUTBAL,RCSTATE,RCSTDATE,RCTOTAL,RCTRANDA,RCTRCNT,RCVALUE
 | 
|---|
| 16 |  K ^TMP("RCBDPSLM",$J),^TMP("RCBDPSLMDATA",$J)
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ;  get the last event (patient statement) entry
 | 
|---|
| 20 |  S RCEVENDA=$$LASTEVNT^RCBDFST1(RCDEBTDA)
 | 
|---|
| 21 |  I RCEVENDA D EVENTBAL^RCBDFST1(+RCEVENDA)
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ;  build list of bills (original amount) by statement date
 | 
|---|
| 24 |  S RCDATE=0 F  S RCDATE=$O(^PRCA(430,"ATD",RCDEBTDA,RCDATE)) Q:'RCDATE  D
 | 
|---|
| 25 |  .   S RCBILLDA=0 F  S RCBILLDA=$O(^PRCA(430,"ATD",RCDEBTDA,RCDATE,RCBILLDA)) Q:'RCBILLDA  D
 | 
|---|
| 26 |  .   .   S ORIGAMT=+$P(^PRCA(430,RCBILLDA,0),"^",3) I 'ORIGAMT Q
 | 
|---|
| 27 |  .   .   ;
 | 
|---|
| 28 |  .   .   ;  estimate statement date
 | 
|---|
| 29 |  .   .   S RCSTATE=$P(RCEVENDA,"^",2)
 | 
|---|
| 30 |  .   .   I RCDATE>$P(RCEVENDA,"^",2) S RCSTATE=10000000
 | 
|---|
| 31 |  .   .   ;
 | 
|---|
| 32 |  .   .   S ^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE,RCDATE,0)=RCBILLDA_"^"_ORIGAMT
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  ;  build list of transactions by statement date
 | 
|---|
| 35 |  S RCDATE=0 F  S RCDATE=$O(^PRCA(433,"ATD",RCDEBTDA,RCDATE)) Q:'RCDATE  D
 | 
|---|
| 36 |  .   S RCTRANDA=0 F  S RCTRANDA=$O(^PRCA(433,"ATD",RCDEBTDA,RCDATE,RCTRANDA)) Q:'RCTRANDA  D
 | 
|---|
| 37 |  .   .   ;  get transaction value, no value, quit
 | 
|---|
| 38 |  .   .   S RCVALUE=$$TRANVALU^RCDPBTLM(RCTRANDA) I RCVALUE="" Q
 | 
|---|
| 39 |  .   .   ;  special case for prepayments (26)
 | 
|---|
| 40 |  .   .   I $P(^PRCA(430,+$P($G(^PRCA(433,RCTRANDA,0)),"^",2),0),"^",2)=26 D
 | 
|---|
| 41 |  .   .   .   S $P(RCVALUE,"^",2)=-$P(RCVALUE,"^",2)
 | 
|---|
| 42 |  .   .   ;
 | 
|---|
| 43 |  .   .   ;  estimate statement date
 | 
|---|
| 44 |  .   .   S RCSTATE=$P(RCEVENDA,"^",2)
 | 
|---|
| 45 |  .   .   I RCDATE>$P(RCEVENDA,"^",2) S RCSTATE=10000000
 | 
|---|
| 46 |  .   .   I $P(^PRCA(433,RCTRANDA,0),"^",10) S RCSTATE=10000000
 | 
|---|
| 47 |  .   .   ;
 | 
|---|
| 48 |  .   .   S ^TMP("RCBDPSLMDATA",$J,RCDEBTDA,RCSTATE,RCDATE,RCTRANDA)=RCVALUE
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  D INITCONT^RCBDPSL1
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 | HDR ;  header code for list manager display
 | 
|---|
| 55 |  D HDR^RCDPAPLM
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | EXIT ;  exit list manager option and clean up
 | 
|---|
| 60 |  K ^TMP("RCBDPSLM",$J),^TMP("RCBDPSLMDATA",$J)
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | SELACCT() ;  select a first party acct
 | 
|---|
| 65 |  ;  returns -1 for timeout or ^, 0 for no selection, or ien of bill
 | 
|---|
| 66 |  N %,%Y,C,DIC,DILN,DTOUT,DUOUT,X,Y
 | 
|---|
| 67 |  N DPTNOFZY,DPTNOFZK S (DPTNOFZY,DPTNOFZK)=1
 | 
|---|
| 68 |  S DIC="^RCD(340,",DIC(0)="QEAM",DIC("A")="Select First Party ACCOUNT: "
 | 
|---|
| 69 |  S DIC("S")="I $P($G(^RCD(340,+Y,0)),U)[""DPT("""
 | 
|---|
| 70 |  D ^DIC
 | 
|---|
| 71 |  I Y<0,'$G(DUOUT),'$G(DTOUT) S Y=0
 | 
|---|
| 72 |  Q +Y
 | 
|---|