| 1 | FBMRASV2 ;AISC/TET - Server routine (Cont'd) ;8/29/97
 | 
|---|
| 2 |  ;;3.5;FEE BASIS;**9**;JAN 30, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | EXIT S XMSER="S."_XQSOP,XMZ=XQMSG D REMSBMSG^XMA1C
 | 
|---|
| 5 |  K I,XMER,XMRG,FBI,FBID,FBER,FBERR,FBSITE,FBPOP,FBSN,FBAASN,FBJ,FBRT,FBAC,FBSTN,FBVID,FBCHAIN,FBFEEO,FBVNAME,FBADD1,FBADD2,FBCITY,FBST,FBZIP,FBMRC,FBCC,FBPC,FBTID,FB1099,FBVT,FBICN,FBSC,FBPART,FBSTATE,FBICN1,K,DIE,DA,DR,X,DLAYGO
 | 
|---|
| 6 |  K FBOGN,DIC,FBNGN,%X,%Y,DIK,FBTMP,FBMRA,FBCNT,FBATOT,FBCTOT,FBFTOT,FBQTOT,FBZIP1,FBCHK,FBOUT,XMSER,XMZ,^TMP("FBMRA",$J),^TMP("FBER",$J)
 | 
|---|
| 7 |  Q
 | 
|---|
| 8 | EDIT ;edit check if fbac=q
 | 
|---|
| 9 |  ;INPUT:  FBAC = action code; should only come here if = 'Q'
 | 
|---|
| 10 |  ;        FBVID = vendor tax id number
 | 
|---|
| 11 |  ;        FBCHAIN = chain store (optional - only if pharmacy record type)
 | 
|---|
| 12 |  ;        FBICN = internal control number
 | 
|---|
| 13 |  ;        FBVNAME = vendor name from autsin transmission
 | 
|---|
| 14 |  ;OUTPUT: FBAC may be changed from 'Q' to 'C' if id's have not changed,
 | 
|---|
| 15 |  ;         or if venid exists on file and austin name matches FBVNAME
 | 
|---|
| 16 |  ;         to avoid leaving duplicate vendors in site's vendor file. 
 | 
|---|
| 17 |  ;VAR:  FBI = internal entry of vendor in vendor file with same id as FBVID
 | 
|---|
| 18 |  ;  FBVC = internal entry of vendor in vendor correction file (with station number stripped)
 | 
|---|
| 19 |  N FBI,FBVCI S FBI=0,FBVCI=$E(FBICN,4,$L(FBICN))
 | 
|---|
| 20 |  S:FBVID=$P($G(^FBAAV(+FBVCI,0)),U,2) FBAC="C" I FBAC="Q" S FBI=$O(^FBAAV("C",FBVID,0)) I FBI,FBVNAME=$P($G(^FBAAV(FBI,"AMS")),U) S FBAC="C"
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 | TRAP ;trap error, have bulletin message record error, send server message to group and reset trap to server error trap and exit.
 | 
|---|
| 23 |  D @^%ZOSF("ERRTN")
 | 
|---|
| 24 |  S XQSTXT(0)=""
 | 
|---|
| 25 |  S XQSTXT(1)="*** Error detected by FEE while processing the above server message. ***"
 | 
|---|
| 26 |  S XQSTXT(2)="Details recorded in the Kernel error trap."
 | 
|---|
| 27 |  S XQSTXT(3)="Please contact your IRM representative immediately."
 | 
|---|
| 28 |  S XQSTXT(4)="",XQSTXT(5)="The above message # has been forwarded to the FEE mail group."
 | 
|---|
| 29 |  S XQSTXT(6)="Once the problem has been identified AND corrected, forward the server message"
 | 
|---|
| 30 |  S XQSTXT(7)=$S($G(FBPAID):"  to S.FBAA PAID SERVER",1:"  to S.FBAA MRA SERVER")_" server to complete processing."
 | 
|---|
| 31 |  ;S %ZTERLGR=$$LGR^%ZOSV D ^%ZTER
 | 
|---|
| 32 |  ;S X="ERROR^XQSRV2",@^%ZOSF("TRAP")
 | 
|---|
| 33 | SEND K XMY S XMY("G.FEE")="" D ENT1^XMD ;send message to be processed
 | 
|---|
| 34 |  D EXIT
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | MSG ;set up server bulletin upon successful completion of processing
 | 
|---|
| 37 |  S XQSTXT(0)="",XQSTXT(1)="Total Vendor MRA's Received: "_(FBATOT+FBCTOT+FBFTOT+FBQTOT)_"     Processed: "_FBCNT_"     Errors: "_FBER
 | 
|---|
| 38 |  S XQSTXT(2)="ADDS: "_FBATOT,XQSTXT(3)="CHANGES:  "_FBCTOT,XQSTXT(4)="UNSOLICITED ADDS: "_FBQTOT,XQSTXT(5)="FPDS-ONLY CHANGES:  "_FBFTOT
 | 
|---|
| 39 |  I +FBER S XQSTXT(6)="",XQSTXT(7)="*** "_FBER_" Error"_$S(FBER>1:"s",1:"")_" detected by FEE while processing the above server message. ***",XQSTXT(8)="" D
 | 
|---|
| 40 |  .N EC,QCT
 | 
|---|
| 41 |  .S QCT=8,EC="" F  S EC=$O(^TMP("FBER",$J,EC)) Q:EC']""  D  S QCT=QCT+1,XQSTXT(QCT)=""
 | 
|---|
| 42 |  ..N I,DATA
 | 
|---|
| 43 |  ..S QCT=QCT+1,XQSTXT(QCT)="ERROR CODE "_EC_":  "
 | 
|---|
| 44 |  ..I EC<4 S XQSTXT(QCT)=XQSTXT(QCT)_$S(EC=1:"Invalid Vendor ID",EC=2:"Invalid Record Length",EC=3:"Invalid Station Number",1:"")
 | 
|---|
| 45 |  ..I EC'<4 S XQSTXT(QCT)=XQSTXT(QCT)_$S(EC=4:"Vendor names do not match",EC=4.1:"Vendor not found in file or vendor in delete status",EC=5:"Vendor change already processed",1:"")
 | 
|---|
| 46 |  ..S XQSTXT(QCT)=" ===> "_XQSTXT(QCT)
 | 
|---|
| 47 |  ..S QCT=QCT+1,XQSTXT(QCT)="       "_$S(EC<3:"Action necessary.",EC=3:"Action may be necessary.",1:"Information only.")_"  Refer to the Vendor Error Code documentation."
 | 
|---|
| 48 |  ..S QCT=QCT+1,XQSTXT(QCT)="",I=0 F  S I=$O(^TMP("FBER",$J,EC,I)) Q:'I  S DATA=^(I),QCT=QCT+1,XQSTXT(QCT)=DATA
 | 
|---|
| 49 |  G EXIT
 | 
|---|
| 50 | ER(EC,J,FBER) ;set error & error count
 | 
|---|
| 51 |  ;INPUT:  EC = error code
 | 
|---|
| 52 |  ;            1 = invalid vendor id (action needed)
 | 
|---|
| 53 |  ;            2 = invalid record length (action needed)
 | 
|---|
| 54 |  ;            3 = invalid station number (action may be necessary)
 | 
|---|
| 55 |  ;            4 = vendor names do not match (ignore)
 | 
|---|
| 56 |  ;           4.1 = vendor not found or in delete status (ignore)
 | 
|---|
| 57 |  ;            5 = record already processed (ignore)
 | 
|---|
| 58 |  ;        J = data string from message/mra record
 | 
|---|
| 59 |  ;        FBER = error count
 | 
|---|
| 60 |  ;OUTPUT: FBER updated
 | 
|---|
| 61 |  I $S($G(FBER)']"":1,J']"":1,'+$G(EC):1,1:0) Q
 | 
|---|
| 62 |  N FBCHAIN,FBRT,FBVID,FBVNAME
 | 
|---|
| 63 |  I EC'=2 S FBRT=$E(J,1),FBVID=$S(FBRT=1:$E(J,9,19),1:$E(J,9,17)),FBVNAME=$S(FBRT=1:$E(J,27,56),1:$E(J,23,52)),FBCHAIN=$S(FBRT=1:"",1:" "_$E(J,18,21))
 | 
|---|
| 64 |  S FBER=FBER+1,^TMP("FBER",$J,EC,FBER)=$S(EC=2:J,1:FBVNAME_"     "_FBVID_FBCHAIN)
 | 
|---|
| 65 |  Q
 | 
|---|