- SDSCRP2 ;ALB/JAM/RBS - Recovered Costs Report for ASCD ; 3/13/07 2:50pm
- ;;5.3;Scheduling;**495,1015**;Aug 13, 1993;Build 21
- ;;MODIFIED FOR NATIONAL RELEASE from a Class III software product
- ;;known as Service Connected Automated Monitoring (SCAM).
- ;
- ;**Program Description**
- ; This program will report on all bills generated and amounts
- ; received for encounters whose Service Connected was changed
- ; from 'Yes' to 'No'.
- Q
- EN ; Entry point - find all records
- ; Get Division
- N SDSCDVSL,SDSCDVLN,SDRUN,ZTDESC,ZTRTN,ZTIO,ZTSAVE,DIR,X,Y
- D DIV^SDSCUTL
- D ^DIR
- I $G(DTOUT)!($G(DUOUT)) G EXIT
- S SDSCDVSL=Y,SDSCDVLN=SCLN K DIR,Y,X,SCLN
- S SDRUN=$$HTE^XLFDT($H,1),ZTDESC="RECOVERED COSTS REPORT",ZTRTN="BEG^SDSCRP2"
- ; Get start and end date for report.
- D GETDATE^SDSCOMP I SDSCTDT="" G EXIT
- W !!,"You will need a 132 column printer for this report!",!
- K %ZIS S %ZIS="QM" D ^%ZIS G EXIT:POP
- I '$D(IO("Q")) K ZTDESC G @ZTRTN
- S ZTIO=ION,ZTSAVE("*")=""
- D ^%ZTLOAD
- G EXIT
- ;
- BEG ; Begin report
- N P,L,SDABRT,CT,SDSCDIV,SDSCDNM,THDR,SDI,DFTOTB,DFTOTP,DTTOTB,DTTOTP
- S (P,L,SDABRT,CT)=0
- S SDSCDIV=$S(SDSCDVSL'[SDSCDVLN:SDSCDVSL,1:"")
- I SDSCDIV="" S SDSCDNM="ALL" D FND G EXT
- I SDSCDIV'="" D
- . S THDR=""
- . F SDI=1:1:$L(SDSCDVSL,",") S SDSCDIV=$P(SDSCDVSL,",",SDI) Q:SDSCDIV="" D Q:$G(SDABRT)=1
- .. S SDSCDNM=$P(^DG(40.8,SDSCDIV,0),"^",1),THDR=THDR_SDSCDNM_",",CT=CT+1 D FND
- G EXT
- ;
- FND ; Find records
- N SDATA,SDOEDT,SDOE,DFN,ENCDT,SDCLM,GTOTB,GTOTP,FTOTB,FTOTP,TTOTB,TTOTP
- N BILN,TCHRG,TPAY,AUTHDT,SDWHO,PYMDT,ENCDT,SDSCD,SDPAT,VADM,SCVAL,SDBTR
- K ^TMP($J,"SDSCBILL")
- S SDOEDT=SDSCTDT
- F S SDOEDT=$O(^SDSC(409.48,"C","C",SDOEDT)) Q:SDOEDT=""!(SDOEDT\1>SDEDT) D
- . S SDOE=0
- . F S SDOE=$O(^SDSC(409.48,"C","C",SDOEDT,SDOE)) Q:'SDOE D
- .. S SDATA=$G(^SDSC(409.48,SDOE,0)) I SDATA="" Q
- .. I $P(SDATA,U,5)'="C" Q
- .. I SDSCDIV'="" Q:$P(SDATA,U,12)'=SDSCDIV
- .. I '+$$GETOE^SDOE(SDOE) Q
- .. ;find only encounters that were changed by ASCD from SC to NSC
- .. S SCVAL=$$SCHNG^SDSCUTL(SDOE) I '+SCVAL Q
- .. I $P(SCVAL,U,3) Q
- .. D FPCK
- .. D TPCK
- PRT ;
- U IO D HDR I $G(SDABRT)=1 Q
- S (GTOTB,GTOTP,FTOTB,FTOTP,TTOTB,TTOTP)=0
- I SDSCDIV'="" S DFTOTB(SDSCDNM)=0,DFTOTP(SDSCDNM)=0,DTTOTB(SDSCDNM)=0,DTTOTP(SDSCDNM)=0
- S SDOE=""
- F S SDOE=$O(^TMP($J,"SDSCBILL","COPAY",SDOE)) Q:SDOE="" D Q:$G(SDABRT)=1
- . S BILN=""
- . F S BILN=$O(^TMP($J,"SDSCBILL","COPAY",SDOE,BILN)) Q:BILN="" D Q:$G(SDABRT)=1
- .. S SDBTR=^TMP($J,"SDSCBILL","COPAY",SDOE,BILN)
- .. S TCHRG=$P(SDBTR,U,5)
- .. S TPAY=$P(SDBTR,U,3)
- .. S AUTHDT=$P(SDBTR,U,2)\1
- .. S SDWHO=$$SVCC(SDOE)
- .. S PYMDT=$P(SDBTR,U,4)
- .. S SDSCD=$G(^SDSC(409.48,SDOE,0))
- .. S ENCDT=$P(SDSCD,U,7)\1
- .. S DFN=$P(SDSCD,U,11)
- .. D DEM^VADPT S SDPAT=$E(VADM(1),1,25)_" ("_$E($P(VADM(2),U),6,9)_")"
- .. S GTOTB=GTOTB+TCHRG,GTOTP=GTOTP+TPAY,FTOTB=FTOTB+TCHRG,FTOTP=FTOTP+TPAY
- .. S DFTOTB(SDSCDNM)=$G(DFTOTB(SDSCDNM))+TCHRG,DFTOTP(SDSCDNM)=$G(DFTOTP(SDSCDNM))+TPAY
- .. I L+3>IOSL D HDR Q:$G(SDABRT)=1
- .. W !,SDOE,?10,SDPAT,?45,$$FMTE^XLFDT(ENCDT,"5Z")
- .. W ?60,$$FMTE^XLFDT($P(SDWHO,"^",2),"5Z")
- .. W ?75,$$FMTE^XLFDT(AUTHDT,"5Z"),?90,$$FMTE^XLFDT(PYMDT,"5Z")
- .. W ?105,$J(TCHRG,10,2),?115,$J(TPAY,10,2)
- .. S L=L+1
- I $G(SDABRT)=1 Q
- ;
- I L+6>IOSL D HDR I $G(SDABRT)=1 Q
- W !,$TR($J(" ",IOM)," ","-"),!
- W !,"TOTAL FIRST PARTY: ",?105,$J(FTOTB,10,2),?115,$J(FTOTP,10,2),!!
- S L=L+5
- ; Print Third Party
- S SDOE=""
- F S SDOE=$O(^TMP($J,"SDSCBILL","THIRD",SDOE)) Q:SDOE="" D Q:$G(SDABRT)=1
- . S BILN=""
- . F S BILN=$O(^TMP($J,"SDSCBILL","THIRD",SDOE,BILN)) Q:BILN="" D Q:$G(SDABRT)=1
- .. S SDBTR=^TMP($J,"SDSCBILL","THIRD",SDOE,BILN)
- .. S TPAY=$P(SDBTR,U,3)
- .. S AUTHDT=$P(SDBTR,U,2)\1
- .. S SDWHO=$$SVCC(SDOE)
- .. S PYMDT=$P(SDBTR,U,4)
- .. S SDSCD=$G(^SDSC(409.48,SDOE,0))
- .. S ENCDT=$P(SDSCD,U,7)\1
- .. S DFN=$P(SDSCD,U,11)
- .. D DEM^VADPT S SDPAT=$E(VADM(1),1,25)_" ("_$E($P(VADM(2),U),6,9)_")"
- .. S TCHRG=$P(SDBTR,U)
- .. S GTOTB=GTOTB+TCHRG,GTOTP=GTOTP+TPAY,TTOTB=TTOTB+TCHRG,TTOTP=TTOTP+TPAY
- .. S DTTOTB(SDSCDNM)=$G(DTTOTB(SDSCDNM))+TCHRG,DTTOTP(SDSCDNM)=$G(DTTOTP(SDSCDNM))+TPAY
- .. I L+3>IOSL D HDR Q:$G(SDABRT)=1
- .. W !,SDOE,?10,SDPAT,?45,$$FMTE^XLFDT(ENCDT,"5Z")
- .. W ?60,$$FMTE^XLFDT($P(SDWHO,"^",2),"5Z")
- .. W ?75,$$FMTE^XLFDT(AUTHDT,"5Z"),?90,$$FMTE^XLFDT(PYMDT,"5Z")
- .. W ?105,$J(TCHRG,10,2),?115,$J(TPAY,10,2)
- .. S L=L+1
- I $G(SDABRT)=1 Q
- ;
- I L+6>IOSL D HDR I $G(SDABRT)=1 Q
- W !,$TR($J(" ",IOM)," ","-"),!
- W !,"TOTAL THIRD PARTY: ",?105,$J(TTOTB,10,2),?115,$J(TTOTP,10,2),!!
- S L=L+5
- I L+6>IOSL D HDR I $G(SDABRT)=1 Q
- W !,$TR($J(" ",IOM)," ","-"),!
- W !,"TOTAL FOR BOTH: ",?105,$J(GTOTB,10,2),?115,$J(GTOTP,10,2),!!
- S L=L+5
- Q
- ;
- FPCK ;Check for First Party Bill
- N SCBLNS,SCARTR
- S SCBLNS=$$FPBILL^IBRSUTL(SDOE) I (SCBLNS="")!($P(SCBLNS,U))="" Q
- S SCARTR=$$GETDATA^PRCAAPI($P(SCBLNS,U)) I SCARTR="" Q
- S $P(SCARTR,U,5)=$P(SCBLNS,U,3)
- S ^TMP($J,"SDSCBILL","COPAY",SDOE,$P(SCBLNS,U))=SCARTR
- Q
- ;
- TPCK ;Check for Third Party Bill
- N SCBLNS,SCBID,SCARTR,SCI
- S SCBLNS=$$TPBILL^IBRSUTL(SDOE) I SCBLNS="" Q
- F SCI=1:1 S SCBID=$P(SCBLNS,U,SCI) Q:SCBID="" D
- . S SCARTR=$$GETDATA^PRCAAPI(SCBID)
- . I SCARTR="" Q
- . S ^TMP($J,"SDSCBILL","THIRD",SDOE,SCBID)=SCARTR
- Q
- ;
- HDR ; Header
- ; Do not ask 'RETURN' before first page on CRT.
- I $E(IOST,1,2)="C-",P D I 'Y S SDABRT=1 Q
- .N DIR S DIR(0)="E" D ^DIR
- ; Do not print a form feed before first page on printer. Top of form is set at end of previous report.
- I $E(IOST,1,2)="C-"!P W @IOF
- S P=P+1,L=4
- W "Recovered Costs Report by Division: "_SDSCDNM_" ",?90,"Run Date: ",SDRUN,?124,"Page ",$J(P,3)
- W !,"Enc #",?10,"Patient",?45,"Enc Date",?60,"Change Date",?75,"Auth Date",?90,"Pay Date",?105,"Prncpl Bill",?117,"Prncpl Pay"
- W !,$TR($J(" ",IOM)," ","-"),!
- Q
- ;
- EXT ;
- N L,TOTALB,TOTALP,DIV
- I CT>1,$G(SDABRT)'=1 D
- . I $E(IOST,1,2)="C-",P N DIR S DIR(0)="E" D ^DIR I 'Y S SDABRT=1 Q
- . ; Do not print a form feed before first page on printer. Top of form is set at end of previous report.
- . I $E(IOST,1,2)="C-"!P W @IOF
- . S P=P+1,L=4,TOTALB=0,TOTALP=0
- . I $E(THDR,$L(THDR))="," S THDR=$E(THDR,1,$L(THDR)-1)
- . W "Recovered Costs Report",?90,"Run Date: ",SDRUN,?124,"Page ",$J(P,3)
- . W !,"By Division(s) "_THDR
- . W !,?105,"Prncpl Bill",?117,"Prncpl Pay"
- . W !,$TR($J(" ",IOM)," ","-"),!
- . W !,?10,"FIRST PARTY TOTAL"
- . S DIV="" F S DIV=$O(DFTOTB(DIV)) Q:DIV="" D
- .. W !,?30,DIV,?105,$J(DFTOTB(DIV),10,2),?115,$J(DFTOTP(DIV),10,2)
- .. S TOTALB=TOTALB+DFTOTB(DIV),TOTALP=TOTALP+DFTOTP(DIV)
- . W !,$TR($J(" ",IOM)," ","-"),!
- . W !,?10,"THIRD PARTY TOTAL"
- . S DIV="" F S DIV=$O(DTTOTB(DIV)) Q:DIV="" D
- .. W !,?30,DIV,?105,$J(DTTOTB(DIV),10,2),?115,$J(DTTOTP(DIV),10,2)
- .. S TOTALB=TOTALB+DTTOTB(DIV),TOTALP=TOTALP+DTTOTP(DIV)
- . W !,$TR($J(" ",IOM)," ","-"),!
- . W !,?10,"TOTAL FOR BOTH FIRST AND THIRD PARTY",?105,$J(TOTALB,10,2),?115,$J(TOTALP,10,2)
- D RPTEND^SDSCRPT1
- ;
- EXIT ; Exit tag
- K SDQFL,SDRUN,SDEDT,SDOE,SDOEDT,SDSCTDT,SDSCBDT,SDSCEDT,POP,SDABRT,BILL
- K BILT,FIND,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y,SCLN D KVA^VADPT
- K ^TMP($J,"SDSCBILL")
- Q
- ;
- SVCC(SDENC) ; Service Connected Last Edit Change
- ;
- ; Input:
- ; SDENC = Encounter IEN
- ;
- ; Output:
- ; Function = "" - (null if undefined)
- ; = EDITED BY_"^"_DATE EDITED - (WHO^WHEN)
- ;
- N SDJ,SDVAL,SDX
- S SDVAL="",SDJ=999999
- S SDJ=$O(^SDSC(409.48,SDENC,1,SDJ),-1)
- I SDJ D
- . S SDX=$G(^SDSC(409.48,SDENC,1,SDJ,0))
- . I $P(SDX,U,5)=0 D
- . . S SDVAL=$P(SDX,U,3)_"^"_$P(SDX,U,2)
- Q SDVAL
- SDSCRP2 ;ALB/JAM/RBS - Recovered Costs Report for ASCD ; 3/13/07 2:50pm
- +1 ;;5.3;Scheduling;**495,1015**;Aug 13, 1993;Build 21
- +2 ;;MODIFIED FOR NATIONAL RELEASE from a Class III software product
- +3 ;;known as Service Connected Automated Monitoring (SCAM).
- +4 ;
- +5 ;**Program Description**
- +6 ; This program will report on all bills generated and amounts
- +7 ; received for encounters whose Service Connected was changed
- +8 ; from 'Yes' to 'No'.
- +9 QUIT
- EN ; Entry point - find all records
- +1 ; Get Division
- +2 NEW SDSCDVSL,SDSCDVLN,SDRUN,ZTDESC,ZTRTN,ZTIO,ZTSAVE,DIR,X,Y
- +3 DO DIV^SDSCUTL
- +4 DO ^DIR
- +5 IF $GET(DTOUT)!($GET(DUOUT))
- GOTO EXIT
- +6 SET SDSCDVSL=Y
- SET SDSCDVLN=SCLN
- KILL DIR,Y,X,SCLN
- +7 SET SDRUN=$$HTE^XLFDT($HOROLOG,1)
- SET ZTDESC="RECOVERED COSTS REPORT"
- SET ZTRTN="BEG^SDSCRP2"
- +8 ; Get start and end date for report.
- +9 DO GETDATE^SDSCOMP
- IF SDSCTDT=""
- GOTO EXIT
- +10 WRITE !!,"You will need a 132 column printer for this report!",!
- +11 KILL %ZIS
- SET %ZIS="QM"
- DO ^%ZIS
- IF POP
- GOTO EXIT
- +12 IF '$DATA(IO("Q"))
- KILL ZTDESC
- GOTO @ZTRTN
- +13 SET ZTIO=ION
- SET ZTSAVE("*")=""
- +14 DO ^%ZTLOAD
- +15 GOTO EXIT
- +16 ;
- BEG ; Begin report
- +1 NEW P,L,SDABRT,CT,SDSCDIV,SDSCDNM,THDR,SDI,DFTOTB,DFTOTP,DTTOTB,DTTOTP
- +2 SET (P,L,SDABRT,CT)=0
- +3 SET SDSCDIV=$SELECT(SDSCDVSL'[SDSCDVLN:SDSCDVSL,1:"")
- +4 IF SDSCDIV=""
- SET SDSCDNM="ALL"
- DO FND
- GOTO EXT
- +5 IF SDSCDIV'=""
- Begin DoDot:1
- +6 SET THDR=""
- +7 FOR SDI=1:1:$LENGTH(SDSCDVSL,",")
- SET SDSCDIV=$PIECE(SDSCDVSL,",",SDI)
- IF SDSCDIV=""
- QUIT
- Begin DoDot:2
- +8 SET SDSCDNM=$PIECE(^DG(40.8,SDSCDIV,0),"^",1)
- SET THDR=THDR_SDSCDNM_","
- SET CT=CT+1
- DO FND
- End DoDot:2
- IF $GET(SDABRT)=1
- QUIT
- End DoDot:1
- +9 GOTO EXT
- +10 ;
- FND ; Find records
- +1 NEW SDATA,SDOEDT,SDOE,DFN,ENCDT,SDCLM,GTOTB,GTOTP,FTOTB,FTOTP,TTOTB,TTOTP
- +2 NEW BILN,TCHRG,TPAY,AUTHDT,SDWHO,PYMDT,ENCDT,SDSCD,SDPAT,VADM,SCVAL,SDBTR
- +3 KILL ^TMP($JOB,"SDSCBILL")
- +4 SET SDOEDT=SDSCTDT
- +5 FOR
- SET SDOEDT=$ORDER(^SDSC(409.48,"C","C",SDOEDT))
- IF SDOEDT=""!(SDOEDT\1>SDEDT)
- QUIT
- Begin DoDot:1
- +6 SET SDOE=0
- +7 FOR
- SET SDOE=$ORDER(^SDSC(409.48,"C","C",SDOEDT,SDOE))
- IF 'SDOE
- QUIT
- Begin DoDot:2
- +8 SET SDATA=$GET(^SDSC(409.48,SDOE,0))
- IF SDATA=""
- QUIT
- +9 IF $PIECE(SDATA,U,5)'="C"
- QUIT
- +10 IF SDSCDIV'=""
- IF $PIECE(SDATA,U,12)'=SDSCDIV
- QUIT
- +11 IF '+$$GETOE^SDOE(SDOE)
- QUIT
- +12 ;find only encounters that were changed by ASCD from SC to NSC
- +13 SET SCVAL=$$SCHNG^SDSCUTL(SDOE)
- IF '+SCVAL
- QUIT
- +14 IF $PIECE(SCVAL,U,3)
- QUIT
- +15 DO FPCK
- +16 DO TPCK
- End DoDot:2
- End DoDot:1
- PRT ;
- +1 USE IO
- DO HDR
- IF $GET(SDABRT)=1
- QUIT
- +2 SET (GTOTB,GTOTP,FTOTB,FTOTP,TTOTB,TTOTP)=0
- +3 IF SDSCDIV'=""
- SET DFTOTB(SDSCDNM)=0
- SET DFTOTP(SDSCDNM)=0
- SET DTTOTB(SDSCDNM)=0
- SET DTTOTP(SDSCDNM)=0
- +4 SET SDOE=""
- +5 FOR
- SET SDOE=$ORDER(^TMP($JOB,"SDSCBILL","COPAY",SDOE))
- IF SDOE=""
- QUIT
- Begin DoDot:1
- +6 SET BILN=""
- +7 FOR
- SET BILN=$ORDER(^TMP($JOB,"SDSCBILL","COPAY",SDOE,BILN))
- IF BILN=""
- QUIT
- Begin DoDot:2
- +8 SET SDBTR=^TMP($JOB,"SDSCBILL","COPAY",SDOE,BILN)
- +9 SET TCHRG=$PIECE(SDBTR,U,5)
- +10 SET TPAY=$PIECE(SDBTR,U,3)
- +11 SET AUTHDT=$PIECE(SDBTR,U,2)\1
- +12 SET SDWHO=$$SVCC(SDOE)
- +13 SET PYMDT=$PIECE(SDBTR,U,4)
- +14 SET SDSCD=$GET(^SDSC(409.48,SDOE,0))
- +15 SET ENCDT=$PIECE(SDSCD,U,7)\1
- +16 SET DFN=$PIECE(SDSCD,U,11)
- +17 DO DEM^VADPT
- SET SDPAT=$EXTRACT(VADM(1),1,25)_" ("_$EXTRACT($PIECE(VADM(2),U),6,9)_")"
- +18 SET GTOTB=GTOTB+TCHRG
- SET GTOTP=GTOTP+TPAY
- SET FTOTB=FTOTB+TCHRG
- SET FTOTP=FTOTP+TPAY
- +19 SET DFTOTB(SDSCDNM)=$GET(DFTOTB(SDSCDNM))+TCHRG
- SET DFTOTP(SDSCDNM)=$GET(DFTOTP(SDSCDNM))+TPAY
- +20 IF L+3>IOSL
- DO HDR
- IF $GET(SDABRT)=1
- QUIT
- +21 WRITE !,SDOE,?10,SDPAT,?45,$$FMTE^XLFDT(ENCDT,"5Z")
- +22 WRITE ?60,$$FMTE^XLFDT($PIECE(SDWHO,"^",2),"5Z")
- +23 WRITE ?75,$$FMTE^XLFDT(AUTHDT,"5Z"),?90,$$FMTE^XLFDT(PYMDT,"5Z")
- +24 WRITE ?105,$JUSTIFY(TCHRG,10,2),?115,$JUSTIFY(TPAY,10,2)
- +25 SET L=L+1
- End DoDot:2
- IF $GET(SDABRT)=1
- QUIT
- End DoDot:1
- IF $GET(SDABRT)=1
- QUIT
- +26 IF $GET(SDABRT)=1
- QUIT
- +27 ;
- +28 IF L+6>IOSL
- DO HDR
- IF $GET(SDABRT)=1
- QUIT
- +29 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-"),!
- +30 WRITE !,"TOTAL FIRST PARTY: ",?105,$JUSTIFY(FTOTB,10,2),?115,$JUSTIFY(FTOTP,10,2),!!
- +31 SET L=L+5
- +32 ; Print Third Party
- +33 SET SDOE=""
- +34 FOR
- SET SDOE=$ORDER(^TMP($JOB,"SDSCBILL","THIRD",SDOE))
- IF SDOE=""
- QUIT
- Begin DoDot:1
- +35 SET BILN=""
- +36 FOR
- SET BILN=$ORDER(^TMP($JOB,"SDSCBILL","THIRD",SDOE,BILN))
- IF BILN=""
- QUIT
- Begin DoDot:2
- +37 SET SDBTR=^TMP($JOB,"SDSCBILL","THIRD",SDOE,BILN)
- +38 SET TPAY=$PIECE(SDBTR,U,3)
- +39 SET AUTHDT=$PIECE(SDBTR,U,2)\1
- +40 SET SDWHO=$$SVCC(SDOE)
- +41 SET PYMDT=$PIECE(SDBTR,U,4)
- +42 SET SDSCD=$GET(^SDSC(409.48,SDOE,0))
- +43 SET ENCDT=$PIECE(SDSCD,U,7)\1
- +44 SET DFN=$PIECE(SDSCD,U,11)
- +45 DO DEM^VADPT
- SET SDPAT=$EXTRACT(VADM(1),1,25)_" ("_$EXTRACT($PIECE(VADM(2),U),6,9)_")"
- +46 SET TCHRG=$PIECE(SDBTR,U)
- +47 SET GTOTB=GTOTB+TCHRG
- SET GTOTP=GTOTP+TPAY
- SET TTOTB=TTOTB+TCHRG
- SET TTOTP=TTOTP+TPAY
- +48 SET DTTOTB(SDSCDNM)=$GET(DTTOTB(SDSCDNM))+TCHRG
- SET DTTOTP(SDSCDNM)=$GET(DTTOTP(SDSCDNM))+TPAY
- +49 IF L+3>IOSL
- DO HDR
- IF $GET(SDABRT)=1
- QUIT
- +50 WRITE !,SDOE,?10,SDPAT,?45,$$FMTE^XLFDT(ENCDT,"5Z")
- +51 WRITE ?60,$$FMTE^XLFDT($PIECE(SDWHO,"^",2),"5Z")
- +52 WRITE ?75,$$FMTE^XLFDT(AUTHDT,"5Z"),?90,$$FMTE^XLFDT(PYMDT,"5Z")
- +53 WRITE ?105,$JUSTIFY(TCHRG,10,2),?115,$JUSTIFY(TPAY,10,2)
- +54 SET L=L+1
- End DoDot:2
- IF $GET(SDABRT)=1
- QUIT
- End DoDot:1
- IF $GET(SDABRT)=1
- QUIT
- +55 IF $GET(SDABRT)=1
- QUIT
- +56 ;
- +57 IF L+6>IOSL
- DO HDR
- IF $GET(SDABRT)=1
- QUIT
- +58 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-"),!
- +59 WRITE !,"TOTAL THIRD PARTY: ",?105,$JUSTIFY(TTOTB,10,2),?115,$JUSTIFY(TTOTP,10,2),!!
- +60 SET L=L+5
- +61 IF L+6>IOSL
- DO HDR
- IF $GET(SDABRT)=1
- QUIT
- +62 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-"),!
- +63 WRITE !,"TOTAL FOR BOTH: ",?105,$JUSTIFY(GTOTB,10,2),?115,$JUSTIFY(GTOTP,10,2),!!
- +64 SET L=L+5
- +65 QUIT
- +66 ;
- FPCK ;Check for First Party Bill
- +1 NEW SCBLNS,SCARTR
- +2 SET SCBLNS=$$FPBILL^IBRSUTL(SDOE)
- IF (SCBLNS="")!($PIECE(SCBLNS,U))=""
- QUIT
- +3 SET SCARTR=$$GETDATA^PRCAAPI($PIECE(SCBLNS,U))
- IF SCARTR=""
- QUIT
- +4 SET $PIECE(SCARTR,U,5)=$PIECE(SCBLNS,U,3)
- +5 SET ^TMP($JOB,"SDSCBILL","COPAY",SDOE,$PIECE(SCBLNS,U))=SCARTR
- +6 QUIT
- +7 ;
- TPCK ;Check for Third Party Bill
- +1 NEW SCBLNS,SCBID,SCARTR,SCI
- +2 SET SCBLNS=$$TPBILL^IBRSUTL(SDOE)
- IF SCBLNS=""
- QUIT
- +3 FOR SCI=1:1
- SET SCBID=$PIECE(SCBLNS,U,SCI)
- IF SCBID=""
- QUIT
- Begin DoDot:1
- +4 SET SCARTR=$$GETDATA^PRCAAPI(SCBID)
- +5 IF SCARTR=""
- QUIT
- +6 SET ^TMP($JOB,"SDSCBILL","THIRD",SDOE,SCBID)=SCARTR
- End DoDot:1
- +7 QUIT
- +8 ;
- HDR ; Header
- +1 ; Do not ask 'RETURN' before first page on CRT.
- +2 IF $EXTRACT(IOST,1,2)="C-"
- IF P
- Begin DoDot:1
- +3 NEW DIR
- SET DIR(0)="E"
- DO ^DIR
- End DoDot:1
- IF 'Y
- SET SDABRT=1
- QUIT
- +4 ; Do not print a form feed before first page on printer. Top of form is set at end of previous report.
- +5 IF $EXTRACT(IOST,1,2)="C-"!P
- WRITE @IOF
- +6 SET P=P+1
- SET L=4
- +7 WRITE "Recovered Costs Report by Division: "_SDSCDNM_" ",?90,"Run Date: ",SDRUN,?124,"Page ",$JUSTIFY(P,3)
- +8 WRITE !,"Enc #",?10,"Patient",?45,"Enc Date",?60,"Change Date",?75,"Auth Date",?90,"Pay Date",?105,"Prncpl Bill",?117,"Prncpl Pay"
- +9 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-"),!
- +10 QUIT
- +11 ;
- EXT ;
- +1 NEW L,TOTALB,TOTALP,DIV
- +2 IF CT>1
- IF $GET(SDABRT)'=1
- Begin DoDot:1
- +3 IF $EXTRACT(IOST,1,2)="C-"
- IF P
- NEW DIR
- SET DIR(0)="E"
- DO ^DIR
- IF 'Y
- SET SDABRT=1
- QUIT
- +4 ; Do not print a form feed before first page on printer. Top of form is set at end of previous report.
- +5 IF $EXTRACT(IOST,1,2)="C-"!P
- WRITE @IOF
- +6 SET P=P+1
- SET L=4
- SET TOTALB=0
- SET TOTALP=0
- +7 IF $EXTRACT(THDR,$LENGTH(THDR))=","
- SET THDR=$EXTRACT(THDR,1,$LENGTH(THDR)-1)
- +8 WRITE "Recovered Costs Report",?90,"Run Date: ",SDRUN,?124,"Page ",$JUSTIFY(P,3)
- +9 WRITE !,"By Division(s) "_THDR
- +10 WRITE !,?105,"Prncpl Bill",?117,"Prncpl Pay"
- +11 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-"),!
- +12 WRITE !,?10,"FIRST PARTY TOTAL"
- +13 SET DIV=""
- FOR
- SET DIV=$ORDER(DFTOTB(DIV))
- IF DIV=""
- QUIT
- Begin DoDot:2
- +14 WRITE !,?30,DIV,?105,$JUSTIFY(DFTOTB(DIV),10,2),?115,$JUSTIFY(DFTOTP(DIV),10,2)
- +15 SET TOTALB=TOTALB+DFTOTB(DIV)
- SET TOTALP=TOTALP+DFTOTP(DIV)
- End DoDot:2
- +16 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-"),!
- +17 WRITE !,?10,"THIRD PARTY TOTAL"
- +18 SET DIV=""
- FOR
- SET DIV=$ORDER(DTTOTB(DIV))
- IF DIV=""
- QUIT
- Begin DoDot:2
- +19 WRITE !,?30,DIV,?105,$JUSTIFY(DTTOTB(DIV),10,2),?115,$JUSTIFY(DTTOTP(DIV),10,2)
- +20 SET TOTALB=TOTALB+DTTOTB(DIV)
- SET TOTALP=TOTALP+DTTOTP(DIV)
- End DoDot:2
- +21 WRITE !,$TRANSLATE($JUSTIFY(" ",IOM)," ","-"),!
- +22 WRITE !,?10,"TOTAL FOR BOTH FIRST AND THIRD PARTY",?105,$JUSTIFY(TOTALB,10,2),?115,$JUSTIFY(TOTALP,10,2)
- End DoDot:1
- +23 DO RPTEND^SDSCRPT1
- +24 ;
- EXIT ; Exit tag
- +1 KILL SDQFL,SDRUN,SDEDT,SDOE,SDOEDT,SDSCTDT,SDSCBDT,SDSCEDT,POP,SDABRT,BILL
- +2 KILL BILT,FIND,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y,SCLN
- DO KVA^VADPT
- +3 KILL ^TMP($JOB,"SDSCBILL")
- +4 QUIT
- +5 ;
- SVCC(SDENC) ; Service Connected Last Edit Change
- +1 ;
- +2 ; Input:
- +3 ; SDENC = Encounter IEN
- +4 ;
- +5 ; Output:
- +6 ; Function = "" - (null if undefined)
- +7 ; = EDITED BY_"^"_DATE EDITED - (WHO^WHEN)
- +8 ;
- +9 NEW SDJ,SDVAL,SDX
- +10 SET SDVAL=""
- SET SDJ=999999
- +11 SET SDJ=$ORDER(^SDSC(409.48,SDENC,1,SDJ),-1)
- +12 IF SDJ
- Begin DoDot:1
- +13 SET SDX=$GET(^SDSC(409.48,SDENC,1,SDJ,0))
- +14 IF $PIECE(SDX,U,5)=0
- Begin DoDot:2
- +15 SET SDVAL=$PIECE(SDX,U,3)_"^"_$PIECE(SDX,U,2)
- End DoDot:2
- End DoDot:1
- +16 QUIT SDVAL