| [613] | 1 | RCDPESR8 ;ALB/TMK - EFT return file field captions ;09-SEP-2003
 | 
|---|
 | 2 |  ;;4.5;Accounts Receivable;**173**;Mar 20, 1995
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ; Note: if the 835 EFT flat file changes, make the corresponding changes
 | 
|---|
 | 5 |  ;       in this routine.
 | 
|---|
 | 6 | DISP(RCMIN,RCMOUT,RCFMT,RCFULL,RCW) ; Format display for 835 EFT return msg
 | 
|---|
 | 7 |  ; RCMIN = the name of the array that contains the raw message data
 | 
|---|
 | 8 |  ;         The data is contained at the next level and the subscript is
 | 
|---|
 | 9 |  ;         numeric and greater than 0 OR the data can be at the
 | 
|---|
 | 10 |  ;         0-node subsequent to the final subscript.
 | 
|---|
 | 11 |  ;         If the message array is a global ^TMP($J,"MSG",n), RCMIN
 | 
|---|
 | 12 |  ;         will equal "^TMP($J,""MSG"")" and the message text will be
 | 
|---|
 | 13 |  ;         in ^TMP($J,"MSG",1), ^TMP($J,"MSG",2), etc.  OR
 | 
|---|
 | 14 |  ;         the message text can be defined at TMP($J,"MSG",1,0) ^...,2,0)
 | 
|---|
 | 15 |  ;         etc.
 | 
|---|
 | 16 |  ; RCMOUT = the name of the array that should be returned.  This array
 | 
|---|
 | 17 |  ;          will follow the same convention as the input array.  The
 | 
|---|
 | 18 |  ;          array will be returned with a numeric final subscript.  If
 | 
|---|
 | 19 |  ;          RCMOUT is passed as "^TMP($J,""MSG1"")", then the display
 | 
|---|
 | 20 |  ;          lines will be returned in ^TMP($J,"MSG1",1),
 | 
|---|
 | 21 |  ;          ^TMP($J,"MSG1",2), etc.  Note the array RCMOUT is killed
 | 
|---|
 | 22 |  ;          on entry to this call
 | 
|---|
 | 23 |  ; RCFMT = 0 or null if call should return raw data, 1 to execute the
 | 
|---|
 | 24 |  ;         transforms attached to the fields
 | 
|---|
 | 25 |  ; RCFULL = the name of an array if the data should be returned in
 | 
|---|
 | 26 |  ;          this array, formatted into lines for display.  If not sent,
 | 
|---|
 | 27 |  ;          only the display data by element is returned in RCMOUT.  If
 | 
|---|
 | 28 |  ;          RCFULL is sent, the array is killed before populating it
 | 
|---|
 | 29 |  ; RCW = max # of characters per line to return in array RCFULL
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 |  N Z,Z0,Z1,R,RC,RCCT,RCREF,RCDATA,RCQ
 | 
|---|
 | 32 |  S RCCT=0 K @RCMOUT
 | 
|---|
 | 33 |  S Z=0 F  S Z=$O(@RCMIN@(Z)) Q:'Z  S Z0=$S($G(@RCMIN@(Z))'="":@RCMIN@(Z),1:$G(@RCMIN@(Z,0))) I Z0'="" S RCQ=0 D
 | 
|---|
 | 34 |  . F Z1=1:1:$L(Z0,U) I $P(Z0,U,Z1)'="" D  Q:RCQ
 | 
|---|
 | 35 |  .. S RCDATA=$P(Z0,U,Z1)
 | 
|---|
 | 36 |  .. I Z1=1 D  Q:RCQ
 | 
