IBCE835A ;ALB/ESG/PJH - 835 EDI EOB PROCESSING CONTINUED ; 7/15/10 7:02pm
;;2.0;INTEGRATED BILLING;**135,431,718**;21-MAR-94;Build 73
;;Per VHA Directive 2004-038, this routine should not be modified.
Q
; Continue processing of IBCE835 since that routine grew too large
;
37(IBD) ; Process claim level adjustment data for Inpatient MEDICARE
; Claim must have been referenced by a previous '05' level
;
; INPUT:
; IBD must be passed by reference = entire message line
;
; OUTPUT:
; IBD("LINE") = The last line # populated in the message
; ^TMP("IBMSG",$J,"CLAIM",claim #,line #)=claim level adjustment msg
; ,"D",37,seq#)=
; ,"D1",seq#,37)=
; claim level adjust. raw data
;
N IBCLM,IBHCT
S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
;
;;IB*2.0*718;JWS;EBILL-924;handle split MRAs in the same file received from FSC
S IBHCT=$$GETHCT^IBCE835(IBCLM)
S IBCLM=IBCLM_"#"_IBHCT
;
Q:'$D(^TMP("IBMSG",$J,"CLAIM",IBCLM))
S IBD("LINE")=$G(IBD("LINE"))+1
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,IBD("LINE"))=$S($D(^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",37)):$J("",34),1:"MEDICARE ADJUDICATION MESSAGE(S): ")_"("_$P(IBD,U,4)_") "_$P(IBD,U,5)
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",37,IBD("LINE"))="##RAW DATA: "_IBD
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",IBD("LINE"),37)="##RAW DATA: "_IBD
Q
;
40(IBD) ; Process service line data
;
; INPUT:
; IBD must be passed by reference = entire message line
;
; OUTPUT:
; ^TMP("IBMSG",$J,"CLAIM",claim #,"D",40,msg seq #)=
; "D1",msg seq #,40)=
; claim status raw data
; IBD("LINE") = The last line # populated in the message
;
N IBCLM,IBHCT
S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
S IBD("LINE")=$G(IBD("LINE"))+1
;
;;IB*2.0*718;JWS;EBILL-924;handle split MRAs in the same file received from FSC
S IBHCT=$$GETHCT^IBCE835(IBCLM)
S IBCLM=IBCLM_"#"_IBHCT
;
I '$D(^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",40)) D
. S ^TMP("IBMSG",$J,"CLAIM",IBCLM,IBD("LINE"))="Line level detail exists for this claim"
. S IBD("LINE")=IBD("LINE")+1
;
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",40,IBD("LINE"))="##RAW DATA: "_IBD
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",IBD("LINE"),40)="##RAW DATA: "_IBD
;
Q
;
45(IBD) ; Process service line adjustment data
;
; INPUT:
; IBD must be passed by reference = entire message line
;
; OUTPUT:
; ^TMP("IBMSG",$J,"CLAIM",claim #,"D",45,msg seq #)=
; ^TMP("IBMSG",$J,"CLAIM",claim #,"D1",msg seq #,45)=
; claim status raw data
; IBD("LINE") = The last line # populated in the message
;
N IBCLM,IBHCT
S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
S IBD("LINE")=$G(IBD("LINE"))+1
;
;;IB*2.0*718;JWS;EBILL-924;handle split MRAs in the same file received from FSC
S IBHCT=$$GETHCT^IBCE835(IBCLM)
S IBCLM=IBCLM_"#"_IBHCT
;
I '$D(^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",45)) D
. S ^TMP("IBMSG",$J,"CLAIM",IBCLM,IBD("LINE"))="Line level adjustments exist for this claim"
. S IBD("LINE")=IBD("LINE")+1
;
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",45,IBD("LINE"))="##RAW DATA: "_IBD
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",IBD("LINE"),45)="##RAW DATA: "_IBD
;
Q
;
46(IBD) ; Process service line adjustment data
;
; INPUT:
; IBD must be passed by reference = entire message line
;
; OUTPUT:
; ^TMP("IBMSG",$J,"CLAIM",claim #,"D",46,msg seq #)=
; ^TMP("IBMSG",$J,"CLAIM",claim #,"D1",msg seq #,46)=
; claim status raw data
; IBD("LINE") = The last line # populated in the message
;
N IBCLM,IBHCT
S IBCLM=$$GETCLM^IBCE277($P(IBD,U,2))
S IBD("LINE")=$G(IBD("LINE"))+1
;
;;IB*2.0*718;JWS;EBILL-924;handle split MRAs in the same file received from FSC
S IBHCT=$$GETHCT^IBCE835(IBCLM)
S IBCLM=IBCLM_"#"_IBHCT
;
I '$D(^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",46)) D
. S ^TMP("IBMSG",$J,"CLAIM",IBCLM,IBD("LINE"))="Line level adjustments exist for this claim"
. S IBD("LINE")=IBD("LINE")+1
;
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D",46,IBD("LINE"))="##RAW DATA: "_IBD
S ^TMP("IBMSG",$J,"CLAIM",IBCLM,"D1",IBD("LINE"),46)="##RAW DATA: "_IBD
;
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBCE835A 4304 printed Sep 15, 2024@21:33:28 Page 2
IBCE835A ;ALB/ESG/PJH - 835 EDI EOB PROCESSING CONTINUED ; 7/15/10 7:02pm
+1 ;;2.0;INTEGRATED BILLING;**135,431,718**;21-MAR-94;Build 73
+2 ;;Per VHA Directive 2004-038, this routine should not be modified.
+3 QUIT
+4 ; Continue processing of IBCE835 since that routine grew too large
+5 ;
37(IBD) ; Process claim level adjustment data for Inpatient MEDICARE
+1 ; Claim must have been referenced by a previous '05' level
+2 ;
+3 ; INPUT:
+4 ; IBD must be passed by reference = entire message line
+5 ;
+6 ; OUTPUT:
+7 ; IBD("LINE") = The last line # populated in the message
+8 ; ^TMP("IBMSG",$J,"CLAIM",claim #,line #)=claim level adjustment msg
+9 ; ,"D",37,seq#)=
+10 ; ,"D1",seq#,37)=
+11 ; claim level adjust. raw data
+12 ;
+13 NEW IBCLM,IBHCT
+14 SET IBCLM=$$GETCLM^IBCE277($PIECE(IBD,U,2))
+15 ;
+16 ;;IB*2.0*718;JWS;EBILL-924;handle split MRAs in the same file received from FSC
+17 SET IBHCT=$$GETHCT^IBCE835(IBCLM)
+18 SET IBCLM=IBCLM_"#"_IBHCT
+19 ;
+20 if '$DATA(^TMP("IBMSG",$JOB,"CLAIM",IBCLM))
QUIT
+21 SET IBD("LINE")=$GET(IBD("LINE"))+1
+22 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,IBD("LINE"))=$SELECT($DATA(^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D",37)):$JUSTIFY("",34),1:"MEDICARE ADJUDICATION MESSAGE(S): ")_"("_$PIECE(IBD,U,4)_") "_$PIECE(IBD,U,5)
+23 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D",37,IBD("LINE"))="##RAW DATA: "_IBD
+24 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D1",IBD("LINE"),37)="##RAW DATA: "_IBD
+25 QUIT
+26 ;
40(IBD) ; Process service line data
+1 ;
+2 ; INPUT:
+3 ; IBD must be passed by reference = entire message line
+4 ;
+5 ; OUTPUT:
+6 ; ^TMP("IBMSG",$J,"CLAIM",claim #,"D",40,msg seq #)=
+7 ; "D1",msg seq #,40)=
+8 ; claim status raw data
+9 ; IBD("LINE") = The last line # populated in the message
+10 ;
+11 NEW IBCLM,IBHCT
+12 SET IBCLM=$$GETCLM^IBCE277($PIECE(IBD,U,2))
+13 SET IBD("LINE")=$GET(IBD("LINE"))+1
+14 ;
+15 ;;IB*2.0*718;JWS;EBILL-924;handle split MRAs in the same file received from FSC
+16 SET IBHCT=$$GETHCT^IBCE835(IBCLM)
+17 SET IBCLM=IBCLM_"#"_IBHCT
+18 ;
+19 IF '$DATA(^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D",40))
Begin DoDot:1
+20 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,IBD("LINE"))="Line level detail exists for this claim"
+21 SET IBD("LINE")=IBD("LINE")+1
End DoDot:1
+22 ;
+23 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D",40,IBD("LINE"))="##RAW DATA: "_IBD
+24 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D1",IBD("LINE"),40)="##RAW DATA: "_IBD
+25 ;
+26 QUIT
+27 ;
45(IBD) ; Process service line adjustment data
+1 ;
+2 ; INPUT:
+3 ; IBD must be passed by reference = entire message line
+4 ;
+5 ; OUTPUT:
+6 ; ^TMP("IBMSG",$J,"CLAIM",claim #,"D",45,msg seq #)=
+7 ; ^TMP("IBMSG",$J,"CLAIM",claim #,"D1",msg seq #,45)=
+8 ; claim status raw data
+9 ; IBD("LINE") = The last line # populated in the message
+10 ;
+11 NEW IBCLM,IBHCT
+12 SET IBCLM=$$GETCLM^IBCE277($PIECE(IBD,U,2))
+13 SET IBD("LINE")=$GET(IBD("LINE"))+1
+14 ;
+15 ;;IB*2.0*718;JWS;EBILL-924;handle split MRAs in the same file received from FSC
+16 SET IBHCT=$$GETHCT^IBCE835(IBCLM)
+17 SET IBCLM=IBCLM_"#"_IBHCT
+18 ;
+19 IF '$DATA(^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D",45))
Begin DoDot:1
+20 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,IBD("LINE"))="Line level adjustments exist for this claim"
+21 SET IBD("LINE")=IBD("LINE")+1
End DoDot:1
+22 ;
+23 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D",45,IBD("LINE"))="##RAW DATA: "_IBD
+24 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D1",IBD("LINE"),45)="##RAW DATA: "_IBD
+25 ;
+26 QUIT
+27 ;
46(IBD) ; Process service line adjustment data
+1 ;
+2 ; INPUT:
+3 ; IBD must be passed by reference = entire message line
+4 ;
+5 ; OUTPUT:
+6 ; ^TMP("IBMSG",$J,"CLAIM",claim #,"D",46,msg seq #)=
+7 ; ^TMP("IBMSG",$J,"CLAIM",claim #,"D1",msg seq #,46)=
+8 ; claim status raw data
+9 ; IBD("LINE") = The last line # populated in the message
+10 ;
+11 NEW IBCLM,IBHCT
+12 SET IBCLM=$$GETCLM^IBCE277($PIECE(IBD,U,2))
+13 SET IBD("LINE")=$GET(IBD("LINE"))+1
+14 ;
+15 ;;IB*2.0*718;JWS;EBILL-924;handle split MRAs in the same file received from FSC
+16 SET IBHCT=$$GETHCT^IBCE835(IBCLM)
+17 SET IBCLM=IBCLM_"#"_IBHCT
+18 ;
+19 IF '$DATA(^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D",46))
Begin DoDot:1
+20 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,IBD("LINE"))="Line level adjustments exist for this claim"
+21 SET IBD("LINE")=IBD("LINE")+1
End DoDot:1
+22 ;
+23 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D",46,IBD("LINE"))="##RAW DATA: "_IBD
+24 SET ^TMP("IBMSG",$JOB,"CLAIM",IBCLM,"D1",IBD("LINE"),46)="##RAW DATA: "_IBD
+25 ;
+26 QUIT