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

BAR50P10.m

Go to the documentation of this file.
  1. BAR50P10 ; IHS/SD/LSL - NEW REPORT ERA CLAIMS ;
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**1,20,21,22**;OCT 26,2005;Build 38
  1. ;
  1. ; IHS/SD/LSL - 10/1/03 - V1.7 Patch 4 - HIPAA
  1. ; Routine Created
  1. ;
  1. ; IHS/SD/LSL - 02/26/04 - V1.7 Patch 5
  1. ; Change check to chk/eft
  1. ;
  1. ; IHS/SD/RTL - 04/8/05 - V1.8 Patch 1
  1. ; Can't view check detail in ERA Claim Report
  1. ; IHS/SD/SDR - 1/5/2011 - V1.8 P20 - Included new status Exception (E)
  1. ;
  1. ; ********************************************************************
  1. ;;
  1. EN ; EP
  1. D DISP ; Display File and Check choice
  1. D INIT ; Initialize Variables
  1. F D Q:+BARDONE Q:($D(BARINDX)&$D(BARTYP)&$D(BARMEDIA))
  1. . D STATUS ; Ask which Claim status to report
  1. . Q:'$D(BARINDX)
  1. . F D Q:'$D(BARTYP) Q:($D(BARTYP)&$D(BARMEDIA))
  1. . . D RPTYP ; Ask report type
  1. . . Q:'$D(BARTYP)
  1. . . F D Q:$D(DIRUT) Q:$D(BARMEDIA) ; Ask Browse or print
  1. . . . D ASK
  1. I ('$D(BARINDX)!('$D(BARTYP))!('$D(BARMEDIA))) D Q
  1. . D PAZ^BARRUTL
  1. . D XIT
  1. D SETHDR ; Set up report header
  1. I BARMEDIA="B" D BROWSE
  1. E D PRINT
  1. ;D PAZ^BARRUTL
  1. D XIT
  1. Q
  1. ; ********************************************************************
  1. ;
  1. DISP ;
  1. ; Display File and Check Choices for report
  1. K IMP
  1. D ENP^XBDIQ1(90056.02,IMPDA,".01;.05","IMP(")
  1. W !,@IOF,!,"Reports for : ",?20,IMP(.01)
  1. W !,?20,IMP(.05),?50,"CHK/EFT #: ",$E(BARCHK,1,23)
  1. Q
  1. ; ********************************************************************
  1. INIT ;
  1. ;
  1. S BARDONE=0
  1. S BAR("PRIVACY")=1 ; Privacy act applies (used BARRHD)
  1. S $P(BARDASH,"-",81)=""
  1. S $P(BARSTAR,"*",81)=""
  1. F I=0,2 S BARCHK(I)=$G(^BARECHK(BARCKIEN,I))
  1. S BARZ("C")="CLAIM UNMATCHED"
  1. S BARZ("C","HDR")="= = = = = = = = = = = = C L A I M U N M A T C H E D = = = = = = = = = = ="
  1. S BARZ("P")="POSTED"
  1. S BARZ("P","HDR")="= = = = = = = = = = = = = = = = P O S T E D = = = = = = = = = = = = = = = ="
  1. S BARZ("M")="MATCHED"
  1. S BARZ("M","HDR")="= = = = = = = = = = = = = = = = M A T C H E D = = = = = = = = = = = = = = ="
  1. S BARZ("N")="NOT TO POST"
  1. S BARZ("N","HDR")="= = = = = = = = = = = = = = N O T T O P O S T = = = = = = = = = = = = ="
  1. S BARZ("X")="CLAIM & REASON UNMATCHED"
  1. S BARZ("X","HDR")="= = = = = = = C L A I M & R E A S O N U N M A T C H E D = = = = = = ="
  1. S BARZ("R")="REASON UNMATCHED"
  1. S BARZ("R","HDR")="= = = = = = = = = = = R E A S O N U N M A T C H E D = = = = = = = = = = ="
  1. ;start new code bar*1.8*20 REQ7
  1. S BARZ("E")="EXCEPTION"
  1. S BARZ("E","HDR")="= = = = = = = = = = = = = = = E X C E P T I O N= = = = = = = = = = = = = = ="
  1. ;end new code REQ7
  1. ;start new code bar*1.8*20
  1. S BARZ("W")="MATCHED W/REASON NOT TO POST"
  1. S BARZ("W","HDR")="= = = = = M A T C H E D W / R E A S O N N O T T O P O S T = = = = = ="
  1. ;end new code
  1. Q
  1. ; ********************************************************************
  1. ;
  1. STATUS ;
  1. ; Select claim status for reports
  1. W !!,"Enter the list of Claim Status(s) you desire to print,"
  1. W !,"and in the sequence to be printed out.",!
  1. W !,"C - Claim Unmatched",?25,"R - Reason Unmatched",?50,"N - Not to Post"
  1. W !,"M - Matched",?25,"P - Posted",?50,"X - Claim & Reason Unmatched"
  1. ;W !,"A - All Categories",!,?5,"Example: CRXN",! ;bar*1.8*20 REQ7
  1. W !,"A - All Categories",?25,"E - Exception",!,?5,"Example: CRXN",! ;bar*1.8*20 REQ7
  1. S BARBAD=0
  1. K DIR,BARINDX
  1. ;S DIR(0)="FO^0:6" ;bar*1.8*20 REQ7
  1. S DIR(0)="FO^0:7" ;bar*1.8*20 REQ7
  1. D ^DIR
  1. K DIR
  1. S Y=$$UPC^BARUTL(Y) ;bar*1.8*20
  1. I $L(Y)'>0 D Q
  1. . W !!,"NONE SELECTED - EXITING",!
  1. . S BARDONE=1
  1. I Y="^" S BARDONE=1 Q
  1. ;S Z="CRNMPX" ;bar*1.8*20 REQ7
  1. S Z="CRNMPXE" ;bar*1.8*20 REQ7
  1. I Y="A" S Y=Z
  1. ;S Z="CRNMPX" ;bar*1.8*20 REQ7
  1. S Z="CRNMPXE" ;bar*1.8*20 REQ7
  1. F I=1:1:$L(Y) I Z'[$E(Y,I) D Q
  1. . W !!,">>>BAD ENTRY<<<>>> ",Y
  1. . S BARBAD=1
  1. Q:+BARBAD
  1. S BARINDX=Y
  1. Q
  1. ; ********************************************************************
  1. ;
  1. RPTYP ;
  1. ; Select Report Type
  1. W !
  1. K DIR,BARTYP
  1. S DIR(0)="SOB^D:Detailed;B:Brief - One Line;S:Summary - Totals Only"
  1. S DIR("A")="Select the type of report: "
  1. D ^DIR
  1. K DIR
  1. I $D(DUOUT)!($D(DTOUT)) Q
  1. Q:(",D,B,S,"'[(","_Y_","))
  1. S BARTYP=Y
  1. S BARTYP("NAME")=Y(0)
  1. Q
  1. ; ********************************************************************
  1. ;
  1. ASK ;
  1. ; Ask Browse or Print
  1. K DIRUT,DIR,Y
  1. S Y=$$DIR^XBDIR("S^P:PRINT Output;B:BROWSE Output on Screen","Do you wish to ","P","","","",1)
  1. K DA
  1. Q:$D(DIRUT)
  1. S BARMEDIA=Y
  1. S BARMEDIA("NAME")=Y(0)
  1. Q
  1. ; ********************************************************************
  1. ;
  1. SETHDR ;
  1. ; Set up Report Header lines
  1. K BARPCIEN,BARPC,BARIIEN,BARAIEN
  1. ; Find payer contact.
  1. ; BARPC(Count)=#^type of number^name
  1. S BARPCIEN=0
  1. F S BARPCIEN=$O(^BARECHK(BARCKIEN,3,BARPCIEN)) Q:'+BARPCIEN D
  1. . S BARPC(BARPCIEN)=$G(^BARECHK(BARCKIEN,3,BARPCIEN,0))
  1. I '$D(BARPC) D
  1. . I $P(BARCHK(0),U,3)="" S BARPC(1)="" Q
  1. . I $P(BARCHK(0),U,4)="" S BARPC(1)="" Q
  1. . S BARAIEN=$P($G(^BARCOL(DUZ(2),$P(BARCHK(0),U,3),1,$P(BARCHK(0),U,4),0)),U,7)
  1. . I BARAIEN="" S BARPC(1)="" Q
  1. . S BARIIEN=$P($G(^BARAC(DUZ(2),BARAIEN,0)),U,1)
  1. . I BARIIEN'["AUTNINS" S BARPC(1)="" Q
  1. . S BARPC(1)=$P($G(^AUTNINS(+BARIIEN,0)),U,6)
  1. . I BARPC(1)="" S BARPC(1)="" Q
  1. . S $P(BARPC(1),U,3)=$P($G(^AUTNINS(+BARIIEN,0)),U,9)
  1. ;
  1. S BAR("HD",0)="ELECTRONIC CLAIM REPORT - "_$P(BARTYP("NAME")," ")
  1. S BARTMP="FOR FILE NAME: "_IMP(.05)
  1. D PAD
  1. ;S BAR("HD",1)=BARTMP_"CHECK/EFT TRACE: "_$E(BARCHK,1,12) ;bar*1.8*22 SDR
  1. S BAR("HD",1)=BARTMP_"CHECK/EFT TRACE: "_$E(BARCHK,1,20) ;bar*1.8*22 SDR
  1. ;BAR*1.8*1 SRS ADDENDUM FOR BAR*1.8*1
  1. S BARTMP=" "
  1. D PAD
  1. I $P(BARCHK(0),U,8)="XX" D
  1. .S BAR("HD",1.5)=BARTMP_" NPI: "_$P(BARCHK(0),U,9)
  1. E S BAR("HD",1.5)=BARTMP_" TIN: "_$P(BARCHK(0),U,11)
  1. ;END
  1. S BAR("HD",2)="FOR RPMS FILE: "_IMP(.01)_" FOR "_$P(BARCHK(0),U,7)
  1. S BAR("HD",3)=BARDASH
  1. S BARTMP=$$GET1^DIQ(90056.22,BARCKIEN,.03)
  1. S BARTMP="BATCH: "_$S(BARTMP="":"** No RPMS match **",1:BARTMP)
  1. D PAD
  1. S BAR("HD",4)=BARTMP_"ITEM # "_$P(BARCHK(0),U,4)
  1. S BAR("HD",5)=BARDASH
  1. ;
  1. S BARTMP=$P(BARCHK(2),U)
  1. D PAD
  1. S BAR("HD",6)=BARTMP ; Payer name (RA)
  1. S BARTMP=$P(BARCHK(2),U,2)
  1. D PAD
  1. S BAR("HD",7)=BARTMP ; Payer Address (RA)
  1. S BARLCNT=7
  1. I $P(BARCHK(2),U,3)]"" D
  1. . S BARLCNT=BARLCNT+1
  1. . S BARTMP=$P(BARCHK(2),U,3)
  1. . D PAD
  1. . S BAR("HD",BARLCNT)=BARTMP ; Payer address 2 (RA)
  1. S BARLCNT=BARLCNT+1
  1. I $P(BARCHK(2),U,6)'["-",$L($P(BARCHK(2),U,6))>5 S $P(BARCHK(2),U,6)=$E($P(BARCHK(2),U,6),1,5)_"-"_$E($P(BARCHK(2),U,6),6,9)
  1. S BARTMP=$P(BARCHK(2),U,4)_", "_$P(BARCHK(2),U,5)_" "_$P(BARCHK(2),U,6)
  1. D PAD
  1. S BAR("HD",BARLCNT)=BARTMP
  1. S BAR("LVL")=BARLCNT
  1. S I=$O(BARPC(0))
  1. Q:BARPC(I)="" ; No payer contact info
  1. S BAR("HD",6)=BAR("HD",6)_$S($P(BARPC(I),U,3)]"":$P(BARPC(I),U,3),1:"CUSTOMER SERVICE")
  1. K I,J,K
  1. S I=0
  1. S BARLCNT=6
  1. F S I=$O(BARPC(I)) Q:'+I!(BARLCNT>9) D
  1. . S BARLCNT=BARLCNT+1
  1. . S BARCTYP=$S($P(BARPC(I),U,2)="":"PH: ",$P(BARPC(I),U,2)="TE":"PH: ",$P(BARPC(I),U,2)="FX":"FX: ",1:"")
  1. . S $P(BARPC(I),U)=$TR($P(BARPC(I),U),")-","")
  1. . S BARTMP=$P(BARPC(I),U)
  1. . I (BARCTYP="PH: "!(BARCTYP="FX: ")) D
  1. . . I $L(BARTMP)=10 S $P(BARPC(I),U)="("_$E(BARTMP,1,3)_") "_$E(BARTMP,4,6)_"-"_$E(BARTMP,7,10)
  1. . . I $L(BARTMP)=7 S $P(BARPC(I),U)=$E(BARTMP,1,3)_"-"_$E(BARTMP,4,7)
  1. . I '$D(BAR("HD",BARLCNT)) D
  1. . . S BARTMP=" "
  1. . . D PAD
  1. . . S BAR("HD",BARLCNT)=BARTMP
  1. . S BAR("HD",BARLCNT)=BAR("HD",BARLCNT)_BARCTYP_$P(BARPC(I),U)
  1. I BARLCNT>BAR("LVL") S BAR("LVL")=BARLCNT
  1. Q
  1. ; ********************************************************************
  1. ;
  1. PAD ;
  1. ; Fixed undefined error in detail report.
  1. ; (Reported previously in IM17021.)
  1. ;K L
  1. N L,I ;IM17021
  1. S L=$L(BARTMP)
  1. ;F I=L:1:50 S BARTMP=BARTMP_" " ;bar*1.8*22 SDR
  1. F I=L:1:43 S BARTMP=BARTMP_" " ;bar*1.8*22 SDR
  1. ;K L,I ;IM17021
  1. Q
  1. ; ********************************************************************
  1. ;
  1. BROWSE ;
  1. ; Browse report to screen
  1. ; GET DEVICE (QUEUEING ALLOWED)
  1. S XBFLD("BROWSE")=1
  1. S BARIOSL=IOSL
  1. S IOSL=600
  1. D VIEWR^XBLM("PRINT^BAR50P11")
  1. D FULL^VALM1
  1. W $$EN^BARVDF("IOF")
  1. D CLEAR^VALM1 ;clears out all list man stuff
  1. K XQORNEST,VALMKEY,VALM,VALMAR,VALMBCK,VALMBG,VALMCAP,VALMCNT,VALMOFF
  1. K VALMCON,VALMDN,VALMEVL,VALMIOXY,VALMLFT,VALMLST,VALMMENU,VALMSGR,VALMUP
  1. K VALMY,XQORS,XQORSPEW,VALMCOFF
  1. S IOSL=BARIOSL
  1. Q
  1. ; ********************************************************************
  1. ;
  1. PRINT ;
  1. ; Print report to device. Queuing allowed.
  1. S BARQ("RC")="COMPUTE^BAREDP11" ; Build tmp global with data
  1. S BARQ("RP")="PRINT^BAREDP11" ; Print reports from tmp global
  1. S BARQ("NS")="BAR" ; Namespace for variables
  1. S ZTSAVE("IMPDA")=""
  1. S BARQ("RX")="POUT^BARRUTL" ; Clean-up routine
  1. D ^BARDBQUE ; Double queuing
  1. Q
  1. ; *********************************************************************
  1. ;
  1. XIT ;
  1. D ^BARVKL0
  1. Q