| 1 | BPSOSC2 ;BHAM ISC/FCS/DRS - certification testing ;06/01/2004
 | 
|---|
| 2 |  ;;1.0;E CLAIMS MGMT ENGINE;**1,5**;JUN 2004;Build 45
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  Q
 | 
|---|
| 6 |  ; SETBPS - Overwrite BPS array with values from BPS Certfication file
 | 
|---|
| 7 |  ; Input
 | 
|---|
| 8 |  ;    ENTRY - IEN for BPS Certification (#9002313.31)
 | 
|---|
| 9 |  ; Output
 | 
|---|
| 10 |  ;    BPS Array - This is newed in BPSOSCA and is shared by all BPSOSC* routines
 | 
|---|
| 11 |  ;                and others
 | 
|---|
| 12 | SETBPS(ENTRY) ;
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  I $G(ENTRY)="" Q
 | 
|---|
| 15 |  ; If there is a payer in the Certification File, reset transaction header
 | 
|---|
| 16 |  ;   values based on this payer sheet
 | 
|---|
| 17 |  N XDATA
 | 
|---|
| 18 |  I $P(^BPS(9002313.31,ENTRY,0),"^",4) D
 | 
|---|
| 19 |  . S BPS("NCPDP","IEN")=$P(^BPS(9002313.31,ENTRY,0),"^",4)
 | 
|---|
| 20 |  . S XDATA=$G(^BPSF(9002313.92,BPS("NCPDP","IEN"),1))
 | 
|---|
| 21 |  . S BPS("NCPDP","Version")=$P(XDATA,U,2)
 | 
|---|
| 22 |  . S BPS("NCPDP","# Meds/Claim")=$P(XDATA,U,3)
 | 
|---|
| 23 |  . S BPS("NCPDP","Software Vendor/Cert ID")=$P(XDATA,U,13)
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  ; DMB 11/28/2006 - Existing Code, not sure if this is needed.
 | 
|---|
| 26 |  S BPS("Patient","SSN")=""
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ; Loop through claim header fields
 | 
|---|
| 29 |  N A,N S A=0
 | 
|---|
| 30 |  F  S A=$O(^BPS(9002313.31,ENTRY,1,A)) Q:'A  D
 | 
|---|
| 31 |  . N X S X=^BPS(9002313.31,ENTRY,1,A,0)
 | 
|---|
| 32 |  . N FIELD S FIELD=$P(^BPSF(9002313.91,$P(X,U),0),U)
 | 
|---|
| 33 |  . D SETBPS1(FIELD,$P(X,U,2))
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  ; Loop through prescription fields
 | 
|---|
| 36 |  S N=0
 | 
|---|
| 37 |  F  S N=$O(^BPS(9002313.31,ENTRY,2,N)) Q:'N  D
 | 
|---|
| 38 |  . N A S A=0
 | 
|---|
| 39 |  . F  S A=$O(^BPS(9002313.31,ENTRY,2,N,1,A)) Q:'A  D
 | 
|---|
| 40 |  .. S X=^BPS(9002313.31,ENTRY,2,N,1,A,0)
 | 
|---|
| 41 |  .. N FIELD S FIELD=$P(^BPSF(9002313.91,$P(X,U),0),U)
 | 
|---|
| 42 |  .. D SETBPS1(FIELD,$P(X,U,2),N)
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  ; Construct a few other fields that weren't already set
 | 
|---|
| 45 |  ; DMB 11/28/2006 - Existing Code, not sure if this is needed.
 | 
|---|
| 46 |  S BPS("Patient","Name")=$G(BPS("Patient","Last Name"))_","_$G(BPS("Patient","First Name"))
 | 
|---|
| 47 |  I '$D(BPS("RX",1,"Quantity")) S BPS("RX",1,"Quantity")=$G(BPS("RX",1,"Metric Decimal Quantity"))
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  ; Overwrite BPS array values
 | 
|---|
| 51 | SETBPS1(FIELD,VALUE,N) ;
 | 
|---|
| 52 |  N OK S OK=0
 | 
|---|
| 53 |  N I F I=1:1 Q:$T(TABLE+I)[";;*"  D  Q:OK
 | 
|---|
| 54 |  . N X S X=$T(TABLE+I)
 | 
|---|
| 55 |  . I $P(X,";",3)'=FIELD Q
 | 
|---|
| 56 |  . S @("BPS("_$P(X,";",4)_")=VALUE")
 | 
|---|
| 57 |  . S OK=1
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 | TABLE ;;
 | 
|---|
| 61 |  ;;101;"NCPDP","BIN Number"
 | 
|---|
| 62 |  ;;102;"NCPDP","Version"
 | 
|---|
| 63 |  ;;103;"Transaction Code"
 | 
|---|
| 64 |  ;;104;"NCPDP","PCN"
 | 
|---|
| 65 |  ;;109;"Transaction Count"
 | 
|---|
| 66 |  ;;110;"NCPDP","Software Vendor/Cert ID"
 | 
|---|
| 67 |  ;;111;"NCPDP","Segment Identification"
 | 
|---|
| 68 |  ;;201;"Site","Pharmacy #"
 | 
|---|
| 69 |  ;;202;"Service Provider ID Qual"
 | 
|---|
| 70 |  ;;301;"Insurer","Group #"
 | 
|---|
| 71 |  ;;302;"Insurer","Policy #"
 | 
|---|
| 72 |  ;;303;"Insurer","Person Code"
 | 
|---|
| 73 |  ;;304;"Patient","DOB"
 | 
|---|
| 74 |  ;;305;"Patient","Sex"
 | 
|---|
| 75 |  ;;306;"Insurer","Relationship"
 | 
|---|
| 76 |  ;;308;"Patient","Other Coverage Code"
 | 
|---|
| 77 |  ;;307;"Customer Location"
 | 
|---|
| 78 |  ;;309;"Eligibility Clarification Code"
 | 
|---|
| 79 |  ;;310;"Patient","First Name"
 | 
|---|
| 80 |  ;;311;"Patient","Last Name"
 | 
|---|
| 81 |  ;;312;"Cardholder","First Name"
 | 
|---|
| 82 |  ;;313;"Cardholder","Last Name"
 | 
|---|
| 83 |  ;;322;"Patient","Street Address"
 | 
|---|
| 84 |  ;;323;"Patient","City"
 | 
|---|
| 85 |  ;;324;"Patient","State"
 | 
|---|
| 86 |  ;;325;"Patient","Zip"
 | 
|---|
| 87 |  ;;331;"Patient","Patient ID Qualifier"
 | 
|---|
| 88 |  ;;332;"Patient","SSN"
 | 
|---|
| 89 |  ;;326;"Patient","Phone #"
 | 
|---|
| 90 |  ;;401;"RX","Date Filled"
 | 
|---|
| 91 |  ;;402;"RX",N,"RX Number"
 | 
|---|
| 92 |  ;;403;"RX",N,"Refill #"
 | 
|---|
| 93 |  ;;404;"RX",N,"Quantity"
 | 
|---|
| 94 |  ;;405;"RX",N,"Days Supply"
 | 
|---|
| 95 |  ;;406;"RX",N,"Compound Code"
 | 
|---|
| 96 |  ;;407;"RX",N,"NDC"
 | 
|---|
| 97 |  ;;408;"RX",N,"DAW"
 | 
|---|
| 98 |  ;;409;"RX",N,"Ingredient Cost"
 | 
|---|
| 99 |  ;;410;"RX",N,"Sales Tax"
 | 
|---|
| 100 |  ;;411;"RX",N,"Prescriber ID"
 | 
|---|
| 101 |  ;;412;"RX",N,"Dispensing Fee"
 | 
|---|
| 102 |  ;;414;"RX",N,"Date Written"
 | 
|---|
| 103 |  ;;415;"RX",N,"# Refills"
 | 
|---|
| 104 |  ;;416;"RX",N,"Preauth #"
 | 
|---|
| 105 |  ;;418;"RX",N,"Level of Service"
 | 
|---|
| 106 |  ;;419;"RX",N,"Origin Code"
 | 
|---|
| 107 |  ;;420;"RX",N,"Clarification"
 | 
|---|
| 108 |  ;;421;"RX",N,"Primary Prescriber"
 | 
|---|
| 109 |  ;;422;"RX",N,"Clinic ID"
 | 
|---|
| 110 |  ;;423;"RX",N,"Basis of Cost Determination"
 | 
|---|
| 111 |  ;;424;"RX",N,"Diagnosis Code"
 | 
|---|
| 112 |  ;;426;"RX",N,"Usual & Customary"
 | 
|---|
| 113 |  ;;427;"RX",N,"Prescriber Last Name"
 | 
|---|
| 114 |  ;;429;"RX",N,"Unit Dose Indicator"
 | 
|---|
| 115 |  ;;430;"RX",N,"Gross Amount Due"
 | 
|---|
| 116 |  ;;431;"RX",N,"Other Payor Amount"
 | 
|---|
| 117 |  ;;433;"RX",N,"Patient Paid Amount"
 | 
|---|
| 118 |  ;;436;"RX",N,"Alt. Product Type"
 | 
|---|
| 119 |  ;;438;"RX",N,"Incentive Amount"
 | 
|---|
| 120 |  ;;439;"RX",N,"DUR","DUR Conflict Code",439
 | 
|---|
| 121 |  ;;440;"RX",N,"DUR","DUR Intervention Code",440
 | 
|---|
| 122 |  ;;441;"RX",N,"DUR","DUR Outcome Code",441
 | 
|---|
| 123 |  ;;442;"RX",N,"Metric Decimal Quantity"
 | 
|---|
| 124 |  ;;443;"RX",N,"Primary Payor Denial Date"
 | 
|---|
| 125 |  ;;444;"RX",N,"Provider ID"
 | 
|---|
| 126 |  ;;455;"RX",N,"Rx/Service Ref Num Qual"
 | 
|---|
| 127 |  ;;460;"RX",N,"Quantity"
 | 
|---|
| 128 |  ;;461;"Claim",N,"Prior Auth Type"
 | 
|---|
| 129 |  ;;462;"Claim",N,"Prior Auth Num Sub"
 | 
|---|
| 130 |  ;;465;"RX",N,"Provider ID"
 | 
|---|
| 131 |  ;;466;"RX",N,"Prescriber ID Qualifier"
 | 
|---|
| 132 |  ;;467;"RX",N,"Prescriber Location Code"
 | 
|---|
| 133 |  ;;468;"RX",N,"Primary Care Prov ID Qual"
 | 
|---|
| 134 |  ;;469;"RX",N,"Primary Care Prov ID"
 | 
|---|
| 135 |  ;;470;"RX",N,"Primary Care Prov Last Name"
 | 
|---|
| 136 |  ;;473;"RX",N,"DUR","DUR/PPS CODE COUNTER",473
 | 
|---|
| 137 |  ;;478;"Insurer","Other Amt Claim Sub Cnt"
 | 
|---|
| 138 |  ;;479;"Insurer","Other Amt Claim Sub Qual"
 | 
|---|
| 139 |  ;;480;"Insurer","Other Amt Claim Submitted"
 | 
|---|
| 140 |  ;;481;"Insurer","Flat Sales Tax Amt Sub"
 | 
|---|
| 141 |  ;;482;"Insurer","Percentage Sales Tax Amt Sub"
 | 
|---|
| 142 |  ;;483;"Insurer","Percent Sales Tax Rate Sub"
 | 
|---|
| 143 |  ;;484;"Insurer","Percent Sales Tax Basis Sub"
 | 
|---|
| 144 |  ;;498;"RX",N,"Prescriber Phone #"
 | 
|---|
| 145 |  ;;*
 | 
|---|