1 | RCTOPS ;WASH IRMFO@ALTOONA,PA/TJK-DMC 90 DAY (SERVER) ;10/24/96 3:21 PM
|
---|
2 | V ;;4.5;Accounts Receivable;**141,229**;Mar 20, 1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;Program to process server messages from DMC
|
---|
5 | ;1) Will automatically delete TOP flags from local system for
|
---|
6 | ; those patients submitted to TOP that are rejected by TOP, Austin
|
---|
7 | ; or DMC
|
---|
8 | ;2) Will adjust TOP amount if update rejected
|
---|
9 | ;
|
---|
10 | READ ;READS MESSAGE INTO TEMPORARY GLOBAL
|
---|
11 | K ^TMP("RCTOPS",$J) S XMA=0
|
---|
12 | READ1 X XMREC I $D(XMER) G PROC:XMER<0
|
---|
13 | S XMA=XMA+1
|
---|
14 | S ^TMP("RCTOPS",$J,"READ",XMA)=XMRG
|
---|
15 | G READ1
|
---|
16 | PROC N DEBTOR,TIN,LN,I,REC,NAME,TYPE,CNTR,BILL,ACTION,ECODE,ECODE1,AMOUNT
|
---|
17 | N LDOC,REC1,XMDUZ,XMSUB,XMY,XMTEXT,SEQ,TSEQ,MTYPE,FILE
|
---|
18 | K XMPOS,XMA,XMER,XMREC,XMRG
|
---|
19 | S (LDOC,LN)=0
|
---|
20 | F S LN=$O(^TMP("RCTOPS",$J,"READ",LN)) Q:LN="" S REC=$G(^(LN)) Q:$E(REC,1,4)="NNNN" D
|
---|
21 | .I $E(REC,1,4)="2TPA" Q
|
---|
22 | .I REC[U S TSEQ=$P(REC,U),SEQ=$P(REC,U,2),MTYPE=$P(REC,U,3),MTYPE=$S(MTYPE["AUST":"(AAC)",MTYPE["TREAS":"(TREASURY)",1:"(DMC)") Q
|
---|
23 | .I $L(REC)=250 D LDOC Q
|
---|
24 | .S DEBTOR=+$E(REC,21,34),TYPE=$E(REC,36),ACTION=$E(REC,35),TIN=""
|
---|
25 | .S ECODE=$E(REC,202,221)
|
---|
26 | .S:TYPE=1 TIN=$E(REC,37,45),AMOUNT=$E(REC,135,144)_"."_$E(REC,145,146)
|
---|
27 | .I TIN="" S TIN=$P($G(^RCD(340,DEBTOR,4)),U) I TIN="" D
|
---|
28 | ..S FILE=$$FILE^RCTOPD(^RCD(340,DEBTOR,0))
|
---|
29 | ..S TIN=$$TAXID^RCTOP1(DEBTOR,FILE)
|
---|
30 | ..Q
|
---|
31 | .K NAME S DIC=340,DR=.01,DA=DEBTOR,DIQ="NAME",DIQ(0)="E" D EN^DIQ1
|
---|
32 | .;
|
---|
33 | .; If DEBTOR is not in VistA - Ignore
|
---|
34 | .Q:'$D(NAME) ;PRCA*4.5*229
|
---|
35 | .;
|
---|
36 | .S NAME=NAME(340,DEBTOR,.01,"E"),NAME=$$LJ^XLFSTR(NAME,30)
|
---|
37 | .S ECODE1=$E(ECODE,1,2)
|
---|
38 | .F I=3:2 Q:$E(ECODE,I)'?1N S ECODE1=ECODE1_","_$E(ECODE,I,I+1)
|
---|
39 | SETLN .S ^TMP("RCTOPS",$J,"BUILD",NAME,TYPE)=NAME_" "_TIN_" "_TYPE_" "_ACTION_" "_ECODE1
|
---|
40 | .I TYPE=1 D
|
---|
41 | ..I ACTION="A" D Q
|
---|
42 | ...K ^RCD(340,DEBTOR,4),^(5),^(6),^RCD(340,"TOP",DEBTOR)
|
---|
43 | ...S BILL=0
|
---|
44 | ...F S BILL=$O(^PRCA(430,"C",DEBTOR,BILL)) Q:BILL="" K ^PRCA(430,BILL,14)
|
---|
45 | ...Q
|
---|
46 | ..Q:'$D(^RCD(340,"TOP",DEBTOR))
|
---|
47 | ..S:ACTION="I" $P(^(4),U,3)=$P(^RCD(340,DEBTOR,4),U,3)-AMOUNT
|
---|
48 | ..S:ACTION="S" $P(^(4),U,3)=$P(^RCD(340,DEBTOR,4),U,3)+AMOUNT
|
---|
49 | ..Q
|
---|
50 | .Q
|
---|
51 | ;
|
---|
52 | MSG ;Send list of rejected documents
|
---|
53 | G MSG1:LDOC
|
---|
54 | S ^TMP("RCTOPS",$J,"REC",1)="The following TOP transmissions have been rejected"
|
---|
55 | S ^TMP("RCTOPS",$J,"REC",2)=""
|
---|
56 | S ^TMP("RCTOPS",$J,"REC",3)="NAME TIN TYPE ACTION ERROR CODES"
|
---|
57 | S ^TMP("RCTOPS",$J,"REC",4)="" G SEND
|
---|
58 | MSG1 S ^TMP("RCTOPS",$J,"REC",1)="The following debtors were unable to have TOP letters sent:"
|
---|
59 | S ^TMP("RCTOPS",$J,"REC",2)=""
|
---|
60 | S ^TMP("RCTOPS",$J,"REC",3)="NAME TIN ERROR CODES"
|
---|
61 | S ^TMP("RCTOPS",$J,"REC",4)=""
|
---|
62 | SEND D ALPHA
|
---|
63 | S XMSUB="TOP REJECTS"_MTYPE_" SEQ: "_SEQ_" OF "_TSEQ
|
---|
64 | S XMY("G.TOP")="",XMDUZ="AR PACKAGE",XMTEXT="^TMP(""RCTOPS"","_$J_",""REC"","
|
---|
65 | D ^XMD
|
---|
66 | ;
|
---|
67 | CLEANUP ; This cleans up the ^TMP global.
|
---|
68 | K ^TMP("RCTOPS",$J)
|
---|
69 | Q
|
---|
70 | LDOC ;Process debtor not receiving TOP letters
|
---|
71 | S:'LDOC LDOC=1
|
---|
72 | S LN=$O(^TMP("RCTOPS",$J,"READ",LN)) S REC1=^(LN)
|
---|
73 | S TIN=$E(REC,1,9),DEBTOR=+$E(REC1,104,113),ECODE=$E(REC1,115,134)
|
---|
74 | K NAME S DIC=340,DR=.01,DA=DEBTOR,DIQ="NAME",DIQ(0)="E" D EN^DIQ1
|
---|
75 | S NAME=NAME(340,DEBTOR,.01,"E"),NAME=$$LJ^XLFSTR(NAME,40)
|
---|
76 | S ECODE1=$E(ECODE,1,2)
|
---|
77 | F I=3:2 Q:$E(ECODE,I)=" " S ECODE1=ECODE1_","_$E(ECODE,I,I+1)
|
---|
78 | S ^TMP("RCTOPS",$J,"BUILD",NAME,LN)=NAME_" "_TIN_" "_ECODE1
|
---|
79 | Q
|
---|
80 | ALPHA ;loads alphabetical listings into "REC"
|
---|
81 | S NAME="",CNTR=4
|
---|
82 | F S NAME=$O(^TMP("RCTOPS",$J,"BUILD",NAME)) Q:NAME="" S I=0 D
|
---|
83 | .F S I=$O(^TMP("RCTOPS",$J,"BUILD",NAME,I)) Q:I'?1N.N S REC=^(I) D
|
---|
84 | ..S CNTR=CNTR+1,^TMP("RCTOPS",$J,"REC",CNTR)=REC
|
---|
85 | ..Q
|
---|
86 | .Q
|
---|
87 | Q
|
---|