VistA-WorldVistAEHR/r/SCHEDULING-SD-SC/SCRPI01A.m

181 lines
5.4 KiB
Mathematica

SCRPI01A ;ALB/SCK - IEMM REPORT OF INCOMPLETE ENCOUNTERS PRINT ; 6/24/97
;;5.3;Scheduling;**66**;AUG 13, 1993
Q
PRINT ; Begin printing report
; Variables
; PAGE - Page Number
; SDIV - Division Name
; SDCLN - Clinic Name
; SDNAME - Patient Name
; SDT - Encounter Date
; SCABORT - Abort report flag
;
N DASH,DBLDASH,PAGE,SDIV,SDCLN,SDNAME,SDT,SCABORT,NONAME
;
S $P(DASH,"-",IOM-1)="",$P(DBLDASH,"=",IOM-1)=""
S PAGE=0,SDIV=""
;
I '$D(^TMP("SCRPI ERR",$J)) D HDR1 Q
;
F S SDIV=$O(^TMP("SCRPI ERR",$J,SDIV)) Q:SDIV']"" D Q:$G(SCABORT)
. S SDCLN=""
. F S SDCLN=$O(^TMP("SCRPI ERR",$J,SDIV,SDCLN)) Q:SDCLN']"" D Q:$G(SCABORT)
.. D HDR(SDIV,SDCLN)
.. Q:$G(SCABORT)
.. S SDNAME=""
.. F S SDNAME=$O(^TMP("SCRPI ERR",$J,SDIV,SDCLN,SDNAME)) Q:SDNAME']"" D Q:$G(SCABORT)
... S SDT="",NONAME=0
... F S SDT=$O(^TMP("SCRPI ERR",$J,SDIV,SDCLN,SDNAME,SDT)) Q:'SDT D Q:$G(SCABORT)
.... S SDER=""
.... F S SDER=$O(^TMP("SCRPI ERR",$J,SDIV,SDCLN,SDNAME,SDT,SDER)) Q:'SDER D LINE(^TMP("SCRPI ERR",$J,SDIV,SDCLN,SDNAME,SDT,SDER,0)) Q:$G(SCABORT)
;
D SELPAGE
Q
;
LINE(SDTMP) ; Print formatted line of the report. Check if task has been stopped by user.
; Set abort flag to quit if stopped.
; Input
; SDTMP - formatted line to print
;
; Output
; SCABORT - 1 if user aborts report printing
;
; Variables
; SCERR - Error Code form #409.76
; SCERR1 - Error Description from #409.76
;
N X,X1,X2,SCERR,SCERR1,DFN
;
; ** if task has been stopped, set abort flag and quit.
I $$S^%ZTLOAD D Q
. S SCABORT=1
. W !!,"Report stopped by user"
;
I $Y>(IOSL-5) D HDR(SDIV,SDCLN)
;
; ** Check that error is still around and has not been corrected.
Q:'$G(^SD(409.75,SDER,0))
S SCERR=^SD(409.76,$P(^SD(409.75,SDER,0),U,2),0)
S SCERR1=^SD(409.76,$P(^SD(409.75,SDER,0),U,2),1)
;
S DFN=$P(SDTMP,U)
D PID^VADPT6
W !,$S('NONAME:$E(SDNAME,1,25),1:" "),?27,$S('NONAME:VA("BID"),1:" ")
W ?33,$S($P(SDTMP,U,3)]"":$P(SDTMP,U,3),1:" ")," "
W $$FMTE^XLFDT(SDT,"2FP"),?55,$S($P(SCERR,U,2)="V":"VISTA",$P(SCERR,U,2)="N":"NPCD ",1:"UNK "),?62,$P(SCERR,U)
;
; ** Parse out error description to fit report. If description length >50, then
; call parse procedure to break description into two lines.
S X=$P(SCERR1,U)
I $L(X)<50 D
. W ?68,X
E D
. K X1,X2
. D PARSE^SCRPIUT1(X,.X1,.X2,45,51)
. W ?68,X1,!?68,X2
S NONAME=1
K VA
Q
;
HDR(SDIV,SDCLN) ; Print report header, if abort flag is set, then quit
; Input
; SDIV - Division Name
; SDCLN - Clinic Name
;
; Variables
; SDL - Print line
;
N SDL,X
;
I 'PAGE,IOST?1"C-".E W @IOF
I PAGE,IOST?1"C-".E D Q:$G(SCABORT)
. S DIR(0)="E" D ^DIR K DIR S SCABORT='+$G(Y)
. W @IOF
E D
. I PAGE W @IOF
;
S PAGE=PAGE+1
W !?2,"Date: ",$$FDATE^VALM1($$DT^XLFDT),?((IOM/2)-22),"Incomplete Encounter Management Error Listing",?(IOM-13),"Page: ",PAGE
;
S X="Division: "_$S($G(SDIV)]"":SDIV,1:" ---")
D CTR^SCRPIUT1(.X,IOM)
W !,X
;
S X="Clinic: "_$S($G(SDCLN)]"":SDCLN,1:" ---")
D CTR^SCRPIUT1(.X,IOM)
W !,X
;
S X="Date Range: "_$$FMTE^XLFDT($P(SDDT,U))_" to "_$$FMTE^XLFDT($P(SDDT,U,2))
D CTR^SCRPIUT1(.X,IOM)
W !,X
;
S X="Selection Method by "_$$SELMTHD^SCRPI01(SDSEL1)_" then by "_$$SELMTHD^SCRPI01(SDSEL2)
D CTR^SCRPIUT1(.X,IOM)
W !,X
;
W !!!,?35,"Encounter",?54,"Error",?62,"Error"
W !,"Patient Name",?27,"SSN",?35,"Date/Time",?54,"Srce",?62,"Code",?68,"Description"
W !,DBLDASH
S X="[ '*' Indicates Deleted Outpatient Encounter for Transmission ]"
D CTR^SCRPIUT1(.X,IOM)
W !,X,!
Q
;
HDR1 ; Report header for no data found. Prints modified header.
;
W !?2,"Date: ",$$FDATE^VALM1($$DT^XLFDT),?((IOM/2)-22),"Incomplete Encounter Management Error Listing"
S X="Date Range: "_$$FMTE^XLFDT($P(SDDT,U))_" to "_$$FMTE^XLFDT($P(SDDT,U,2))
D CTR^SCRPIUT1(.X,IOM)
W !,X
S X="Selection Method by "_$$SELMTHD^SCRPI01(SDSEL1)_" then by "_$$SELMTHD^SCRPI01(SDSEL2)
D CTR^SCRPIUT1(.X,IOM)
W !,X,!!
W !?5,"No errors found"
D NEXTLEV(SDSEL1)
D NEXTLEV(SDSEL2)
Q
;
SELPAGE ; Print on last page the user parameters used for the report.
N SDIV,SDCLN,SDERR,SDPAT,SDDSS
;
I 'PAGE,IOST?1"C-".E W @IOF
I PAGE,IOST?1"C-".E D Q:$G(SCABORT)
. S DIR(0)="E" D ^DIR K DIR S SCABORT='+$G(Y)
. W @IOF
E D
. I PAGE W @IOF
;
S PAGE=PAGE+1
W !?2,"Date: ",$$FDATE^VALM1($$DT^XLFDT),?((IOM/2)-22),"Incomplete Encounter Management Error Listing",?(IOM-13),"Page: ",PAGE
S X="Report Selection Criteria"
D CTR^SCRPIUT1(X,IOM)
S X="Date Range: "_$$FMTE^XLFDT($P(SDDT,U))_" to "_$$FMTE^XLFDT($P(SDDT,U,2))
D CTR^SCRPIUT1(X,IOM)
;
W !!?10,"Divisions: ",$S(VAUTD:"All",1:"")
I 'VAUTD S SDIV="" F S SDIV=$O(VAUTD(SDIV)) Q:'SDIV W !?15,VAUTD(SDIV)
;
D NEXTLEV(SDSEL1)
D NEXTLEV(SDSEL2)
Q
;
NEXTLEV(SRT) ; Print out any sublevels of the user selection parameters
N SDITEM
;
I SRT["CLN" D
. W !!?10,"Clinics: ",$S(VAUTC:"All",1:"")
. I 'VAUTC S SDITEM="" F S SDITEM=$O(VAUTC(SDITEM)) Q:'SDITEM W !?15,VAUTC(SDITEM)
;
I SRT["PAT" D
. W !!?10,"Patients: ",$S(VAUTN:"All",1:"")
. I 'VAUTN S SDITEM="" F S SDITEM=$O(VAUTN(SDITEM)) Q:'SDITEM W !?15,VAUTN(SDITEM)
;
I SRT["ERR" D
. W !!?10,"Error Codes: ",$S(VAUER:"All",1:"")
. I 'VAUER S SDITEM="" F S SDITEM=$O(VAUER(SDITEM)) Q:'SDITEM W !?15,VAUER(SDITEM)," ",$E($P(^SD(409.76,SDITEM,1),U),1,60)
;
I SRT["DSS" D
. W !!?10,"Clinic Stop Codes: ",$S(VAUDS:"All",1:"")
. I 'VAUDS S SDITEM="" F S SDITEM=$O(VAUDS(SDITEM)) Q:'SDITEM W !?15,VAUDS(SDITEM)
Q