Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBTOSA

IBTOSA.m

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