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

RCDPEM3.m

Go to the documentation of this file.
  1. RCDPEM3 ;OIFO-BAYPINES/RBN - ERA AUDIT REPORT and return EFT function ;Jun 06, 2014@19:11:19
  1. ;;4.5;Accounts Receivable;**276,284,298,326,375,371,432**;Mar 20, 1995;Build 16
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; General read access of IB EOB file #361.1 is allowed from AR (IA 4051)
  1. ; completely refactored for PRCA*4.5*298
  1. Q
  1. ;
  1. ; PRCA*4.5*284 - Changed report name from 'Mark ERA returned to Payer' to 'Remove ERA from active worklist'
  1. ;
  1. ; Generates an audit report that displays all ERAs that have been removed from the worklist.
  1. ; The user can select filters with which to limit the number of ERAs displayed:
  1. ; Station/Division - Default is all
  1. ; Date Range - Default is all
  1. ; Start Date type - No default, P:Date removed from worklist, R:Date ERA Received, B:Both Dates
  1. ;
  1. ; INPUT:
  1. ; user is prompted for the Station/Division, Date/Time range, and start/end dates
  1. ;
  1. ; OUTPUT:
  1. ; report which displays removed ERAs, it contains:
  1. ; User's name - who performed the transaction
  1. ; Date/Time ERA received from the payer
  1. ; Date/Time ERA removed from worklist
  1. ; Free text reasons for returning the ERA to the payer
  1. ; ERA number
  1. ; Trace number
  1. ; Dollar amount of ERA
  1. ; Payer name
  1. ;
  1. ; Data taken from ELECTRONIC REMITTANCE ADVICE file (#344.4)
  1. ;
  1. EN ; EP - Remove ERA from Active Worklist Audit Report [RCDPE REMOVED ERA AUDIT]
  1. N %ZIS,I,POP,RCDISPTY,RCDIV,RCDTRNG,RCEND,RCHDR,RCLNCNT,RCLSTMGR,RCPGNUM,RCPG
  1. N RCSSD,RCSTA,RCSTART,RCSTNO,RCSTOP,RCTMPND,RCTYPE,VAUTD,X,Y
  1. ;
  1. S RCLSTMGR="" ; ListMan flag, set to '^' if sent to Excel
  1. S RCTMPND="" ; If null, report lines not stored in ^TMP, written directly
  1. S (RCSTOP,RCPG,RCLNCNT)=0 ; Initial values of zero
  1. S RCPGNUM=0 ; Report page number
  1. ; PRCA*4.5*276 - Modify Header display
  1. S RCDIV="ALL" ; Default to All divisions
  1. S RCSSD=$$DTPRB^RCDPEM4()
  1. I RCSSD=0 D EXIT Q
  1. S RCDTRNG=$$DTRNG^RCDPEM4()
  1. I 'RCDTRNG D EXIT Q
  1. S RCSTART=$P(RCDTRNG,U,2),RCEND=$P(RCDTRNG,U,3)
  1. ; VAUTD=1 for 'ALL'
  1. D DIVISION^VAUTOMA
  1. Q:Y=-1
  1. I 'VAUTD,($D(VAUTD)'=11) D EXIT Q
  1. I VAUTD=0 D
  1. . N C,J
  1. . S (J,C)=0,RCDIV=""
  1. . F S J=$O(VAUTD(J)) Q:'J S C=C+1,$P(RCDIV,", ",C)=VAUTD(J)
  1. ;
  1. S RCTYPE=$$RTYPE^RCDPEU1("A") ;PRCA*4.5*326 M/P/T filter
  1. I RCTYPE=-1 D EXIT Q
  1. S RCDISPTY=$$DISPTY() ; Ask display type for Excel
  1. I RCDISPTY<0 D EXIT Q
  1. ;
  1. ; Display Excel info, set ListMan flag to prevent question
  1. I RCDISPTY D
  1. . D INFO^RCDPEM6
  1. . S RCLSTMGR="^"
  1. ;
  1. ; If not output to Excel ask for ListMan display, exit if timeout or '^' - PRCA*4.5*298
  1. I RCLSTMGR="" D Q:RCLSTMGR<0
  1. . S RCLSTMGR=$$ASKLM^RCDPEARL
  1. . I RCLSTMGR<0 D EXIT Q
  1. ;
  1. ; Display in ListMan format and exit on return
  1. I RCLSTMGR D Q
  1. . S RCTMPND=$T(+0)_"^REMOVE ERA AUDIT"
  1. . K ^TMP($J,RCTMPND) ; clean any residue
  1. . D REPRT,DISP(RCDISPTY)
  1. . N H,HDR,L,N
  1. . S L=0
  1. . S HDR("TITLE")=$$HDRNM
  1. . F H=1:1:7 D ; Take first 7 lines of report header
  1. . . I $D(RCHDR(H)) S L=H,HDR(H)=RCHDR(H)
  1. . I $O(RCHDR(L)) D ; Any remaining header lines at top of report
  1. . . S N=0,H=L
  1. . . F S H=$O(RCHDR(H)) Q:'H S N=N+.001,^TMP($J,RCTMPND,N)=RCHDR(H)
  1. . ;
  1. . ; invoke ListMan
  1. . D LMRPT^RCDPEARL(.HDR,$NA(^TMP($J,RCTMPND))) ; Generate ListMan display
  1. . D EXIT
  1. ;
  1. S %ZIS="QM"
  1. D ^%ZIS
  1. Q:POP
  1. I $D(IO("Q")) D Q
  1. . N ZTDESC,ZTRTN,ZTSAVE,ZTSK
  1. . S ZTRTN="ENFRMQ^RCDPEM3"
  1. . S ZTDESC=$$HDRNM
  1. . S ZTSAVE("RC*")="",ZTSAVE("VAUTD")=""
  1. . D ^%ZTLOAD
  1. . W !!,$S($G(ZTSK):"Task number "_ZTSK_" queued.",1:"Unable to queue this task.")
  1. . K IO("Q")
  1. . D HOME^%ZIS
  1. ;
  1. U IO
  1. ;
  1. ENFRMQ ; entry point from queue
  1. D REPRT
  1. D DISP(RCDISPTY)
  1. D EXIT
  1. Q
  1. ;
  1. DISPTY() ; Ask display/output type
  1. ; Input: None
  1. ; Returns: 0-Display, 1-MS Excel, -1=timeout or '^'
  1. N DIR,DIRUT,DUOUT,X,Y
  1. S DIR(0)="YA",DIR("A")="Export the report to Microsoft Excel? (Y/N): "
  1. S DIR("B")="NO"
  1. D ^DIR
  1. I $D(DUOUT)!$D(DIRUT) S Y=-1
  1. Q Y
  1. ;
  1. ERASTA(ERAIEN) ; Returns "station name ^ station #" for an ERA
  1. ; Input: ERAIEN - IEN of the ERA
  1. Q:'($G(ERAIEN)>0) "-1^" ; Must have valid IEN
  1. N BILLPTR,ERAEOB,J,M,P,STAPTR,STNAM,STANMBR,Y
  1. ; ERAEOB - EOB corresponding to the ERA
  1. ; BILLPTR - pointer to Bill corresponding to the ERA
  1. ; STAPTR - IEN of the Station of the ERA
  1. S STNAM="" ; Initial value
  1. D
  1. . ;^RCY(344.4,D0,1,D1,0)= (#.01) SEQUENCE # [1N] ^ (#.02) EOB DETAIL [2P:361.1]
  1. . S J=0
  1. . F S J=$O(^RCY(344.4,ERAIEN,1,J)) Q:'J!(STNAM'="") D
  1. . . S M=^RCY(344.4,ERAIEN,1,J,0)
  1. . . S ERAEOB=0,P=+$P(M,U,2)
  1. . . I P>0,$D(^IBM(361.1,P,0)) S Y=$G(^IBM(361.1,P,0)),ERAEOB=P
  1. . . Q:'ERAEOB ; Pointer to ^IBM(361.1,0) = EXPLANATION OF BENEFITS^361.1
  1. . . S BILLPTR=$P(Y,U,1)
  1. . . Q:'(BILLPTR>0)
  1. . . ;
  1. . . ; ^DGCR(399,0) = BILL/CLAIMS^399
  1. . . S STAPTR=$P($G(^DGCR(399,BILLPTR,0)),U,22)
  1. . . Q:'(STAPTR>0)
  1. . . ;
  1. . . ; ^DG(40.8,0) = MEDICAL CENTER DIVISION^40.8
  1. . . S STNAM=$$GET1^DIQ(40.8,STAPTR_",",.01,"","","RCDIERR") ; 40.8,.01 = NAME
  1. . . Q:STNAM=""
  1. . . S STANMBR=$P(^DG(40.8,STAPTR,0),U,2) ; IA 417
  1. ;
  1. S:STNAM="" STNAM="STATION UNKNOWN",STANMBR="000"
  1. Q STNAM_"^"_STANMBR
  1. ;
  1. REPRT ; Generate the report lines into ^TMP array
  1. ; Input: RCSSD - Selected Start Date
  1. ; W:Date Removed from Worklist R:Date ERA Received B:Both Dates
  1. ; RCDTRNG - Date/Time range of report (range flag^start date^end date)
  1. N DTERA,DTXREF,END,ERAIEN,N,START,X,ZROND
  1. K ^TMP($J,"RC REMV ERA"),^TMP($J,"RC TOTAL")
  1. ; If user picked W:Date Removed from Worklist or B:Both Dates, use x-ref "AD" (REMOVED DATE)
  1. I (RCSSD="W")!(RCSSD="B") D
  1. . S END=$P(RCDTRNG,U,3),START=$P(RCDTRNG,U,2),DTXREF=START-.0000001
  1. . F S DTXREF=$O(^RCY(344.4,"AD",DTXREF)) Q:'DTXREF!(DTXREF\1>END) D
  1. . . S ERAIEN=0
  1. . . F S ERAIEN=$O(^RCY(344.4,"AD",DTXREF,ERAIEN)) Q:'ERAIEN D
  1. . . . Q:'$D(^RCY(344.4,ERAIEN,6))
  1. . . . S ZROND=$G(^(0))
  1. . . . Q:ZROND=""
  1. . . . I $$ISTYPE^RCDPEU1(344.4,ERAIEN,"T") D
  1. . . . . S N=$G(^TMP($J,"RC TOTAL","TRICARE"))+1
  1. . . . . S ^TMP($J,"RC TOTAL","TRICARE")=N ; total can be listed
  1. . . . Q:'$$ISTYPE^RCDPEU1(344.4,ERAIEN,RCTYPE) ; PRCA*4.5*326 Filter by payer type
  1. . . . ;
  1. . . . D PROC(ERAIEN)
  1. ;
  1. ; If user picked R:Date ERA Received or B:Both Dates, use x-ref "AC" (ERA DATE)
  1. I (RCSSD="R")!(RCSSD="B") D
  1. . S END=$P(RCDTRNG,U,3),START=$P(RCDTRNG,U,2),DTXREF=START-.0000001
  1. . F S DTXREF=$O(^RCY(344.4,"AC",DTXREF)) Q:'DTXREF!(DTXREF\1>END) D
  1. . . S ERAIEN=0
  1. . . F S ERAIEN=$O(^RCY(344.4,"AC",DTXREF,ERAIEN)) Q:'ERAIEN D
  1. . . . Q:'$D(^RCY(344.4,ERAIEN,6))
  1. . . . S ZROND=$G(^RCY(344.4,ERAIEN,0))
  1. . . . Q:ZROND=""
  1. . . . Q:$D(^TMP($J,"RC REMV ERA",$P(ZROND,U,1))) ; Data is in ^TMP
  1. . . . I $$ISTYPE^RCDPEU1(344.4,ERAIEN,"T") D
  1. . . . . S N=$G(^TMP($J,"RC TOTAL","TRICARE"))+1
  1. . . . . S ^TMP($J,"RC TOTAL","TRICARE")=N ; Total can be listed
  1. . . . Q:'$$ISTYPE^RCDPEU1(344.4,ERAIEN,RCTYPE) ; PRCA*4.5*326 Filter by payer type
  1. . . . S DTERA=$P(ZROND,U,4)
  1. . . . Q:'DTERA
  1. . . . D PROC(ERAIEN)
  1. Q
  1. ;
  1. DISP(RCDISPTY) ; Format the display for screen/printer or MS Excel
  1. ; RCDISPTY - Display/print/Excel flag
  1. ; LOCAL VARIABLES: IEN - line number of the data in ^TMP (see above)
  1. D:'RCLSTMGR HDRBLD
  1. D:RCLSTMGR HDRLM
  1. N A,IEN,LEN,RCNAM,Y,ZZ
  1. D:'RCLSTMGR HDRLST^RCDPEARL(.RCSTOP,.RCHDR)
  1. S IEN=0
  1. ; PRCA*4.5*276 - Modify Display
  1. F S IEN=$O(^TMP($J,"RC REMV ERA",IEN)) Q:'IEN!RCSTOP D
  1. . S Y=^TMP($J,"RC REMV ERA",IEN)
  1. . ;
  1. . ;PRCA*4.5*371 - Added Trace # as the second column
  1. . I RCDISPTY D Q
  1. . . S ZZ=$P(Y,U,1)_U_$P(Y,U,9)_U_$P(Y,U,2,8)
  1. . . W !,ZZ
  1. . I 'RCLSTMGR,$Y>(IOSL-RCHDR(0)) D HDRLST^RCDPEARL(.RCSTOP,.RCHDR) Q:RCSTOP
  1. . ;
  1. . ;PRCA*4.5*371 - Changed the Payer column to Trace #/Payer and m
  1. . S A=$$PAD^RCDPEARL($P(Y,U,3),12)
  1. . S ZZ=$P(Y,U,9)_"/"_$P(Y,U,2) ; Trace #/Payer Name
  1. . S:$L(ZZ)>63 ZZ=$E(ZZ,1,63) ; Truncated Payer Name if necessary
  1. . S A=A_ZZ
  1. . D SL^RCDPEARL(A,.RCLNCNT,RCTMPND) ; ERA & Trace #/Payer
  1. . S A=$$PAD^RCDPEARL($J("",5)_$P(Y,U,4),29) ; Date ERA received
  1. . S A=$$PAD^RCDPEARL(A_$P(Y,U,5),46) ; Date/Time Removed
  1. . S RCNAM=$P(Y,U,7) ; User who removed
  1. . ;
  1. . ; Add ERA amount and user who removed
  1. . S A=$$PAD^RCDPEARL(A_"$"_$P(Y,U,6),58)_$E(RCNAM,1,19) ; limit name to 19 chars.
  1. . D SL^RCDPEARL(A,.RCLNCNT,RCTMPND)
  1. . D WP($P(Y,U,8)) ; reason removed
  1. ;
  1. Q:RCSTOP
  1. ;
  1. ; End of report
  1. D SL^RCDPEARL(" ",.RCLNCNT,RCTMPND) ; Skip a line
  1. D SL^RCDPEARL($$ENDORPRT^RCDPEARL,.RCLNCNT,RCTMPND)
  1. ;
  1. I '$D(ZTQUEUED),'RCLSTMGR,'RCSTOP D ASK^RCDPEARL(.RCSTOP)
  1. Q
  1. ;
  1. PROC(ERAIEN) ; Put data into ^TMP based on filters
  1. ; Input: ERAIEN - IEN of the ERA
  1. N AMT,DEPTCKT,DTERA,DTRTN,ERA,ERAEOB,P,PAYER,RCLOCDV,RCNTRY,RMVRSN,TRACE,USER,Y
  1. ; ERAEOB - EOB corresponding to this ERA
  1. ; RCDIV - Name of station
  1. ; STANMBR - Station number
  1. ; DTERA - Date of ERA
  1. ; DTRTN - Date ERA removed from worklist
  1. ; RMVRSN - Justification for removal of ERA
  1. ; TRACE - Trace number of the ERA
  1. ; AMT - Total amount of the ERA
  1. ; PAYER - ERA payer
  1. ; USER - User who completed the removal of the ERA from the worklist
  1. ; DEPTCKT - deposit ticket
  1. ; RCNTRY - Entry from ^RCY(344.4,ERAIEN)
  1. ;
  1. S Y=$$ERASTA(ERAIEN) ; Station name and number
  1. S RCSTA=$P(Y,U,1),RCSTNO=$P(Y,U,2)
  1. ;
  1. ; PRCA*4.5*276 - Modify Display
  1. I 'VAUTD Q:RCDIV'[RCSTA
  1. M RCNTRY=^RCY(344.4,ERAIEN)
  1. S ERAEOB=$P($G(RCNTRY(1,1,0)),U,2)
  1. S Y=$P(RCNTRY(0),U,4)
  1. S DTERA=$$FMTE^XLFDT(Y,"2D") ; (#.O4) ERA DATE
  1. S ERA=$P(RCNTRY(0),U,1) ; (#.01) ENTRY [1N]
  1. S TRACE=$P(RCNTRY(0),U,2) ; (#.02) TRACE NUMBER
  1. S AMT=$P(RCNTRY(0),U,5) ; (#.05) TOTAL AMOUNT PAID
  1. S Y=$P(RCNTRY(6),U,2),DTRTN=$$FMTE^XLFDT(Y,2) ; (#.17) REMOVED DATE [2D]
  1. S RMVRSN=$P(RCNTRY(6),U,3) ; (#.18) REMOVE REASON [3F]
  1. ;
  1. ; User's name for report
  1. S USER="",Y=+$P(RCNTRY(6),U,1)
  1. S:Y>0 USER=$$NAME^XUSER(Y,"F") ; (#.16) REMOVED BY
  1. S PAYER=$P(RCNTRY(0),U,6) ; (#.06) PAYMENT FROM ;PRCA*4.5*371
  1. ;
  1. ; PRCA*4.5*371 - Commented out next two lines because we now get the payer from the ERA
  1. ;I ERAEOB S P=+$P($G(^IBM(361.1,ERAEOB,0)),U,2) S:P>0 PAYER=$$GET1^DIQ(36,P_",",.01,"","","RCDIERR")
  1. ;S:PAYER="" PAYER="PAYER UNKNOWN"
  1. ; get Deposit Ticket
  1. ;
  1. ; PRCA*4.5*371 - Added Trace#
  1. S ^TMP($J,"RC REMV ERA",ERA)=RCSTA_U_PAYER_U_ERA_U_DTRTN_U_DTERA_U_AMT_U_USER_U_RMVRSN_U_TRACE
  1. Q
  1. ;
  1. ;
  1. HDRBLD ; Create the report header
  1. ; Input: RCDISPTY - Display/print/Excel flag
  1. ; RCDTRNG - Date range
  1. ; RCXCLUDE - TRICARE /CHAMPVA flags
  1. ; Returns: RCHDR(0) - Header text line count
  1. ; RCHDR("XECUTE") - M code for page number
  1. ; RCHDR("RUNDATE")- Date/time report generated, external format
  1. ; RCPGNUM - Page counter
  1. ; RCSTOP - Flag to exit
  1. ;
  1. K RCHDR
  1. S RCHDR("RUNDATE")=$$NOW^RCDPEARL,RCPGNUM=0,RCSTOP=0
  1. I RCDISPTY D Q ; Excel format, xecute code is QUIT, null page number
  1. . S RCHDR(0)=1,RCHDR("XECUTE")="Q",RCPGNUM=""
  1. . ;
  1. . ;PRCA*4.5*371 Added Trace Number below
  1. . S RCHDR(1)="STATION NAME^TRACE #^PAYER^ERA NUMBER^DATE REMOVED^DATE RECEIVED^AMOUNT^USER^REMOVED REASON"
  1. ;
  1. N DIV,HCNT,Y
  1. S HCNT=0 ; Counter for header
  1. S Y=$$HDRNM,HCNT=1
  1. S RCHDR(HCNT)=$J("",80-$L(Y)\2)_Y ; line 1 will be replaced by XECUTE code below
  1. S RCHDR("XECUTE")="N Y S RCPGNUM=RCPGNUM+1,Y=$$HDRNM^"_$T(+0)_"_$S(RCLSTMGR:"""",1:$J(""Page: ""_RCPGNUM,12)),RCHDR(1)=$J("" "",80-$L(Y)\2)_Y"
  1. S Y="Run Date/Time: "_RCHDR("RUNDATE")
  1. S HCNT=HCNT+1,RCHDR(HCNT)=$J("",80-$L(Y)\2)_Y ; Line 1 will be replaced by XECUTE code below
  1. ;
  1. S Y("1ST")=$P(RCDTRNG,U,2),Y("LST")=$P(RCDTRNG,U,3)
  1. F Y="1ST","LST" S Y(Y)=$$FMTE^XLFDT(Y(Y),"2Z")
  1. S Y="Date Range: "_Y("1ST")_" - "_Y("LST")
  1. S Y=Y_" ("_$S(RCSSD="B":"Received & Removed",RCSSD="W":"Date Removed from Worklist",1:"Date ERA Received")_")"
  1. S HCNT=HCNT+1,RCHDR(HCNT)=$J("",80-$L(Y)\2)_Y
  1. K Y ; Delete Y subscripts
  1. S Y="DIVISIONS: "_RCDIV
  1. S Y=$J("",80-$L(Y)\2)_Y,HCNT=HCNT+1,RCHDR(HCNT)=Y
  1. S Y="MEDICAL/PHARMACY/TRICARE/CHAMPVA: " ; PRCA*4.5*432 CHAMPVA
  1. S Y=Y_$S(RCTYPE="M":"MEDICAL",RCTYPE="P":"PHARMACY",RCTYPE="T":"TRICARE",RCTYPE="C":"CHAMPVA",1:"ALL") ; PRCA*4.5*432 CHAMPVA
  1. S HCNT=HCNT+1,RCHDR(HCNT)=$J("",80-$L(Y)\2)_Y
  1. S HCNT=HCNT+1,RCHDR(HCNT)=""
  1. ;
  1. ;PRCA*4.5*371 Added TRACE #/below, moved the start of the column closer to the ERA#
  1. S HCNT=HCNT+1,RCHDR(HCNT)="ERA# Trace #/Payer Name"
  1. S HCNT=HCNT+1,RCHDR(HCNT)=" Date/Time Date ERA Total Amt User Who"
  1. S HCNT=HCNT+1,RCHDR(HCNT)=" Removed Received Paid Removed"
  1. S Y="",$P(Y,"=",81)="",HCNT=HCNT+1,RCHDR(HCNT)=Y ; row of equal signs at bottom
  1. S RCHDR(0)=HCNT ; Line count for header
  1. Q
  1. ;
  1. HDRLM ; Create the Listman header
  1. ; Input: RCDTRNG - Date range
  1. ; RCXCLUDE - TRICARE /CHAMPVA flags
  1. ; Returns: RCHDR(0) - Header text line count
  1. N DIV,HCNT,Y
  1. S HCNT=0 ; Counter for header
  1. S Y("1ST")=$P(RCDTRNG,U,2)
  1. S Y("LST")=$P(RCDTRNG,U,3)
  1. F Y="1ST","LST" S Y(Y)=$$FMTE^XLFDT(Y(Y),"2Z")
  1. S Y="Date Range: "_Y("1ST")_" - "_Y("LST")
  1. S Y=Y_" ("_$S(RCSSD="B":"Received & Removed",RCSSD="W":"Date Removed from Worklist",1:"Date ERA Received")_")"
  1. S HCNT=1,RCHDR(HCNT)=Y
  1. K Y ; Delete Y subscripts
  1. S Y="DIVISIONS: "_RCDIV,Y=Y,HCNT=HCNT+1
  1. S RCHDR(HCNT)=Y
  1. S Y="MEDICAL/PHARMACY/TRICARE/CHAMPVA: " ; PRCA*4.5*432 CHAMPVA
  1. S Y=Y_$S(RCTYPE="M":"MEDICAL",RCTYPE="P":"PHARMACY",RCTYPE="T":"TRICARE",RCTYPE="C":"CHAMPVA",1:"ALL") ; PRCA*4.5*432 CHAMPVA
  1. S HCNT=HCNT+1,RCHDR(HCNT)=Y
  1. S HCNT=HCNT+1,RCHDR(HCNT)=""
  1. ;
  1. ;PRCA*4.5*371 Added TRACE #/below, moved the start of the column closer to the ERA#
  1. S HCNT=HCNT+1,RCHDR(HCNT)="ERA# Trace #/Payer Name"
  1. S HCNT=HCNT+1,RCHDR(HCNT)=" Date/Time Date ERA Total Amt User Who"
  1. S HCNT=HCNT+1,RCHDR(HCNT)=" Removed Received Paid Removed"
  1. S RCHDR(0)=HCNT ; Lne count for header
  1. Q
  1. ;
  1. HDRNM() ; Returns the report name
  1. Q "ERAs Removed from Active Worklist - Audit Report"
  1. ;
  1. EXIT ; Exit the report
  1. D ^%ZISC
  1. K ^TMP($J,"RC REMV ERA"),^TMP($J,"RC TOTAL")
  1. Q
  1. ;
  1. WP(RR) ; Format Removed Reason comments
  1. ; Input: RR - Removed Reason
  1. Q:RR=""
  1. N CMNT,CNTR,I,PCS,Y
  1. ; PCS - Number of " " $pieces in the comment
  1. ; CNTR - CMNT line counter
  1. ; CMNT - Comment text to be displayed
  1. S PCS=$L(RR," "),CNTR=1,CMNT(CNTR)=" Removed Reason: "
  1. F I=1:1:PCS D
  1. . S Y=$P(RR," ",I)
  1. . S:$L(CMNT(CNTR))+$L(Y)>72 CNTR=CNTR+1,CMNT(CNTR)=$J(" ",17)
  1. . S CMNT(CNTR)=CMNT(CNTR)_" "_Y
  1. ;
  1. F I=1:1:CNTR D SL^RCDPEARL(CMNT(I),.RCLNCNT,RCTMPND)
  1. Q
  1. ;
  1. RETN ; Entry point for Remove Duplicate EFT Deposits [RCDPE REMOVE DUP DEPOSITS]
  1. N DA,DIC,DIE,DIR,DR,DTOUT,MSG,RCERANUM,RCY,X,Y
  1. D OWNSKEY^XUSRB(.MSG,"RCDPE REMOVE DUPLICATES",DUZ)
  1. I 'MSG(0) W !,"You are not authorized to use this option.",! S DIR(0)="E" D ^DIR K DIR Q
  1. W !!," WARNING: Removing an EFT is **NOT** reversible."
  1. W !," Use this option only if you are sure you want to remove this EFT."
  1. W !," Please be aware that once an EFT is removed - it cannot be restored.",!!
  1. S DIR(0)="YA",DIR("B")="NO"
  1. S DIR("A")="Are you sure you want to continue? "
  1. D ^DIR K DIR
  1. I $D(DUOUT)!$D(DTOUT)!'Y Q
  1. ; EDI THIRD PARTY EFT DETAIL (#344.31)
  1. ; PRCA*4.5*326 - Use EFT picker utility instead of DIC call
  1. ; screening logic for field #.08 MATCH STATUS [8S], must be UNMATCHED
  1. S DIC("S")="I '$P(^(0),U,8)"
  1. S DIC("A")="Select EDI THIRD PARTY EFT DETAIL EFT TRANSACTION: "
  1. S RCY=$$ASKEFT^RCDPEU2(DIC("A"),DIC("S"))
  1. I RCY'>0 Q
  1. S RCERANUM=$$GET1^DIQ(344.31,RCY_",",.01,"E") ; Get EFT number
  1. ; PRCA*4.5*326 - End changed block
  1. ;
  1. K DIR S DIR(0)="YA",DIR("B")="NO"
  1. S DIR("A",1)="This will mark EFT # "_RCERANUM_" as removed."
  1. S DIR("A")="Are you sure you want to continue? "
  1. W !
  1. D ^DIR K DIR
  1. I $D(DUOUT)!$D(DTOUT)!(Y=0) D NOCHNG Q
  1. S DIE="^RCY(344.31,",DA=RCY,DR=".19;.2R" D ^DIE ;PRCA*4.5*375 - Add Removal Type field for Duplicate/Millenium EFTs
  1. I $D(Y) D NOCHNG Q ; user aborted edit
  1. ;
  1. ; 344.31,.08 - MATCH STATUS
  1. ; 344.31,.17 - USER WHO REMOVED EFT
  1. ; 344.31,.18 - DATE/TIME DUPLICATE REMOVED
  1. S DR=".08////1;.17////"_DUZ_";.18////"_$$NOW^XLFDT D ^DIE
  1. W !!
  1. K DIR S DIR(0)="EA"
  1. S DIR("A")="Press return to continue: "
  1. S DIR("A",1)="EFT # "_RCERANUM_" has been marked as removed."
  1. D ^DIR
  1. Q
  1. ;
  1. NOCHNG ;
  1. N DIR,DTOUT,DUOUT,X,Y
  1. S DIR(0)="EA"
  1. S DIR("A")="Press return to continue: "
  1. S DIR("A",1)="*** This EFT was NOT removed. ***"
  1. W !! D ^DIR
  1. Q
  1. ;
  1. ; BEGIN PRCA*4.5*326
  1. DICW ; Identifier code for EFT lookup - EP MATCH1^RCDPEM3 and MATCH2^RCDPEM2
  1. ; Input - Y = EFT DETAIL #344.31 IEN
  1. ; D = Index ("B","C","E","F","FNLZ")
  1. ; DZ = User input from ^DIE call, "?" or "??" if help list was requested
  1. ;
  1. ; PRCA*4.5*371 - Removed D and DZ from new statement
  1. N DATA,DEPDAT,DEPNO,EFTID,EFTIEN,EFTTR,PAYAMT,PAYNAM,PAYTR,SP,TIN
  1. S DATA=$G(^RCY(344.31,Y,0)) I DATA="" Q
  1. S SP=$J("",3),EFTIEN=$P(DATA,U,1)
  1. S EFTTR="",EFTID=EFTIEN I $P(DATA,U,14) S EFTID=EFTID_"."_$P(DATA,U,14)
  1. S PAYNAM=$$GET1^DIQ(344.31,Y,.02,"E")
  1. S TIN=$$GET1^DIQ(344.31,Y,.03,"E")
  1. S PAYTR=$$GET1^DIQ(344.31,Y,.04,"E")
  1. S PAYAMT=$$GET1^DIQ(344.31,Y,.07,"E")
  1. S DEPNO=$$GET1^DIQ(344.3,EFTIEN,.03,"E")
  1. S DEPDAT=$$FMTE^XLFDT($$GET1^DIQ(344.3,EFTIEN,.07,"I"),"2DZ")
  1. ; EFT DETAIL lookup
  1. I $G(DZ)="??"!($G(DZ)="?") D ;
  1. . S PAYNAM=$E(PAYNAM,1,58-$L(TIN))_"/"_TIN I PAYNAM="/" S PAYNAM=""
  1. . W ?10,EFTID,?20," ",PAYNAM
  1. . W !,?20," ",PAYTR,?48," ",$J(PAYAMT,10)
  1. . W ?59," ",DEPNO,?71," ",DEPDAT
  1. E D ;
  1. . S PAYNAM=$E(PAYNAM,1,52-$L(TIN))_"/"_TIN I PAYNAM="/" S PAYNAM=""
  1. . I D="B"!(D="D") D Q ; Search index EFT# or EFT ID#
  1. . . W ?25," ",PAYNAM
  1. . . W !,?25," ",PAYTR,?48," ",$J(PAYAMT,10)
  1. . . W ?59," ",DEPNO,?71," ",DEPDAT
  1. . I D="C" D Q ; Search index PAYER NAME
  1. . . W " ",EFTID
  1. . . W !,?20," ",PAYTR,?48," ",$J(PAYAMT,10)
  1. . . W ?59," ",DEPNO,?71," ",DEPDAT
  1. . I D="E" D Q ; Search index DATE/TIME DUPLICATE REMOVED
  1. . . W " ",EFTID,?25," ",PAYNAM
  1. . . W !,?25," ",PAYTR,?48," ",$J(PAYAMT,10)
  1. . . W ?59," ",DEPNO,?71," ",DEPDAT
  1. . I D="F" D Q ; Search index TRACE#
  1. . . W " ",EFTID,?48,$J(PAYAMT,10),?59," ",DEPNO,?71," ",DEPDAT
  1. . . W !,?25," ",PAYNAM
  1. ;
  1. ; Next line required to fix problem when ??, ^ from help, then ?? again reverts back to old help.
  1. ; If DIC(0)["A" DIC("W") is not killed off.
  1. I $G(DIC(0))'["A" S DIC(0)="A"_$G(DIC(0))
  1. Q
  1. ;
  1. OUT(RCEFT) ; EP UNMATCH^RCDPEM2
  1. ; INPUT - RCEFT - #344.31 ien
  1. ; OUTPUT - EFT_"."_TRAN - formatted EFT line
  1. N EFT,TRAN
  1. S EFT=$$GET1^DIQ(344.31,RCEFT_",",.01,"I")
  1. S TRAN=$$GET1^DIQ(344.31,RCEFT_",",.14)
  1. Q EFT_"."_TRAN
  1. ; END PRCA*4,5*326