IBACCWLEE ;EDE/TPF - ACC (Automated Community Care) Encounters - Action Item Expand Encounter ; 12-SEP-2023 ; 12-SEP-2023
;;2.0;INTEGRATED BILLING;**770**;21-MAR-2024;Build 119
;;Per VA Directive 6402, this routine should not be modified.
Q
;
EN(IBDA,IBENCIFN,IBIFN,DETRETURN,PREVVALMAR,IBFROMVALMDDF) ;EP
;
N IBPARENT S IBPARENT=0
S IBACCWLEELEV=$G(IBACCWLEELEV)+1
D EN^VALM("IBACC WL IBACC"_USERGROUP_" EE")
;
Q
;
HDR ; -- header code
;
N UNSCORELINE,OPTION,SORTORDER,ENCOUNTER,IBBILL
;
S $P(UNSCORELINE,"_",81)=""
S OPTION=$P($G(XQY0,"NO OPTION"),U)
S SORTORDER=$G(IBSORTOR("N"))
;
S ENCOUNTER=$$GET1^DIQ(364.9,$G(IBENCIFN)_",",.15,"E")
S IBBILL=$$GET1^DIQ(364.9,$G(IBENCIFN)_",",2.02,"E")
S VALMSG="Encounter: "_$G(ENCOUNTER)_"|"_$G(IBBILL)
;
Q
;
INIT(IBDA,IBENCIFN,IBIFN) ;EP
;
N BILLRETURN,CAPTION,FIELDS,FILE,FLAGS,IBENCIEN,IBENCIENS,IBLN,RECORD,ERROR ;TPF XINDEX
K @VALMAR
I $P($G(XQY0),U)="IBACC WL PREVIOUS ACT. REVIEW" D
.S NOINDEX=0
.S IBENCIFN=IBENCIFN
;
S IBENCIENS=IBENCIFN_","
S IBIFNIENS=IBIFN_","
S FILE=364.9
S FIELDS="**"
S FLAGS="EIR"
;
I IBENCIFN,'$D(DETRETURN) D
.D GETS^DIQ(FILE,IBENCIENS,FIELDS,FLAGS,"DETRETURN","ERROR")
.K DETRETURN(364.9001)
;
I $D(ERROR) D Q
.W !!,"Error occurred while accessing file #"_FILE_" report to eBilling"
.W !,$G(ERROR("DIERR",1,"TEXT",1))
.N DIR
.D PAUSE^VALM1
;
S VALMCNT=0
S RECORDNUM=0
;
D DISP3649(364.9,IBENCIENS,IBIFNIENS,.RECORDNUM)
;
D EMPTYLINE("!!!!!",.VALMCNT,.RECORDNUM)
Q:'$G(IBIFN)
S IBLN=RECORDNUM
D BLD^IBACCWLEE1(IBIFN,.IBLN,.VALMCNT)
;
D SECTIONHDR("Bill Procedures",.RECORDNUM)
;S IBLN=IBLN+2
S IBLN=IBLN+3 ;TPF;IB*2*770v53;EBILL-6266
N IBFT D PROCBLD^IBACCWLEE4(IBIFN,.IBLN,.VALMCNT)
;
D SECTIONHDR("Bill Diagnosis",.RECORDNUM)
S IBLN=IBLN+2
D DIAGBLD^IBACCWLEE4(IBIFN,.IBLN,.VALMCNT)
;
D SECTIONHDR("Bill Charges",.RECORDNUM)
S IBLN=IBLN+2
D BLD^IBACCWLEE2(IBIFN,.IBLN,.VALMCNT)
;
D BLD^IBACCWLEE3(IBIFN,.IBLN,.VALMCNT)
;
Q
;
DISP3649(FILE,IBENCIENS,IBIFNIENS,RECORDNUM) ;EP - DISPLAY #364.9
;
N API,COLONPOS,DATA,DATALENGTH,DATATYPE,DISPCAP,DOCAPTION,ENCOUNTER,FIELDINFO,FIELDNAME,HPOS,INDENT,INDENTPAD,LENGTH,LINE,LINELENGTH,LINEHPOS,PARAM,PIECE,POSTRETURN,POSTSTR,PRESTR,RETURN,SUBFILE,TITLE
;
S DATA=""
S LINEHPOS=0
;
D SECTIONHDR("Encounter Data",.RECORDNUM)
;
I $G(DUZ(0))="@" D SETLINE(IBENCIENS,IBIFNIENS,.RECORDNUM,"IEN: "_+IBENCIENS)
;
F LINE=1:1 S FIELDINFO=$P($T(ORDER3649+LINE),";;",2,99) Q:FIELDINFO[("QUIT") D
.S FIELDNAME=$P(FIELDINFO,";")
.I FIELDNAME[("|") D Q
..S PARAM=$P(FIELDNAME,"|")
..S API=$P(FIELDNAME,"|",2)
..S INDENT=$P(FIELDNAME,"|",3)
..D SECTIONHDR(PARAM,.RECORDNUM,1,$G(INDENT)) Q
.;
.S INDENT=""
.S COLONPOS=25
.S DATATYPE=$P(FIELDINFO,";",2)
.S HPOS=$P(FIELDINFO,";",4)
.S RETURN=$P(FIELDINFO,";",3)
.S POSTRETURN=$P(RETURN,"|",2)
.S DOCAPTION=RETURN[("C")
.S TITLE=RETURN[("T")
.S RETURN=$TR(RETURN,"T")
.S RETURN=$TR($P(RETURN,"|"),"C")
.S LENGTH=$P(FIELDINFO,";",5)
.S SUBFILE=$P(FIELDINFO,";",6)
.S PRESTR=$TR($P(FIELDINFO,";",7),"""")
.S POSTSTR=$TR($P(FIELDINFO,";",8),"""")
.S DISPCAP=$TR($P(FIELDINFO,";",9),"""")
.;
.I SUBFILE D SUBFILE(SUBFILE,"",FIELDINFO,.RECORDNUM) Q
.;
.D Q:RETURN'[("!")
..I DOCAPTION D
...S CAPTION=FIELDNAME_": "
...I DISPCAP'="" S CAPTION=DISPCAP_": "
..E S CAPTION=""
..;
..I TITLE S CAPTION=$$TITLE(.CAPTION)
..;
..S LINELENGTH=$L(DATA)
..I $G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))="" S $P(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)," ",LENGTH+1)=""
..S DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)=PRESTR_$G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))_POSTSTR
..S DATALENGTH=$L($G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)))
..;
..I FIELDNAME="PRIMARY DX" D PRIMDX^IBACCWLEEUTIL Q
..;
..I FIELDNAME="SECONDARY DX" D SECDX^IBACCWLEEUTIL Q
..;
..I FIELDNAME="CPT" D CPT^IBACCWLEEUTIL Q
..;
..I DOCAPTION S DATA=$$SETSTR^VALM1(CAPTION_$S(FIELDNAME="PATIENT SSN":$E($G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)),6,9),1:$G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))),DATA,LINEHPOS,$L(CAPTION)+DATALENGTH+1)
..E S DATA=$$SETSTR^VALM1($S(FIELDNAME="PATIENT SSN":$E($G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)),6,9),1:$G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))),DATA,LINEHPOS,DATALENGTH+1)
..I FIELDNAME="X12 CLAIM NUMBER" S ENCOUNTER=$G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))
..S LINEHPOS=$L(DATA)
.;
.Q:(FIELDNAME="PRIMARY DX")!(FIELDNAME="SECONDARY DX")!(FIELDNAME="CPT")
.;
.S LINEHPOS=HPOS
.;
.I $G(DATA)'="" D Q
..I RETURN'="",(RECORD'=1) D EMPTYLINE(RETURN,.VALMCNT,.RECORDNUM)
..S RECORDNUM=RECORDNUM+1
..S INDENTPAD=""
..S $P(INDENTPAD," ",-($F(DATA,":")-COLONPOS))=""
..S DATA=INDENTPAD_DATA
..S RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
..D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1,1)
..I POSTRETURN'="" D EMPTYLINE(POSTRETURN,.VALMCNT,.RECORDNUM)
..S DATA=""
.;
.S DATA=$G(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))
.I FIELDNAME="X12 CLAIM NUMBER" S ENCOUNTER=DATA
.S CAPTION=FIELDNAME_": "
.I DOCAPTION S DATA=CAPTION_DATA
.S INDENTPAD=""
.S $P(INDENTPAD," ",-($F(DATA,":")-COLONPOS))=""
.S DATA=INDENTPAD_DATA
.S RECORD=""
.S RECORDNUM=RECORDNUM+1
.S RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
.D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1,1)
.S DATA=""
;
Q
;
TITLE(STR) ;EP
;
N LEN,PIECE
S LEN=$L(STR,"/")
F PIECE=1:1:LEN D
.S $P(STR,"/",PIECE)=$$TITLE^XLFSTR($P(STR,"/",PIECE))
;
Q STR
;
SETLINE(IBENCIENS,IBIFNIENS,RECORDNUM,DATA) ;EP
S RECORD=""
S RECORDNUM=RECORDNUM+1
S RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1,1)
S DATA=""
Q
;
SUBFILE(FILE,SUBFILE,FIELDINFO,RECORDNUM) ;EP
;
N PTRDATA,PTRERR,SUBRECORD,SUBIENS,SUBORDER,SUBFILENM,WPIEN
N DATA,DATALENGTH,DATATYPE,DISPCAP,DOCAPTION,FILENM,FIELDNAME
N HPOS,INDENT,INDENTPAD,LENGTH,LINE,LINELENGTH,LINENUM,PIECE,POSTSTR,PRESTR,RETURN
;
S SUBORDER=$TR(FILE,".")
;
S FILENM=$P(FIELDINFO,";")
;
D SECTIONHDR(FILENM_" Information",.RECORDNUM)
;
I $T(@SUBORDER)="" D FAILLINE("NO FILE FORMATTING FOR FILE OR FILE "_FILE,.RECORDNUM) Q
;
F LINE=1:1 S FIELDINFO=$P($T(@SUBORDER+LINE),";;",2,99) Q:FIELDINFO[("QUIT") D
.S FIELDNAME=$P(FIELDINFO,";")
.S FIELDNAME(LINE,FIELDNAME,"FIELDNAME")=$P(FIELDINFO,";")
.S FIELDNAME(LINE,FIELDNAME,"DATATYPE")=$P(FIELDINFO,";",2)
.S FIELDNAME(LINE,FIELDNAME,"RETURN")=$P(FIELDINFO,";",3)
.S FIELDNAME(LINE,FIELDNAME,"DOCAPTION")=FIELDNAME(LINE,FIELDNAME,"RETURN")[("C")
.S FIELDNAME(LINE,FIELDNAME,"TITLE")=FIELDNAME(LINE,FIELDNAME,"RETURN")[("T")
.S FIELDNAME(LINE,FIELDNAME,"RETURN")=$TR(FIELDNAME(LINE,FIELDNAME,"RETURN"),"TC")
.S FIELDNAME(LINE,FIELDNAME,"HPOS")=$P(FIELDINFO,";",4)
.S FIELDNAME(LINE,FIELDNAME,"LENGTH")=$P(FIELDINFO,";",5)
.S FIELDNAME(LINE,FIELDNAME,"SUBFILE")=$P($P(FIELDINFO,";",6),U)
.S FIELDNAME(LINE,FIELDNAME,"SUBFIELD")=$P($P(FIELDINFO,";",6),U,2)
.S FIELDNAME(LINE,FIELDNAME,"PRESTR")=$TR($P(FIELDINFO,";",7),"""")
.S FIELDNAME(LINE,FIELDNAME,"POSTSTR")=$TR($P(FIELDINFO,";",8),"""")
.S FIELDNAME(LINE,FIELDNAME,"DISPCAP")=$TR($P(FIELDINFO,";",9),"""")
.S INDENT=""
.S COLONPOS=25
.;
;
S SUBIENS=0
F SUBRECORD=1:1 S SUBIENS=$O(DETRETURN(FILE,SUBIENS)) Q:SUBIENS="" D
.S DATA=""
.S LINENUM=0
.F S LINENUM=$O(FIELDNAME(LINENUM)) Q:'LINENUM D
..S FIELDNAME=""
..F S FIELDNAME=$O(FIELDNAME(LINENUM,FIELDNAME)) Q:FIELDNAME="" D
...;
...D Q:FIELDNAME(LINENUM,FIELDNAME,"RETURN")'[("!")
....I FIELDNAME(LINENUM,FIELDNAME,"DOCAPTION") D
.....S CAPTION=FIELDNAME_": "
.....I FIELDNAME(LINENUM,FIELDNAME,"DISPCAP")'="" S CAPTION=FIELDNAME(LINENUM,FIELDNAME,"DISPCAP")_": "
....E S CAPTION=""
....I FIELDNAME(LINENUM,FIELDNAME,"TITLE") S CAPTION=$$TITLE(.CAPTION)
....S LINELENGTH=$L(DATA)
....S DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE"))=FIELDNAME(LINENUM,FIELDNAME,"PRESTR")_$G(DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE")))_FIELDNAME(LINENUM,FIELDNAME,"POSTSTR")
....S DATALENGTH=$L($G(DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE"))))
...;
...S DATA=$G(DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE")))
...;
...I $G(DATA)'="" D Q
....N ERR,PTR,PTRFILE,RET
....D FIELD^DID(FILE,FIELDNAME,"","POINTER","RET","ERR")
....I $D(RET) D
.....S PTR=$G(DETRETURN(FILE,SUBIENS,FIELDNAME,"I"))
.....S PTRFILE=$G(FIELDNAME(LINENUM,FIELDNAME,"SUBFILE"))
.....S PTRDATA=DATA_" "_$$GET1^DIQ(PTRFILE,PTR_",",$G(FIELDNAME(LINENUM,FIELDNAME,"SUBFIELD")),"E","","PTRERR")
....;
....I $D(PTRDATA) S DATALENGTH=$L(CAPTION_PTRDATA)
....E S PTRDATA=DATA
....S DATA=""
....;
....I FIELDNAME(LINENUM,FIELDNAME,"DOCAPTION") S DATA=$$SETSTR^VALM1(CAPTION_PTRDATA,DATA,FIELDNAME(LINENUM,FIELDNAME,"HPOS"),DATALENGTH+1)
....;
....I FIELDNAME(LINENUM,FIELDNAME,"RETURN")'="",(SUBRECORD'=1) D EMPTYLINE(FIELDNAME(LINENUM,FIELDNAME,"RETURN"),.VALMCNT,.RECORDNUM)
....;
....S RECORDNUM=RECORDNUM+1
....;
....S INDENTPAD=""
....S $P(INDENTPAD," ",-($F(DATA,":")-COLONPOS))=""
....S DATA=INDENTPAD_DATA
....;
....S RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
....D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1,1)
....S DATA=""
...;
...I FIELDNAME(LINENUM,FIELDNAME,"DATATYPE")="WP" D Q
....I FIELDNAME(LINENUM,FIELDNAME,"DOCAPTION") D
.....S CAPTION=FIELDNAME_": "
.....I FIELDNAME(LINENUM,FIELDNAME,"DISPCAP")'="" S CAPTION=FIELDNAME(LINENUM,FIELDNAME,"DISPCAP")_": "
....E S CAPTION=""
....;
....I TITLE S CAPTION=$$TITLE(.CAPTION)
....;
....;BEGIN TPF;IB*2*770v51;EBILL-6174
....I $O(DETRETURN(FILE,SUBIENS,FIELDNAME,0)) D
.....D EMPTYLINE("!!",.VALMCNT,.RECORDNUM)
.....S RECORD=""
.....S RECORDNUM=RECORDNUM+1
.....S RECORD=$$SETFLD^VALM1(CAPTION,RECORD,"RECORD")
.....D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1,1)
.....S DATA=""
.....;END TPF;IB*2*770v51;EBILL-6174
....;
....S WPIEN=0
....F S WPIEN=$O(DETRETURN(FILE,SUBIENS,FIELDNAME,WPIEN)) Q:'WPIEN D
.....S DATA=$G(DETRETURN(FILE,SUBIENS,FIELDNAME,WPIEN))
.....;
.....;BEGIN TPF;IB*2*770v51;EBILL-6174
.....S INDENTPAD=""
.....S DATA=INDENTPAD_DATA
.....;END TPF;IB*2*770v51;EBILL-6174
.....S RECORD=""
.....S RECORDNUM=RECORDNUM+1
.....S RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
.....D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1,1)
.....S DATA=""
...;
...S DATA=$G(DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE")))
...S CAPTION=FIELDNAME_": "
...I FIELDNAME(LINENUM,FIELDNAME,"TITLE") S CAPTION=$$TITLE(.CAPTION)
...S DATA=CAPTION_DATA
...S INDENTPAD=""
...S $P(INDENTPAD," ",-($F(DATA,":")-COLONPOS))=""
...S DATA=INDENTPAD_DATA
...S RECORD=""
...S RECORDNUM=RECORDNUM+1
...S RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
...D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1,1)
...S DATA=""
;
Q
;
SECTIONHDR(SECTNAME,RECORDNUM,REVERSE,INDENT) ;EP - INSERT SECTION HEADER
N DATA,WIDTH,COL
;
S DATA=$$TITLE(.SECTNAME)
;
S INDENT=$G(INDENT)
;
S RECORD=""
;
S RECORDNUM=RECORDNUM+1
D SET("",.VALMCNT,.RECORDNUM,"","",1,1)
;
I INDENT=""!(INDENT<0) S COL=((IOM/2)-($L(DATA)/2))\1
E S COL=$G(INDENT)
;
S WIDTH=$L(DATA)
S DATA=$$SETSTR^VALM1(DATA,"",COL,WIDTH)
S RECORDNUM=RECORDNUM+1
S RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
;
D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1,1)
;
I $P($G(XQY0),U)'="IBACC WL PREVIOUS ACT. REVIEW" D CNTRL^VALM10(VALMCNT,COL+4,WIDTH,IORVON,IORVOFF)
;
S RECORDNUM=RECORDNUM+1
D SET("",.VALMCNT,.RECORDNUM,"","",1,1)
;
Q
;
EMPTYLINE(RETURN,VALMCNT,RECORDNUM) ;EP
;
Q:$G(RETURN)=""
N RETURNS,CNT
S RETURNS=$L(RETURN,"!")-2
Q:RETURNS'>0
;
F CNT=1:1:RETURNS D
.S RECORDNUM=RECORDNUM+1
.D SET("",.VALMCNT,.RECORDNUM,"","",1,1)
;
Q
;
FAILLINE(TEXT,RECORDNUM) ;EP - DISPLAY ERROR
;
N DATA
S DATA=$G(TEXT)
S RECORD=""
;
S RECORDNUM=RECORDNUM+1
D SET("",.VALMCNT,.RECORDNUM,"","",1,1)
;
S DATA=$$SETSTR^VALM1(DATA,"",(IOM/2)-($L(DATA)/2),$L(DATA))
S RECORDNUM=RECORDNUM+1
S RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
D SET(RECORD,.VALMCNT,.RECORDNUM,$G(IBENCIENS),$G(IBIFNIENS),1)
;
S RECORDNUM=RECORDNUM+1
D SET("",.VALMCNT,.RECORDNUM,"","",1,1)
;
Q
;
SET(X,VALMCNT,RECORDNUM,ENCIEN,BILLIEN,SET,NOINDEX) ;EP -
;
I '$G(SET) D Q
.W !,X
;
S VALMCNT=VALMCNT+1
;
S @VALMAR@(VALMCNT,0)=X
I '$G(NOINDEX) S @VALMAR@("IDX",VALMCNT,RECORDNUM)=""
S:$G(ENCIEN) @VALMAR@("IEN3649",1)=+ENCIEN
S:$G(BILLIEN) @VALMAR@("IEN399",1)=+BILLIEN
;
Q
;
ORDER3649 ;;
;;PATIENT LAST NAME;E;TC;0;30;;;", ";"PATIENT NAME"
;;PATIENT FIRST NAME;E;;;15;;;" ";
;;PATIENT MIDDLE NAME;E;!;;18;;;;
;;PATIENT DOB;E;C!;0;30;;;;"DOB"
;;PATIENT SSN;E;C!;0;6;;;;"SSN"
;;CLAIM NUMBER;E;TC!;0;30;;;;"BILL/CLAIM"
;;X12 CLAIM NUMBER;E;TC!;0;20;;;;"ENCOUNTER#"
;;PAYER CLAIM CONTROL NUMBER;E;TC!;0;29;;;;"PAYER CLAIM CONTROL#"
;;STATUS;E;TC!;0;30
;;STATUS DATE CHANGED;E;TC!;0;30
;;SERVICE DATE;E;TC!;0;30
;;AUTHORIZED?;E;TC!;0;30
;;DATE/TIME ENTERED;E;CT!;0;30;;;;"IMPORT DATE"
;;DATE ASSIGNED;E;CT!;0;30
;;SITE NUMBER;E;CT!;0;15
;;PRIMARY DX;E;C!;0;80;;;;"Primary DX";TPF*IB*2*770v38;EBILL=5353 EXPAND FIELD WIDTH
;;SECONDARY DX;E;C!;0;15;;;;"Secondary DX";TPF*IB*2*770v20;EBILL=4462 ADD SECONDARY DX
;;CPT;E;C!;0;15
;;ASSIGNED TO GROUP;E;TC!;0;15
;;INITIAL ASSIGNED GROUP;E;TC!;0;15
;;FORM TYPE;E;CT!;0;15
;;IN-PATIENT/OUT-PATIENT;E;TC!;0;15;;;;"IN./OUT."
;;PROVIDER;E;TC!;0;15
;;PROVIDER NPI;E;C!;0;30;;;;"Provider NPI"
;;PROVIDER TYPE;E;TC!;0;30
;;SERVICE FACILITY;E;C!;0;30;;;;"Service Facility";TPF;IB*2*770v12;EBILL-4507
;;SERVICE FACILITY NPI;E;C!;0;10;;;;"Service Facility NPI";TPF;IB*2*770v12;EBILL-4507
;;PAID AMOUNT;E;C!;0;10;;;;"Amount Paid";TPF;IB*2*770v18;EBILL-4623 ALL SORT STORIES
;;PRIMARY INS;E;CT!;0;30
;;SECONDARY INS;E;TC!;0;30
;;REASONS NOT AUTOBILLED;E;TC!;0;30;364.95;
;;PREVIOUS ACTIVITY;E;CT;0;30;364.94
;;QUIT
;
36494 ;;PREVIOUS ACTIVITY
;;DATE/TIME ENTERED;E;TC!!;0;30
;;ACTIVITY CODE;E;CT!;0;45;364.92^.02
;;ASSIGNING GROUP;E;TC!;0;30
;;REASSIGNED TO GROUP;E;TC!;0;30
;;ENTERED BY;E;CT!;0;30
;;PREVIOUS ACTIVITY COMMENTS;WP;TC!;0;30;;;;"Prev. Act. Comments"
;;QUIT
;
3649401 ;;PREVIOUS ACTIVITY COMMENTS
;;PREVIOUS ACTIVITY COMMENTS;E;TC!;0;30
;;QUIT
;
36495 ;;REASONS NOT AUTOBILLED
;;REASON NOT AUTOBILLED;E;TC!!;0;30;364.91^.02
;;REASON NOTE;E;TC!;0;30
;;QUIT
;
36491 ;;ACC X12 CLAIM FAILURES
;;REASON CODE;E;TC!;0;30
;;DESCRIPTION;E;TC!;0;30
;;QUIT
;
36492 ;;ACC ACTIVITY CODES
;;ACTIVITY CODE;E;TC!;0;30
;;SHORT DESCRIPTION;E;TC!;0;30
;;QUIT
Q
;
HELP ; -- help code
;
Q
;
EXIT ; -- exit code
;
I $G(IBACCWLEELEV)>1 S IBACCWLEELEV=IBACCWLEELEV-1 S VALMQUIT=1 Q
S IBACCWLEELEV=$G(IBACCWLEELEV)-1 ;TPF;IB*2*770v44;EBILL-6011
K ^TMP($J,"IBITEM") ;TPF v49 XINDEX
D CLEAN^VALM10
;
Q
;
EXPND ; -- expand code
Q
;
NODATA(VALMQUIT) ;EP - NO DATA
;
I '$D(@VALMAR) W !!,"NO DATA FOUND!!" S VALMQUIT=1 Q 1
;
Q 0
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBACCWLEE 15525 printed May 25, 2026@12:09:57 Page 2
IBACCWLEE ;EDE/TPF - ACC (Automated Community Care) Encounters - Action Item Expand Encounter ; 12-SEP-2023 ; 12-SEP-2023
+1 ;;2.0;INTEGRATED BILLING;**770**;21-MAR-2024;Build 119
+2 ;;Per VA Directive 6402, this routine should not be modified.
+3 QUIT
+4 ;
EN(IBDA,IBENCIFN,IBIFN,DETRETURN,PREVVALMAR,IBFROMVALMDDF) ;EP
+1 ;
+2 NEW IBPARENT
SET IBPARENT=0
+3 SET IBACCWLEELEV=$GET(IBACCWLEELEV)+1
+4 DO EN^VALM("IBACC WL IBACC"_USERGROUP_" EE")
+5 ;
+6 QUIT
+7 ;
HDR ; -- header code
+1 ;
+2 NEW UNSCORELINE,OPTION,SORTORDER,ENCOUNTER,IBBILL
+3 ;
+4 SET $PIECE(UNSCORELINE,"_",81)=""
+5 SET OPTION=$PIECE($GET(XQY0,"NO OPTION"),U)
+6 SET SORTORDER=$GET(IBSORTOR("N"))
+7 ;
+8 SET ENCOUNTER=$$GET1^DIQ(364.9,$GET(IBENCIFN)_",",.15,"E")
+9 SET IBBILL=$$GET1^DIQ(364.9,$GET(IBENCIFN)_",",2.02,"E")
+10 SET VALMSG="Encounter: "_$GET(ENCOUNTER)_"|"_$GET(IBBILL)
+11 ;
+12 QUIT
+13 ;
INIT(IBDA,IBENCIFN,IBIFN) ;EP
+1 ;
+2 ;TPF XINDEX
NEW BILLRETURN,CAPTION,FIELDS,FILE,FLAGS,IBENCIEN,IBENCIENS,IBLN,RECORD,ERROR
+3 KILL @VALMAR
+4 IF $PIECE($GET(XQY0),U)="IBACC WL PREVIOUS ACT. REVIEW"
Begin DoDot:1
+5 SET NOINDEX=0
+6 SET IBENCIFN=IBENCIFN
End DoDot:1
+7 ;
+8 SET IBENCIENS=IBENCIFN_","
+9 SET IBIFNIENS=IBIFN_","
+10 SET FILE=364.9
+11 SET FIELDS="**"
+12 SET FLAGS="EIR"
+13 ;
+14 IF IBENCIFN
IF '$DATA(DETRETURN)
Begin DoDot:1
+15 DO GETS^DIQ(FILE,IBENCIENS,FIELDS,FLAGS,"DETRETURN","ERROR")
+16 KILL DETRETURN(364.9001)
End DoDot:1
+17 ;
+18 IF $DATA(ERROR)
Begin DoDot:1
+19 WRITE !!,"Error occurred while accessing file #"_FILE_" report to eBilling"
+20 WRITE !,$GET(ERROR("DIERR",1,"TEXT",1))
+21 NEW DIR
+22 DO PAUSE^VALM1
End DoDot:1
QUIT
+23 ;
+24 SET VALMCNT=0
+25 SET RECORDNUM=0
+26 ;
+27 DO DISP3649(364.9,IBENCIENS,IBIFNIENS,.RECORDNUM)
+28 ;
+29 DO EMPTYLINE("!!!!!",.VALMCNT,.RECORDNUM)
+30 if '$GET(IBIFN)
QUIT
+31 SET IBLN=RECORDNUM
+32 DO BLD^IBACCWLEE1(IBIFN,.IBLN,.VALMCNT)
+33 ;
+34 DO SECTIONHDR("Bill Procedures",.RECORDNUM)
+35 ;S IBLN=IBLN+2
+36 ;TPF;IB*2*770v53;EBILL-6266
SET IBLN=IBLN+3
+37 NEW IBFT
DO PROCBLD^IBACCWLEE4(IBIFN,.IBLN,.VALMCNT)
+38 ;
+39 DO SECTIONHDR("Bill Diagnosis",.RECORDNUM)
+40 SET IBLN=IBLN+2
+41 DO DIAGBLD^IBACCWLEE4(IBIFN,.IBLN,.VALMCNT)
+42 ;
+43 DO SECTIONHDR("Bill Charges",.RECORDNUM)
+44 SET IBLN=IBLN+2
+45 DO BLD^IBACCWLEE2(IBIFN,.IBLN,.VALMCNT)
+46 ;
+47 DO BLD^IBACCWLEE3(IBIFN,.IBLN,.VALMCNT)
+48 ;
+49 QUIT
+50 ;
DISP3649(FILE,IBENCIENS,IBIFNIENS,RECORDNUM) ;EP - DISPLAY #364.9
+1 ;
+2 NEW API,COLONPOS,DATA,DATALENGTH,DATATYPE,DISPCAP,DOCAPTION,ENCOUNTER,FIELDINFO,FIELDNAME,HPOS,INDENT,INDENTPAD,LENGTH,LINE,LINELENGTH,LINEHPOS,PARAM,PIECE,POSTRETURN,POSTSTR,PRESTR,RETURN,SUBFILE,TITLE
+3 ;
+4 SET DATA=""
+5 SET LINEHPOS=0
+6 ;
+7 DO SECTIONHDR("Encounter Data",.RECORDNUM)
+8 ;
+9 IF $GET(DUZ(0))="@"
DO SETLINE(IBENCIENS,IBIFNIENS,.RECORDNUM,"IEN: "_+IBENCIENS)
+10 ;
+11 FOR LINE=1:1
SET FIELDINFO=$PIECE($TEXT(ORDER3649+LINE),";;",2,99)
if FIELDINFO[("QUIT")
QUIT
Begin DoDot:1
+12 SET FIELDNAME=$PIECE(FIELDINFO,";")
+13 IF FIELDNAME[("|")
Begin DoDot:2
+14 SET PARAM=$PIECE(FIELDNAME,"|")
+15 SET API=$PIECE(FIELDNAME,"|",2)
+16 SET INDENT=$PIECE(FIELDNAME,"|",3)
+17 DO SECTIONHDR(PARAM,.RECORDNUM,1,$GET(INDENT))
QUIT
End DoDot:2
QUIT
+18 ;
+19 SET INDENT=""
+20 SET COLONPOS=25
+21 SET DATATYPE=$PIECE(FIELDINFO,";",2)
+22 SET HPOS=$PIECE(FIELDINFO,";",4)
+23 SET RETURN=$PIECE(FIELDINFO,";",3)
+24 SET POSTRETURN=$PIECE(RETURN,"|",2)
+25 SET DOCAPTION=RETURN[("C")
+26 SET TITLE=RETURN[("T")
+27 SET RETURN=$TRANSLATE(RETURN,"T")
+28 SET RETURN=$TRANSLATE($PIECE(RETURN,"|"),"C")
+29 SET LENGTH=$PIECE(FIELDINFO,";",5)
+30 SET SUBFILE=$PIECE(FIELDINFO,";",6)
+31 SET PRESTR=$TRANSLATE($PIECE(FIELDINFO,";",7),"""")
+32 SET POSTSTR=$TRANSLATE($PIECE(FIELDINFO,";",8),"""")
+33 SET DISPCAP=$TRANSLATE($PIECE(FIELDINFO,";",9),"""")
+34 ;
+35 IF SUBFILE
DO SUBFILE(SUBFILE,"",FIELDINFO,.RECORDNUM)
QUIT
+36 ;
+37 Begin DoDot:2
+38 IF DOCAPTION
Begin DoDot:3
+39 SET CAPTION=FIELDNAME_": "
+40 IF DISPCAP'=""
SET CAPTION=DISPCAP_": "
End DoDot:3
+41 IF '$TEST
SET CAPTION=""
+42 ;
+43 IF TITLE
SET CAPTION=$$TITLE(.CAPTION)
+44 ;
+45 SET LINELENGTH=$LENGTH(DATA)
+46 IF $GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))=""
SET $PIECE(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)," ",LENGTH+1)=""
+47 SET DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)=PRESTR_$GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))_POSTSTR
+48 SET DATALENGTH=$LENGTH($GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)))
+49 ;
+50 IF FIELDNAME="PRIMARY DX"
DO PRIMDX^IBACCWLEEUTIL
QUIT
+51 ;
+52 IF FIELDNAME="SECONDARY DX"
DO SECDX^IBACCWLEEUTIL
QUIT
+53 ;
+54 IF FIELDNAME="CPT"
DO CPT^IBACCWLEEUTIL
QUIT
+55 ;
+56 IF DOCAPTION
SET DATA=$$SETSTR^VALM1(CAPTION_$SELECT(FIELDNAME="PATIENT SSN":$EXTRACT($GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)),6,9),1:$GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))),DATA,LINEHPOS,$LENGTH(CAPTION)+DATALENGTH+1)
+57 IF '$TEST
SET DATA=$$SETSTR^VALM1($SELECT(FIELDNAME="PATIENT SSN":$EXTRACT($GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE)),6,9),1:$GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))),DATA,LINEHPOS,DATALENGTH+1)
+58 IF FIELDNAME="X12 CLAIM NUMBER"
SET ENCOUNTER=$GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))
+59 SET LINEHPOS=$LENGTH(DATA)
End DoDot:2
if RETURN'[("!")
QUIT
+60 ;
+61 if (FIELDNAME="PRIMARY DX")!(FIELDNAME="SECONDARY DX")!(FIELDNAME="CPT")
QUIT
+62 ;
+63 SET LINEHPOS=HPOS
+64 ;
+65 IF $GET(DATA)'=""
Begin DoDot:2
+66 IF RETURN'=""
IF (RECORD'=1)
DO EMPTYLINE(RETURN,.VALMCNT,.RECORDNUM)
+67 SET RECORDNUM=RECORDNUM+1
+68 SET INDENTPAD=""
+69 SET $PIECE(INDENTPAD," ",-($FIND(DATA,":")-COLONPOS))=""
+70 SET DATA=INDENTPAD_DATA
+71 SET RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
+72 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1,1)
+73 IF POSTRETURN'=""
DO EMPTYLINE(POSTRETURN,.VALMCNT,.RECORDNUM)
+74 SET DATA=""
End DoDot:2
QUIT
+75 ;
+76 SET DATA=$GET(DETRETURN(FILE,IBENCIENS,FIELDNAME,DATATYPE))
+77 IF FIELDNAME="X12 CLAIM NUMBER"
SET ENCOUNTER=DATA
+78 SET CAPTION=FIELDNAME_": "
+79 IF DOCAPTION
SET DATA=CAPTION_DATA
+80 SET INDENTPAD=""
+81 SET $PIECE(INDENTPAD," ",-($FIND(DATA,":")-COLONPOS))=""
+82 SET DATA=INDENTPAD_DATA
+83 SET RECORD=""
+84 SET RECORDNUM=RECORDNUM+1
+85 SET RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
+86 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1,1)
+87 SET DATA=""
End DoDot:1
+88 ;
+89 QUIT
+90 ;
TITLE(STR) ;EP
+1 ;
+2 NEW LEN,PIECE
+3 SET LEN=$LENGTH(STR,"/")
+4 FOR PIECE=1:1:LEN
Begin DoDot:1
+5 SET $PIECE(STR,"/",PIECE)=$$TITLE^XLFSTR($PIECE(STR,"/",PIECE))
End DoDot:1
+6 ;
+7 QUIT STR
+8 ;
SETLINE(IBENCIENS,IBIFNIENS,RECORDNUM,DATA) ;EP
+1 SET RECORD=""
+2 SET RECORDNUM=RECORDNUM+1
+3 SET RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
+4 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1,1)
+5 SET DATA=""
+6 QUIT
+7 ;
SUBFILE(FILE,SUBFILE,FIELDINFO,RECORDNUM) ;EP
+1 ;
+2 NEW PTRDATA,PTRERR,SUBRECORD,SUBIENS,SUBORDER,SUBFILENM,WPIEN
+3 NEW DATA,DATALENGTH,DATATYPE,DISPCAP,DOCAPTION,FILENM,FIELDNAME
+4 NEW HPOS,INDENT,INDENTPAD,LENGTH,LINE,LINELENGTH,LINENUM,PIECE,POSTSTR,PRESTR,RETURN
+5 ;
+6 SET SUBORDER=$TRANSLATE(FILE,".")
+7 ;
+8 SET FILENM=$PIECE(FIELDINFO,";")
+9 ;
+10 DO SECTIONHDR(FILENM_" Information",.RECORDNUM)
+11 ;
+12 IF $TEXT(@SUBORDER)=""
DO FAILLINE("NO FILE FORMATTING FOR FILE OR FILE "_FILE,.RECORDNUM)
QUIT
+13 ;
+14 FOR LINE=1:1
SET FIELDINFO=$PIECE($TEXT(@SUBORDER+LINE),";;",2,99)
if FIELDINFO[("QUIT")
QUIT
Begin DoDot:1
+15 SET FIELDNAME=$PIECE(FIELDINFO,";")
+16 SET FIELDNAME(LINE,FIELDNAME,"FIELDNAME")=$PIECE(FIELDINFO,";")
+17 SET FIELDNAME(LINE,FIELDNAME,"DATATYPE")=$PIECE(FIELDINFO,";",2)
+18 SET FIELDNAME(LINE,FIELDNAME,"RETURN")=$PIECE(FIELDINFO,";",3)
+19 SET FIELDNAME(LINE,FIELDNAME,"DOCAPTION")=FIELDNAME(LINE,FIELDNAME,"RETURN")[("C")
+20 SET FIELDNAME(LINE,FIELDNAME,"TITLE")=FIELDNAME(LINE,FIELDNAME,"RETURN")[("T")
+21 SET FIELDNAME(LINE,FIELDNAME,"RETURN")=$TRANSLATE(FIELDNAME(LINE,FIELDNAME,"RETURN"),"TC")
+22 SET FIELDNAME(LINE,FIELDNAME,"HPOS")=$PIECE(FIELDINFO,";",4)
+23 SET FIELDNAME(LINE,FIELDNAME,"LENGTH")=$PIECE(FIELDINFO,";",5)
+24 SET FIELDNAME(LINE,FIELDNAME,"SUBFILE")=$PIECE($PIECE(FIELDINFO,";",6),U)
+25 SET FIELDNAME(LINE,FIELDNAME,"SUBFIELD")=$PIECE($PIECE(FIELDINFO,";",6),U,2)
+26 SET FIELDNAME(LINE,FIELDNAME,"PRESTR")=$TRANSLATE($PIECE(FIELDINFO,";",7),"""")
+27 SET FIELDNAME(LINE,FIELDNAME,"POSTSTR")=$TRANSLATE($PIECE(FIELDINFO,";",8),"""")
+28 SET FIELDNAME(LINE,FIELDNAME,"DISPCAP")=$TRANSLATE($PIECE(FIELDINFO,";",9),"""")
+29 SET INDENT=""
+30 SET COLONPOS=25
+31 ;
End DoDot:1
+32 ;
+33 SET SUBIENS=0
+34 FOR SUBRECORD=1:1
SET SUBIENS=$ORDER(DETRETURN(FILE,SUBIENS))
if SUBIENS=""
QUIT
Begin DoDot:1
+35 SET DATA=""
+36 SET LINENUM=0
+37 FOR
SET LINENUM=$ORDER(FIELDNAME(LINENUM))
if 'LINENUM
QUIT
Begin DoDot:2
+38 SET FIELDNAME=""
+39 FOR
SET FIELDNAME=$ORDER(FIELDNAME(LINENUM,FIELDNAME))
if FIELDNAME=""
QUIT
Begin DoDot:3
+40 ;
+41 Begin DoDot:4
+42 IF FIELDNAME(LINENUM,FIELDNAME,"DOCAPTION")
Begin DoDot:5
+43 SET CAPTION=FIELDNAME_": "
+44 IF FIELDNAME(LINENUM,FIELDNAME,"DISPCAP")'=""
SET CAPTION=FIELDNAME(LINENUM,FIELDNAME,"DISPCAP")_": "
End DoDot:5
+45 IF '$TEST
SET CAPTION=""
+46 IF FIELDNAME(LINENUM,FIELDNAME,"TITLE")
SET CAPTION=$$TITLE(.CAPTION)
+47 SET LINELENGTH=$LENGTH(DATA)
+48 SET DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE"))=FIELDNAME(LINENUM,FIELDNAME,"PRESTR")_$GET(DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE")))_FIELDNAME(LINENUM,FI
ELDNAME,"POSTSTR")
+49 SET DATALENGTH=$LENGTH($GET(DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE"))))
End DoDot:4
if FIELDNAME(LINENUM,FIELDNAME,"RETURN")'[("!")
QUIT
+50 ;
+51 SET DATA=$GET(DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE")))
+52 ;
+53 IF $GET(DATA)'=""
Begin DoDot:4
+54 NEW ERR,PTR,PTRFILE,RET
+55 DO FIELD^DID(FILE,FIELDNAME,"","POINTER","RET","ERR")
+56 IF $DATA(RET)
Begin DoDot:5
+57 SET PTR=$GET(DETRETURN(FILE,SUBIENS,FIELDNAME,"I"))
+58 SET PTRFILE=$GET(FIELDNAME(LINENUM,FIELDNAME,"SUBFILE"))
+59 SET PTRDATA=DATA_" "_$$GET1^DIQ(PTRFILE,PTR_",",$GET(FIELDNAME(LINENUM,FIELDNAME,"SUBFIELD")),"E","","PTRERR")
End DoDot:5
+60 ;
+61 IF $DATA(PTRDATA)
SET DATALENGTH=$LENGTH(CAPTION_PTRDATA)
+62 IF '$TEST
SET PTRDATA=DATA
+63 SET DATA=""
+64 ;
+65 IF FIELDNAME(LINENUM,FIELDNAME,"DOCAPTION")
SET DATA=$$SETSTR^VALM1(CAPTION_PTRDATA,DATA,FIELDNAME(LINENUM,FIELDNAME,"HPOS"),DATALENGTH+1)
+66 ;
+67 IF FIELDNAME(LINENUM,FIELDNAME,"RETURN")'=""
IF (SUBRECORD'=1)
DO EMPTYLINE(FIELDNAME(LINENUM,FIELDNAME,"RETURN"),.VALMCNT,.RECORDNUM)
+68 ;
+69 SET RECORDNUM=RECORDNUM+1
+70 ;
+71 SET INDENTPAD=""
+72 SET $PIECE(INDENTPAD," ",-($FIND(DATA,":")-COLONPOS))=""
+73 SET DATA=INDENTPAD_DATA
+74 ;
+75 SET RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
+76 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1,1)
+77 SET DATA=""
End DoDot:4
QUIT
+78 ;
+79 IF FIELDNAME(LINENUM,FIELDNAME,"DATATYPE")="WP"
Begin DoDot:4
+80 IF FIELDNAME(LINENUM,FIELDNAME,"DOCAPTION")
Begin DoDot:5
+81 SET CAPTION=FIELDNAME_": "
+82 IF FIELDNAME(LINENUM,FIELDNAME,"DISPCAP")'=""
SET CAPTION=FIELDNAME(LINENUM,FIELDNAME,"DISPCAP")_": "
End DoDot:5
+83 IF '$TEST
SET CAPTION=""
+84 ;
+85 IF TITLE
SET CAPTION=$$TITLE(.CAPTION)
+86 ;
+87 ;BEGIN TPF;IB*2*770v51;EBILL-6174
+88 IF $ORDER(DETRETURN(FILE,SUBIENS,FIELDNAME,0))
Begin DoDot:5
+89 DO EMPTYLINE("!!",.VALMCNT,.RECORDNUM)
+90 SET RECORD=""
+91 SET RECORDNUM=RECORDNUM+1
+92 SET RECORD=$$SETFLD^VALM1(CAPTION,RECORD,"RECORD")
+93 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1,1)
+94 SET DATA=""
+95 ;END TPF;IB*2*770v51;EBILL-6174
End DoDot:5
+96 ;
+97 SET WPIEN=0
+98 FOR
SET WPIEN=$ORDER(DETRETURN(FILE,SUBIENS,FIELDNAME,WPIEN))
if 'WPIEN
QUIT
Begin DoDot:5
+99 SET DATA=$GET(DETRETURN(FILE,SUBIENS,FIELDNAME,WPIEN))
+100 ;
+101 ;BEGIN TPF;IB*2*770v51;EBILL-6174
+102 SET INDENTPAD=""
+103 SET DATA=INDENTPAD_DATA
+104 ;END TPF;IB*2*770v51;EBILL-6174
+105 SET RECORD=""
+106 SET RECORDNUM=RECORDNUM+1
+107 SET RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
+108 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1,1)
+109 SET DATA=""
End DoDot:5
End DoDot:4
QUIT
+110 ;
+111 SET DATA=$GET(DETRETURN(FILE,SUBIENS,FIELDNAME,FIELDNAME(LINENUM,FIELDNAME,"DATATYPE")))
+112 SET CAPTION=FIELDNAME_": "
+113 IF FIELDNAME(LINENUM,FIELDNAME,"TITLE")
SET CAPTION=$$TITLE(.CAPTION)
+114 SET DATA=CAPTION_DATA
+115 SET INDENTPAD=""
+116 SET $PIECE(INDENTPAD," ",-($FIND(DATA,":")-COLONPOS))=""
+117 SET DATA=INDENTPAD_DATA
+118 SET RECORD=""
+119 SET RECORDNUM=RECORDNUM+1
+120 SET RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
+121 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1,1)
+122 SET DATA=""
End DoDot:3
End DoDot:2
End DoDot:1
+123 ;
+124 QUIT
+125 ;
SECTIONHDR(SECTNAME,RECORDNUM,REVERSE,INDENT) ;EP - INSERT SECTION HEADER
+1 NEW DATA,WIDTH,COL
+2 ;
+3 SET DATA=$$TITLE(.SECTNAME)
+4 ;
+5 SET INDENT=$GET(INDENT)
+6 ;
+7 SET RECORD=""
+8 ;
+9 SET RECORDNUM=RECORDNUM+1
+10 DO SET("",.VALMCNT,.RECORDNUM,"","",1,1)
+11 ;
+12 IF INDENT=""!(INDENT<0)
SET COL=((IOM/2)-($LENGTH(DATA)/2))\1
+13 IF '$TEST
SET COL=$GET(INDENT)
+14 ;
+15 SET WIDTH=$LENGTH(DATA)
+16 SET DATA=$$SETSTR^VALM1(DATA,"",COL,WIDTH)
+17 SET RECORDNUM=RECORDNUM+1
+18 SET RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
+19 ;
+20 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1,1)
+21 ;
+22 IF $PIECE($GET(XQY0),U)'="IBACC WL PREVIOUS ACT. REVIEW"
DO CNTRL^VALM10(VALMCNT,COL+4,WIDTH,IORVON,IORVOFF)
+23 ;
+24 SET RECORDNUM=RECORDNUM+1
+25 DO SET("",.VALMCNT,.RECORDNUM,"","",1,1)
+26 ;
+27 QUIT
+28 ;
EMPTYLINE(RETURN,VALMCNT,RECORDNUM) ;EP
+1 ;
+2 if $GET(RETURN)=""
QUIT
+3 NEW RETURNS,CNT
+4 SET RETURNS=$LENGTH(RETURN,"!")-2
+5 if RETURNS'>0
QUIT
+6 ;
+7 FOR CNT=1:1:RETURNS
Begin DoDot:1
+8 SET RECORDNUM=RECORDNUM+1
+9 DO SET("",.VALMCNT,.RECORDNUM,"","",1,1)
End DoDot:1
+10 ;
+11 QUIT
+12 ;
FAILLINE(TEXT,RECORDNUM) ;EP - DISPLAY ERROR
+1 ;
+2 NEW DATA
+3 SET DATA=$GET(TEXT)
+4 SET RECORD=""
+5 ;
+6 SET RECORDNUM=RECORDNUM+1
+7 DO SET("",.VALMCNT,.RECORDNUM,"","",1,1)
+8 ;
+9 SET DATA=$$SETSTR^VALM1(DATA,"",(IOM/2)-($LENGTH(DATA)/2),$LENGTH(DATA))
+10 SET RECORDNUM=RECORDNUM+1
+11 SET RECORD=$$SETFLD^VALM1(DATA,RECORD,"RECORD")
+12 DO SET(RECORD,.VALMCNT,.RECORDNUM,$GET(IBENCIENS),$GET(IBIFNIENS),1)
+13 ;
+14 SET RECORDNUM=RECORDNUM+1
+15 DO SET("",.VALMCNT,.RECORDNUM,"","",1,1)
+16 ;
+17 QUIT
+18 ;
SET(X,VALMCNT,RECORDNUM,ENCIEN,BILLIEN,SET,NOINDEX) ;EP -
+1 ;
+2 IF '$GET(SET)
Begin DoDot:1
+3 WRITE !,X
End DoDot:1
QUIT
+4 ;
+5 SET VALMCNT=VALMCNT+1
+6 ;
+7 SET @VALMAR@(VALMCNT,0)=X
+8 IF '$GET(NOINDEX)
SET @VALMAR@("IDX",VALMCNT,RECORDNUM)=""
+9 if $GET(ENCIEN)
SET @VALMAR@("IEN3649",1)=+ENCIEN
+10 if $GET(BILLIEN)
SET @VALMAR@("IEN399",1)=+BILLIEN
+11 ;
+12 QUIT
+13 ;
ORDER3649 ;;
+1 ;;PATIENT LAST NAME;E;TC;0;30;;;", ";"PATIENT NAME"
+2 ;;PATIENT FIRST NAME;E;;;15;;;" ";
+3 ;;PATIENT MIDDLE NAME;E;!;;18;;;;
+4 ;;PATIENT DOB;E;C!;0;30;;;;"DOB"
+5 ;;PATIENT SSN;E;C!;0;6;;;;"SSN"
+6 ;;CLAIM NUMBER;E;TC!;0;30;;;;"BILL/CLAIM"
+7 ;;X12 CLAIM NUMBER;E;TC!;0;20;;;;"ENCOUNTER#"
+8 ;;PAYER CLAIM CONTROL NUMBER;E;TC!;0;29;;;;"PAYER CLAIM CONTROL#"
+9 ;;STATUS;E;TC!;0;30
+10 ;;STATUS DATE CHANGED;E;TC!;0;30
+11 ;;SERVICE DATE;E;TC!;0;30
+12 ;;AUTHORIZED?;E;TC!;0;30
+13 ;;DATE/TIME ENTERED;E;CT!;0;30;;;;"IMPORT DATE"
+14 ;;DATE ASSIGNED;E;CT!;0;30
+15 ;;SITE NUMBER;E;CT!;0;15
+16 ;;PRIMARY DX;E;C!;0;80;;;;"Primary DX";TPF*IB*2*770v38;EBILL=5353 EXPAND FIELD WIDTH
+17 ;;SECONDARY DX;E;C!;0;15;;;;"Secondary DX";TPF*IB*2*770v20;EBILL=4462 ADD SECONDARY DX
+18 ;;CPT;E;C!;0;15
+19 ;;ASSIGNED TO GROUP;E;TC!;0;15
+20 ;;INITIAL ASSIGNED GROUP;E;TC!;0;15
+21 ;;FORM TYPE;E;CT!;0;15
+22 ;;IN-PATIENT/OUT-PATIENT;E;TC!;0;15;;;;"IN./OUT."
+23 ;;PROVIDER;E;TC!;0;15
+24 ;;PROVIDER NPI;E;C!;0;30;;;;"Provider NPI"
+25 ;;PROVIDER TYPE;E;TC!;0;30
+26 ;;SERVICE FACILITY;E;C!;0;30;;;;"Service Facility";TPF;IB*2*770v12;EBILL-4507
+27 ;;SERVICE FACILITY NPI;E;C!;0;10;;;;"Service Facility NPI";TPF;IB*2*770v12;EBILL-4507
+28 ;;PAID AMOUNT;E;C!;0;10;;;;"Amount Paid";TPF;IB*2*770v18;EBILL-4623 ALL SORT STORIES
+29 ;;PRIMARY INS;E;CT!;0;30
+30 ;;SECONDARY INS;E;TC!;0;30
+31 ;;REASONS NOT AUTOBILLED;E;TC!;0;30;364.95;
+32 ;;PREVIOUS ACTIVITY;E;CT;0;30;364.94
+33 ;;QUIT
+34 ;
36494 ;;PREVIOUS ACTIVITY
+1 ;;DATE/TIME ENTERED;E;TC!!;0;30
+2 ;;ACTIVITY CODE;E;CT!;0;45;364.92^.02
+3 ;;ASSIGNING GROUP;E;TC!;0;30
+4 ;;REASSIGNED TO GROUP;E;TC!;0;30
+5 ;;ENTERED BY;E;CT!;0;30
+6 ;;PREVIOUS ACTIVITY COMMENTS;WP;TC!;0;30;;;;"Prev. Act. Comments"
+7 ;;QUIT
+8 ;
3649401 ;;PREVIOUS ACTIVITY COMMENTS
+1 ;;PREVIOUS ACTIVITY COMMENTS;E;TC!;0;30
+2 ;;QUIT
+3 ;
36495 ;;REASONS NOT AUTOBILLED
+1 ;;REASON NOT AUTOBILLED;E;TC!!;0;30;364.91^.02
+2 ;;REASON NOTE;E;TC!;0;30
+3 ;;QUIT
+4 ;
36491 ;;ACC X12 CLAIM FAILURES
+1 ;;REASON CODE;E;TC!;0;30
+2 ;;DESCRIPTION;E;TC!;0;30
+3 ;;QUIT
+4 ;
36492 ;;ACC ACTIVITY CODES
+1 ;;ACTIVITY CODE;E;TC!;0;30
+2 ;;SHORT DESCRIPTION;E;TC!;0;30
+3 ;;QUIT
+4 QUIT
+5 ;
HELP ; -- help code
+1 ;
+2 QUIT
+3 ;
EXIT ; -- exit code
+1 ;
+2 IF $GET(IBACCWLEELEV)>1
SET IBACCWLEELEV=IBACCWLEELEV-1
SET VALMQUIT=1
QUIT
+3 ;TPF;IB*2*770v44;EBILL-6011
SET IBACCWLEELEV=$GET(IBACCWLEELEV)-1
+4 ;TPF v49 XINDEX
KILL ^TMP($JOB,"IBITEM")
+5 DO CLEAN^VALM10
+6 ;
+7 QUIT
+8 ;
EXPND ; -- expand code
+1 QUIT
+2 ;
NODATA(VALMQUIT) ;EP - NO DATA
+1 ;
+2 IF '$DATA(@VALMAR)
WRITE !!,"NO DATA FOUND!!"
SET VALMQUIT=1
QUIT 1
+3 ;
+4 QUIT 0