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

BAREDP04.m

Go to the documentation of this file.
  1. BAREDP04 ; IHS/SD/LSL - MATCH REASONS AND CLAIMS ; 01/09/2009
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**5,6,10,20,21,22,23,24,28**;OCT 26, 2005;Build 92
  1. ;IHS/SD/POT APR 2012 HEAT62015 BUG FIX: DO NOT CALL ^%DT IF DOS=""
  1. ;IHS/SD/POT OCT 2012 HEAT87149 FIXING LINE +210 - BAR 1.8*23
  1. ;IHS/SD/POT NOV 2012 HEAT82698 LEADING ZEROES IN BILL # - BAR 1.8*23
  1. ;IHS/SD/POT DEC 2012 FIX INIT VALUE OF CLMDA (+27) - BAR 1.8*23
  1. ;IHS/SD/POT HEAT147572 ALLOW TRIBAL SITES ERA POSTING OF NEG BAL & CANCELLED BILLS - BAR 1.8*24
  1. ;IHS/SD/POT NOHEAT PROCESS ZERO (0) IN CLP(1) - BAR 1.8*24
  1. ;IHS/DIT/CPC CR9572 REMOVE OVER-RIDE REASON NOT TO POST WHEN MANUALLY MATCH - BAR*1.8*28
  1. Q
  1. EN(TRDA,IMPDA) ;EP ;SCAN CLMS BUILT "B" STATUS
  1. N REVERSAL,ERACHECK
  1. D INIT^BARUTL
  1. W !,"Matching E-Claims to A/R Bills and Reason Codes",!
  1. I TRNAME["HIPAA" D Q
  1. .S INDEX="B"
  1. .D INDEX,PRT^BAR50DET
  1. F INDEX="B","X","C","R" D INDEX,PRT^BAR50DET
  1. Q
  1. ;--------------
  1. INDEX ;EP
  1. S QFLG=0
  1. W !,"Processing Claim Status using claim Index ",INDEX,! ;bar*1.8*20 REQ4
  1. K ^XTMP("BAR-LIST_DETAIL",$J,DUZ(2)) ;BAR 1.8*24
  1. K ^XTMP("BAR-LIST",$J,DUZ(2))
  1. S BARDBG=1
  1. S BARMSG="PERFORMING TRADITIONAL HIPAA CHECKS...("_$$FTYPE()_")" W !,BARMSG
  1. I $G(BARDBG) D INS^BAR50DET(BARMSG,0)
  1. K BARFLG
  1. S CLMDA=0 F S CLMDA=$O(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA)) Q:'CLMDA D
  1. .S ^XTMP("BAR-LIST",$J,DUZ(2),$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U),CLMDA)=""
  1. S CLMCNT=0 S BARBL="" F S BARBL=$O(^XTMP("BAR-LIST",$J,DUZ(2),BARBL)) Q:BARBL="" D Q:QFLG=1
  1. .S CLMDA=0 F S CLMDA=$O(^XTMP("BAR-LIST",$J,DUZ(2),BARBL,CLMDA)) Q:'CLMDA D Q:QFLG=1
  1. ..K ERRORS D CLMFLG(CLMDA,.ERRORS)
  1. Q:QFLG=1
  1. S BARFLG=$$EN^BAREDP0Z(IMPDA) ;PLB/Pymt Rev/Neg pymt amt chks
  1. ;;;old code D:$$IHS^BARUFUT(DUZ(2)) NEGBAL^BAREDEB(IMPDA,"ERA") ;CHK FOR NEG BAL IN RPMS BILLS BAR 1.8*24
  1. D NEGBAL^BAR50EB(IMPDA,"ERA") ;note: IHS/TRIBAL CHK INSIDE BAR50EB CHK FOR NEG BAL IN RPMS BILLS HEAT147572 BAR 1.8*24
  1. ;NOTE: MATCHED PYMTS & CREDITS W/HAVE THE 'POST THIS CLM AS TYPE' FLD = TO 20=PYMT CREDIT
  1. ;BAR*1.8*6 TPF MOVE REV CHK TO BAREDEP AS A FULL LOOP CHK
  1. ;;;old code D:$$IHS^BARUFUT(DUZ(2)) NONPAYCH^BAREDEP1(IMPDA) ;CHK FOR PYMTS NOT MATCHED TO REV TO SEE IF BEING POSTED TO 'NONPYMT' BATCH
  1. D:$$IHSNEGB^BARUFUT(DUZ(2)) NONPAYCH^BAREDEP1(IMPDA) ;CHK FOR PYMTS NOT MATCHED TO REV TO SEE IF BEING POSTED TO 'NONPYMT' BATCH BAR 1.8*24
  1. K ERRORS
  1. Q
  1. ;--------------
  1. CLMFLG(CLMDA,ERRORS) ;
  1. ;NEXT LINE MOVED TO TOP OF THE SUBR
  1. I (($P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,2)),U))'=($P($G(^BAREDI("I",DUZ(2),IMPDA,5,BARCKIEN,0)),U))) D Q ;only look at 1 chk's clms ; REQ4
  1. .;;;I $G(BARDBG) W " 1ST CHK - SKIP"
  1. NEW BARTMPM,BARTMPCL ;RETURN FLAG
  1. S BILMATCH=0 ;
  1. S BARTMPCL=$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U)
  1. I $G(BARDBG) D
  1. .D INS^BAR50DET($$LINE(),0)
  1. .S BARMSG="PROCESSING ENTRY: "_$J(CLMDA,6)_" CLAIM "_BARTMPCL W !,BARMSG
  1. .D INS^BAR50DET(BARMSG,0)
  1. I $P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U,2)="P" D Q ;quit if posted
  1. .I $G(BARDBG) D INS^BAR50DET(" POSTED - SKIP",1)
  1. I $$OVERIDE^BAREDEP1(CLMDA) D Q ;MRS:BAR*1.8*10 D159-1 & 2
  1. .I $G(BARDBG) D INS^BAR50DET(" OVERRIDE - SKIP",1)
  1. I $P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U,2)="E" D Q ;user marked as Exception-skip
  1. .I $G(BARDBG) D INS^BAR50DET(" EXCEPTION - SKIP",1)
  1. D DELREAS(IMPDA,CLMDA) ;CLR ERRORS, SET STAT TO MATCHED, BEGIN BY ASSUMING ALL CLMS ARE MATCHED & ERROR FREE
  1. ;CHK & SET CLM MATCHING STATUS
  1. ;--------------------------
  1. I TRNAME["HIPAA" D
  1. .;;;I $G(BARDBG) W !,"PERFORMING TRADITIONAL HIPAA CHECKS FOR CLAIM ",$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U)
  1. .S CLMCNT=+$G(CLMCNT)+1
  1. .S CLMFLG=$$HIPAACLM(IMPDA,CLMDA,.ERRORS)
  1. .Q:$G(QFLG)=1
  1. .S REAFLG=$$HIPAAREA(IMPDA,CLMDA,.ERRORS)
  1. Q:$G(QFLG)=1
  1. ;---------------------------
  1. I TRNAME'["HIPAA" D
  1. .S CLMFLG=$$CLM(CLMDA)
  1. .S REAFLG=$$REA(CLMDA)
  1. ;
  1. ;------------ upd status in ^BAREDI ----------
  1. ;
  1. S STAT=""
  1. I CLMFLG,REAFLG S STAT="M" ;MATCHED
  1. I 'CLMFLG,REAFLG S STAT="C" ;CLM UNMATCHED
  1. I CLMFLG,'REAFLG S STAT="M"
  1. I 'CLMFLG,'REAFLG S STAT="C"
  1. K DR,DIE,DA
  1. S DIE=$$DIC^XBDIQ1(90056.0205)
  1. S DR=".02////^S X=STAT"
  1. S DA(1)=IMPDA
  1. S DA=CLMDA
  1. D ^DIE
  1. ;-------------------------------------------
  1. I TRNAME["HIPAA" D
  1. .I '$G(REAFLG),$G(REATYP)="RT" S STAT="RT" ;RSN CD NOT DEFINED IN STD TBL ;ADDED $G ;IHS/DIT/CPC - BAR*1.8*28
  1. .I '$G(REAFLG),$G(REATYP)="RF" S STAT="RF" ;RSN CD NOT ON RA ;ADDED $G ;IHS/DIT/CPC - BAR*1.8*28
  1. .I '$G(REAFLG),$G(REATYP)="RU" S STAT="RU" ;STD ADJ CD NOT MAPPED TO RPMS ;ADDED $G ;IHS/DIT/CPC - BAR*1.8*28
  1. .I '$G(CLMFLG),$G(CLMTYP)="CF" S STAT="CF" ;CLM# (CLP01) NOT SENT ON RA ;ADDED $G ;IHS/DIT/CPC - BAR*1.8*28
  1. .I '$G(CLMFLG),$G(CLMTYP)="CT" S STAT="CT" ;RA CLM NOT FOUND IN RPMS ;ADDED $G ;IHS/DIT/CPC - BAR*1.8*28
  1. .I '$G(CLMFLG),$G(CLMTYP)="CC" S STAT="CC" ;RA CLM IN RPMS AR BUT CANCELLED IN 3P ;ADDED $G ;IHS/DIT/CPC - BAR*1.8*28
  1. .I '$G(CLMFLG),$G(CLMTYP)="CD" S STAT="CD" ;DOS DOESN'T MATCH RPMS ;ADDED $G ;IHS/DIT/CPC - BAR*1.8*28
  1. ;RSNS FOUND FOR 'NOT TO POST' (OLD)
  1. I $D(ERRORS("CT")) K ERRORS S ERRORS("CT")=""
  1. I $D(ERRORS("DUPB")) K ERRORS S ERRORS("DUPB")=""
  1. I $D(ERRORS) D ADDREAS(IMPDA,CLMDA,.ERRORS)
  1. ;CHKS FOR RSNS 'NOT TO POST'
  1. K ERRORS,STAT,REA,READA,REASDA,REAFLG,BARMSG,CLMTYP,REATYP ;IHS/DIT/CPC - BAR*1.8*28
  1. Q
  1. CLM(CLMDA) ;EP ;MATCH/SET/FLAG E-CLM TO A/R BILL
  1. S X=$$VAL^XBDIQ1(90056.0205,"IMPDA,CLMDA",.01)
  1. K DIC,DA,DR
  1. S DIC=90050.01
  1. S DIC(0)="M"
  1. D ^DIC
  1. I Y'>0 Q 0
  1. S BARBLDA=+Y
  1. S DIE=$$DIC^XBDIQ1(90056.0205)
  1. S DA=CLMDA
  1. S DA(1)=IMPDA
  1. S DR="1.01////^S X=BARBLDA"
  1. D ^DIE
  1. Q 1
  1. ;--------------
  1. REA(CLMDA) ;EP ;LOOP MATCH/SET/FLAG RSN CODES OF E-CLM
  1. K ADJ
  1. S REAFLG=1
  1. S ADJDA=0
  1. F S ADJDA=$O(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,30,ADJDA)) Q:ADJDA'>0 D
  1. .S ACAT=$$VALI^XBDIQ1(90056.0208,"IMPDA,CLMDA,ADJDA",.04)
  1. .S AREA=$$VALI^XBDIQ1(90056.0208,"IMPDA,CLMDA,ADJDA",.05)
  1. .S REA=$$VAL^XBDIQ1(90056.0208,"IMPDA,CLMDA,ADJDA",.03) ; pull rsn
  1. .I '$L(REA) S REAFLG=0 Q
  1. .;lookup rsn in rsn table
  1. .K DIC,DA,DR
  1. .S DIC=$$DIC^XBDIQ1(90056.0107)
  1. .S DA(1)=TRDA
  1. .S X=$P(REA," ")
  1. .S DIC(0)="X"
  1. .D ^DIC
  1. .I Y'>0 D Q
  1. ..S BARMSG=" NO REASON "_X W !,BARMSG
  1. ..I $G(BARDBG) D INS^BAR50DET(BARMSG,0)
  1. ..S REAFLG=0
  1. .S READA=+Y
  1. .;line below to ignore inpt w/non-cov'd days
  1. .I +CLMFLG>0,$P($G(^BARBL(DUZ(2),BARBLDA,1)),U,14)=111,$P(Y,U,2)=96 Q
  1. .Q:$P(Y,U,2)=93 ;Q if rsn is 93 w/o attempting to match
  1. .;pull A/R cat & rsn
  1. .S ACAT=$$VALI^XBDIQ1(90056.0107,"TRDA,READA",2.01)
  1. .S AREA=$$VALI^XBDIQ1(90056.0107,"TRDA,READA",2.02)
  1. .I ACAT,AREA D SETREA I 1
  1. .E S REAFLG=0
  1. Q REAFLG
  1. ;-------------
  1. SETREA ;EP SET CAT & REA INTO E-CLM
  1. K DIC,DIE,DR,DA
  1. S DIE=$$DIC^XBDIQ1(90056.0208)
  1. S DA(2)=IMPDA
  1. S DA(1)=CLMDA,DA=ADJDA
  1. S DR=".04////^S X=ACAT;.05////^S X=AREA"
  1. D ^DIE
  1. Q
  1. HIPAAREA(IMPDA,CLMDA,ERRORS) ;BAR*1.8*5 SRS-80 TPF ERRORS CAN BE MULTIPLE
  1. ; Match HIPAA std codes to RPMS
  1. K ADJ
  1. S REAFLG=1
  1. S ADJDA=0
  1. F S ADJDA=$O(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,30,ADJDA)) Q:'+ADJDA D HIPAAR2
  1. Q REAFLG
  1. HIPAAR2 ; Match HIPAA std codes to RPMS
  1. S REA=$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,30,ADJDA,0)),U,3)
  1. I REA="" D ;
  1. .W !,"Standard adjustment reason not sent on RA."
  1. .S REAFLG=0
  1. .S REATYP="RF"
  1. .S ERRORS("RF")=""
  1. S ACAT=$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,30,ADJDA,0)),U,4)
  1. S AREA=$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,30,ADJDA,0)),U,5)
  1. K DIC,DR,DA
  1. S DIC="^BARADJ("
  1. S X=$P(REA," ")
  1. S DIC(0)="XZ"
  1. D ^DIC
  1. I +Y<1 D Q
  1. .W !,"Standard adjustment reason ",X," not in standard table."
  1. .S REAFLG=0
  1. .S REATYP="RT"
  1. .S ERRORS("RT")="" ;BAR*1.8*5 SRS-80 TPF
  1. S READA=+Y
  1. ;No RPMS cat/type in table
  1. I $P(Y(0),U,3)=""!($P(Y(0),U,4)="") D ;
  1. .W !,"Can't map standard adjustment reason ",X," to RPMS."
  1. .S REAFLG=0
  1. .S REATYP="RU"
  1. .S ERRORS("RU")="" ;BAR*1.8*5 SRS-80 TPF
  1. K DIC,DA,DR,DIE
  1. S DIE=$$DIC^XBDIQ1(90056.0208)
  1. S DA(2)=IMPDA
  1. S DA(1)=CLMDA
  1. S DA=ADJDA
  1. S DR=".04////^S X=$P(Y(0),U,3)"
  1. S DR=DR_";.05////^S X=$P(Y(0),U,4)"
  1. D ^DIE
  1. Q
  1. HIPAACLM(IMPDA,CLMDA,ERRORS) ;BAR*1.8*5 SRS-80 TPF ERRORS CAN BE MULTIPLE
  1. N BARTMP,BARAMT,BARDOS,ERAAMT,ERADOS,ERATYPE,BARFND ;
  1. ;Match RA clms to RPMS
  1. ;1st chk bill# "B" x-ref
  1. ;If not successful, chk other identifier "G" x-ref for Pharmacy POS
  1. S BAREIENS=CLMDA_","_IMPDA_","
  1. S BARTEST=$$GET1^DIQ(90056.0205,BAREIENS,.01) ;full string
  1. ;;;I (($A($E(BARTEST,$L($P(BARTEST,"-"))))>64)&($A($E(BARTEST,$L($P(BARTEST,"-"))))<91)) S BARBILL=BARBILL_$E(BARTEST,$L(BARBILL)+1)
  1. S (BARBIEN,BARBILL)="" ;IHS/DIT/CPC BAR 1.8*28
  1. S (BARBIEN,BARBILL)=$$GETBBILL(BARTEST) ;BAR 1.8*23
  1. I BARTEST="" D
  1. .S CLMTYP="CF"
  1. .W !,"Bill number not sent on ERA"
  1. .S ERRORS("CF")=""
  1. K BARTMP ;INIT ARRAY
  1. S BARX="",BARFND=0
  1. D CLM^BAREDP4A(BAREIENS,BARBILL,.BARX,.BARMMFLG) ;bar*1.8*20 REQ4 split due to rtn size
  1. I BARFND=0 D
  1. .S BARMSG=$P($G(^BAREDI("I",DUZ(2),IMPDA,30,CLMDA,0)),U)_" ***CLAIM NOT FOUND IN RPMS***"
  1. .W !,BARMSG ;IMPORTANT!
  1. .D INS^BAR50DET(BARMSG,0) ;SAME MESSAGE INTO REPORT
  1. .D NOMATCH^BAR50DET ;INDICATE NOT MATCH
  1. I $$GET1^DIQ(90056.0205,BAREIENS,1.01,"I")'="" S BARCNT=1 ; IENS->BAREIENS BAR 1.8*23
  1. I BARCNT=0 S CLMTYP="CT",ERRORS("CT")=""
  1. I BARCNT=1 S BARBIEN=$O(BARTMP(0))
  1. I BILMATCH=1 D ;
  1. .S BARBIEN=$O(BILMATCH("")) S BARCNT=1
  1. .S BARMSG=$J("",5)_"ERA BILL "_$$GET1^DIQ(90056.0205,BAREIENS,.01) W !,BARMSG
  1. .I $G(BARDBG) D INS^BAR50DET(BARMSG,0)
  1. .S BARMSG=" MATCHED TO "_$S(BARX="G":"(POS)",1:"")_" A/R BILL "_$P($G(^BARBL(DUZ(2),BARBIEN,0)),U)
  1. .W BARMSG
  1. .I $G(BARDBG) D INS^BAR50DET(BARMSG,1)
  1. .;
  1. .;
  1. CLM2 ;
  1. ;
  1. S NEWSTAT=$G(NEWSTAT) ;init value 12/12/2013
  1. I BARCNT>1,($$GET1^DIQ(90056.0205,BAREIENS,1.01)=""),('$D(BARRVW)) D ;IHS/DIT/CPC - BAR*1.8*28
  1. .F D Q:($G(BARSEL)'="B"&($G(BARSEL)'="H"))
  1. ..D HDR
  1. ..D RABILL
  1. ..D ARBILL
  1. ..D CHOOSE
  1. ..I ($G(BARSEL)="Q") S QFLG=1 Q ;bar*1.8*20
  1. ..I (+$G(BARANS)'=0)&(($G(BARSEL)'="B")&($G(BARSEL)'="H")) D
  1. ...K DIR
  1. ...S DIR(0)="Y"
  1. ...S DIR("A")="Are you sure?"
  1. ...S DIR("B")="N"
  1. ...D ^DIR
  1. ...I +Y<1 S BARANS=0 S BARSEL="B"
  1. .I $G(BARSEL)="" D
  1. ..W !!,"BILL WILL NOT BE MATCHED AND WILL BE SET TO 'NOT MATCHED'. CONTINUING.."
  1. ..S BARSEL="N"
  1. .I BARSEL="N" S NEWSTAT="M",ERRORS("DUPB")=""
  1. .I '+BARANS,BARSEL="N" Q ;bar*1.8*20
  1. .I '+BARANS S CLMTYP="CT",ERRORS("CT")="" Q ;BAR*1.8*5 SRS-80 TPF
  1. .S BARBIEN=BARTMP2(BARANS)
  1. ;Match DOS
  1. S (BARRADT,X)=$$GET1^DIQ(90056.0205,BAREIENS,.08) ;BAR 1.8*23
  1. I X]"" D ^%DT I Y'=-1 S BARRADT=Y ;DOS begin
  1. S BARBDT=$$GET1^DIQ(90050.01,BARBIEN,102,"I")
  1. I BARRADT'=BARBDT S CLMTYP="CD",ERRORS("CD")="" ;DOS DOESN'T MATCH RPMS ; BAR*1.8*5 SRS-80
  1. ;See if cancelled in 3P
  1. S BAR3PIEN=$$FIND3PB^BARUTL(DUZ(2),BARBIEN)
  1. I BAR3PIEN]"" D ;BAR*1.8*5 SRS-80 TPF
  1. .;I $$IHSCANCB^BARUFUT(DUZ(2)) Q ;allow cancelled bills 2/4/2014 BAR 1.8*24
  1. .I $$IHSCANCB^BARUFUT(DUZ(2)) D Q ;allow cancelled bills 2/4/14 ;Update reasons not to post IHS/DIT/CPC -20180423 1.8*28
  1. ..S ERRORS("CC")=""
  1. ..D ADDREAS(IMPDA,CLMDA,.ERRORS,SHOWMSG)
  1. .S BARBSTAT=$P($G(^ABMDBILL($P(BAR3PIEN,","),$P(BAR3PIEN,",",2),0)),U,4)
  1. .;S:BARBSTAT="X" CLMTYP="CC" ;Cancelled in 3P ;bar*1.8*28 IHS/DIT}
  1. .S:BARBSTAT="X" CLMTYP="CC",ERRORS("CC")="" ;BAR*1.8*5 SRS-80 TPF ;bar*1.8*28 IHS/DIT}
  1. D TRANSCK^BAREDP4A ;bar*1.8*20 REQ6
  1. I $G(NEWSTAT)="M"!($$GET1^DIQ(90056.0205,BAREIENS,.02,"I")="M") Q 1 ;bar*1.8*20 REQ5
  1. Q:$D(ERRORS) 0 ;BAR*1.8*5 SRS-80 TPF
  1. ; Bill matches RPMS-log AR Bill IEN in Image
  1. S DIE=$$DIC^XBDIQ1(90056.0205)
  1. S DA=CLMDA
  1. S DA(1)=IMPDA
  1. S DR="1.01////^S X=BARBIEN"
  1. S MATCH="M"
  1. S DR=DR_";.02////^S X=MATCH"
  1. D ^DIE
  1. Q 1
  1. HDR ;hdr
  1. W !!,$$EN^BARVDF("ULN"),?4,"BILL #",?23,"DOS",?31,"PATIENT NAME"
  1. W ?57,"BILLED AMT",?71,"BALANCE",$$EN^BARVDF("ULF")
  1. Q
  1. RABILL ;Write RA data
  1. W !,$$EN^BARVDF("RVN") ;bar*1.8*20
  1. W "ERA" ;bar*1.8*20
  1. W ?4,$E($$GET1^DIQ(90056.0205,BAREIENS,.01),1,15) ;BILL/RX ;bar*1.8*20 REQ4
  1. S X=$$GET1^DIQ(90056.0205,BAREIENS,.08)
  1. D ^%DT
  1. S BARRADT=Y ;DOS begin
  1. I X]"" W ?20,$$SDT^BARDUTL(BARRADT) ;DOS begin
  1. I X="" W ?20,"DOS <nil>" ;BAR 1.8*23
  1. W ?31,$E($$GET1^DIQ(90056.0205,BAREIENS,.06),1,25) ;Pt name
  1. W ?57,$J($FN($$GET1^DIQ(90056.0205,BAREIENS,.05),",",2),10) ;Billed
  1. W $$EN^BARVDF("RVF") ;bar*1.8*20
  1. Q
  1. ARBILL ;Loop & write AR data
  1. S (BARBIEN,BARCNT2)=0
  1. F S BARBIEN=$O(BARTMP(BARBIEN)) Q:'+BARBIEN D
  1. .S BARCNT2=BARCNT2+1
  1. .S BARBDT=$$GET1^DIQ(90050.01,BARBIEN,102,"I")
  1. .W !,$J(BARCNT2,2),")"
  1. .W ?4,$E($$GET1^DIQ(90050.01,BARBIEN,.01),1,15)
  1. .W ?20,$$SDT^BARDUTL(BARBDT)
  1. .W ?31,$E($$GET1^DIQ(90050.01,BARBIEN,101),1,25)
  1. .W ?52,$J($FN($$GET1^DIQ(90050.01,BARBIEN,13),",",2),10)
  1. .W ?68,$J($FN($$GET1^DIQ(90050.01,BARBIEN,15),",",2),10)
  1. .S BARTMP2(BARCNT2)=BARBIEN
  1. Q
  1. CHOOSE ;Choose bill from AR
  1. ;start new REQ4
  1. K DIR
  1. S DIR(0)="SABO^B:Bill Inquire;H:History;M:Match to Item;N:Not Matched;Q:Quit"
  1. S DIR("A")="Enter (B)ill Inquire,(H)istory,(M)atch to Item,(N)ot Matched,(Q)uit: "
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) S BARANS=0 Q
  1. S BARSEL=Y
  1. I BARSEL="N"!(BARSEL="Q") S BARANS=0 Q ;not matched
  1. K DIR
  1. S DIR(0)="NAO^1:"_BARCNT2
  1. S DIR("A")="Which Entry: "
  1. S DIR("?")="Enter a number between 1 and "_BARCNT2
  1. D ^DIR
  1. I $D(DIROUT)!$D(DUOUT)!$D(DIRUT)!$D(DTOUT) S BARANS=0 Q
  1. S BARANS1=$G(BARTMP2(Y)),BARANS=Y
  1. I BARSEL="H" D
  1. .D EN^BARPST5(BARANS1)
  1. I BARSEL="B" D
  1. .D DIQ^XBLM(90050.01,BARANS1)
  1. Q
  1. ;
  1. ;DISPLAY ERRORS CODE MOVED TO BAREDP4B
  1. ;
  1. ADDREAS(IMPDA,CLMDA,ERRORS) ;EP - ADD RSN NOT SENT TO 'RSN NOT TO POST MULTIPLE'
  1. S SHOWMSG=$G(SHOWMSG)
  1. D ADDREAS^BAREDP4B(IMPDA,CLMDA,.ERRORS)
  1. Q
  1. DELREAS(IMPDA,CLMDA) ;EP -CLR 'RSN NOT TO POST' MULTIPLES IN ERA FILE
  1. D DELREAS^BAREDP4B(IMPDA,CLMDA) ;SAC REQ
  1. Q
  1. ;
  1. GETBBILL(BARTMP) ;----------------------------------------------
  1. NEW BARBLNUM,I,CH
  1. S BARBLNUM="" F I=1:1:$L(BARTMP) S CH=$E(BARTMP,I) Q:CH'?1N S BARBLNUM=BARBLNUM_CH
  1. I CH?1A S BARBLNUM=BARBLNUM_CH ;TAKE THE FIRST ALPHA AFTER NNNN
  1. I BARBLNUM="" Q ""
  1. Q BARBLNUM
  1. ;
  1. LINE() ;
  1. NEW I,STR
  1. S STR="" F I=1:1:78 S STR=STR_"-"
  1. Q STR
  1. FTYPE() ;
  1. I $ZN["BAR50" Q "5010"
  1. Q "4010"