- IBCICMSP ;DSI/JSR - ClaimsManager STATUS REPORT ;6-APR-2001
- ;;2.0;INTEGRATED BILLING;**161**;21-MAR-94
- ;;Per VHA Directive 10-93-142, this routine should not be modified.
- ;; ** Program Description **
- ; This routine has only 1 entry point EN.
- ; This routine is invoked when ^IBCICMS is run from the menu option.
- ; ^IBCICMS is and extraction routine which collects claims which
- ; the user defined report extracted for reporting purposes.
- ; This routine ^IBCICMSP is the print routine which permits the
- ; user to print the report to the screen or to queue as a background
- ; job which can be stopped at any time using TaskManager.
- ; Variables
- ; IBCIPXT = (0 or 1) halts job if report is stopped.
- ; SORT1 = will always be a 1
- ; SORT2 = will always be a 1
- ; SORT3 = "1" or the Assigned to person name
- ; SORT4 = a space concatenated with whatever data the user is
- ; sorting by (terminal digit, Insurance company name,
- ; patient last name, negative charge amount, or bill#.
- ; SORT5 = 1 will always be a 1
- ; MAXCNT = Kernel determines the Max Lines per Page for each device
- ; CRT = Determines if output is sent to screen.
- ; RPTTYP = Identifies type of report being compiled.
- EN ; this is the only entry point
- N ASSIGN,AUDIT,COMMEN,CRT,DATE,EFLAG,ERRSEQ,GROUPBY,I,IBCI1,IBCI10
- N IBCI2,IBCI3,IBCI4,IBCI5,IBCI6,IBCI7,IBCI8,IBCI9,IBCIARR
- N IBCIBEG,IBCIDATA,IBCIDT,IBCIEND,IBCIPGCT,IBCIARR,IBCIEMN
- N IBCIRUN,IBCISEQ,IBCITXT,IBCIX,IBIFN,MAXCNT,PREV
- N IBCIPXT,RPTTYP,SORT1,SORT2,SORT3,SORT4,SORT5,Y,Z,X,STOP,NAME
- S ASSIGN=RPTSPECS("ASNSORT") ; PRIMARY SORT BY ASSIGN TO PERSON 1 YES 0 NO
- S COMMEN=RPTSPECS("IBCICOMM") ; FLAG PRINT COMMENT 1 YES 0 NO
- S GROUPBY=RPTSPECS("SORTBY") ;TYPE 2=INS LOGIC DIFF SORT4
- S IBCIBEG=RPTSPECS("BEGDATE")
- S DATE=RPTSPECS("DATYP")
- S IBCIEND=RPTSPECS("ENDDATE")
- S (IBCIPXT,IBCIPGCT)=0 ; flags quit and header
- S Z=($P($G(^IBA(351.91,0)),U,4))
- F I=1:1:Z S (IBCIARR(I))=$P($G(^IBA(351.91,I,0)),U,2) ; CM status
- S RPTTYP(1)="Terminal Digit"
- S RPTTYP(2)="Insurance Company"
- S RPTTYP(3)="Patient Last Name"
- S RPTTYP(4)="Dollar Impact"
- S RPTTYP(5)="Bill Number" ; jsr 6/12/01
- ;
- I IOST["C" S MAXCNT=IOSL-4,CRT=1
- E S MAXCNT=IOSL-6,CRT=0
- I RPTSPECS("TYPE")="D" D PRINT ;Detailed report ;DSI/DJW 3/21/02
- D PRINT2
- I CRT,IBCIPGCT>0,'$D(ZTQUEUED),IBCIPXT=0 S DIR(0)="E" D ^DIR K DIR I $D(DTOUT)!($D(DUOUT)) S IBCIPXT=1 Q
- I $D(ZTQUEUED),$$S^%ZTLOAD() S ZTSTOP=1 Q
- G XIT
- Q
- PRINT ; prints data extracted
- I '$D(^TMP($J,IBCIRTN)) D HEADER W ?35,"N O D A T A F O U N D",!!
- S SORT1="" F S SORT1=$O(^TMP($J,IBCIRTN,SORT1)) Q:SORT1=""!(IBCIPXT=1)!($G(ZTSTOP)) D
- . S SORT2="" F S SORT2=$O(^TMP($J,IBCIRTN,SORT1,SORT2)) Q:SORT2=""!(IBCIPXT=1)!($G(ZTSTOP)) D
- . . S SORT3="" F S SORT3=$O(^TMP($J,IBCIRTN,SORT1,SORT2,SORT3)) Q:SORT3=""!(IBCIPXT=1)!($G(ZTSTOP)) D
- . . . I ASSIGN D HEADER
- . . . S SORT4="" F S SORT4=$O(^TMP($J,IBCIRTN,SORT1,SORT2,SORT3,SORT4)) Q:SORT4=""!(IBCIPXT=1)!($G(ZTSTOP)) D
- . . . . S PREV=SORT4
- . . . . I GROUPBY=2,IBCIPXT=0,IBCIPGCT>0 D HEAD2
- . . . . S SORT5="" F S SORT5=$O(^TMP($J,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5)) Q:SORT5=""!(IBCIPXT=1)!($G(ZTSTOP)) D
- . . . . . S NAME="" F S NAME=$O(^TMP($J,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5,NAME)) Q:NAME=""!(IBCIPXT=1)!($G(ZTSTOP)) D
- . . . . . . S IBIFN="" F S IBIFN=$O(^TMP($J,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5,NAME,IBIFN)) Q:IBIFN=""!(IBCIPXT=1)!($G(ZTSTOP)) D
- . . . . . . . D DATA
- . . . . . . . D LINE
- . . . . . . . I COMMEN D COMM
- ; Exit from the PRINT procedure
- Q
- ;
- PRINT2 ; Print the totals by CM status at the end of the report
- ; esg - 5/22/01
- ;
- I RPTSPECS("TYPE")="D" G PR2 ; detailed report
- D HEADER
- I '$D(^TMP($J,IBCIRTN)) W ?35,"N O D A T A F O U N D",!! G PRX
- PR2 ;
- I $D(IBCISCNT),'$G(IBCIPXT),'$G(ZTSTOP) D TOTALS
- ;
- PRX ; Exit from the PRINT2 procedure
- Q
- ;
- ;
- I CRT,IBCIPGCT>0,'$D(ZTQUEUED),IBCIPXT=0 S DIR(0)="E" D ^DIR K DIR I $D(DTOUT)!($D(DUOUT)) S IBCIPXT=1 Q
- I $D(ZTQUEUED),$$S^%ZTLOAD() S ZTSTOP=1 Q
- S IBCIPGCT=IBCIPGCT+1
- W @IOF,!,"ClaimsManager Status Report sort by "_RPTTYP(GROUPBY)_" for "
- W $E(IBCIBEG,4,5)_"/"_$E(IBCIBEG,6,7)_"/"_$E(IBCIBEG,2,3)_" thru "_$E(IBCIEND,4,5)_"/"_$E(IBCIEND,6,7)_"/"_$E(IBCIEND,2,3)
- W ?100,"Page :"_IBCIPGCT,!
- I RPTSPECS("TYPE")="S" W "Summary Report"
- E W "Detailed Report"
- S Y=$$NOW^XLFDT X ^DD("DD") S IBCIRUN=Y
- W ?100,"Run Date: "_IBCIRUN,!!
- ;
- ; skip the column headings for the summary report
- I RPTSPECS("TYPE")="S" G HEADERX
- ;
- I DATE=1 W ?8,"BILL NO.",?18,"PATIENT NAME",?44,"PID",?50," EVENT",?60,"BILLER",?68,"CODER",?76,"ASSIGN",?84,"ERROR CODES",?102,"TYPE",?108,"CHARGES",?116,"CM STATUS"
- E W ?8,"BILL NO.",?18,"PATIENT NAME",?44,"PID",?50," ENTER",?60,"BILLER",?68,"CODER",?76,"ASSIGN",?84,"ERROR CODES",?102,"TYPE",?108,"CHARGES",?116,"CM STATUS"
- N X S $P(X,"=",130)="" W !,X,!
- Q
- ;
- HEAD2 ; only printed when insurance is a selected sort
- Q:GROUPBY'=2
- Q:IBCIPXT=1
- I $Y+4>MAXCNT,IBCIPXT=0 D HEADER
- I $Y=6,IBCIPXT=0 W ?2,"INSURANCE: "_SORT4,!
- E W:IBCIPXT=0 !,?2,"INSURANCE: "_SORT4,!
- Q
- DATA ; formats line item data - note claims with same edit error mnemonic
- ; may print mulitple times if the HFCA line item is an unique line
- ; with the same error type. The report prints the error mnemonic and
- ; the HCFA line # as it relates to IB.
- S IBCIDATA=^TMP($J,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5,NAME,IBIFN)
- S IBCI1=$P(IBCIDATA,U,1) ; [1] External Bill#
- S IBCI2=$P(IBCIDATA,U,2) ; [2] Patient SSN
- S IBCI3=$P(IBCIDATA,U,3) ; ck logic [3] EventDate or Bill
- S IBCIDT=$E(IBCI3,4,5)_"/"_$E(IBCI3,6,7)_"/"_$E(IBCI3,2,3)
- S IBCI4=$P(IBCIDATA,U,4) ; [4] Biller name
- S IBCI5=$P(IBCIDATA,U,5) ; [5] Coder name
- S IBCI6=$P(IBCIDATA,U,6) ; [6] Assigned to person name
- S IBCI7=$P(IBCIDATA,U,7) ;[7] inpatient/outpatient flag
- S IBCI8=$P(IBCIDATA,U,8) ;[8] Charges
- S IBCI9=$P(IBCIDATA,U,9) ;[9] ien of current ClaimsManager
- S IBCI10=$P(IBCIDATA,U,10) ;[10] String of error code mne
- S IBCIX=(IBCIARR(IBCI9))
- Q
- COMM ; print CM user comments these comments are keyed by the user
- I '$D(^IBA(351.9,IBIFN,2,0)) W ! Q ; JSR 6/13/01 line feed correction
- I $Y+2>MAXCNT,IBCIPXT=0 D HEADER
- Q:IBCIPXT=1
- W ?10,$$CMTINFO^IBCIUT5(IBIFN),!
- S IBCISEQ=0 F S IBCISEQ=$O(^IBA(351.9,IBIFN,2,IBCISEQ)) Q:'IBCISEQ!(IBCIPXT=1) D
- . S IBCITXT=$G(^IBA(351.9,IBIFN,2,IBCISEQ,0))
- . I $Y+1>MAXCNT,IBCIPXT=0 D HEADER
- . Q:IBCIPXT=1
- . W ?28,IBCITXT,!
- W !
- Q
- LINE ; print report detail line
- Q:IBCIPXT=1
- I $Y+1>MAXCNT,IBCIPXT=0 D HEADER
- I IBCIPGCT=0,IBCIPXT=0 D HEADER D HEAD2
- Q:IBCIPXT=1
- W ?8,IBCI1,?19,$E(NAME,1,23),?44,$E(IBCI2,6,9),?50,IBCIDT
- W ?60,$E(IBCI4,1,6),?68,$E(IBCI5,1,6),?76,$E(IBCI6,1,6),?84,IBCI10
- W ?102,IBCI7,?108,$J($FN(IBCI8,",",0),6),?116,IBCIX,!
- Q
- XIT ; one exit point
- Q
- ;
- ;
- TOTALS ; Print totals - esg - 5/22/01
- NEW CMDESC,CMSTS
- I $Y+5>MAXCNT D HEADER Q:IBCIPXT!$G(ZTSTOP)
- W !!?32,"ClaimsManager Bill Totals by ClaimsManager Status",!
- S CMDESC=""
- F S CMDESC=$O(^IBA(351.91,"B",CMDESC)) Q:CMDESC="" D Q:IBCIPXT!$G(ZTSTOP)
- . S CMSTS=0
- . F S CMSTS=$O(^IBA(351.91,"B",CMDESC,CMSTS)) Q:'CMSTS D Q:IBCIPXT!$G(ZTSTOP)
- .. I '$D(IBCISCNT(1,CMSTS)) Q ; no bill with this status on report
- .. I $Y+3>MAXCNT D HEADER Q:IBCIPXT!$G(ZTSTOP)
- .. W !?22,$P(^IBA(351.91,CMSTS,0),U,1),?63,$J(IBCISCNT(1,CMSTS),6)
- .. W ?76,$J("$"_$FN(IBCISCNT(2,CMSTS),",",0),12)
- .. Q
- . Q
- Q:IBCIPXT!$G(ZTSTOP)
- I $Y+4>MAXCNT D HEADER Q:IBCIPXT!$G(ZTSTOP)
- W !?62,"-------",?75,"-------------"
- W !?22,"GRAND TOTAL",?63,$J(IBCISCNT(1),6)
- W ?76,$J("$"_$FN(IBCISCNT(2),",",0),12)
- Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBCICMSP 7875 printed Jan 18, 2025@03:14:28 Page 2
- IBCICMSP ;DSI/JSR - ClaimsManager STATUS REPORT ;6-APR-2001
- +1 ;;2.0;INTEGRATED BILLING;**161**;21-MAR-94
- +2 ;;Per VHA Directive 10-93-142, this routine should not be modified.
- +3 ;; ** Program Description **
- +4 ; This routine has only 1 entry point EN.
- +5 ; This routine is invoked when ^IBCICMS is run from the menu option.
- +6 ; ^IBCICMS is and extraction routine which collects claims which
- +7 ; the user defined report extracted for reporting purposes.
- +8 ; This routine ^IBCICMSP is the print routine which permits the
- +9 ; user to print the report to the screen or to queue as a background
- +10 ; job which can be stopped at any time using TaskManager.
- +11 ; Variables
- +12 ; IBCIPXT = (0 or 1) halts job if report is stopped.
- +13 ; SORT1 = will always be a 1
- +14 ; SORT2 = will always be a 1
- +15 ; SORT3 = "1" or the Assigned to person name
- +16 ; SORT4 = a space concatenated with whatever data the user is
- +17 ; sorting by (terminal digit, Insurance company name,
- +18 ; patient last name, negative charge amount, or bill#.
- +19 ; SORT5 = 1 will always be a 1
- +20 ; MAXCNT = Kernel determines the Max Lines per Page for each device
- +21 ; CRT = Determines if output is sent to screen.
- +22 ; RPTTYP = Identifies type of report being compiled.
- EN ; this is the only entry point
- +1 NEW ASSIGN,AUDIT,COMMEN,CRT,DATE,EFLAG,ERRSEQ,GROUPBY,I,IBCI1,IBCI10
- +2 NEW IBCI2,IBCI3,IBCI4,IBCI5,IBCI6,IBCI7,IBCI8,IBCI9,IBCIARR
- +3 NEW IBCIBEG,IBCIDATA,IBCIDT,IBCIEND,IBCIPGCT,IBCIARR,IBCIEMN
- +4 NEW IBCIRUN,IBCISEQ,IBCITXT,IBCIX,IBIFN,MAXCNT,PREV
- +5 NEW IBCIPXT,RPTTYP,SORT1,SORT2,SORT3,SORT4,SORT5,Y,Z,X,STOP,NAME
- +6 ; PRIMARY SORT BY ASSIGN TO PERSON 1 YES 0 NO
- SET ASSIGN=RPTSPECS("ASNSORT")
- +7 ; FLAG PRINT COMMENT 1 YES 0 NO
- SET COMMEN=RPTSPECS("IBCICOMM")
- +8 ;TYPE 2=INS LOGIC DIFF SORT4
- SET GROUPBY=RPTSPECS("SORTBY")
- +9 SET IBCIBEG=RPTSPECS("BEGDATE")
- +10 SET DATE=RPTSPECS("DATYP")
- +11 SET IBCIEND=RPTSPECS("ENDDATE")
- +12 ; flags quit and header
- SET (IBCIPXT,IBCIPGCT)=0
- +13 SET Z=($PIECE($GET(^IBA(351.91,0)),U,4))
- +14 ; CM status
- FOR I=1:1:Z
- SET (IBCIARR(I))=$PIECE($GET(^IBA(351.91,I,0)),U,2)
- +15 SET RPTTYP(1)="Terminal Digit"
- +16 SET RPTTYP(2)="Insurance Company"
- +17 SET RPTTYP(3)="Patient Last Name"
- +18 SET RPTTYP(4)="Dollar Impact"
- +19 ; jsr 6/12/01
- SET RPTTYP(5)="Bill Number"
- +20 ;
- +21 IF IOST["C"
- SET MAXCNT=IOSL-4
- SET CRT=1
- +22 IF '$TEST
- SET MAXCNT=IOSL-6
- SET CRT=0
- +23 ;Detailed report ;DSI/DJW 3/21/02
- IF RPTSPECS("TYPE")="D"
- DO PRINT
- +24 DO PRINT2
- +25 IF CRT
- IF IBCIPGCT>0
- IF '$DATA(ZTQUEUED)
- IF IBCIPXT=0
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- IF $DATA(DTOUT)!($DATA(DUOUT))
- SET IBCIPXT=1
- QUIT
- +26 IF $DATA(ZTQUEUED)
- IF $$S^%ZTLOAD()
- SET ZTSTOP=1
- QUIT
- +27 GOTO XIT
- +28 QUIT
- PRINT ; prints data extracted
- +1 IF '$DATA(^TMP($JOB,IBCIRTN))
- DO HEADER
- WRITE ?35,"N O D A T A F O U N D",!!
- +2 SET SORT1=""
- FOR
- SET SORT1=$ORDER(^TMP($JOB,IBCIRTN,SORT1))
- if SORT1=""!(IBCIPXT=1)!($GET(ZTSTOP))
- QUIT
- Begin DoDot:1
- +3 SET SORT2=""
- FOR
- SET SORT2=$ORDER(^TMP($JOB,IBCIRTN,SORT1,SORT2))
- if SORT2=""!(IBCIPXT=1)!($GET(ZTSTOP))
- QUIT
- Begin DoDot:2
- +4 SET SORT3=""
- FOR
- SET SORT3=$ORDER(^TMP($JOB,IBCIRTN,SORT1,SORT2,SORT3))
- if SORT3=""!(IBCIPXT=1)!($GET(ZTSTOP))
- QUIT
- Begin DoDot:3
- +5 IF ASSIGN
- DO HEADER
- +6 SET SORT4=""
- FOR
- SET SORT4=$ORDER(^TMP($JOB,IBCIRTN,SORT1,SORT2,SORT3,SORT4))
- if SORT4=""!(IBCIPXT=1)!($GET(ZTSTOP))
- QUIT
- Begin DoDot:4
- +7 SET PREV=SORT4
- +8 IF GROUPBY=2
- IF IBCIPXT=0
- IF IBCIPGCT>0
- DO HEAD2
- +9 SET SORT5=""
- FOR
- SET SORT5=$ORDER(^TMP($JOB,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5))
- if SORT5=""!(IBCIPXT=1)!($GET(ZTSTOP))
- QUIT
- Begin DoDot:5
- +10 SET NAME=""
- FOR
- SET NAME=$ORDER(^TMP($JOB,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5,NAME))
- if NAME=""!(IBCIPXT=1)!($GET(ZTSTOP))
- QUIT
- Begin DoDot:6
- +11 SET IBIFN=""
- FOR
- SET IBIFN=$ORDER(^TMP($JOB,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5,NAME,IBIFN))
- if IBIFN=""!(IBCIPXT=1)!($GET(ZTSTOP))
- QUIT
- Begin DoDot:7
- +12 DO DATA
- +13 DO LINE
- +14 IF COMMEN
- DO COMM
- End DoDot:7
- End DoDot:6
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +15 ; Exit from the PRINT procedure
- +16 QUIT
- +17 ;
- PRINT2 ; Print the totals by CM status at the end of the report
- +1 ; esg - 5/22/01
- +2 ;
- +3 ; detailed report
- IF RPTSPECS("TYPE")="D"
- GOTO PR2
- +4 DO HEADER
- +5 IF '$DATA(^TMP($JOB,IBCIRTN))
- WRITE ?35,"N O D A T A F O U N D",!!
- GOTO PRX
- PR2 ;
- +1 IF $DATA(IBCISCNT)
- IF '$GET(IBCIPXT)
- IF '$GET(ZTSTOP)
- DO TOTALS
- +2 ;
- PRX ; Exit from the PRINT2 procedure
- +1 QUIT
- +2 ;
- +3 ;
- +1 IF CRT
- IF IBCIPGCT>0
- IF '$DATA(ZTQUEUED)
- IF IBCIPXT=0
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- IF $DATA(DTOUT)!($DATA(DUOUT))
- SET IBCIPXT=1
- QUIT
- +2 IF $DATA(ZTQUEUED)
- IF $$S^%ZTLOAD()
- SET ZTSTOP=1
- QUIT
- +3 SET IBCIPGCT=IBCIPGCT+1
- +4 WRITE @IOF,!,"ClaimsManager Status Report sort by "_RPTTYP(GROUPBY)_" for "
- +5 WRITE $EXTRACT(IBCIBEG,4,5)_"/"_$EXTRACT(IBCIBEG,6,7)_"/"_$EXTRACT(IBCIBEG,2,3)_" thru "_$EXTRACT(IBCIEND,4,5)_"/"_$EXTRACT(IBCIEND,6,7)_"/"_$EXTRACT(IBCIEND,2,3)
- +6 WRITE ?100,"Page :"_IBCIPGCT,!
- +7 IF RPTSPECS("TYPE")="S"
- WRITE "Summary Report"
- +8 IF '$TEST
- WRITE "Detailed Report"
- +9 SET Y=$$NOW^XLFDT
- XECUTE ^DD("DD")
- SET IBCIRUN=Y
- +10 WRITE ?100,"Run Date: "_IBCIRUN,!!
- +11 ;
- +12 ; skip the column headings for the summary report
- +13 IF RPTSPECS("TYPE")="S"
- GOTO HEADERX
- +14 ;
- +15 IF DATE=1
- WRITE ?8,"BILL NO.",?18,"PATIENT NAME",?44,"PID",?50," EVENT",?60,"BILLER",?68,"CODER",?76,"ASSIGN",?84,"ERROR CODES",?102,"TYPE",?108,"CHARGES",?116,"CM STATUS"
- +16 IF '$TEST
- WRITE ?8,"BILL NO.",?18,"PATIENT NAME",?44,"PID",?50," ENTER",?60,"BILLER",?68,"CODER",?76,"ASSIGN",?84,"ERROR CODES",?102,"TYPE",?108,"CHARGES",?116,"CM STATUS"
- +17 NEW X
- SET $PIECE(X,"=",130)=""
- WRITE !,X,!
- +1 QUIT
- +2 ;
- HEAD2 ; only printed when insurance is a selected sort
- +1 if GROUPBY'=2
- QUIT
- +2 if IBCIPXT=1
- QUIT
- +3 IF $Y+4>MAXCNT
- IF IBCIPXT=0
- DO HEADER
- +4 IF $Y=6
- IF IBCIPXT=0
- WRITE ?2,"INSURANCE: "_SORT4,!
- +5 IF '$TEST
- if IBCIPXT=0
- WRITE !,?2,"INSURANCE: "_SORT4,!
- +6 QUIT
- DATA ; formats line item data - note claims with same edit error mnemonic
- +1 ; may print mulitple times if the HFCA line item is an unique line
- +2 ; with the same error type. The report prints the error mnemonic and
- +3 ; the HCFA line # as it relates to IB.
- +4 SET IBCIDATA=^TMP($JOB,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5,NAME,IBIFN)
- +5 ; [1] External Bill#
- SET IBCI1=$PIECE(IBCIDATA,U,1)
- +6 ; [2] Patient SSN
- SET IBCI2=$PIECE(IBCIDATA,U,2)
- +7 ; ck logic [3] EventDate or Bill
- SET IBCI3=$PIECE(IBCIDATA,U,3)
- +8 SET IBCIDT=$EXTRACT(IBCI3,4,5)_"/"_$EXTRACT(IBCI3,6,7)_"/"_$EXTRACT(IBCI3,2,3)
- +9 ; [4] Biller name
- SET IBCI4=$PIECE(IBCIDATA,U,4)
- +10 ; [5] Coder name
- SET IBCI5=$PIECE(IBCIDATA,U,5)
- +11 ; [6] Assigned to person name
- SET IBCI6=$PIECE(IBCIDATA,U,6)
- +12 ;[7] inpatient/outpatient flag
- SET IBCI7=$PIECE(IBCIDATA,U,7)
- +13 ;[8] Charges
- SET IBCI8=$PIECE(IBCIDATA,U,8)
- +14 ;[9] ien of current ClaimsManager
- SET IBCI9=$PIECE(IBCIDATA,U,9)
- +15 ;[10] String of error code mne
- SET IBCI10=$PIECE(IBCIDATA,U,10)
- +16 SET IBCIX=(IBCIARR(IBCI9))
- +17 QUIT
- COMM ; print CM user comments these comments are keyed by the user
- +1 ; JSR 6/13/01 line feed correction
- IF '$DATA(^IBA(351.9,IBIFN,2,0))
- WRITE !
- QUIT
- +2 IF $Y+2>MAXCNT
- IF IBCIPXT=0
- DO HEADER
- +3 if IBCIPXT=1
- QUIT
- +4 WRITE ?10,$$CMTINFO^IBCIUT5(IBIFN),!
- +5 SET IBCISEQ=0
- FOR
- SET IBCISEQ=$ORDER(^IBA(351.9,IBIFN,2,IBCISEQ))
- if 'IBCISEQ!(IBCIPXT=1)
- QUIT
- Begin DoDot:1
- +6 SET IBCITXT=$GET(^IBA(351.9,IBIFN,2,IBCISEQ,0))
- +7 IF $Y+1>MAXCNT
- IF IBCIPXT=0
- DO HEADER
- +8 if IBCIPXT=1
- QUIT
- +9 WRITE ?28,IBCITXT,!
- End DoDot:1
- +10 WRITE !
- +11 QUIT
- LINE ; print report detail line
- +1 if IBCIPXT=1
- QUIT
- +2 IF $Y+1>MAXCNT
- IF IBCIPXT=0
- DO HEADER
- +3 IF IBCIPGCT=0
- IF IBCIPXT=0
- DO HEADER
- DO HEAD2
- +4 if IBCIPXT=1
- QUIT
- +5 WRITE ?8,IBCI1,?19,$EXTRACT(NAME,1,23),?44,$EXTRACT(IBCI2,6,9),?50,IBCIDT
- +6 WRITE ?60,$EXTRACT(IBCI4,1,6),?68,$EXTRACT(IBCI5,1,6),?76,$EXTRACT(IBCI6,1,6),?84,IBCI10
- +7 WRITE ?102,IBCI7,?108,$JUSTIFY($FNUMBER(IBCI8,",",0),6),?116,IBCIX,!
- +8 QUIT
- XIT ; one exit point
- +1 QUIT
- +2 ;
- +3 ;
- TOTALS ; Print totals - esg - 5/22/01
- +1 NEW CMDESC,CMSTS
- +2 IF $Y+5>MAXCNT
- DO HEADER
- if IBCIPXT!$GET(ZTSTOP)
- QUIT
- +3 WRITE !!?32,"ClaimsManager Bill Totals by ClaimsManager Status",!
- +4 SET CMDESC=""
- +5 FOR
- SET CMDESC=$ORDER(^IBA(351.91,"B",CMDESC))
- if CMDESC=""
- QUIT
- Begin DoDot:1
- +6 SET CMSTS=0
- +7 FOR
- SET CMSTS=$ORDER(^IBA(351.91,"B",CMDESC,CMSTS))
- if 'CMSTS
- QUIT
- Begin DoDot:2
- +8 ; no bill with this status on report
- IF '$DATA(IBCISCNT(1,CMSTS))
- QUIT
- +9 IF $Y+3>MAXCNT
- DO HEADER
- if IBCIPXT!$GET(ZTSTOP)
- QUIT
- +10 WRITE !?22,$PIECE(^IBA(351.91,CMSTS,0),U,1),?63,$JUSTIFY(IBCISCNT(1,CMSTS),6)
- +11 WRITE ?76,$JUSTIFY("$"_$FNUMBER(IBCISCNT(2,CMSTS),",",0),12)
- +12 QUIT
- End DoDot:2
- if IBCIPXT!$GET(ZTSTOP)
- QUIT
- +13 QUIT
- End DoDot:1
- if IBCIPXT!$GET(ZTSTOP)
- QUIT
- +14 if IBCIPXT!$GET(ZTSTOP)
- QUIT
- +15 IF $Y+4>MAXCNT
- DO HEADER
- if IBCIPXT!$GET(ZTSTOP)
- QUIT
- +16 WRITE !?62,"-------",?75,"-------------"
- +17 WRITE !?22,"GRAND TOTAL",?63,$JUSTIFY(IBCISCNT(1),6)
- +18 WRITE ?76,$JUSTIFY("$"_$FNUMBER(IBCISCNT(2),",",0),12)
- +19 QUIT
- +20 ;