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

BPSOSRX8.m

Go to the documentation of this file.
  1. BPSOSRX8 ;ALB/SS - ECME REQUESTS ;10-JAN-08
  1. ;;1.0;E CLAIMS MGMT ENGINE;**7,10,11,20**;JUN 2004;Build 27
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ;check parameters for EN^BPSNCPDP
  1. ;BRXIEN - Rx ien
  1. ;BRX - rx refil no
  1. ;BWHERE - RX action
  1. ;DFN - patient's ien
  1. ;PNAME - patient name
  1. ;return
  1. ;1 - passed
  1. ;0^message - failed
  1. CHCKPAR(BRXIEN,BRX,BWHERE,DFN,PNAME) ;
  1. I '$G(BRXIEN) Q "0^Prescription IEN parameter missing"
  1. I $G(BWHERE)="" Q "0^RX Action parameter missing"
  1. I $G(BRX)="" Q "0^Prescription does not exist"
  1. I $G(DFN)="" Q "0^Patient's IEN does not exist"
  1. I $G(PNAME)="" Q "0^Patient name missing"
  1. Q 1
  1. ;
  1. ;===== check if we need to print the messages to the screen =======
  1. PRINTSCR(BWHER) ;
  1. I ",AREV,CRLB,CRLR,CRLX,CRRL,PC,PL,"[(","_BWHER_",") Q 0
  1. Q 1 ;print messages to the screen
  1. ;check if any IB DATA is missing
  1. ;returns
  1. ; 0 - passed
  1. ; or
  1. ; RESPONSE code^CLMSTAT message^D(display message)^number of seconds to hang if display
  1. IBDATAOK(MOREDATA,BPSARRY) ;
  1. N BPRESP S BPRESP=2
  1. I $G(BPSARRY("NO ECME INSURANCE")) S BPRESP=6
  1. ; Check for missing data (Will IB billing determination catch this?)
  1. I $D(MOREDATA("IBDATA",1,1)),$P(MOREDATA("IBDATA",1,1),"^",1)="" Q BPRESP_U_"Information missing from IB data.^D^2"
  1. ; Check for missing/invalid payer sheets (I think IB billing determination will catch this)
  1. I $P($G(MOREDATA("IBDATA",1,1)),"^",4)="" Q BPRESP_U_"Invalid/missing payer sheet from IB data.^D^2"
  1. ; Check if IB says to bill
  1. I '$G(MOREDATA("BILL")) Q BPRESP_U_"Flagged by IB to not 3rd Party Insurance bill through ECME.^D^2"
  1. Q 0
  1. ;Get Site
  1. GETSITE(BRXIEN,BFILL) ;
  1. I '$G(BRXIEN) Q ""
  1. I '$G(BFILL) Q $$RXAPI1^BPSUTIL1(BRXIEN,20,"I")
  1. Q $$RXSUBF1^BPSUTIL1(BRXIEN,52,52.1,+BFILL,8,"I")
  1. ;
  1. ; Store general information/parameters into MOREDATA
  1. ; In instances where duz is null set it equal to .5 (postmaster)
  1. BASICMOR(BWHERE,DOS,BPSITE,REVREAS,DURREC,BPOVRIEN,BPSCLARF,BPSAUTH,BPSDELAY,MOREDATA) ;
  1. N I
  1. S MOREDATA("USER")=$S('DUZ:.5,1:DUZ)
  1. S MOREDATA("RX ACTION")=$G(BWHERE)
  1. S MOREDATA("DATE OF SERVICE")=$P($G(DOS),".",1)
  1. S MOREDATA("REVERSAL REASON")=$S($G(REVREAS)="":"UNKNOWN",1:$E($G(REVREAS),1,40))
  1. S MOREDATA("DIVISION")=$G(BPSITE)
  1. I $G(DURREC)]"" F I=1:1:3 I $P(DURREC,"~",I)]"" S MOREDATA("DUR",I,0)=$P(DURREC,"~",I)
  1. I $G(BPOVRIEN)]"" S MOREDATA("BPOVRIEN")=BPOVRIEN
  1. I $G(BPSCLARF)]"" S MOREDATA("BPSCLARF")=BPSCLARF
  1. I $TR($G(BPSAUTH),"^")]"" S MOREDATA("BPSAUTH")=BPSAUTH
  1. I $G(BPSDELAY)]"" S MOREDATA("BPSDELAY")=BPSDELAY
  1. Q
  1. ;====== Prepare ret. value
  1. ;return RESPONSE ^ CLMSTAT ^ Display= D ^ seconds to HANG
  1. RSPCLMS(BPREQTYP,RESPONSE,MOREDATA,BPADDINF) ;
  1. N ELIG
  1. S ELIG=$G(MOREDATA("ELIG"))
  1. I BPREQTYP="C",RESPONSE=0 Q RESPONSE_U_$S(ELIG="T":"TRICARE ",ELIG="C":"CHAMPVA ",ELIG="V":"Veteran ",1:"")_"Prescription "_BRX_$S(ELIG="T":"",ELIG="C":"",1:" successfully")_" submitted to ECME for claim generation.^D^"
  1. I BPREQTYP="C",RESPONSE>0 Q RESPONSE_U_"No claim submission made: "_$S($G(BPADDINF)'="":BPADDINF,1:"Unable to queue claim submission.")_"^D"
  1. I BPREQTYP="U",RESPONSE=0 Q RESPONSE_U_"Reversing prescription "_BRX_".^D^2"
  1. I BPREQTYP="U",RESPONSE>0 Q RESPONSE_U_"No claim submission made. Unable to queue reversal.^D^2"
  1. I BPREQTYP="UC",RESPONSE=10 Q RESPONSE_U_$S(ELIG="T":"TRICARE ",ELIG="C":"CHAMPVA ",ELIG="V":"Veteran ",1:"")_"Prescription "_BRX_$S(ELIG="T":"",ELIG="C":"",1:" successfully")_" submitted to ECME for claim reversal.^D^"
  1. I BPREQTYP="UC",RESPONSE=0 Q RESPONSE_U_$S(ELIG="T":"TRICARE ",ELIG="C":"CHAMPVA ",ELIG="V":"Veteran ",1:"")_"Prescription "_BRX_$S(ELIG="T":"",ELIG="C":"",1:" successfully")_" submitted to ECME for claim generation.^D^"
  1. I BPREQTYP="UC",RESPONSE>0,RESPONSE'=10 Q RESPONSE_U_"No claim submission made: "_$S($G(BPADDINF)'="":BPADDINF,1:"Unable to queue claim submission.")_"^D"
  1. Q ""