IBCEF2 ;ALB/TMP - FORMATTER SPECIFIC BILL FUNCTIONS ;8/6/03 10:54am
Source file <IBCEF2.m>
Package | Total | Call Graph |
---|---|---|
Integrated Billing | 10 | $$ICD9VER^IBACSV ($$COB,$$COBN,$$FT)^IBCEF ($$FINDINS,$$REQ)^IBCEF1 ($$RECVR,ID)^IBCEF2 ($$COID,$$ESGHPNL,$$ESGHPST,ADMDT,DISDT)^IBCEF21 (HOS,VC80I)^IBCEF22 ($$MRASEC,$$TXMT)^IBCEF4 SETGBL^IBCEFG $$DOLLAR^IBCEFG1 ($$MCRONBIL,$$MCRWNR,$$WNRBILL)^IBEFUNC |
Kernel | 1 | $$UP^XLFSTR |
Registration | 1 | INP^VADPT |
VA FileMan | 1 | $$GET1^DIQ |
Name | Comments | DBIA/ICR reference |
---|---|---|
HOS(IBIFN) | ; Extract rev codes for inst. episode into IBXDATA
; Moved for space |
|
OTHINS(IBIFN) | ;Determine 'other insurance' node (I1,I2)
; If primary bill, other ins is secondary ; If sec or tert bill, other ins is primary |
|
OTHINS1(IBIFN) | ; Returns the COB #'s of all 'other insurance' as a string
|
|
OTHQ | ||
RECVR(IBIFN) | ; Returns the V.A. internal routing id of the current ins
; co for 837 |
|
ALLPAYID(IBIFN,IBXDATA,SEQ) | ; Returns clearinghouse id for all (SEQ="")
; or a specific (SEQ=1,2,3) ins co's for 837 in IBXDATA(n) for bill ien ; IBIFN ; EJK *296* Add IBMRA - MRA Claim type. ; EJK *296* Add IBEBI - Electronic Billing ID |
|
PAYERID(IBIFN) | ; Returns clearinghouse id for current ins co
; IBIFN = bill ien |
|
CURR(IBIFN) | ; Returns ien of the current insurance
; company for bill ien IBIFN |
|
ADMDT(IBIFN,NOOUTCK) | ; Calculate admission/start of care date/time
|
|
DISDT(IBIFN) | ; Calculate discharge date
|
|
INDTS(IBIFN) | ; Function returns the admit ^ discharge date/time of admission if patient is an inpatient on bill's event date
|
|
TXMT(IBIFN) | ; Function moved - use new call in IBCEF4
|
|
ID(LN,VAL) | ; Set EXTRACT GLOBAL for multi-valued record
; ids for Austin ; LN = the line # being extracted ; VAL = the value of the element being extracted |
|
ID1(LN,DX,CT,DCT,ECT) | ;Special entry point for diagnoses to 'save' the fact
; a dx code is an e-code. ; LN is last entry # output, returned as the entry # (IBXLINE) to assign to this entry ; DX = the actual Dx code array(RECORD ID). Pass by reference, DX returned null if ; dx was not output ; CT = the ct on the 'DC' entry. pass by reference, returned null if ; the end of the valid dx codes has been reached ; DCT= Count of regular DX codes. UB-04 can have 25 non External Cause codes. ; ECT= Count of External Cause codes. UB-04 can have 12 External Cause codes. ; External Cause of Injury codes and qualifier changed with ICD-10: E-codes in ICD-9, V,X,W,Y-codes in ICD-10 |
|
IDX1 | ;
|
|
M(CT) | ; Calculate multi-valued field for 837 extract
; CT = passed by reference/the record ID counter |
|
SVITM(IBA,LINE) | ; Saves the linked items from the bill data extract into
; an array the formatter will use to link Rxs and prosthetics ; to an SV1 or SV2 line item, if possible. Kills off IBA array entries ; after they are 'moved' ; IBA = array that contains the data to be saved ; subscripts are (line #,item type,item pointer)=ct |
|
LINK(IBTYP,IBDATA) | ; Link the item with a service line, if possible
; IBTYP = the code for the type of item ; returned incremented if no link is made ; IBDATA = the extracted data string that identifies the item. ; Returns the line to link to or null if no link |
|
LINKQ | ||
COID(IBIFN) | ; Claim office ID - moved for space
|
|
PPOL(IBIFN,COB) | ; return IFN of patient policy on a bill defined by COB (fields 399,112-114)
|
|
LADJ(SUB,LINE,SEQ1,GRP,IBXSAVE,PIECE) | ; Extract line level adjustments
; SUB = 1st subscript in IBXSAVE array to use ; LINE = 2nd subscript ; SEQ1 = 4th subscript ; GRP = 5th subscript ; IBXSAVE = array that has the data for COB line level adjustments ; PIECE = # of the piece on the 0-node of the line level ; adjustment reason to be extracted |
|
ESGHPST(IBIFN,COB) | ; return insureds employ status if bill policy defined by COB is an Employer Sponsored Group Health Plan
|
|
ESGHPNL(IBIFN,COB) | ; return employer name and location if bill policy defined by COB is an Employer Sponsored Group Health Plan
|
|
AMTOUT(A,B,C,IBXSAVE) | ; format output amount
|
|
SNF(IBIFN) | ; Check to see if the claim is a SNF (Skilled Nursing Facility) Claim.
; Returned Values: ; SNF = 0 if claim is not a SNF Claim. ; SNF = 1 if claim is a SNF Claim. |
|
VC80CK(IBIFN) | ; Determine if the Claim is eligible for Value Code 80 Revenue Code Claim Lines.
|
|
INS | ; Called by the Output Formatter [#364.7, 176]
|
|
INS05 | ; Called by the Output Formatter [#364.7, 178]
|
|
INS07 | ; Called by the Output Formatter [#364.7, 181]
|
|
INS09 | ; Called by the Output Formatter [#364.7, 180]
|
|
INS12 | ; Called by the Output Formatter [#364.7, 482]
|
|
INS13 | ; Called by the Output Formatter [#364.7, 805]
|
Name | Field # of Occurrence |
---|---|
$$GET1^DIQ | SNF+6 |
$$ICD9VER^IBACSV | ID1+17 |
$$COB^IBCEF | VC80CK+5 |
$$COBN^IBCEF | OTHINS+5, OTHINS1+3, PAYERID+5 |
$$FT^IBCEF | RECVR+5, RECVR+6, RECVR+11, ALLPAYID+16, ALLPAYID+21, ALLPAYID+28, ID1+11 |
$$FINDINS^IBCEF1 | CURR+2 |
$$REQ^IBCEF1 | INS05+3 |
$$RECVR^IBCEF2 | VC80CK+4 |
ID^IBCEF2 | INS+8, INS+12 |
$$COID^IBCEF21 | COID+1 |
$$ESGHPNL^IBCEF21 | ESGHPNL+1 |
$$ESGHPST^IBCEF21 | ESGHPST+1 |
ADMDT^IBCEF21 | ADMDT+1 |
DISDT^IBCEF21 | DISDT+1 |
HOS^IBCEF22 | HOS+2 |
VC80I^IBCEF22 | INS+14 |
$$MRASEC^IBCEF4 | ALLPAYID+24, ALLPAYID+26 |
$$TXMT^IBCEF4 | TXMT+1 |
SETGBL^IBCEFG | ID+8 |
$$DOLLAR^IBCEFG1 | AMTOUT+2, INS09+6, INS12+6 |
$$MCRONBIL^IBEFUNC | ALLPAYID+25 |
$$MCRWNR^IBEFUNC | RECVR+9 |
$$WNRBILL^IBEFUNC | ALLPAYID+55 |
INP^VADPT | INDTS+3 |
$$UP^XLFSTR | ALLPAYID+22, ALLPAYID+29 |
FileNo | Call Tags |
---|---|
^DGCR(399 - [#399] | GET1^DIQ |
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^DGCR(399 - [#399] | OTHINS1+4, OTHINS1+5, RECVR+8, ALLPAYID+10, ALLPAYID+25, INDTS+2, PPOL+2, VC80CK+7 |
^DGCR(399.3 - [#399.3] | RECVR+8 |
^DGPM - [#405] | INDTS+3 |
^DIC(36 - [#36] | ALLPAYID+18, ALLPAYID+19, ALLPAYID+21, ALLPAYID+28 |
^IBA(362.3 - [#362.3] | ID1+31 |
^TMP("DCX" | ID1+23, ID1+44*, ID1+45* |
^TMP("IBXSAVE" | ID1+40*, ID1+46* |
^TMP($J | SVITM+7*, LINK+8, LINK+9*, LINK+10, LINK+11*, INS+2, INS+5* |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
A | ALLPAYID+8~, ALLPAYID+11, ALLPAYID+12*, ALLPAYID+14*, ALLPAYID+28*, ALLPAYID+29*, ALLPAYID+45*, ALLPAYID+48*, ALLPAYID+55*, ALLPAYID+58 , ALLPAYID+59, LADJ+9~, LADJ+10*, LADJ+11*, LADJ+12, AMTOUT~, AMTOUT+2, INS+1~, INS+2*, INS+5 , INS+6*, INS+7, INS+14, INS+15*, INS+16 |
B | LADJ+9~, LADJ+10*, LADJ+12*, AMTOUT~, AMTOUT+2 |
BLTYPX | VC80CK+1~, VC80CK+8*, VC80CK+9 |
C | AMTOUT~, AMTOUT+2 |
CNT | ID1+10~, ID1+44*, ID1+45 |
COB | PPOL~, PPOL+2, ESGHPST~, ESGHPST+1, ESGHPNL~, ESGHPNL+1, VC80CK+1~, VC80CK+5* |
CT | ID1~, ID1+12, ID1+17, ID1+29, ID1+40, ID1+42, ID1+44, ID1+45, ID1+46*, M~ , M+2*, M+7 |
DCT | ID1~, ID1+14*, ID1+28* |
DFN | INDTS+1~, INDTS+2*, INDTS+3 |
DX | ID1~, ID1+16*, ID1+18, ID1+19, ID1+25, ID1+27*, ID1+28*, ID1+40*, ID1+42, ID1+45 |
DX( | ID1+17, ID1+29, ID1+40, ID1+46 |
DXIEN | ID1+10~, ID1+29*, ID1+31 |
DXQ | ID1+10~, ID1+23*, ID1+32*, ID1+35*, ID1+37*, ID1+45 |
ECT | ID1~, ID1+14*, ID1+27* |
EDX | ID1+10~, ID1+16*, ID1+18*, ID1+19*, ID1+21, ID1+23, ID1+27, ID1+28, ID1+32, ID1+35 |
GRP | LADJ~, LADJ+11, LADJ+12 |
I | ID1+10~, ID1+21*, ID1+44, ID1+45 |
IB0 | VC80CK+1~, VC80CK+7*, VC80CK+8 |
IBA | SVITM~ |
IBA("OUTPT" | SVITM+7! |
IBARR | AMTOUT+2~* |
IBC | OTHINS1+2~, OTHINS1+4*, OTHINS1+5*, OTHINS1+6*, OTHQ |
IBDATA | LINK~, LINK+7 |
IBEBI | ALLPAYID+8~, ALLPAYID+18*, ALLPAYID+19*, ALLPAYID+21*, ALLPAYID+22*, ALLPAYID+48 |
IBIFN | HOS~, HOS+2, OTHINS~, OTHINS+5, OTHINS1~, OTHINS1+3, OTHINS1+4, OTHINS1+5, RECVR~, RECVR+5 , RECVR+6, RECVR+8, RECVR+9, RECVR+11, ALLPAYID~, ALLPAYID+10, ALLPAYID+16, ALLPAYID+21, ALLPAYID+24, ALLPAYID+25 , ALLPAYID+26, ALLPAYID+28, ALLPAYID+55, PAYERID~, PAYERID+5, PAYERID+6, CURR~, CURR+2, ADMDT~, ADMDT+1 , DISDT~, DISDT+1, INDTS~, INDTS+2, TXMT~, TXMT+1, COID~, COID+1, PPOL~, PPOL+2 , ESGHPST~, ESGHPST+1, ESGHPNL~, ESGHPNL+1, SNF~, SNF+6, VC80CK~, VC80CK+3, VC80CK+4, VC80CK+5 , VC80CK+6, VC80CK+7 |
IBINS | ID1+10~, ID1+11*, ID1+25, ID1+35, ID1+40 |
IBINST | ALLPAYID+8~, ALLPAYID+16*, ALLPAYID+18, ALLPAYID+19, ALLPAYID+28, ALLPAYID+45, ALLPAYID+55 |
IBKEY | LINK+5~, LINK+7*, LINK+8, LINK+9, LINK+10*, LINK+11 |
IBLN | LINK+5~, LINK+6*, LINK+8, LINK+9*, LINK+11*, LINKQ |
IBM | ALLPAYID+8~, ALLPAYID+10*, ALLPAYID+11 |
IBM2 | ALLPAYID+8~, ALLPAYID+10*, ALLPAYID+14 |
IBMCR | ALLPAYID+8~, ALLPAYID+25* |
IBMRA | ALLPAYID+8~, ALLPAYID+24*, ALLPAYID+48 |
IBPH | RECVR+3~, RECVR+5*, RECVR+6, RECVR+8 |
IBSEQ | PAYERID+2~, PAYERID+5*, PAYERID+6 |
IBTYP | LINK~, LINK+7, LINK+8, LINK+9, LINK+10, LINK+11 |
IBX | ALLPAYID+8~ |
IBXDATA | ALLPAYID~, ALLPAYID+10*, AMTOUT+2!, INS+4!, INS05+2!, INS09+2!, INS12+2!, INS13+2! |
IBXDATA( | ALLPAYID+11*, LADJ+12*, AMTOUT+2*, INS+3, INS+6, INS+7!*, INS+16*, INS05+6*, INS05+7*, INS07+4* , INS07+5*, INS09+5*, INS09+6*, INS12+5*, INS12+6*, INS13+5*, INS13+7*! |
IBXDATA("" | INS+11 |
>> IBXIEN | ID1+11, ID1+40, ID1+46, INS05+3 |
>> IBXNOREQ | INS05+3* |
>> IBXPG | ID+8 |
IBXSAVE | LADJ~, AMTOUT~ |
IBXSAVE( | LADJ+11, LADJ+12 |
IBXSAVE("INPT" | INS+6*, INS05+5, INS05+6, INS05+7, INS07+3, INS07+4, INS07+5, INS09+4, INS09+5, INS09+6 , INS12+4, INS12+5, INS12+6, INS13+4, INS13+5, INS13+6 |
IBXSAVE("PMOD" | INS07+5* |
>> IBXSIZE | ID+8 |
IBZ | AMTOUT+2~* |
ICDV | ID1+10~, ID1+17*, ID1+18, ID1+19, ID1+37 |
K | AMTOUT+2~* |
LAST | INS05+4~*, INS05+5, INS05+6*, INS07+2~*, INS07+3, INS07+4*, INS09+3~*, INS09+4, INS09+5*, INS12+3~* , INS12+4, INS12+5*, INS13+3~*, INS13+4, INS13+5* |
LINE | SVITM~, SVITM+7, LADJ~, LADJ+11, LADJ+12 |
LN | ID~, ID+7, ID+8, ID1~, ID1+46* |
MCR | RECVR+3~, RECVR+11*, RECVR+12 |
NOOUTCK | ADMDT~, ADMDT+1 |
NUM | RECVR+3~, RECVR+6*, RECVR+8*, RECVR+9, RECVR+12*, RECVR+13, PAYERID+2~, PAYERID+6*, PAYERID+7, VC80CK+1~ , VC80CK+6 |
NUM( | PAYERID+6 |
NUM(1 | VC80CK+6 |
PIECE | LADJ~, LADJ+12 |
POA | ID1+10~, ID1+31*, ID1+35*, ID1+45 |
PPAYID | VC80CK+1~, VC80CK+6* |
PPOL | PPOL+1~*, PPOL+2*, PPOL+3 |
RCVRID | VC80CK+1~, VC80CK+4* |
SEQ | ALLPAYID~, ALLPAYID+11 |
SEQ1 | LADJ~, LADJ+11, LADJ+12 |
SNF | SNF+4~, SNF+5*, SNF+6*, SNF+7 |
SUB | LADJ~, LADJ+11, LADJ+12 |
U | RECVR+5, RECVR+8, RECVR+11, ALLPAYID+11, ALLPAYID+14, ALLPAYID+18, ALLPAYID+19, ALLPAYID+21, ALLPAYID+26, ALLPAYID+28 , ALLPAYID+45, INDTS+2, INDTS+3, ID1+29, ID1+31, ID1+40, ID1+45, ID1+46, LINK+7, PPOL+2 , LADJ+12, AMTOUT+2, VC80CK+4, VC80CK+8, INS05+6, INS05+7, INS07+5, INS09+6, INS12+6, INS13+5 , INS13+6 |
VAIN | INDTS+1~ |
VAIN(1 | INDTS+3 |
VAIN(7 | INDTS+3 |
VAINDT | INDTS+1~, INDTS+2*, INDTS+3 |
VAL | ID~, ID+8, ID1+10~, ID1+12*, ID1+13*, ID1+46 |
>> VC80 | INS+10, INS05+6, INS07+4, INS09+5, INS12+5, INS13+5 |
VC80SW | VC80CK+1~, VC80CK+2*, VC80CK+3, VC80CK+4, VC80CK+5, VC80CK+6, VC80CK+9, VC80CK+10*, VC80CK+11 |
X | PPOL+1~, PPOL+2* |
Y | PPOL+1~, PPOL+2* |
Z | OTHINS+4~, OTHINS+5*, OTHINS+6, OTHINS1+2~, OTHINS1+3*, OTHINS1+4, OTHINS1+5, OTHINS1+6, ALLPAYID+8~, ALLPAYID+11* , ALLPAYID+14, ALLPAYID+48, ALLPAYID+55, INDTS+1~, INDTS+2*, LINK+5~, LINK+9*, LINK+11*, AMTOUT+2~*, INS+1~ , INS+2*, INS+3*, INS+4, INS+5, INS+6, INS+7, INS+8, INS+11*, INS+12, INS+16 , INS05+4~*, INS05+5*, INS05+6, INS05+7, INS07+2~*, INS07+3*, INS07+4, INS07+5, INS09+3~*, INS09+4* , INS09+5, INS09+6, INS12+3~*, INS12+4*, INS12+5, INS12+6, INS13+3~*, INS13+4*, INS13+5, INS13+6 , INS13+7 |
Z0 | ALLPAYID+8~, ALLPAYID+11*, ALLPAYID+18, ALLPAYID+19, ALLPAYID+21, ALLPAYID+28, INDTS+1~*, INDTS+3*, INDTS+4, SVITM+6~ , SVITM+7*, INS13+3~, INS13+6*, INS13+7 |
Z1 | ALLPAYID+8~, ALLPAYID+25*, ALLPAYID+26, ALLPAYID+28, ALLPAYID+45, SVITM+6~, SVITM+7* |