IBTOSA ;ALB/AAS - CLAIMS TRACKING SCHEDULED ADMISSION REPORT ; 27-OCT-93
;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
;
% I '$D(DT) D DT^DICRW
W !!,"Scheduled Admissions Report"
;
DATE ; -- select date
W !! D DATE^IBOUTL
I IBBDT=""!(IBEDT="") G END
;
DEV ; -- select device, run option
W !!,"You will need a 132 column printer for this report!",!
S %ZIS="QM" D ^%ZIS G:POP END
I $D(IO("Q")) S ZTRTN="DQ^IBTOSA",ZTSAVE("IB*")="",ZTDESC="IB - scheduled Admissions Report" D ^%ZTLOAD K IO("Q"),ZTSK D HOME^%ZIS G END
;
U IO
S X=132 X ^%ZOSF("RM")
DQ D PRINT G END
Q
;
END ; -- Clean up
K ^TMP($J) W !
I $D(ZTQUEUED) S ZTREQ="@" Q
D ^%ZISC
K I,J,X,Y,DFN,%ZIS,VA,IBTRN,IBTRND,IBPAG,IBHDT,IBDT,IBBDT,IBEDT,IBQUIT
Q
;
PRINT ; -- print one billing report from ct
S IBPAG=0,IBHDT=$$HTE^XLFDT($H,1),IBQUIT=0
S IBTSBDT=IBBDT-.1,IBTSEDT=IBEDT+.9 D EN^IBTRKR2
K ^TMP($J)
;
D FIX
S IBDT=IBBDT-.1
F S IBDT=$O(^IBT(356,"D",IBDT)) Q:'IBDT!(IBDT>(IBEDT+.24))!(IBQUIT) S IBTRN=0 F S IBTRN=$O(^IBT(356,"D",IBDT,IBTRN)) Q:'IBTRN!(IBQUIT) D
.S IBTRND=$G(^IBT(356,IBTRN,0))
.Q:'$P(IBTRND,"^",20) ; inactive
.Q:+IBDT<IBBDT
.I $P($G(^IBE(356.6,+$P(IBTRND,"^",18),0)),"^",3)=1,$P(IBTRND,"^",7)=1,$$INSURED^IBCNS1($P(IBTRND,"^",2),IBDT),$$SCH(IBTRN) D SET
;
PR D HDR
I '$D(^TMP($J,"IBSCH")) W !!,"No Scheduled Admission found in date range",! Q
S IBNAM="",IBCNT=0
F S IBNAM=$O(^TMP($J,"IBSCH",IBNAM)) Q:IBNAM=""!(IBQUIT) S IBDT=0 F S IBDT=$O(^TMP($J,"IBSCH",IBNAM,IBDT)) Q:'IBDT!(IBQUIT) S IBTRN=0 F S IBTRN=$O(^TMP($J,"IBSCH",IBNAM,IBDT,IBTRN)) Q:'IBTRN!(IBQUIT) S IBTRND=^(IBTRN) D ONE
;
Q:IBQUIT
W !!,"------------------"
W !,"TOTAL = ",IBCNT
I $D(ZTQUEUED) G END
Q
;
ONE ; -- Print one patients data
Q:IBQUIT
I IOSL<($Y+5) D HDR Q:IBQUIT
S IBCNT=IBCNT+1
S DFN=$P(IBTRND,"^",2) D PID^VADPT
W !,$E(IBNAM,1,27),?30,VA("PID"),?45,$$DAT1^IBOUTL($P(IBTRND,"^",6),"2P")
W ?66,$S('$P(IBTRND,"^",19):"YES",1:$E("NO - "_$P($G(^IBE(356.8,+$P(IBTRND,"^",19),0)),"^"),1,27))
W ?100,$E($P($G(^DPT(DFN,.1)),"^"),1,12),?115,$E($$EXPAND^IBTRE(356,.07,$P(IBTRND,"^",7)),1,15)
Q
;
HDR ; -- Print header for billing report
Q:IBQUIT
I $E(IOST,1,2)="C-",IBPAG D PAUSE^VALM1 I $D(DIRUT) S IBQUIT=1 Q
I $E(IOST,1,2)="C-"!(IBPAG) W @IOF
S IBPAG=IBPAG+1
W !,"Scheduled Admissions with Insurance",?(IOM-33),"Page ",IBPAG," ",IBHDT
W !,"For Period beginning on ",$$DAT1^IBOUTL(IBBDT)," to ",$$DAT1^IBOUTL(IBEDT)
W !,"Patient",?30,"Pt. ID",?45,"Adm. Date",?66,"Billable",?100,"Ward",?115,"Type"
W !,$TR($J(" ",IOM)," ","-")
I $D(ZTQUEUED),$$S^%ZTLOAD S ZTSTOP=1,IBQUIT=1 W !!,"....task stop* ed at user request" Q
Q
;
SET ; -- set tmp array
I $D(ZTQUEUED),$$S^%ZTLOAD S ZTSTOP=1,IBQUIT=1 D HDR W !!,"....task stop* ed at user request" Q
S ^TMP($J,"IBSCH",$P(^DPT(+$P(IBTRND,"^",2),0),"^"),IBDT,IBTRN)=IBTRND
Q
;
SCH(IBTRN) ; -- is patient either admitted or still scheduled
;
N IBX,IBTRND S IBX=1
S IBTRND=$G(^IBT(356,+IBTRN,0))
I '$P(IBTRND,"^",32) G SCHQ
I $P(IBTRND,"^",5) G SCHQ
S X=$G(^DGS(41.1,+$P(IBTRND,"^",32),0)) I X=""!($P(X,"^",13)) D S IBX=0
.N DA,DR,DIC,DIE
.S DIE="^IBT(356,",DR=".2////0",DA=IBTRN
.D ^DIE
SCHQ Q IBX
;
FIX ; -- find bad episode dates and fix
S IBDT=DT
F S IBDT=$O(^IBT(356,"D",IBDT)) Q:'IBDT S IBTRN=0 F S IBTRN=$O(^IBT(356,"D",IBDT,IBTRN)) Q:'IBTRN D F1(IBTRN)
Q
;
F1(IBTRN) ; fix EPISODE DATE
N IBDT,DA,DR,DIC,DIE
Q:'$G(IBTRN)
Q:$G(^IBT(356,+IBTRN,0))=""
S IBDT=$P(^IBT(356,+IBTRN,0),"^",6)
I +IBDT'=IBDT,$E(IBDT,$L(IBDT))=0 S IBDT=+IBDT,DA=IBTRN,DR=".06////"_IBDT,DIE="^IBT(356," D ^DIE
Q
IBTOSA ;ALB/AAS - CLAIMS TRACKING SCHEDULED ADMISSION REPORT ; 27-OCT-93
+1 ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
+2 ;
% IF '$DATA(DT)
DO DT^DICRW
+1 WRITE !!,"Scheduled Admissions Report"
+2 ;
DATE ; -- select date
+1 WRITE !!
DO DATE^IBOUTL
+2 IF IBBDT=""!(IBEDT="")
GOTO END
+3 ;
DEV ; -- select device, run option
+1 WRITE !!,"You will need a 132 column printer for this report!",!
+2 SET %ZIS="QM"
DO ^%ZIS
IF POP
GOTO END
+3 IF $DATA(IO("Q"))
SET ZTRTN="DQ^IBTOSA"
SET ZTSAVE("IB*")=""
SET ZTDESC="IB - scheduled Admissions Report"
DO ^%ZTLOAD
KILL IO("Q"),ZTSK
DO HOME^%ZIS
GOTO END
+4 ;
+5 USE IO
+6 SET X=132
XECUTE ^%ZOSF("RM")
DQ DO PRINT
GOTO END
+1 QUIT
+2 ;
END ; -- Clean up
+1 KILL ^TMP($JOB)
WRITE !
+2 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
QUIT
+3 DO ^%ZISC
+4 KILL I,J,X,Y,DFN,%ZIS,VA,IBTRN,IBTRND,IBPAG,IBHDT,IBDT,IBBDT,IBEDT,IBQUIT
+5 QUIT
+6 ;
PRINT ; -- print one billing report from ct
+1 SET IBPAG=0
SET IBHDT=$$HTE^XLFDT($HOROLOG,1)
SET IBQUIT=0
+2 SET IBTSBDT=IBBDT-.1
SET IBTSEDT=IBEDT+.9
DO EN^IBTRKR2
+3 KILL ^TMP($JOB)
+4 ;
+5 DO FIX
+6 SET IBDT=IBBDT-.1
+7 FOR
SET IBDT=$ORDER(^IBT(356,"D",IBDT))
IF 'IBDT!(IBDT>(IBEDT+.24))!(IBQUIT)
QUIT
SET IBTRN=0
FOR
SET IBTRN=$ORDER(^IBT(356,"D",IBDT,IBTRN))
IF 'IBTRN!(IBQUIT)
QUIT
Begin DoDot:1
+8 SET IBTRND=$GET(^IBT(356,IBTRN,0))
+9 ; inactive
IF '$PIECE(IBTRND,"^",20)
QUIT
+10 IF +IBDT<IBBDT
QUIT
+11 IF $PIECE($GET(^IBE(356.6,+$PIECE(IBTRND,"^",18),0)),"^",3)=1
IF $PIECE(IBTRND,"^",7)=1
IF $$INSURED^IBCNS1($PIECE(IBTRND,"^",2),IBDT)
IF $$SCH(IBTRN)
DO SET
End DoDot:1
+12 ;
PR DO HDR
+1 IF '$DATA(^TMP($JOB,"IBSCH"))
WRITE !!,"No Scheduled Admission found in date range",!
QUIT
+2 SET IBNAM=""
SET IBCNT=0
+3 FOR
SET IBNAM=$ORDER(^TMP($JOB,"IBSCH",IBNAM))
IF IBNAM=""!(IBQUIT)
QUIT
SET IBDT=0
FOR
SET IBDT=$ORDER(^TMP($JOB,"IBSCH",IBNAM,IBDT))
IF 'IBDT!(IBQUIT)
QUIT
SET IBTRN=0
FOR
SET IBTRN=$ORDER(^TMP($JOB,"IBSCH",IBNAM,IBDT,IBTRN))
IF 'IBTRN!(IBQUIT)
QUIT
SET IBTRND=^(IBTRN)
DO ONE
+4 ;
+5 IF IBQUIT
QUIT
+6 WRITE !!,"------------------"
+7 WRITE !,"TOTAL = ",IBCNT
+8 IF $DATA(ZTQUEUED)
GOTO END
+9 QUIT
+10 ;
ONE ; -- Print one patients data
+1 IF IBQUIT
QUIT
+2 IF IOSL<($Y+5)
DO HDR
IF IBQUIT
QUIT
+3 SET IBCNT=IBCNT+1
+4 SET DFN=$PIECE(IBTRND,"^",2)
DO PID^VADPT
+5 WRITE !,$EXTRACT(IBNAM,1,27),?30,VA("PID"),?45,$$DAT1^IBOUTL($PIECE(IBTRND,"^",6),"2P")
+6 WRITE ?66,$SELECT('$PIECE(IBTRND,"^",19):"YES",1:$EXTRACT("NO - "_$PIECE($GET(^IBE(356.8,+$PIECE(IBTRND,"^",19),0)),"^"),1,27))
+7 WRITE ?100,$EXTRACT($PIECE($GET(^DPT(DFN,.1)),"^"),1,12),?115,$EXTRACT($$EXPAND^IBTRE(356,.07,$PIECE(IBTRND,"^",7)),1,15)
+8 QUIT
+9 ;
HDR ; -- Print header for billing report
+1 IF IBQUIT
QUIT
+2 IF $EXTRACT(IOST,1,2)="C-"
IF IBPAG
DO PAUSE^VALM1
IF $DATA(DIRUT)
SET IBQUIT=1
QUIT
+3 IF $EXTRACT(IOST,1,2)="C-"!(IBPAG)
WRITE @IOF
+4 SET IBPAG=IBPAG+1
+5 WRITE !,"Scheduled Admissions with Insurance",?(IOM-33),"Page ",IBPAG," ",IBHDT
+6 WRITE !,"For Period beginning on ",$$DAT1^IBOUTL(IBBDT)," to ",$$DAT1^IBOUTL(IBEDT)
+7 WRITE !,"Patient",?30,"Pt. ID",?45,"Adm. Date",?66,"Billable",?100,"Ward",?115,"Type"
+8 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-")
+9 IF $DATA(ZTQUEUED)
IF $$S^%ZTLOAD
SET ZTSTOP=1
SET IBQUIT=1
WRITE !!,"....task stop* ed at user request"
QUIT
+10 QUIT
+11 ;
SET ; -- set tmp array
+1 IF $DATA(ZTQUEUED)
IF $$S^%ZTLOAD
SET ZTSTOP=1
SET IBQUIT=1
DO HDR
WRITE !!,"....task stop* ed at user request"
QUIT
+2 SET ^TMP($JOB,"IBSCH",$PIECE(^DPT(+$PIECE(IBTRND,"^",2),0),"^"),IBDT,IBTRN)=IBTRND
+3 QUIT
+4 ;
SCH(IBTRN) ; -- is patient either admitted or still scheduled
+1 ;
+2 NEW IBX,IBTRND
SET IBX=1
+3 SET IBTRND=$GET(^IBT(356,+IBTRN,0))
+4 IF '$PIECE(IBTRND,"^",32)
GOTO SCHQ
+5 IF $PIECE(IBTRND,"^",5)
GOTO SCHQ
+6 SET X=$GET(^DGS(41.1,+$PIECE(IBTRND,"^",32),0))
IF X=""!($PIECE(X,"^",13))
Begin DoDot:1
+7 NEW DA,DR,DIC,DIE
+8 SET DIE="^IBT(356,"
SET DR=".2////0"
SET DA=IBTRN
+9 DO ^DIE
End DoDot:1
SET IBX=0
SCHQ QUIT IBX
+1 ;
FIX ; -- find bad episode dates and fix
+1 SET IBDT=DT
+2 FOR
SET IBDT=$ORDER(^IBT(356,"D",IBDT))
IF 'IBDT
QUIT
SET IBTRN=0
FOR
SET IBTRN=$ORDER(^IBT(356,"D",IBDT,IBTRN))
IF 'IBTRN
QUIT
DO F1(IBTRN)
+3 QUIT
+4 ;
F1(IBTRN) ; fix EPISODE DATE
+1 NEW IBDT,DA,DR,DIC,DIE
+2 IF '$GET(IBTRN)
QUIT
+3 IF $GET(^IBT(356,+IBTRN,0))=""
QUIT
+4 SET IBDT=$PIECE(^IBT(356,+IBTRN,0),"^",6)
+5 IF +IBDT'=IBDT
IF $EXTRACT(IBDT,$LENGTH(IBDT))=0
SET IBDT=+IBDT
SET DA=IBTRN
SET DR=".06////"_IBDT
SET DIE="^IBT(356,"
DO ^DIE
+6 QUIT