1 | BPSOSCC ;BHAM ISC/FCS/DRS/DLF - Set up BPS() ;06/01/2004
|
---|
2 | ;;1.0;E CLAIMS MGMT ENGINE;**1,2,5**;JUN 2004;Build 45
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; GETINFO - Create BPS array for non-repeating data
|
---|
6 | ; IEN59 - Pointer to BPS Transactions
|
---|
7 | ; IEN5902 - IEN for Insurance multiple of BPS Transactions
|
---|
8 | ;
|
---|
9 | ; Note that the BPS array is shared by all of the BPSOSC* routines and
|
---|
10 | ; is newed by BPSOSCA
|
---|
11 | ; Note that VAINFO is newed/set in BPSOSCB
|
---|
12 | Q
|
---|
13 | GETINFO(IEN59,IEN5902) ; EP - BPSOSCB
|
---|
14 | ; Check parameters
|
---|
15 | I $G(IEN59)="" Q
|
---|
16 | I $G(IEN5902)="" Q
|
---|
17 | ;
|
---|
18 | ; New variables and parse parameter data
|
---|
19 | N RXIEN,IENS,XDATA,PHARMACY,DFN,VAPA,VADM,SITE,NPI
|
---|
20 | ;
|
---|
21 | ; Setup Prescription IEN and IENS for transaction multiple
|
---|
22 | S RXIEN=$P(IEN59,".",1)
|
---|
23 | S IENS=IEN5902_","_IEN59_","
|
---|
24 | ;
|
---|
25 | ; Site Information
|
---|
26 | S PHARMACY=$P(^BPST(IEN59,1),U,7)
|
---|
27 | S XDATA=^BPS(9002313.56,PHARMACY,0)
|
---|
28 | S BPS("Site","NABP #")=$P(XDATA,U,2)
|
---|
29 | S BPS("Site","Default DEA #")=$P(XDATA,U,3)
|
---|
30 | S BPS("Site","Medicaid Pharmacy #")="" ; Referenced in payer sheet special code
|
---|
31 | S BPS("Site","Pharmacy #")=BPS("Site","NABP #")
|
---|
32 | S SITE=$P($G(^BPST(IEN59,1)),U,4)
|
---|
33 | S NPI=$$NPI^BPSNPI("Pharmacy_ID",SITE)
|
---|
34 | I +NPI=-1 S NPI=""
|
---|
35 | S BPS("Site","NPI")=$P(NPI,U,1)
|
---|
36 | ;
|
---|
37 | ; Transaction Header Data
|
---|
38 | S BPS("NCPDP","IEN")=$G(VAINFO(9002313.59902,IENS,902.02,"I"))
|
---|
39 | S BPS("NCPDP","BIN Number")=$G(VAINFO(9002313.59902,IENS,902.03,"I"))
|
---|
40 | S BPS("NCPDP","PCN")=$G(VAINFO(9002313.59902,IENS,902.04,"I"))
|
---|
41 | I BPS("NCPDP","IEN")="" D IMPOSS^BPSOSUE("P","TI","Payer Sheet pointer missing from multiple",,1,$T(+0))
|
---|
42 | I BPS("NCPDP","IEN") S XDATA=$G(^BPSF(9002313.92,BPS("NCPDP","IEN"),1))
|
---|
43 | I XDATA="" D IMPOSS^BPSOSUE("DB","TI","VA - Payer sheet info missing.",,2,$T(+0))
|
---|
44 | I BPS("NCPDP","BIN Number")="" S BPS("NCPDP","BIN Number")=$P(XDATA,U,1)
|
---|
45 | S BPS("NCPDP","Version")=$P(XDATA,U,2)
|
---|
46 | S BPS("NCPDP","# Meds/Claim")=$P(XDATA,U,3)
|
---|
47 | S BPS("NCPDP","Software Vendor/Cert ID")=$G(VAINFO(9002313.59902,IENS,902.18,"I"))
|
---|
48 | ;
|
---|
49 | ; Patient Data
|
---|
50 | S DFN=$P(^BPST(IEN59,0),U,6)
|
---|
51 | I 'DFN D IMPOSS^BPSOSUE("DB","TI","DFN",,,$T(+0))
|
---|
52 | I DFN,'$D(^DPT(DFN,0)) D IMPOSS^BPSOSUE("DB","TI","^DPT(DFN)",,,$T(+0))
|
---|
53 | D DEM^VADPT,ADD^VADPT
|
---|
54 | S BPS("Patient","IEN")=DFN
|
---|
55 | S BPS("Patient","Name")=$G(VADM(1))
|
---|
56 | S BPS("Patient","Sex")=$P($G(VADM(5)),"^",1)
|
---|
57 | S BPS("Patient","DOB")=$P($G(VADM(3)),"^",1)
|
---|
58 | S BPS("Patient","DOB")=($E(BPS("Patient","DOB"),1,3)+1700)_$E(BPS("Patient","DOB"),4,7)
|
---|
59 | S BPS("Patient","SSN")=$P($G(VADM(2)),"^",1)
|
---|
60 | S BPS("Patient","State")=$P($G(VAPA(5)),"^",1)
|
---|
61 | I BPS("Patient","State")'="" S BPS("Patient","State")=$P($G(^DIC(5,BPS("Patient","State"),0)),"^",2)
|
---|
62 | S BPS("Patient","Street Address")=$G(VAPA(1))
|
---|
63 | S BPS("Patient","City")=$G(VAPA(4))
|
---|
64 | S BPS("Patient","Zip")=$G(VAPA(6))
|
---|
65 | S BPS("Patient","Phone #")=$TR($P($G(VAPA(8)),"^",1),"()-/*# ")
|
---|
66 | S BPS("Patient","Plan ID")=$$GET1^DIQ(2.312,"1,"_DFN_",",.18)
|
---|
67 | ;
|
---|
68 | ; Insurer Data
|
---|
69 | S BPS("Insurer","IEN")=$G(VAINFO(9002313.59902,IENS,.01,"I"))
|
---|
70 | S BPS("Insurer","Relationship")=$G(VAINFO(9002313.59902,IENS,902.07,"I"))
|
---|
71 | S BPS("Insurer","Administrative Fee")=$G(VAINFO(9002313.59902,IENS,902.16,"I"))
|
---|
72 | I BPS("Insurer","Administrative Fee")'="",BPS("Insurer","Administrative Fee")'=0 S BPS("Insurer","Other Amt Claim Sub Qual")="04"
|
---|
73 | E S BPS("Insurer","Other Amt Claim Sub Qual")=""
|
---|
74 | I BPS("Insurer","Relationship")="" S BPS("Insurer","Relationship")=0 ;if not there, mark it as unspecified.
|
---|
75 | S BPS("Patient","Primary Care Prov Location Code")=$G(VAINFO(9002313.59902,IENS,902.11,"I"))
|
---|
76 | S BPS("Insurer","Person Code")=$S(BPS("Insurer","Relationship")=1:"01",BPS("Insurer","Relationship")=2:"02",BPS("Insurer","Relationship")=3:03,1:"")
|
---|
77 | S BPS("Insurer","Group #")=$G(VAINFO(9002313.59902,IENS,902.05,"I"))
|
---|
78 | S BPS("Insurer","Policy #")=$G(VAINFO(9002313.59902,IENS,902.06,"I")) ;CARDHOLDER ID
|
---|
79 | S BPS("Insurer","Full Policy #")=BPS("Insurer","Policy #")
|
---|
80 | S:'$D(BPS("Insurer","Percent Sales Tax Rate Sub")) BPS("Insurer","Percent Sales Tax Rate Sub")=""
|
---|
81 | S:'$D(BPS("Insurer","Percent Sales Tax Basis Sub")) BPS("Insurer","Percent Sales Tax Basis Sub")=""
|
---|
82 | S BPS("Insurer","Percentage Sales Tax Amt Sub")=0
|
---|
83 | S BPS("Insurer","Flat Sales Tax Amount Sub")=0
|
---|
84 | ;
|
---|
85 | ; DMB - The next pair of lines may seem odd. However, there was an error in the IHS code, so
|
---|
86 | ; this array element was always set to "". I fixed the code, but do not want to implement the fix
|
---|
87 | ; until it can be determined whether the fix will not cause rejects
|
---|
88 | S BPS("Insurer","Facility ID")=$$RXAPI1^BPSUTIL1(RXIEN,5,"E")
|
---|
89 | S BPS("Insurer","Facility ID")=""
|
---|
90 | ;
|
---|
91 | ; Cardholder Data
|
---|
92 | S BPS("Cardholder","First Name")=$G(VAINFO(9002313.59902,IENS,902.08,"I"))
|
---|
93 | S BPS("Cardholder","Last Name")=$G(VAINFO(9002313.59902,IENS,902.09,"I"))
|
---|
94 | S BPS("Home Plan")=$G(VAINFO(9002313.59902,IENS,902.11,"I"))
|
---|
95 | Q
|
---|