|---|
 | 37 |  ... S RCREF=$S(RCDATA'["EFT":RCDATA,1:"EFT"),R=RCREF_"^RCDPESR8",RC=$P($T(@R),";;",2)
 | 
|---|
 | 38 |  ... I RC="" S RCCT=RCCT+1,@RCMOUT@(RCCT)="<<<INVALID LINE TYPE - RAW DATA IS:",RCCT=RCCT+1,@RCMOUT@(RCCT)=Z0
 | 
|---|
 | 39 |  .. Q:RCDATA=""
 | 
|---|
 | 40 |  .. S R=RCREF_"+"_Z1_"^RCDPESR8",RC=$P($T(@R),";;",2)
 | 
|---|
 | 41 |  .. I RC=""!($P(RC,U)'=RCREF) S:$S(RCDATA'="":1,1:'$P(RC,U,2)) RCCT=RCCT+1,@RCMOUT@(RCCT)="NO DATA DEFINITION PC "_Z1_": "_RCDATA Q
 | 
|---|
 | 42 |  .. I RC'="" D
 | 
|---|
 | 43 |  ... N X,X1,Y
 | 
|---|
 | 44 |  ... S X1=$P(RC,U,4,99)
 | 
|---|
 | 45 |  ... I $G(RCFMT),X1'="" S X=RCDATA X X1 S RCDATA=Y ; Output transform
 | 
|---|
 | 46 |  ... S RC=$P(RC,U,3)
 | 
|---|
 | 47 |  ... Q:RC=""&(RCDATA="")
 | 
|---|
 | 48 |  ... S RCCT=RCCT+1,@RCMOUT@(RCCT)=$S(Z1=1:"<<<",1:"")_RC_": "_RCDATA_$S(Z1=1:">>>",1:"")
 | 
|---|
 | 49 |  I $G(RCFULL)'="" D FMTDSP(RCMOUT,RCFULL,$G(RCW))
 | 
|---|
 | 50 |  Q
 | 
|---|
 | 51 |  ;
 | 
|---|
 | 52 | FMTDSP(RCMUN,RCMFO,RCW) ; Format the display data in array named in RCMUN into
 | 
|---|
 | 53 |  ; lines up to RCW characters wide  RCMUN must be set up the same as the
 | 
|---|
 | 54 |  ; output of the DISP call above
 | 
|---|
 | 55 |  ; Returns array named in RCMFO with the last subscript being the line #
 | 
|---|
 | 56 |  ; Note @RCMFO is killed on entry to this call
 | 
|---|
 | 57 |  ; Default is 80 if RCW=0 or null
 | 
|---|
 | 58 |  N Z,RCLINE,RCCT,RCCT1,RCMID,RCD,RCSTART,RCDASH
 | 
|---|
 | 59 |  K @RCMFO
 | 
|---|
 | 60 |  S:'$G(RCW) RCW=80
 | 
|---|
 | 61 |  S RCDASH=" "_$TR($J("",RCW-2)," ","-")
 | 
|---|
 | 62 |  S (RCCT,RCCT1)=0,RCLINE="",RCMID=RCW\2-1
 | 
|---|
 | 63 |  S Z=0 F  S Z=$O(@RCMUN@(Z)) Q:'Z  S RCD=$G(@RCMUN@(Z)) D
 | 
|---|
 | 64 |  . I $E(RCD,1,3)="<<<" D  Q  ; New line needed ... record start
 | 
|---|
 | 65 |  .. I $L(RCLINE)>0 S RCCT=RCCT+1,@RCMFO@(RCCT)=RCLINE,RCLINE=""
 | 
|---|
 | 66 |  .. I $L(RCLINE)=0 D
 | 
|---|
 | 67 |  ... I Z>1 S RCCT=RCCT+1,@RCMFO@(RCCT)=" "
 | 
|---|
 | 68 |  ... I RCD["<<<Line Type: 01 " S RCCT1=RCCT1+1,RCCT=RCCT+1,@RCMFO@(RCCT)=RCDASH,RCCT=RCCT+1,@RCMFO@(RCCT)="*** EFT PAYMENT DETAIL START - PAYMENT SEQUENCE #"_RCCT1_"***",RCCT=RCCT+1,@RCMFO@(RCCT)=RCDASH
 | 
|---|
 | 69 |  ... I $L(RCD)>RCW D  Q
 | 
|---|
 | 70 |  .... S RCSTART=1
 | 
|---|
 | 71 |  .... F  S RCCT=RCCT+1,@RCMFO@(RCCT)=$E(RCD,RCSTART,RCSTART+RCW-1),RCSTART=RCSTART+RCW Q:RCSTART>$L(RCD)
 | 
|---|
 | 72 |  ... S RCCT=RCCT+1,@RCMFO@(RCCT)=RCD
 | 
|---|
 | 73 |  . ;
 | 
|---|
 | 74 |  . I $L(RCD)>RCW D  Q  ; Split line if greater than width given
 | 
|---|
 | 75 |  .. I $L(RCLINE) S RCCT=RCCT+1,@RCMFO@(RCCT)=RCLINE
 | 
|---|
 | 76 |  .. S RCSTART=1
 | 
|---|
 | 77 |  .. F  S RCCT=RCCT+1,@RCMFO@(RCCT)=$E(RCD,RCSTART,RCSTART+RCW-1),RCSTART=RCSTART+RCW Q:RCSTART>$L(RCD)
 | 
|---|
 | 78 |  .. S RCLINE=""
 | 
|---|
 | 79 |  . I $L(RCLINE)=0 D  Q  ; Format left side of line
 | 
|---|
 | 80 |  .. S RCLINE=RCD
 | 
|---|
 | 81 |  .. ;
 | 
|---|
 | 82 |  .. I $L(RCLINE)>RCMID S RCCT=RCCT+1,@RCMFO@(RCCT)=RCLINE,RCLINE=""
 | 
|---|
 | 83 |  . ;
 | 
|---|
 | 84 |  . I (RCMID+$L(RCD)+1)>RCW D  Q  ; data too long for right side of line
 | 
|---|
 | 85 |  .. S RCCT=RCCT+1,@RCMFO@(RCCT)=RCLINE,RCLINE=""
 | 
|---|
 | 86 |  . S RCLINE=$E(RCLINE_$J("",RCMID),1,RCMID)_"  "_RCD,RCCT=RCCT+1,@RCMFO@(RCCT)=RCLINE,RCLINE=""
 | 
|---|
 | 87 |  I $L(RCLINE) S RCCT=RCCT+1,@RCMFO@(RCCT)=RCLINE
 | 
|---|
 | 88 |  Q
 | 
|---|
 | 89 |  ;
 | 
|---|
 | 90 |  ;
 | 
|---|
 | 91 | DISPADJ(RC3444,RCARRAY) ; Returns formatted lines of ERA level takeback data
 | 
|---|
 | 92 |  ; in array @RCARRAY@(n) where n=line #.  Data is taken from entry
 | 
|---|
 | 93 |  ; # RC3444 in file 344.4, subfile 344.42
 | 
|---|
 | 94 |  N RCT,Z,Z0
 | 
|---|
 | 95 |  S RCT=0
 | 
|---|
 | 96 |  S Z=0 F  S Z=$O(^RCY(344.4,RC3444,2,Z)) Q:'Z  S Z0=$G(^(Z,0)) D
 | 
|---|
 | 97 |  . S RCT=RCT+1,@RCARRAY@(RCT)="REFERENCE #/BILL #: "_$P(Z0,U)
 | 
|---|
 | 98 |  . S RCT=RCT+1,@RCARRAY@(RCT)="   "_$E("ADJUSTMENT CODE: "_$P(Z0,U,2)_$J("",30),1,30)_"AMOUNT: "_$J($P(Z0,U,3),0,2)
 | 
|---|
 | 99 |  Q
 | 
|---|
 | 100 |  ;
 | 
|---|
 | 101 | EFT ;;HEADER DATA
 | 
|---|
 | 102 |  ;;EFT^^Return Message ID^S Y=X_" (EFT HEADER DATA)"
 | 
|---|
 | 103 |  ;;EFT^^^S Y=""
 | 
|---|
 | 104 |  ;;EFT^^File Date^S Y=$$FDT^RCDPESR9(X)
 | 
|---|
 | 105 |  ;;EFT^^File Time^S Y=$E(X,1,2)-$S($E(X,1,2)>12:12,1:0)_":"_$E(X,3,4)_$S($E(X,1,2)=24:" AM",$E(X,1,2)>11:" PM",1:" AM")
 | 
|---|
 | 106 |  ;;EFT^1^
 | 
|---|
 | 107 |  ;;EFT^^Deposit #
 | 
|---|
 | 108 |  ;;EFT^^Deposit Date^S Y=$$FDT^RCDPESR9(X)
 | 
|---|
 | 109 |  ;;EFT^^Total Deposit Amount^S Y=$$ZERO^RCDPESR9(X,1)
 | 
|---|
 | 110 |  ;
 | 
|---|
 | 111 | 01 ;;EFT DETAIL RECORD
 | 
|---|
 | 112 |  ;;01^^Line Type^S Y=X_" (PAYMENT IDENTIFICATION)"
 | 
|---|
 | 113 |  ;;01^^Trace #
 | 
|---|
 | 114 |  ;;01^^Date Claims Paid^S Y=$$FDT^RCDPESR9(X)
 | 
|---|
 | 115 |  ;;01^^TOTAL AMOUNT PAID^S Y=$$ZERO^RCDPESR9(X,1)
 | 
|---|
 | 116 |  ;;01^^Payer Name
 | 
|---|
 | 117 |  ;;01^^Payer ID
 | 
|---|
 | 118 |  ;;01^^Provider Tax ID Sent
 | 
|---|
 | 119 |  ;;01^^Tax ID correction Flag^S Y=$S(X="E":"CHANGED BY EPHRA",X="C":"DETERMINED FROM CLAIM DATA",X="":"NO CHANGE MADE",1:X)
 | 
|---|
 | 120 |  ;;01^^ACH Trace #
 | 
|---|
 | 121 |  ;
 | 
|---|