IBOMBL ;ALB/SGD - MAS BILLING LOG ;25 MAY 88 11:42
;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
;
;MAP TO DGCROMBL
;
I '$D(DT) D DT^DICRW
DATE S %DT="AEPX",%DT("A")="Start with DATE: ",%DT(0)=-DT D ^%DT G Q:Y<0 S IBBEG=Y
DATE1 S %DT="EPX" R !,"Go to DATE: ",X:DTIME S:X=" " X=IBBEG G Q:(X="")!(X["^") D ^%DT G DATE1:Y<0 S IBEND=Y I IBEND<IBBEG W *7," ??",!,"ENDING DATE must follow BEGINNING DATE." G DATE1
I IBEND>DT W *7," ??" G DATE1
;
W !!,*7,"*** Margin width of this output is 132 ***"
;S DGPGM="BEGIN^IBOMBL",DGVAR="IBBEG^IBEND^DUZ" D ZIS^DGUTQ G Q:POP U IO
S %ZIS="QM" D ^%ZIS G:POP Q
I $D(IO("Q")) K IO("Q") D G Q
.S ZTRTN="BEGIN^IBOMBL",ZTSAVE("IB*")="",ZTDESC="IB - MAS BILLING LOG"
.D ^%ZTLOAD K ZTSK D HOME^%ZIS
U IO
;
BEGIN S Y=IBBEG X ^DD("DD") S IBHD="MAS Billing Log of Printed Bills for "_$S(IBBEG'=IBEND:"period covering ",1:"")_Y I IBBEG<IBEND S Y=IBEND X ^DD("DD") S IBHD=IBHD_" through "_Y
S (IBL,IBL1)="",$P(IBL,"=",131)="",$P(IBL1,"-",131)="",(IBNEX,IBPG)=0,X=132 X ^%ZOSF("RM") D HEAD
F I=0:0 S IBNEX=$O(^DGCR(399,IBNEX)) Q:'IBNEX I $D(^DGCR(399,IBNEX,"S")) S IBS=^DGCR(399,IBNEX,"S") D:($P(IBS,"^",12)'<(IBBEG\1))&($P(IBS,"^",12)'>(IBEND\1_.2359)) PRINT I $Y>$S($D(IOSL):(IOSL-6),1:6) D HEAD
I '$D(IBFLAG) W !!,?30,"No matches found."
Q K IB0,IBS,IBFLAG,IBPG,IBBEG,IBEND,IBHD,IBL,IBL1,IBNEX,POP,I,X,X2,Y,%DT,%
I '$D(ZTQUEUED) D ^%ZISC
Q
;
PRINT S IBFLAG=1,IB0=^DGCR(399,IBNEX,0) S DFN=$P(IB0,"^",2) D PID^VADPT6 W ! I DFN]"",$D(^DPT(DFN,0)) W $P(^DPT(DFN,0),"^",1),?30,VA("BID") K VA("BID"),VA("PID")
W ?39,$P(IB0,"^",1) I $P(IBS,"^",12)]"" S Y=$P(IBS,"^",12) X ^DD("DD") W ?50,Y
I $D(^DGCR(399,IBNEX,"U1")) S IBU1=^DGCR(399,IBNEX,"U1") I $P(IBU1,"^",1)]"" S X=$S($P(IBU1,"^",2)]"":$P(IBU1,"^",1)-$P(IBU1,"^",2),1:$P(IBU1,"^",1)),X2="2$" D COMMA^%DTC W ?64,$J(X,15)
I $P(IB0,"^",7),$D(^DGCR(399.3,$P(IB0,"^",7),0)) W ?81,$P(^(0),"^",1)
W ?102,$S($P(IB0,"^",5)']"":"UNKNOWN",$P(IB0,"^",5)<3:"INPATIENT",1:"OUTPATIENT")
I $P(IBS,"^",17)]"" S Y=$P(IBS,"^",17) X ^DD("DD") W ?116,Y
Q
HEAD S IBPG=IBPG+1 W !,@IOF,!,?94,"Date/Time Printed: " D NOW^%DTC S Y=$E(%,1,12) X ^DD("DD") W Y,!!,IBHD,?120,"Page ",IBPG,!,IBL1,!!
W "PATIENT NAME",?30,"PT ID",?38,"BILL NO.",?50,"DATE OF BILL",?67,"AMT. BILLED",?81,"BILL CATEGORY",?102,"INPT./OPT.",?116,"DATE CANCELLED",!,IBL
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBOMBL 2360 printed Dec 13, 2024@02:25:48 Page 2
IBOMBL ;ALB/SGD - MAS BILLING LOG ;25 MAY 88 11:42
+1 ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
+2 ;
+3 ;MAP TO DGCROMBL
+4 ;
+5 IF '$DATA(DT)
DO DT^DICRW
DATE SET %DT="AEPX"
SET %DT("A")="Start with DATE: "
SET %DT(0)=-DT
DO ^%DT
if Y<0
GOTO Q
SET IBBEG=Y
DATE1 SET %DT="EPX"
READ !,"Go to DATE: ",X:DTIME
if X=" "
SET X=IBBEG
if (X="")!(X["^")
GOTO Q
DO ^%DT
if Y<0
GOTO DATE1
SET IBEND=Y
IF IBEND<IBBEG
WRITE *7," ??",!,"ENDING DATE must follow BEGINNING DATE."
GOTO DATE1
+1 IF IBEND>DT
WRITE *7," ??"
GOTO DATE1
+2 ;
+3 WRITE !!,*7,"*** Margin width of this output is 132 ***"
+4 ;S DGPGM="BEGIN^IBOMBL",DGVAR="IBBEG^IBEND^DUZ" D ZIS^DGUTQ G Q:POP U IO
+5 SET %ZIS="QM"
DO ^%ZIS
if POP
GOTO Q
+6 IF $DATA(IO("Q"))
KILL IO("Q")
Begin DoDot:1
+7 SET ZTRTN="BEGIN^IBOMBL"
SET ZTSAVE("IB*")=""
SET ZTDESC="IB - MAS BILLING LOG"
+8 DO ^%ZTLOAD
KILL ZTSK
DO HOME^%ZIS
End DoDot:1
GOTO Q
+9 USE IO
+10 ;
BEGIN SET Y=IBBEG
XECUTE ^DD("DD")
SET IBHD="MAS Billing Log of Printed Bills for "_$SELECT(IBBEG'=IBEND:"period covering ",1:"")_Y
IF IBBEG<IBEND
SET Y=IBEND
XECUTE ^DD("DD")
SET IBHD=IBHD_" through "_Y
+1 SET (IBL,IBL1)=""
SET $PIECE(IBL,"=",131)=""
SET $PIECE(IBL1,"-",131)=""
SET (IBNEX,IBPG)=0
SET X=132
XECUTE ^%ZOSF("RM")
DO HEAD
+2 FOR I=0:0
SET IBNEX=$ORDER(^DGCR(399,IBNEX))
if 'IBNEX
QUIT
IF $DATA(^DGCR(399,IBNEX,"S"))
SET IBS=^DGCR(399,IBNEX,"S")
if ($PIECE(IBS,"^",12)'<(IBBEG\1))&($PIECE(IBS,"^",12)'>(IBEND\1_.2359))
DO PRINT
IF $Y>$SELECT($DATA(IOSL):(IOSL-6),1:6)
DO HEAD
+3 IF '$DATA(IBFLAG)
WRITE !!,?30,"No matches found."
Q KILL IB0,IBS,IBFLAG,IBPG,IBBEG,IBEND,IBHD,IBL,IBL1,IBNEX,POP,I,X,X2,Y,%DT,%
+1 IF '$DATA(ZTQUEUED)
DO ^%ZISC
+2 QUIT
+3 ;
PRINT SET IBFLAG=1
SET IB0=^DGCR(399,IBNEX,0)
SET DFN=$PIECE(IB0,"^",2)
DO PID^VADPT6
WRITE !
IF DFN]""
IF $DATA(^DPT(DFN,0))
WRITE $PIECE(^DPT(DFN,0),"^",1),?30,VA("BID")
KILL VA("BID"),VA("PID")
+1 WRITE ?39,$PIECE(IB0,"^",1)
IF $PIECE(IBS,"^",12)]""
SET Y=$PIECE(IBS,"^",12)
XECUTE ^DD("DD")
WRITE ?50,Y
+2 IF $DATA(^DGCR(399,IBNEX,"U1"))
SET IBU1=^DGCR(399,IBNEX,"U1")
IF $PIECE(IBU1,"^",1)]""
SET X=$SELECT($PIECE(IBU1,"^",2)]"":$PIECE(IBU1,"^",1)-$PIECE(IBU1,"^",2),1:$PIECE(IBU1,"^",1))
SET X2="2$"
DO COMMA^%DTC
WRITE ?64,$JUSTIFY(X,15)
+3 IF $PIECE(IB0,"^",7)
IF $DATA(^DGCR(399.3,$PIECE(IB0,"^",7),0))
WRITE ?81,$PIECE(^(0),"^",1)
+4 WRITE ?102,$SELECT($PIECE(IB0,"^",5)']"":"UNKNOWN",$PIECE(IB0,"^",5)<3:"INPATIENT",1:"OUTPATIENT")
+5 IF $PIECE(IBS,"^",17)]""
SET Y=$PIECE(IBS,"^",17)
XECUTE ^DD("DD")
WRITE ?116,Y
+6 QUIT
HEAD SET IBPG=IBPG+1
WRITE !,@IOF,!,?94,"Date/Time Printed: "
DO NOW^%DTC
SET Y=$EXTRACT(%,1,12)
XECUTE ^DD("DD")
WRITE Y,!!,IBHD,?120,"Page ",IBPG,!,IBL1,!!
+1 WRITE "PATIENT NAME",?30,"PT ID",?38,"BILL NO.",?50,"DATE OF BILL",?67,"AMT. BILLED",?81,"BILL CATEGORY",?102,"INPT./OPT.",?116,"DATE CANCELLED",!,IBL
+2 QUIT