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

RCDPEX1.m

Go to the documentation of this file.
  1. RCDPEX1 ;ALB/TMK - ELECTRONIC EOB MESSAGE EXCEPTIONS PROCESS ;2 Aug 2018 21:41:05
  1. ;;4.5;Accounts Receivable;**173,262,298,304,326,332,432**;Mar 20, 1995;Build 16
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. EN ; Main entry point
  1. D DT^DICRW
  1. N RCFASTXT,RCDA,RCEXCTYP,RCINCEX,DIR,Y,X,RCPAR,RCPAY,RCQUIT,RCTYPE,XX
  1. ; Ask for TRANSMISSION exceptions or DATA exceptions
  1. S DIR("A")="DO YOU WANT TO SEE (T)RANSMISSION OR (D)ATA EXCEPTIONS?: ",DIR("B")="T",DIR(0)="SAO^T:TRANSMISSION;D:DATA"
  1. S DIR("?",1)="TRANSMISSION EXCEPTIONS INCLUDE ANY PROBLEM ENCOUNTERED WHEN AN ERA/EEOB",DIR("?",2)=" IS RECEIVED AT THE SITE AND BEFORE IT IS STORED PERMANENTLY IN VISTA."
  1. S DIR("?",3)=" THIS INCLUDES PARTIAL MESSAGE RECEIPTS, EXTRACT PROBLEMS AND EEOBs THAT ",DIR("?",4)=" WERE TRANSFERRED IN FROM ANOTHER SITE."
  1. S DIR("?",5)="DATA EXCEPTIONS INCLUDE EEOB DETAIL RECORDS FOR SPECIFIC BILLS THAT CAN'T BE"
  1. S DIR("?",6)=" FULLY PROCESSED INTO THE VISTA SYSTEM. THIS INCLUDES EEOB DETAIL FOR",DIR("?",7)=" CLAIMS THAT NEED TO BE TRANSFERRED TO ANOTHER SITE OR WHOSE DETAIL COULD",DIR("?")=" NOT BE STORED IN IB"
  1. D ^DIR K DIR
  1. I Y=""!(Y="^") Q
  1. S RCEXCTYP=Y,RCQUIT=0
  1. I RCEXCTYP="D" D ; Include exceptions for MEDICAL, PHARMACY or BOTH - PRCA*4.5*298 Filter question for medical, pharmacy or both
  1. . S RCTYPE=$$RTYPE^RCDPEU1("A") ; PRCA*4.5*326 Pick MEDICAL/PHARMACY/TRICARE/ALL ; PRCA*4.5*432 Add CHAMPVA
  1. . I RCTYPE=-1 S RCQUIT=1 Q
  1. . ;
  1. . S RCPAY=$$PAYRNG^RCDPEU1() ; PRCA*4.5*326 New payer selection
  1. . I RCTYPE=-1 S RCQUIT=1 Q
  1. . I RCPAY'="A" D ;
  1. .. S RCPAR("TYPE")=RCTYPE,RCPAR("SELC")=RCPAY
  1. .. S RCPAR("DICA")="Select Insurance Company NAME: "
  1. .. S XX=$$SELPAY^RCDPEU1(.RCPAR)
  1. .. I XX=-1 S RCQUIT=1
  1. ;
  1. ; Exit if the user asks to exit.
  1. I RCQUIT Q
  1. ;
  1. ; Transmission exceptions
  1. I RCEXCTYP="T" D EN^VALM("RCDPEX EOB EXCEPTION LIST")
  1. I RCEXCTYP="D" D EN^VALM("RCDPEX EOB_SUM EXCEPTION LIST")
  1. K RCFASTXT,RCDA
  1. Q
  1. ;
  1. EN1 ; Duplicate ERA Worklist [RCDPE DUPLICATE ERA WORKLIST] option
  1. D EN^VALM("RCDPEX DUPLICATE ERA LIST")
  1. K RCFASTXT,RCDA
  1. Q
  1. ;
  1. INITD ; set up initial variables (RCDPEX DUPLICATE ERA LIST)
  1. S U="^",VALMCNT=0,VALMBG=1
  1. D BLD("DUPLICATE ERA")
  1. Q
  1. ;
  1. INIT ; set up initial variables
  1. S U="^",VALMCNT=0,VALMBG=1
  1. D BLD("TRANSMISSION")
  1. Q
  1. ;
  1. BLD(MODE) ; EP - from RCDPEX -- build list of messages
  1. ; INPUT: MODE = "TRANSMISSION" or "DUPLICATE ERA"
  1. ; OUTPUT: ^TMP("RCDPEX-EOB",$J)
  1. N DA,DR,RCSEQ,RCMSG,RCS,RCER,RCDPDATA,RC0,RCDUP,X,Z
  1. K ^TMP("RCDPEX-EOB",$J),^TMP("RCDPEX-EOBDX",$J)
  1. S (RCMSG,RCSEQ,VALMCNT)=0
  1. ; Extract from 344.5
  1. F S RCMSG=$O(^RCY(344.5,"AEXC",1,RCMSG)) Q:'RCMSG S RC0=$G(^RCY(344.5,RCMSG,0)) D
  1. . ; Check if message is on duplicate ERA worklist
  1. . S RCDUP=+$$GET1^DIQ(344.5,RCMSG_",",.15,"I")
  1. . ; Only display messages relevant to worklist type
  1. . I MODE="TRANSMISSION",RCDUP Q
  1. . I MODE="DUPLICATE ERA",'RCDUP Q
  1. . ; add to list
  1. . S RCSEQ=RCSEQ+1
  1. . S DR=".01:.03;.1;.11",DA=RCMSG D DIQ3445(DA,DR)
  1. . S X=""
  1. . S X=$$SETSTR^VALM1($E(RCSEQ_" ",1,4)_" "_$G(RCDPDATA(344.5,RCMSG,.01,"E")),"",1,26) ;(#.01) MESSAGE ID [1F]
  1. . S X=$$SETSTR^VALM1(" "_$E($G(RCDPDATA(344.5,RCMSG,.02,"I")),4,6),X,27,9) ;(#.02) MESSAGE TYPE [2S]
  1. . S X=$$SETSTR^VALM1(" "_$G(RCDPDATA(344.5,RCMSG,.03,"E")),X,36,22) ;(#.03) DATE RECORDED [3D]
  1. . S X=$$SETSTR^VALM1(" "_$G(RCDPDATA(344.5,RCMSG,.11,"E")),X,58,17) ;(#.11) MAIL MESSAGE [11F]
  1. . D SET(X,344.5,RCMSG,RCSEQ)
  1. . S X=" EXCEPTION: "_$G(RCDPDATA(344.5,RCMSG,.1,"E")) ;(#.1) EXCEPTION CATEGORY [10S]
  1. . D SET(X,344.5,RCMSG,RCSEQ)
  1. . S DR=1,DA=RCMSG D DIQ3445(DA,DR) ;(#1) DISPLAY DATA
  1. . S Z=0 F S Z=$O(RCDPDATA(344.5,RCMSG,1,Z)) Q:'Z S X=" "_RCDPDATA(344.5,RCMSG,1,Z) D SET(X,344.5,RCMSG,RCSEQ)
  1. ;
  1. I '$D(^TMP("RCDPEX-EOB",$J)) S VALMCNT=2,^TMP("RCDPEX-EOB",$J,1,0)=" ",^TMP("RCDPEX-EOB",$J,2,0)=" There Are No EEOB Exception Records On File"
  1. Q
  1. ;
  1. FNL ; -- Clean up list
  1. K ^TMP("RCDPEX-EOBDX",$J),^TMP("RCDPEU1",$J) ; PRCA*4.5*326
  1. D CLEAN^VALM10
  1. K RCFASTXT
  1. Q
  1. ;
  1. SET(X,FILE,RCMSG,RCSEQ) ; -- set arrays for EOB exception records
  1. ; X = the data to set into the global
  1. S VALMCNT=VALMCNT+1,^TMP("RCDPEX-EOB",$J,VALMCNT,0)=X
  1. S ^TMP("RCDPEX-EOB",$J,"IDX",VALMCNT,RCSEQ)=""
  1. S ^TMP("RCDPEX-EOBDX",$J,RCSEQ)=VALMCNT_U_RCMSG_U_FILE
  1. Q
  1. ;
  1. HDR ;
  1. S VALMHDR(1)=$J("",21)_"ERA/EEOB MESSAGES WITH EXCEPTION CONDITIONS"
  1. S VALMHDR(2)=" "
  1. Q
  1. ;
  1. HDR1 ;
  1. S VALMHDR(1)=$J("",21)_"Duplicate 835ERA Messages",VALMHDR(2)=" "
  1. Q
  1. ;
  1. DIQ3445(DA,DR) ; DIQ call to retrieve data for DR fields in file 344.5
  1. N %I,D0,DIC,DIQ,DIQ2,YY
  1. K RCDPDATA(344.5)
  1. S DIQ(0)="EI",DIC="^RCY(344.5,",DIQ="RCDPDATA" D EN^DIQ1
  1. Q
  1. ;
  1. DIQ3444(DA,DR) ; DIQ call to retrieve data for DR fields in file 344.4
  1. N %I,D0,DIC,DIQ,DIQ2,YY
  1. K RCDPDATA(344.4)
  1. S DIQ(0)="EI",DIC="^RCY(344.4,",DIQ="RCDPDATA" D EN^DIQ1
  1. Q
  1. ;