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

RCDPEM21.m

Go to the documentation of this file.
  1. RCDPEM21 ;ALB/TMK/PJH - MANUAL MATCH TO PAPER EOB ;Jun 11, 2014@13:24:36
  1. ;;4.5;Accounts Receivable;**173,208,276,284,293,298,303,304,321,326**;Mar 20, 1995;Build 26
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. Q
  1. ;
  1. ; Called from [RCDPE ERA POSTED BY PAPER EOB]
  1. ;
  1. ; Begin PRCA*4.5*276 - PJH
  1. POSTED ;
  1. N DIR,X,Y
  1. S DIR("A")="Select type of receipt to ERA link"
  1. S DIR("B")="M"
  1. S DIR(0)="S^M:Manually select receipt to post;"
  1. S DIR(0)=DIR(0)_"A:Automatic search for receipt to post"
  1. D ^DIR K DIR
  1. I Y="M" D MANUAL Q
  1. I Y="A" D AUTO
  1. Q
  1. ;
  1. MANUAL ; Mark an ERA as posted when the data
  1. ; was previously posted using paper EOB information
  1. N DIC,DIE,DIR,DA,DR,ERA,RCPT,X,Y,%
  1. ; Must be unmatched or matched to paper check, must be accepted by FMS, must not be posted yet
  1. W !!,"THIS OPTION IS USED WHEN YOU HAVE POSTED AN ERA PAID WITH A PAPER CHECK",!,"BY USING THE PAPER EOB AND YOU DID NOT REFERENCE THE ERA IN THE RECEIPT",!!
  1. MAN1 S DIC("S")="I ""02""[+$P(^(0),U,9),$P(^(0),U,14)=0",DIC="^RCY(344.4,",DIC(0)="AEMQ"
  1. D ^DIC K DIC
  1. ;
  1. I Y'>0 G MANUALQ
  1. ;
  1. ;Check if ERA is already linked to a receipt
  1. I $$RCHECK(+Y) G MAN1
  1. S ERA=+Y
  1. ;
  1. S DIC="^RCY(344,",DIC(0)="AEMQ",DIC("A")="RECEIPT: ",DIC("S")="I $$FMS^RCDPEM21(Y,0)"
  1. D ^DIC K DIC
  1. I Y'>0 G MANUALQ
  1. S RCPT=+Y
  1. ;
  1. D NOW^%DTC
  1. ;Update Receipt #, EFT Match Status, Detail Post Status and Paper EOB
  1. S DIE="^RCY(344.4,",DR=".08////"_RCPT_";.09////2;.14////2;20.03////1",DA=ERA
  1. ;Update Date/Time Posted and User fields
  1. S DR=DR_";7.01///"_%_";7.02///"_DUZ
  1. D ^DIE
  1. I '$D(Y) D
  1. . S DIR(0)="EA",DIR("A",1)="ERA HAS BEEN MARKED AS POSTED USING PAPER EOB",DIR("A")="Press ENTER to continue: " D ^DIR K DIR
  1. ;
  1. MANUALQ Q
  1. ;
  1. ;VISN 15 software - created by Karen Flores
  1. ;
  1. AUTO ;Select ERA's for linking to receipt
  1. N EXIT
  1. S EXIT=0 F D LNKERA Q:EXIT
  1. Q
  1. ;
  1. RCHECK(RCSCR) ;Check if already linked to a receipt
  1. N REC,RNUM,RNAM,AMT
  1. S REC=$G(^RCY(344.4,RCSCR,0)),RNUM=$P(REC,U,8)
  1. ;Ignore check if zero amount ERA
  1. Q:'$P(REC,U,5) 0
  1. ;Check if already linked to a different receipt
  1. Q:'RNUM 0
  1. S RNAM=$P($G(^RCY(344,RNUM,0)),U)
  1. W !!,"ERA ",RCSCR," is already linked to receipt ",RNAM,!
  1. Q 1
  1. ;
  1. LNKERA ;Select ERA
  1. N ABORT,DIC,DUOUT,DTOUT,REC,RCSCR,X,Y
  1. ;Must be unposted and either unmatched or matched to paper check
  1. S DIC("S")="I ""02""[+$P(^(0),U,9),$P(^(0),U,14)=0"
  1. S DIC="^RCY(344.4,",DIC(0)="AEMQ" W ! D ^DIC K DIC
  1. S RCSCR=+Y I RCSCR'>0 S EXIT=1 Q
  1. ;Check if already linked to a different receipt
  1. Q:$$RCHECK(RCSCR)
  1. ;
  1. ;Finds receipt automatically from AR TRANSACTION file #433
  1. N AMT,ART,ARTND1,ATTY,BILL,EOB,EOBND,FOUND,RCND,RCSCR1,RECEPT,TAMT
  1. N TRACE
  1. ;Trace# from ERA
  1. S TRACE=$P($G(^RCY(344.4,RCSCR,0)),U,2)
  1. ;Clear workfile
  1. K ^TMP("RCDPEM2",$J)
  1. ;
  1. S (FOUND,ABORT,RCSCR1)=0
  1. ;Scan claim lines in ERA for non zero bills
  1. F S RCSCR1=$O(^RCY(344.4,RCSCR,1,RCSCR1)) Q:+RCSCR1=0!(FOUND) D
  1. .S RCND=$G(^RCY(344.4,RCSCR,1,RCSCR1,0))
  1. .;Ignore bill if AMOUNT PAID is zero
  1. .S AMT=$P(RCND,"^",3) Q:+AMT=0
  1. .;Ignore if EOB has no EOB detail record
  1. .S EOB=+$P(RCND,"^",2) Q:'EOB
  1. .;Get EOB detail record
  1. .S EOBND=$G(^IBM(361.1,EOB,0))
  1. .;Extract Bill number from EOB detail
  1. .S BILL=$P(EOBND,"^",1) Q:BILL=""
  1. .;Ignore duplicate bills on ERA
  1. .Q:$D(^TMP("RCDPEM2",$J,BILL))
  1. .S ^TMP("RCDPEM2",$J,BILL)=""
  1. .;Search AR TRANSACTION file #433 for the bill - newest first
  1. .S ART=""
  1. .F S ART=$O(^PRCA(433,"C",BILL,ART),-1) Q:+ART=0!(FOUND) D
  1. ..S ARTND1=$G(^PRCA(433,ART,1))
  1. ..;Get transaction type
  1. ..S ATTY=$P(ARTND1,"^",2) Q:'ATTY
  1. ..;Ignore if not a payment
  1. ..S ATTY=$P($G(^PRCA(430.3,ATTY,0)),"^",1) Q:ATTY'["PAYMENT"
  1. ..;Get receipt number
  1. ..S RECEPT=$P(ARTND1,"^",3) Q:RECEPT=""
  1. ..;Ignore receipt if status is not 'ACCEPTED BY FMS'
  1. ..Q:'$$FMS(RECEPT,1)
  1. ..W !!,"PATIENT: "_$$PNM4^RCDPEWL1(RCSCR,RCSCR1)
  1. ..W !,"Bill number: ",$P($G(^DGCR(399,BILL,0)),U)
  1. ..W !,"Check #: ",$$CHQ(RECEPT,BILL)
  1. ..W !,"Trace #: ",TRACE
  1. ..W !,"DOS: ",$$FMTE^XLFDT($P($G(^DGCR(399,BILL,0)),U,3))
  1. ..S TAMT=+$P(ARTND1,"^",5)
  1. ..W !,"AR Transaction amount: ",TAMT
  1. ..W !,"RECEIPT#: ",RECEPT
  1. ..W !,"Date of Receipt: ",$$FMTE^XLFDT($$RCDATE^RCDPRU(RECEPT))
  1. ..W !,"Total Receipt AMOUNT: ",$J($$AMT^RCDPRU(RECEPT),2,2),!
  1. .. ; PRCA*4.5*284 Change default response from YES to NO
  1. ..S DIR(0)="Y",DIR("B")="NO"
  1. ..S DIR("A")="Link to update Remittance entry # "_RCSCR
  1. ..S DIR("A")=DIR("A")_" with receipt "_RECEPT
  1. ..D ^DIR K DIR
  1. ..;Aborted
  1. ..I $D(DUOUT)!$D(DTOUT) S ABORT=1,FOUND=1 Q
  1. ..;Attempt to update ERA - finish if successful
  1. ..I +Y>0 D UPDERA(RCSCR,RECEPT,.FOUND)
  1. ;Update failed
  1. I FOUND=0 W !!,"No matching payment transactions found for this ERA"
  1. ;Clear workfile
  1. K ^TMP("RCDPEM2",$J)
  1. Q
  1. ;
  1. ; Moved to RCDPRU because of size issues PRCA*4.5*303
  1. UPDERA(DA,RECEPT,FOUND) ;Mark ERA as posted to paper EOB
  1. D UPDERA^RCDPRU(DA,RECEPT,.FOUND)
  1. Q FOUND
  1. ;
  1. ;Check FMS status
  1. FMS(RECEPT,FLG) ;
  1. ; FLG = 1 if RECEPT contains receipt number
  1. ; FLG = 0 if RECEPT contains ien of the receipt
  1. N FMSDOCNO,RCRECTDA,RES
  1. S RES=0 I $G(RECEPT)="" G FMSX
  1. ;Get receipt IEN
  1. I 'FLG S RCRECTDA=RECEPT
  1. I FLG S RCRECTDA=$O(^RCY(344,"B",RECEPT,0))
  1. I 'RCRECTDA G FMSX
  1. ;Get FMS document number
  1. S FMSDOCNO=$$FMSSTAT^RCDPUREC(RCRECTDA)
  1. ;Ignore if not accepted
  1. I $P(FMSDOCNO,U,2)'="ACCEPTED BY FMS" G FMSX
  1. ;Otherwise can be linked
  1. S RES=1
  1. FMSX ;
  1. Q RES
  1. ;
  1. CHQ(RECEPT,BILL) ;Get check number for this bill
  1. N RCRECTDA,RCTRAN,RCCHK,PATBILL
  1. ;Get receipt IEN
  1. S RCRECTDA=$O(^RCY(344,"B",RECEPT,0)) Q:'RCRECTDA ""
  1. ;Scan Receipt looking for this bill IEN
  1. S RCTRAN=0,RCCHK=""
  1. F S RCTRAN=$O(^RCY(344,RCRECTDA,1,RCTRAN)) Q:'RCTRAN D Q:RCCHK]""
  1. .;Check for match on bill IEN
  1. .S PATBILL=$P($G(^RCY(344,RCRECTDA,1,RCTRAN,0)),U,3)
  1. .;Ignore Patient pointers or null field
  1. .Q:$P(PATBILL,";",2)'="PRCA(430,"
  1. .;Compare bill IEN399 to IEN430
  1. .Q:$P(PATBILL,";")'=BILL
  1. .;Get check number for this line
  1. .S RCCHK=$P($G(^RCY(344,RCRECTDA,1,RCTRAN,0)),U,7)
  1. Q RCCHK
  1. ;
  1. ;; End PRCA*4.5*276 - PJH
  1. ;