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
|
---|