Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BPSTEST2

BPSTEST2.m

Go to the documentation of this file.
  1. BPSTEST2 ;AITC/CKB - ECME TESTING TOOL ;5/31/2018
  1. ;;1.0;E CLAIMS MGMT ENGINE;**24,26,28**;JUN 2004;Build 22
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. Q
  1. ;
  1. SETOVER ;
  1. ; the following code was from SETOVER^BPSTEST and is called by SETOVER^BPSTEST
  1. ;
  1. ; If a eligibility, check for specific reversal overrides and set
  1. I BPSTYPE="E1" D Q
  1. . S BPSRRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.08,"I")
  1. . ;
  1. . ; If the response is Stranded, force an <UNDEF> error
  1. . I BPSRRESP="T" S BPSXXXX=BPSUNDEF
  1. . I BPSRRESP]"" S BPSDATA(1,112)=BPSRRESP
  1. . S BPSDATA(9002313.03,9002313.03,"+1,",501)=$S(BPSRRESP="R":"R",1:"A")
  1. . ;
  1. . ; If the response is accepted, delete the reject code count and codes
  1. . I BPSRRESP="A" K BPSDATA(1,510),BPSDATA(1,511)
  1. . ;
  1. . ; If the response is rejected, delete the rejections returned by payers
  1. . ; and put in the ones entered by the user
  1. . I BPSRRESP="R" D
  1. .. K BPSDATA(1,509),BPSDATA(1,511)
  1. .. S BPSRCNT=0
  1. .. S BPSRIEN=0 F S BPSRIEN=$O(^BPS(9002313.32,BPSTIEN,1,BPSRIEN)) Q:+BPSRIEN=0 D
  1. ... S BPSRCODE=$P($G(^BPS(9002313.32,BPSTIEN,1,BPSRIEN,0)),"^",1)
  1. ... ; Increment counter and store
  1. ... I BPSRCODE]"" D
  1. .... S BPSRCD=$$GET1^DIQ(9002313.93,BPSRCODE_",",.01,"E")
  1. .... I BPSRCD]"" S BPSRCNT=BPSRCNT+1,BPSDATA(1,511,BPSRCNT)=BPSRCD
  1. .. ; Store total number of rejections
  1. .. S BPSDATA(1,510)=BPSRCNT
  1. ;
  1. ; If a reversal, check for specific reversal overrides and set
  1. I BPSTYPE="B2" D
  1. . S BPSRRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.05,"I")
  1. . ;
  1. . ; If the response is Stranded, force an <UNDEF> error
  1. . I BPSRRESP="T" S BPSXXXX=BPSUNDEF
  1. . I BPSRRESP]"" S BPSDATA(1,112)=$S(BPSRRESP="D":"T",1:BPSRRESP)
  1. . S BPSDATA(9002313.03,9002313.03,"+1,",501)=$S(BPSRRESP="R":"R",1:"A")
  1. . ;
  1. . ; If the response is accepted or duplicate, kill the reject code count and codes
  1. . I BPSRRESP="A"!(BPSRRESP="D")!(BPSRRESP="Q")!(BPSRRESP="S") K BPSDATA(1,510),BPSDATA(1,511)
  1. . ;
  1. . ; If the response is rejected, set the reject codes
  1. . I BPSRRESP="R" D SETREJ^BPSTEST(BPSTRANS)
  1. ;
  1. ; If a submission, check for specific submission overrides and set
  1. I BPSTYPE="B1" D
  1. . ; Get submission response
  1. . S BPSSRESP=$$GET1^DIQ(9002313.32,BPSTIEN_",",.03,"I")
  1. . ;
  1. . ; If the response is Stranded, force an <UNDEF> error
  1. . I BPSSRESP="T" S BPSXXXX=BPSUNDEF
  1. . ;
  1. . ; If BPSSRESP exists, file it
  1. . I BPSSRESP]"" D
  1. .. S BPSDATA(1,112)=BPSSRESP
  1. .. S BPSDATA(9002313.03,9002313.03,"+1,",501)=$S(BPSSRESP="R":"R",1:"A")
  1. .. ; If payable or duplicate, get the BPSPAID amount and file it if it
  1. .. ; exists. Also delete any reject codes
  1. .. I BPSSRESP="P"!(BPSSRESP="D")!(BPSSRESP="Q")!(BPSSRESP="S") D
  1. ... ;
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.1,"I") ; 505-F5 Patient Pay Amount
  1. ... I BPSX]"" S BPSDATA(1,505)=$$DFF^BPSECFM(BPSX,10)
  1. ... ;
  1. ... S BPSPAID=$$GET1^DIQ(9002313.32,BPSTIEN_",",.04,"I")
  1. ... I BPSPAID]"" S BPSDATA(1,509)=$$DFF^BPSECFM(BPSPAID,8) ; 509 Total amount paid
  1. ... ;
  1. ... K BPSDATA(1,510),BPSDATA(1,511) ; kill Reject Count (510) and Reject Code (511)
  1. ... ;
  1. ... S BPSCOPAY=$$GET1^DIQ(9002313.32,BPSTIEN_",",.06,"I")
  1. ... I BPSCOPAY]"" S BPSDATA(1,518)=$$DFF^BPSECFM(BPSCOPAY,8) ; 518 Copay Amount
  1. ... ;
  1. ... S BPS506=$$GET1^DIQ(9002313.32,BPSTIEN_",",.15,"I")
  1. ... I BPS506]"" S BPSDATA(1,506)=$$DFF^BPSECFM(BPS506,8) ; 506 Ingredient Cost Paid
  1. ... ;
  1. ... S BPS507=$$GET1^DIQ(9002313.32,BPSTIEN_",",.16,"I")
  1. ... I BPS507]"" S BPSDATA(1,507)=$$DFF^BPSECFM(BPS507,8) ; 507 Dispensing Fee Paid
  1. ... ;
  1. ... S BPS513=$$GET1^DIQ(9002313.32,BPSTIEN_",",.17,"I")
  1. ... I BPS513]"" S BPSDATA(1,513)=$$DFF^BPSECFM(BPS513,8) ; 513 Remaining Deductible Amount
  1. ... ;
  1. ... S BPS517=$$GET1^DIQ(9002313.32,BPSTIEN_",",.18,"I")
  1. ... I BPS517]"" S BPSDATA(1,517)=$$DFF^BPSECFM(BPS517,8) ; 517 Amount Applied to Periodic Deductible
  1. ... Q
  1. .. ;
  1. .. ;if not Stranded (BPSSRESP="T") prompt for the following fields
  1. .. I BPSSRESP'="T" D
  1. ... ; D1-D9 fields (BPS*1*15)
  1. ... S BPSAJPAY=$$GET1^DIQ(9002313.32,BPSTIEN_",",.1,"I") ; Adjudicated Payment Type
  1. ... I BPSAJPAY]"" S BPSDATA(1,1028)=$$NFF^BPSECFM(BPSAJPAY,2)
  1. ... S BPSNFLDT=$$GET1^DIQ(9002313.32,BPSTIEN_",",.09,"I") ; Override Next Available Fill
  1. ... I BPSNFLDT]"" S BPSDATA(1,2004)=$$DTF1^BPSECFM(BPSNFLDT)
  1. ... ;
  1. ... ; E0-E6 overrides (BPS*1*19)
  1. ... ; PERCENTAGE SALES TAX BASIS PAID
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.01,"I")
  1. ... I BPSX]"" S BPSDATA(1,561)=BPSX
  1. ... ; OTHER AMOUNT PAID QUALIFIER and associated field
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.02,"I")
  1. ... I BPSX]"" S BPSDATA(1,564,1)=$$NFF^BPSECFM(BPSX,2),BPSDATA(1,565,1)=$$DFF^BPSECFM(5.64,8),BPSDATA(1,563)=1
  1. ... ; PAYER ID QUALIFIER
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.03,"I")
  1. ... I BPSX]"" S BPSDATA(9002313.03,9002313.03,"+1,",568)=BPSX
  1. ... ; HELP DESK TELEPHONE NUMBER EXTENSION
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.04,"I")
  1. ... I BPSX]"" S BPSDATA(1,2022)=$$NFF^BPSECFM(BPSX,8)
  1. ... ; PROFESSIONAL SERVICE FEE CONTRACTED/REIMURSEMENT AMOUNT
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.05,"I")
  1. ... I BPSX]"" S BPSDATA(1,2033)=$$DFF^BPSECFM(BPSX,8)
  1. ... ; OTHER PAYER HELPDESK TELEPHONE EXTENSION
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.06,"I")
  1. ... I BPSX]"" S BPSDATA(1,2023,1)=$$NFF^BPSECFM(BPSX,8),BPSDATA(1,338,1)="01"
  1. ... ; RESPONSE INTERMEDIARY AUTHORIZATION TYPE ID and associated fields
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.07,"I")
  1. ... I BPSX]"" S BPSDATA(1,2053,1)=$$NFF^BPSECFM(BPSX,2),BPSDATA(1,2052)=1
  1. ... ; RESPONSE INTERMEDIARY AUTHORIZATION ID and associated fields
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.08,"I")
  1. ... I BPSX]"" S BPSDATA(1,2054,1)=$$ANFF^BPSECFM(BPSX,20),BPSDATA(1,2052)=1
  1. ... ; INTERMEDIARY MESSAGE and associated fields
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",3.01,"I")
  1. ... I BPSX]"" S BPSDATA(1,2051,1)=$$ANFF^BPSECFM(BPSX,200),BPSDATA(1,2052)=1
  1. ... ; (BPS*1*22)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.09,"I") ; B98-34 reconciliation id
  1. ... I BPSX]"" S BPSDATA(1,2098)=$$ANFF^BPSECFM(BPSX,30)
  1. ... ;
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",2.11,"E") ; 439-E4 reason for service code
  1. ... I BPSX]"" S BPSDATA(1,439,1)=$$ANFF^BPSECFM(BPSX,4),BPSDATA(1,567,1)=1
  1. ... ;
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.01,"I") ; 931-F8 maximum age qualifier
  1. ... I BPSX]"" S BPSDATA(1,931)=$$ANFF^BPSECFM(BPSX,1)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.02,"I") ; 932-GA maximum age
  1. ... I BPSX]"" S BPSDATA(1,932)=$$NFF^BPSECFM(BPSX,3)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.03,"I") ; 933-GB maximum amount
  1. ... I BPSX]"" S BPSDATA(1,933)=$$NFF^BPSECFM(BPSX,10)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.04,"I") ; 934-GC maximum amt qualifier
  1. ... I BPSX]"" S BPSDATA(1,934)=$$ANFF^BPSECFM(BPSX,2)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.05,"I") ; 935-GF maximum amt time period
  1. ... I BPSX]"" S BPSDATA(1,935)=$$ANFF^BPSECFM(BPSX,2)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.06,"I") ; 936-GG maximum amt time period start date
  1. ... I BPSX]"" S BPSDATA(1,936)=$$DTF1^BPSECFM(BPSX)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.07,"I") ; 937-GH maximum amt time period end date
  1. ... I BPSX]"" S BPSDATA(1,937)=$$DTF1^BPSECFM(BPSX)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.08,"I") ; 938-GJ maximum amt time period units
  1. ... I BPSX]"" S BPSDATA(1,938)=$$NFF^BPSECFM(BPSX,4)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.09,"I") ; 943-GQ minimum age qualifier
  1. ... I BPSX]"" S BPSDATA(1,943)=$$ANFF^BPSECFM(BPSX,1)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.1,"I") ; 944-GR minimum age
  1. ... I BPSX]"" S BPSDATA(1,944)=$$NFF^BPSECFM(BPSX,3)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.11,"I") ; C47-9T other payer adjudicate prog type
  1. ... I BPSX]"" S BPSDATA(1,2147)=$$ANFF^BPSECFM(BPSX,30)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.12,"I") ; C93-KN patient pay component amount
  1. ... I BPSX]"" S BPSDATA(1,2193)=$$DFF^BPSECFM(BPSX,8)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.13,"I") ; C94-KP patient pay component count
  1. ... I BPSX]"" S BPSDATA(1,2194)=$$NFF^BPSECFM(BPSX,4)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.14,"I") ; C95-KQ patient payer component qualifier
  1. ... I BPSX]"" S BPSDATA(1,2195)=$$ANFF^BPSECFM(BPSX,2)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.15,"I") ; D19-M1 minimum amount
  1. ... I BPSX]"" S BPSDATA(1,2219)=$$NFF^BPSECFM(BPSX,10)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.16,"I") ; D20-M2 minimum amount qualifier
  1. ... I BPSX]"" S BPSDATA(1,2220)=$$ANFF^BPSECFM(BPSX,3)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.17,"I") ; D23-M5 other payer name
  1. ... I BPSX]"" S BPSDATA(1,2223)=$$ANFF^BPSECFM(BPSX,30)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.18,"I") ; D24-M6 remaining amount
  1. ... I BPSX]"" S BPSDATA(1,2224)=$$NFF^BPSECFM(BPSX,10)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.19,"I") ; D25-M7 remaining amount qualifier
  1. ... I BPSX]"" S BPSDATA(1,2225)=$$ANFF^BPSECFM(BPSX,3)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",4.2,"I") ; D41-PA other payer relationship type
  1. ... I BPSX]"" S BPSDATA(1,2241)=$$ANFF^BPSECFM(BPSX,3)
  1. ... ;
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.01,"I") ; E87-ZV invalid provider data source
  1. ... I BPSX]"" S BPSDATA(1,2387)=$$ANFF^BPSECFM(BPSX,2)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.02,"I") ; E89-ZO formulary alternative eff date
  1. ... I BPSX]"" S BPSDATA(1,2389)=$$DTF1^BPSECFM(BPSX)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.03,"I") ; E93-ZC dur/due co-agent description
  1. ... I BPSX]"" S BPSDATA(1,2393)=$$ANFF^BPSECFM(BPSX,40)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.04,"I") ; E94-ZA unit of prior dispensed qty
  1. ... I BPSX]"" S BPSDATA(1,2394)=$$ANFF^BPSECFM(BPSX,3)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.05,"I") ; E95-Z9 other pharmacy id qualifier
  1. ... I BPSX]"" S BPSDATA(1,2395)=$$ANFF^BPSECFM(BPSX,2)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.06,"I") ; E97-Z7 other pharmacy name
  1. ... I BPSX]"" S BPSDATA(1,2397)=$$ANFF^BPSECFM(BPSX,70)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.07,"I") ; E98-Z6 other pharmacy telephone
  1. ... I BPSX]"" S BPSDATA(1,2398)=$$NFF^BPSECFM(BPSX,10)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.08,"I") ; E99-Z5 other prescriber last name
  1. ... I BPSX]"" S BPSDATA(1,2399)=$$ANFF^BPSECFM(BPSX,35)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.09,"I") ; F01-Z4 other prescriber id qualifier
  1. ... I BPSX]"" S BPSDATA(1,2401)=$$ANFF^BPSECFM(BPSX,2)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.10,"I") ; F02-Z3 other prescriber id
  1. ... I BPSX]"" S BPSDATA(1,2402)=$$ANFF^BPSECFM(BPSX,35)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.11,"I") ; F03-Z2 other prescriber phone number
  1. ... I BPSX]"" S BPSDATA(1,2403)=$$NFF^BPSECFM(BPSX,10)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.12,"I") ; F04-Z1 dur/due compound product id
  1. ... I BPSX]"" S BPSDATA(1,2404)=$$ANFF^BPSECFM(BPSX,40)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.13,"I") ; F05-Z0 dur/due compound product id qualifier
  1. ... I BPSX]"" S BPSDATA(1,2405)=$$ANFF^BPSECFM(BPSX,2)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.14,"I") ; F06-YO dur/due maximum daily dose qty
  1. ... I BPSX]"" S BPSDATA(1,2406)=$$NFF^BPSECFM(BPSX,10)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.15,"I") ; F07-YL dur/due max daily dose - unit
  1. ... I BPSX]"" S BPSDATA(1,2407)=$$ANFF^BPSECFM(BPSX,3)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.16,"I") ; F08-YJ dur/due minimum daily dose qty
  1. ... I BPSX]"" S BPSDATA(1,2408)=$$NFF^BPSECFM(BPSX,10)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",5.17,"I") ; F09-YI dur/due min daily dose - unit
  1. ... I BPSX]"" S BPSDATA(1,2409)=$$ANFF^BPSECFM(BPSX,3)
  1. ... ;
  1. ... ; E7 overrides (BPS*1*20)
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",.11,"I") I BPSX'="" D ; B88-3R quantity limit per spec time period
  1. .... S BPSDATA(1,2087)=1 ; count field
  1. .... S BPSDATA(1,2088,1)=$$NFF^BPSECFM(BPSX,10) ; data from override file
  1. .... Q
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",.12,"I") I BPSX'="" D ; B89-3S quantity limit time period
  1. .... S BPSDATA(1,2087)=1 ; count field
  1. .... S BPSDATA(1,2089,1)=$$NFF^BPSECFM(BPSX,5) ; data from override file
  1. .... Q
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",.13,"I") I BPSX'="" D ; B91-3W days supply limit per spec time period
  1. .... S BPSDATA(1,2090)=1 ; count field
  1. .... S BPSDATA(1,2091,1)=$$NFF^BPSECFM(BPSX,3) ; data from override file
  1. .... Q
  1. ... S BPSX=$$GET1^DIQ(9002313.32,BPSTIEN_",",.14,"I") I BPSX'="" D ; B92-3X days supply limit time period
  1. .... S BPSDATA(1,2090)=1 ; count field
  1. .... S BPSDATA(1,2092,1)=$$NFF^BPSECFM(BPSX,5) ; data from override file
  1. .... Q
  1. ... Q
  1. .. ;
  1. .. ; If rejected, get the rejection code and file them
  1. .. ; Also, delete the BPSPAID amount
  1. .. I BPSSRESP="R" D
  1. ... ; Delete old rejections and BPSPAID amount
  1. ... K BPSDATA(1,509),BPSDATA(1,511)
  1. ... ; Loop through rejections and store
  1. ... S BPSRCNT=0
  1. ... S BPSRIEN=0 F S BPSRIEN=$O(^BPS(9002313.32,BPSTIEN,1,BPSRIEN)) Q:+BPSRIEN=0 D
  1. .... S BPSRCODE=$P($G(^BPS(9002313.32,BPSTIEN,1,BPSRIEN,0)),"^",1)
  1. .... ; Increment counter and store
  1. .... I BPSRCODE]"" D
  1. ..... S BPSRCD=$$GET1^DIQ(9002313.93,BPSRCODE_",",.01,"E")
  1. ..... I BPSRCD]"" S BPSRCNT=BPSRCNT+1,BPSDATA(1,511,BPSRCNT)=BPSRCD
  1. ... ; Store total number of rejections
  1. ... S BPSDATA(1,510)=BPSRCNT
  1. ;
  1. Q