| 1 | BPSECX1 ;BHAM ISC/FCS/DRS/VA/DLF - Create new Claim ID for Claim Submission file ;05/17/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 |  ;Create new Claim ID for Claim Submission file (9002313.02)
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ;Function Returns:  VA<YYYY>=<Pharmacy ID>=<Plan ID>=<Sequence Number>
 | 
|---|
| 8 |  ;                   Where: <YYYY> is the year
 | 
|---|
| 9 |  ;                          <Pharmacy ID> NPI or NCPDPP of the BPS Pharmacy
 | 
|---|
| 10 |  ;                          <Plan ID> is the VA National Plan ID w/o leading alphas
 | 
|---|
| 11 |  ;                          <Sequence #> is a unique counter stored in BPS SETUP
 | 
|---|
| 12 |  ;----------------------------------------------------------------------
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 | CLAIMID(IEN59) ;EP - Called from BPSOSCE (billing requests) and BPSECA8 (reversals)
 | 
|---|
| 15 |  ; Check parameters
 | 
|---|
| 16 |  I '$G(IEN59) Q ""
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ; Initialization
 | 
|---|
| 19 |  N PHARMACY,FACID,THIRD,DEL,PLAN,I,SEQNUM
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  ; Get and format the Facility ID (second piece of the transmission ID)
 | 
|---|
| 22 |  ;   1. Try to get NPI first.
 | 
|---|
| 23 |  ;   2. If we do not get the NPI, get the NCPDP and left-pad it with zeros
 | 
|---|
| 24 |  ;      up to seven characters.
 | 
|---|
| 25 |  ;   3. Right-pad the final ID with spaces up to 10 characters
 | 
|---|
| 26 |  S PHARMACY=+$P($G(^BPST(IEN59,1)),U,7)
 | 
|---|
| 27 |  S FACID=$P($G(^BPS(9002313.56,PHARMACY,"NPI")),U,1)
 | 
|---|
| 28 |  I FACID="" D
 | 
|---|
| 29 |  . S FACID=$P($G(^BPS(9002313.56,PHARMACY,0)),U,2)
 | 
|---|
| 30 |  . S FACID=$TR($J("",7-$L(FACID))," ","0")_FACID
 | 
|---|
| 31 |  S FACID=$RE($J($RE(FACID),10))
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  ; Get the third piece of the transmission ID
 | 
|---|
| 34 |  ;  If the National Plan ID is available, use it with '=' delimiter (new format)
 | 
|---|
| 35 |  ;  If not, it will need to be the BIN with the '-' delimiter (old format)
 | 
|---|
| 36 |  S THIRD="",PLAN=$$GET1^DIQ(9002313.59902,"1,"_IEN59_",","902.27")
 | 
|---|
| 37 |  I PLAN]"" D
 | 
|---|
| 38 |  . F I=1:1:$L(PLAN) I $E(PLAN,I)?1N Q
 | 
|---|
| 39 |  . S PLAN=$E(PLAN,I,$L(PLAN))
 | 
|---|
| 40 |  . S THIRD=PLAN,DEL="="
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  ; If no plan, get BIN and use '-' delimiter (old format)
 | 
|---|
| 43 |  I THIRD="" S DEL="-",THIRD=$$GET1^DIQ(9002313.59902,"1,"_IEN59_",","902.03")
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  ; Pad third piece with zeros
 | 
|---|
| 46 |  S THIRD=$TR($J("",6-$L(THIRD))," ","0")_THIRD
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  ; Get and format the sequence number (fourth piece)
 | 
|---|
| 49 |  L +^BPS(9002313.99,1,3):15
 | 
|---|
| 50 |  I '$T D IMPOSS^BPSOSUE("DB,P","TI","",,"Can't lock BPS(9002313.99,1,3)",$T(+0))
 | 
|---|
| 51 |  S SEQNUM=+$G(^BPS(9002313.99,1,3)),^BPS(9002313.99,1,3)=SEQNUM+1
 | 
|---|
| 52 |  I $L(SEQNUM<7) S SEQNUM=$E($TR($J("",7-$L(SEQNUM))," ","0")_SEQNUM,1,7)
 | 
|---|
| 53 |  L -^BPS(9002313.99,1,3)
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  ; Create the Transmission ID
 | 
|---|
| 56 |  Q "VA"_($E(DT,1,3)+1700)_DEL_FACID_DEL_THIRD_DEL_SEQNUM
 | 
|---|