| 1 | RCXFMSUV ;WISC/RFJ-fms vendor id ;9/17/98  11:42 AM | 
|---|
| 2 | ;;4.5;Accounts Receivable;**90,119,98,165,192,220**;Mar 20, 1995 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | VENDORID(BILLDA) ;  return the vendorid for a bill (used on a BD document) | 
|---|
| 8 | ;  returns null if vendor id is not required | 
|---|
| 9 | ;  returns UNKNOWN if vendor id is required but could not be determined | 
|---|
| 10 | N ACCRUAL,CATEGORY,DEBTOR,RSC,VENDORID,VENDOR,DIR,VENFLAG | 
|---|
| 11 | ; | 
|---|
| 12 | ;  accrued bills get sent to mccf 5287 fund, no vendor id | 
|---|
| 13 | S ACCRUAL=$$ACCK^PRCAACC(BILLDA) | 
|---|
| 14 | I ACCRUAL Q "" | 
|---|
| 15 | ; | 
|---|
| 16 | ;  if not a category, cannot determine vendor id | 
|---|
| 17 | S CATEGORY=$P($G(^PRCA(430,BILLDA,0)),"^",2) | 
|---|
| 18 | I 'CATEGORY Q "" | 
|---|
| 19 | ; | 
|---|
| 20 | ;  if vendor(17) or military(12) or federal agencies refund(13) | 
|---|
| 21 | ;  or federal agencies-reimb(14) or interagency(20) | 
|---|
| 22 | ;  sharing agreements(19),nursing Home Proceeds (40) | 
|---|
| 23 | ;  parking fees (41), cwt proceeds (42), comp & pen proceeds (43) | 
|---|
| 24 | ;  Enhanced Use Lease Proceeds (44), then get vendor id | 
|---|
| 25 | S VENFLAG=$S(CATEGORY=17:2,CATEGORY=12:1,CATEGORY=13:1,CATEGORY=14:1,CATEGORY=20:1,CATEGORY=19:1,CATEGORY=40:2,CATEGORY=41:2,CATEGORY=42:2,CATEGORY=43:2,CATEGORY=44:2,1:0) | 
|---|
| 26 | I VENFLAG D  Q VENDORID | 
|---|
| 27 | .S DEBTOR=+$P($G(^PRCA(430,BILLDA,0)),"^",9),VENDOR=$P($G(^RCD(340,DEBTOR,0)),U) | 
|---|
| 28 | .I VENDOR="" S VENDORID="UNKNOWN" Q | 
|---|
| 29 | .I VENFLAG=2,VENDOR["VA(" S VENDORID="PERSONOTH" D STORE(BILLDA,"PERSONOTH") Q | 
|---|
| 30 | .I VENDOR["PRC(" D  Q | 
|---|
| 31 | ..S VENDORID=$$VEN^PRCHUTL(+VENDOR) | 
|---|
| 32 | ..I VENDORID'="" D STORE(BILLDA,VENDORID) Q | 
|---|
| 33 | ..I VENFLAG=2 D  Q | 
|---|
| 34 | ...S DIR(0)="Y",DIR("A")="Can this bill be offset by FMS " | 
|---|
| 35 | ...S DIR("B")="YES" D ^DIR | 
|---|
| 36 | ...S VENDORID=$S(Y=0:"PERSONOTH",1:"UNKNOWN") | 
|---|
| 37 | ...D:VENDORID="PERSONOTH" STORE(BILLDA,"PERSONOTH") | 
|---|
| 38 | ...Q | 
|---|
| 39 | ..S VENDORID="UNKNOWN" | 
|---|
| 40 | ..Q | 
|---|
| 41 | .S VENDOR=$P(^RCD(340,+DEBTOR,0),U,6) | 
|---|
| 42 | .I VENDOR'="" S VENDORID=$$VEN^PRCHUTL(VENDOR) D  Q | 
|---|
| 43 | ..I VENDORID="" S VENDORID="UNKNOWN" Q | 
|---|
| 44 | ..D STORE(BILLDA,VENDORID) | 
|---|
| 45 | ..Q | 
|---|
| 46 | .I '$D(^XUSEC("PRCA VENDOR",DUZ)) S VENDORID="LINK" Q | 
|---|
| 47 | .W !!,"DEBTOR MUST BE LINKED TO VENDOR FILE" | 
|---|
| 48 | .S VENDOR=$$VENSEL^PRCHUTL() | 
|---|
| 49 | .I VENDOR<0 S VENDORID="LINK" Q | 
|---|
| 50 | .S VENDORID=$$VEN^PRCHUTL(VENDOR) | 
|---|
| 51 | .I VENDORID="" S VENDORID="UNKNOWN" Q | 
|---|
| 52 | .D STORE(BILLDA,VENDORID),STOREL(+DEBTOR,VENDOR) | 
|---|
| 53 | .Q | 
|---|
| 54 | ; | 
|---|
| 55 | ;  for ineligible send INELIG | 
|---|
| 56 | I CATEGORY=1 D STORE(BILLDA,"INELIG") Q "INELIG" | 
|---|
| 57 | ;  for ex-employee send XEMPL | 
|---|
| 58 | I CATEGORY=15 D STORE(BILLDA,"XEMPL") Q "XEMPL" | 
|---|
| 59 | ;  for current employee send CUREMPL | 
|---|
| 60 | I CATEGORY=16 D STORE(BILLDA,"CUREMPL") Q "CUREMPL" | 
|---|
| 61 | ; | 
|---|
| 62 | ;  champva subsitence(27), champva third party(28) | 
|---|
| 63 | I CATEGORY=27 D STORE(BILLDA,"CHMPVA1ST") Q "CHMPVA1ST" | 
|---|
| 64 | I CATEGORY=28 D STORE(BILLDA,"CHMPVA3RD") Q "CHMPVA3RD" | 
|---|
| 65 | ;  champva(29) does not get sent to FMS, code commented out | 
|---|
| 66 | ;I CATEGORY=29 Q "" | 
|---|
| 67 | ; | 
|---|
| 68 | ;  tricare(30), tricare patient(31), tricare third party(32) | 
|---|
| 69 | ;  test for tricare by looking at the revenue source code | 
|---|
| 70 | S RSC=$P($G(^PRCA(430,BILLDA,11)),"^",6) | 
|---|
| 71 | I RSC>8027,RSC<8031 D  D STORE(BILLDA,VENDORID) Q VENDORID | 
|---|
| 72 | .S VENDORID=$S(RSC=8028:"TRIINPAT",RSC=8029:"TRIOUTPAT",1:"TRIOTH") | 
|---|
| 73 | .Q | 
|---|
| 74 | I CATEGORY>29,CATEGORY<33 D  D STORE(BILLDA,VENDORID) Q VENDORID | 
|---|
| 75 | .S VENDORID=$S(CATEGORY=30:"TRICAROTH",CATEGORY=31:"TRICAROPT",1:"TRICARINP") | 
|---|
| 76 | .Q | 
|---|
| 77 | ;  vendor id not known, process should never reach this line of code | 
|---|
| 78 | Q "UNKNOWN" | 
|---|
| 79 | ; | 
|---|
| 80 | ; | 
|---|
| 81 | LINKASK ;ENTRY POINT FOR MENU OPTION TO STORE LINK | 
|---|
| 82 | N DIC,Y | 
|---|
| 83 | S DIC=340,DIC(0)="AEQM",DIC("A")="Enter Debtor to be linked to Vendor File: ",DIC("S")="I $P(^RCD(340,+Y,0),U)'[""PRC(""" D ^DIC Q:Y<0  S DEBTOR=+Y | 
|---|
| 84 | LINK ;LINKS DEBTOR TO VENDOR FILE | 
|---|
| 85 | S VENDOR=$$VENSEL^PRCHUTL() I VENDOR<0 S VENDOR="LINK" Q | 
|---|
| 86 | D STOREL(DEBTOR,VENDOR) Q | 
|---|
| 87 | ; | 
|---|
| 88 | ; | 
|---|
| 89 | STOREL(DA,VENDOR) ;  store the link from the debtor file to the vendor file | 
|---|
| 90 | N D,D0,DI,DIC,DIE,DQ,DR,X,Y | 
|---|
| 91 | S DR=".06////"_VENDOR_";" | 
|---|
| 92 | S (DIC,DIE)="^RCD(340," | 
|---|
| 93 | D ^DIE | 
|---|
| 94 | Q | 
|---|
| 95 | ; | 
|---|
| 96 | ; | 
|---|
| 97 | STORE(DA,VENDORID) ;STORES THE VENDOR ID WITH THE BILL | 
|---|
| 98 | I $G(^PRCA(430,DA,0))="" Q | 
|---|
| 99 | N D0,DI,DIC,DIE,DQ,DR,X,Y,D | 
|---|
| 100 | S DR="265////"_VENDORID_";" | 
|---|
| 101 | S (DIC,DIE)="^PRCA(430," | 
|---|
| 102 | D ^DIE | 
|---|
| 103 | Q | 
|---|