[613] | 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
|
---|