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

FBAARJP.m

Go to the documentation of this file.
  1. FBAARJP ;AISC/GRR - PRINT REJECTS PENDING ACTION ;12/23/15 15:25
  1. ;;3.5;FEE BASIS;**132,165**;JAN 30, 1995;Build 7
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ; ICR# 10103 XLFDT, ICR# 10005 DT^DICRW
  1. D:$D(DT)#10=0 DT^DICRW
  1. ; ask batch status to report
  1. S DIR(0)="S^1:CENTRAL FEE ACCEPTED;2:VOUCHERED;3:BOTH"
  1. S DIR("A")="Select batch status to report"
  1. S DIR("B")="BOTH"
  1. D ^DIR K DIR Q:$D(DIRUT)
  1. S FBSTATL=$S(Y=1:"^F^",Y=2:"^V^",1:"^F^V^")
  1. S DIR(0)="D^:DT:EP",DIR("A")="Exclude rejects transmitted before"
  1. S DIR("B")=$$FMTE^XLFDT($$FMADD^XLFDT(DT,-730),5)
  1. S DIR("?")=" Do not include time.",DIR("?",1)="Enter earliest transmission date for payment to be included on report."
  1. S DIR("?",2)="Response must not be a future date."
  1. D ^DIR K DIR G:$D(DIRUT) END
  1. S FBSTARTD=Y
  1. S VAR="FBSTATL^FBSTARTD",VAL="",PGM="START^FBAARJP"
  1. D ZIS^FBAAUTL G:FBPOP END
  1. START U IO W:$E(IOST,1,2)="C-" @IOF K QQ,B S (Q,UL)="",$P(Q,"=",80)="=",$P(UL,"-",80)="-",(FBAAOUT,CNT,FBINTOT)=0
  1. D MED:$D(^FBAAC("AH")) G END:FBAAOUT D TRAV:$D(^FBAAC("AG")) G END:FBAAOUT D PHARM:$D(^FBAA(162.1,"AF")) G END:FBAAOUT D CHNH:$D(^FBAAI("AH")) G END:FBAAOUT
  1. I 'CNT W !!,*7,"No Rejects Pending!"
  1. END K FBTYPE,FBVDUZ,FBVD,FBPV,CNT,D,I,PGM,Q,UL,VAL,VAR,Y,Z,A1,A2,A3,B,FBAACPT,FBIN,FBNUM,FBRR,FBINTOT,CPTDESC,FBAAOUT,FBVP,J,K,T,X,L,M,N,S,V,VID,XY,ZS,POP,A,B2,FBINOLD
  1. K FBAC,FBAP,FBDX,FBK,FBL,FBPDT,FBPROC,FBSC,FBTD,FBFD,FBSTATL,FBSTARTD,DIRUT
  1. D CLOSE^FBAAUTL Q
  1. MED F B=0:0 S B=$O(^FBAAC("AH",B)) Q:B'>0!(FBAAOUT) I $D(^FBAA(161.7,B,0)),FBSTATL[(U_^("ST")_U),$$DATEOK(B,FBSTARTD) S B(0)=^FBAA(161.7,B,0),FBTYPE=$P(B(0),"^",3),FBNUM=$P(B(0),"^",1),FBVD=$P(B(0),"^",12),FBVDUZ=$P(B(0),"^",16) D MORE
  1. Q
  1. MORE D HED,HED^FBAACCB,HEDB
  1. F J=0:0 S J=$O(^FBAAC("AH",B,J)) Q:J'>0!(FBAAOUT) F K=0:0 S K=$O(^FBAAC("AH",B,J,K)) Q:K'>0!(FBAAOUT) F L=0:0 S L=$O(^FBAAC("AH",B,J,K,L)) Q:L'>0!(FBAAOUT) F M=0:0 S M=$O(^FBAAC("AH",B,J,K,L,M)) Q:M'>0!(FBAAOUT) D SET^FBAACCB,WRITM
  1. Q:FBAAOUT W !,UL,! D ASKH^FBAACCB0:$E(IOST,1,2)["C-"&('$G(FBNNP)) Q:FBAAOUT W:'$G(FBNNP) @IOF
  1. Q
  1. HEDB W !,"Batch Number: ",FBNUM,?22,"Voucher Date: ",$$DATX^FBAAUTL(FBVD),?45,"Voucherer: ",$S(FBVDUZ="":"",$D(^VA(200,FBVDUZ,0)):$P(^(0),"^",1),1:"Unknown"),!
  1. Q
  1. WRITM Q:FBAAOUT S CNT=CNT+1
  1. N FBL,FBTXT
  1. D REJTXT(162.03,M_","_L_","_K_","_J_",",.FBTXT)
  1. S FBL=0 F S FBL=$O(FBTXT(FBL)) Q:'FBL D
  1. . I $Y+3>IOSL D ASKH^FBAACCB0:$E(IOST,1,2)["C-" Q:FBAAOUT W @IOF D HED^FBAACCB
  1. . W !,FBTXT(FBL)
  1. Q
  1. TRAV F B=0:0 S B=$O(^FBAAC("AG",B)) Q:B'>0!(FBAAOUT) I $D(^FBAA(161.7,B,0)),FBSTATL[(U_^("ST")_U),$$DATEOK(B,FBSTARTD) S B(0)=^FBAA(161.7,B,0),FBTYPE=$P(B(0),"^",3),FBNUM=$P(B(0),"^",1),FBVD=$P(B(0),"^",12),FBVDUZ=$P(B(0),"^",16) D TMORE
  1. Q
  1. TMORE D HED,HEDP^FBAACCB0,HEDB
  1. F J=0:0 S J=$O(^FBAAC("AG",B,J)) Q:J'>0 F K=0:0 S K=$O(^FBAAC("AG",B,J,K)) Q:K'>0 S Y(0)=^FBAAC(J,3,K,0) D SETT^FBAACCB0,WRITT
  1. Q:FBAAOUT W !,UL,! D ASKH^FBAACCB0:$E(IOST,1,2)["C-"&('$G(FBNNP)) Q:FBAAOUT W:'$G(FBNNP) @IOF
  1. Q
  1. WRITT S CNT=CNT+1
  1. N FBL,FBTXT
  1. D REJTXT(162.04,K_","_J_",",.FBTXT)
  1. S FBL=0 F S FBL=$O(FBTXT(FBL)) Q:'FBL D
  1. . I $Y+3>IOSL D ASKH^FBAACCB0:$E(IOST,1,2)["C-" Q:FBAAOUT W @IOF D HEDP^FBAACCB0
  1. . W !,FBTXT(FBL)
  1. Q
  1. PHARM F B=0:0 S B=$O(^FBAA(162.1,"AF",B)) Q:B'>0!(FBAAOUT) I $D(^FBAA(161.7,B,0)),FBSTATL[(U_^("ST")_U),$$DATEOK(B,FBSTARTD) S B(0)=^FBAA(161.7,B,0),FBTYPE=$P(B(0),"^",3),FBNUM=$P(B(0),"^",1),FBVD=$P(B(0),"^",12),FBVDUZ=$P(B(0),"^",16) D PMORE
  1. Q
  1. PMORE D HED,HED^FBAACCB,HEDB
  1. F A=0:0 S A=$O(^FBAA(162.1,"AF",B,A)) Q:A'>0!(FBAAOUT) S FBIN=A D SETV^FBAACCB0 F B2=0:0 S B2=$O(^FBAA(162.1,"AF",B,A,B2)) Q:B2'>0!(FBAAOUT) I $D(^FBAA(162.1,A,"RX",B2,0)) S Z(0)=^(0) D MORE^FBAACCB1,WRITP
  1. Q:FBAAOUT W !,UL,! D ASKH^FBAACCB0:$E(IOST,1,2)="C-"&('$G(FBNNP)) Q:FBAAOUT W:'$G(FBNNP) @IOF
  1. Q
  1. WRITP S CNT=CNT+1
  1. N FBL,FBTXT
  1. D REJTXT(162.11,B2_","_A_",",.FBTXT)
  1. S FBL=0 F S FBL=$O(FBTXT(FBL)) Q:'FBL D
  1. . I $Y+3>IOSL D ASKH^FBAACCB0:$E(IOST,1,2)["C-" Q:FBAAOUT W @IOF D HED^FBAACCB
  1. . W !,FBTXT(FBL)
  1. Q
  1. CHNH F B=0:0 S B=$O(^FBAAI("AH",B)) Q:B'>0!(FBAAOUT) I $D(^FBAA(161.7,B,0)),FBSTATL[(U_^("ST")_U),$$DATEOK(B,FBSTARTD) S B(0)=^FBAA(161.7,B,0),FBTYPE=$P(B(0),"^",3),FBNUM=$P(B(0),"^",1),FBVD=$P(B(0),"^",12),FBVDUZ=$P(B(0),"^",16) D CMORE
  1. Q
  1. CMORE D HED,HEDC^FBAACCB1,HEDB
  1. F I=0:0 S I=$O(^FBAAI("AH",B,I)) Q:I'>0!(FBAAOUT) I $D(^FBAAI(I,0)) S Z(0)=^(0) D CMORE^FBAACCB1,WRITC
  1. Q:FBAAOUT W !,UL,! D ASKH^FBAACCB0:$E(IOST,1,2)="C-"&('$G(FBNNP)) Q:FBAAOUT W:'$G(FBNNP) @IOF
  1. Q
  1. WRITC Q:FBAAOUT S CNT=CNT+1
  1. N FBL,FBTXT
  1. D REJTXT(162.5,I_",",.FBTXT)
  1. S FBL=0 F S FBL=$O(FBTXT(FBL)) Q:'FBL D
  1. . I $Y+3>IOSL D ASKH^FBAACCB0:$E(IOST,1,2)["C-" Q:FBAAOUT W @IOF D HEDC^FBAACCB1
  1. . W !,FBTXT(FBL)
  1. Q
  1. ;
  1. HED ;write header for report if sent to printer
  1. Q:$E(IOST,1,2)="C-"
  1. W !?3,"REJECTS PENDING ACTION - ",$S(FBSTATL["F^V":"CF Accepted & Vouchered",FBSTATL["F":"Central Fee Accepted",FBSTATL["V":"Vouchered",1:"")," Trans Since: ",$$FMTE^XLFDT(FBSTARTD,5),!?3,$E(Q,1,74),!
  1. Q
  1. ;
  1. REJTXT(FBFILE,FBIENS,FBTXT) ; get reject text for line item
  1. ; input
  1. ; FBFILE - (required) Sub-File (162.03, 162.04, 162.1, or 162.5)
  1. ; FBIENS - (required) IENS of line item, FileMan DBS format
  1. ; FBTXT - array passed by reference, will be initialzed
  1. ; output
  1. ; FBTXT - array of text with format
  1. ; FBTXT(0)=count of lines
  1. ; FBTXT(#)=line of text
  1. ; where # is sequential number starting at 1
  1. ;
  1. N FBC,FBD,FBFIELDS,FBLST,FBRIENS
  1. K FBTXT
  1. S (FBC,FBTXT(0))=0
  1. ; check inputs
  1. Q:"^162.03^162.04^162.11^162.5^"'[("^"_$G(FBFILE)_"^")
  1. Q:$G(FBIENS)=""
  1. ;
  1. ; determine field numbers based on file
  1. ; FBFIELDS will contain the numbers of the following fields/sub-file
  1. ; piece 1 = batch number
  1. ; piece 2 = amount paid
  1. ; piece 3 = reject status
  1. ; piece 4 = reject reason
  1. ; piece 5 = old batch number
  1. ; piece 6 = interface reject
  1. ; piece 7 = reject code
  1. ; piece 8 = reject code sub-file number
  1. I FBFILE="162.03" S FBFIELDS="7^2^19^20^21^21.3^21.6^162.031"
  1. I FBFILE="162.04" S FBFIELDS="1^2^4^5^6^6.3^6.6^162.041"
  1. I FBFILE="162.11" S FBFIELDS="13^6.5^17^18^19^19.3^19.6^162.111"
  1. I FBFILE="162.5" S FBFIELDS="20^8^13^14^15^15.3^15.6^162.515"
  1. ;
  1. S FBD(5)=$$GET1^DIQ(FBFILE,FBIENS,$P(FBFIELDS,"^",5)) ; old batch
  1. Q:FBD(5)="" ; line is not rejected
  1. S FBD(6)=$$GET1^DIQ(FBFILE,FBIENS,$P(FBFIELDS,"^",6),"I") ; inter. rej.
  1. ;
  1. ; 1st line
  1. S FBC=FBC+1
  1. S FBTXT(FBC)=$$LJ^XLFSTR($S(FBD(6):"Central Fee",1:"Local")_" Reject",20)_"Old Batch #: "_FBD(5)
  1. ;
  1. ; line for reject reason (if any)
  1. S FBD(4)=$$GET1^DIQ(FBFILE,FBIENS,$P(FBFIELDS,"^",4)) ; reject reason
  1. I FBD(4)]"" S FBC=FBC+1,FBTXT(FBC)="Reject Reason: "_FBD(4)
  1. ;
  1. ; lines for reject codes (if any)
  1. ; get list of entries in REJECT CODE multiple
  1. D GETS^DIQ(FBFILE,FBIENS,$P(FBFIELDS,"^",7)_"*","","FBLST")
  1. ;
  1. ; loop thru REJECT CODE entries
  1. S FBRIENS=""
  1. F S FBRIENS=$O(FBLST($P(FBFIELDS,"^",8),FBRIENS)) Q:FBRIENS="" D
  1. . N FBARR,FBRC,FBLI
  1. . S FBRC=FBLST($P(FBFIELDS,"^",8),FBRIENS,.01) ; REJECT CODE
  1. . Q:FBRC=""
  1. . ; get description of code from file 161.99
  1. . D RCDES(FBRC,,.FBARR)
  1. . ;
  1. . ; add code and first line of description to output array
  1. . S FBC=FBC+1
  1. . S FBTXT(FBC)=$$LJ^XLFSTR("Rej Code: "_FBRC,16)
  1. . I $D(FBARR(1,0)) S FBTXT(FBC)=FBTXT(FBC)_FBARR(1,0)
  1. . ;
  1. . ; loop thru remaining description lines
  1. . S FBLI=1 F S FBLI=$O(FBARR(FBLI)) Q:'FBLI D
  1. . . Q:'$D(FBARR(FBLI,0))
  1. . . ; add description line to output array
  1. . . S FBC=FBC+1
  1. . . S FBTXT(FBC)=" "_FBARR(FBLI,0)
  1. ;
  1. S FBTXT(0)=FBC
  1. Q
  1. ;
  1. RCDES(FBRC,FBRM,FBARR) ; Reject Code Description
  1. ; input
  1. ; FBRC - reject code external value
  1. ; FBRM - (optional) right margin, default 60
  1. ; FBARR - array, passed by reference, not FBWP, will be initialized
  1. ; output
  1. ; FBARR - array contained formatted description
  1. ; where
  1. ; FBARR(0)=line count
  1. ; FBARR(1,0)=1st line of description
  1. ; FBARR(2,0)=2nd line of description
  1. ;
  1. ; note: some variables newed because DIWP call is stepping on I
  1. N A,B,DIWL,DIWR,DIWF,FBI,FBRCI,FBWP,FBX,I,J,K,L,M
  1. ;
  1. S FBRM=$G(FBRM,60)
  1. K FBARR
  1. Q:$G(FBRC)=""
  1. ;
  1. ; find IEN of code
  1. S FBRCI=$$FIND1^DIC(161.99,,"X",FBRC)
  1. ;
  1. ; if entry found then load description from file
  1. S:FBRCI FBX=$$GET1^DIQ(161.99,FBRCI_",",1,"","FBWP")
  1. ; if entry not found use default description
  1. S:'FBRCI FBWP(1)="Reject reason code is not currently defined in list."
  1. ;
  1. ; reformat description
  1. K ^UTILITY($J,"W")
  1. S DIWL=1,DIWR=FBRM,DIWF=""
  1. S FBI=0 F S FBI=$O(FBWP(FBI)) Q:'FBI S X=FBWP(FBI) D ^DIWP
  1. ;
  1. ; move description into output array
  1. M FBARR=^UTILITY($J,"W",DIWL)
  1. ;
  1. K ^UTILITY($J,"W")
  1. Q
  1. ;
  1. DATEOK(FBATID,FBSTART) ;Compares batch transmission date to start date
  1. ; Returns 0 if transmission date earlier than start date
  1. ; Returns 1 if transmission date equals or is later
  1. N FBX,FBY
  1. Q:FBATID'>0 0 Q:FBSTART="" 0
  1. S FBY=$P($P($G(^FBAA(161.7,FBATID,0)),U,14),".")
  1. S FBX=$S(FBY="":1,FBY<FBSTART:0,1:1)
  1. Q FBX