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