- PXRRWLD ;ISL/PKR,ALB/Zoltan - Driver for PCE encounter summary report.;12/1/98
- ;;1.0;PCE PATIENT CARE ENCOUNTER;**20,61**;Aug 12, 1996
- MAIN ;
- N PXRRIOD,PXRRWLJB,PXRRWLST,PXRROPT,PXRRQUE,PXRRXTMP
- S PXRRXTMP=$$PXRRXTMP("PXRRWL")
- S ^XTMP(PXRRXTMP,0)=$$FMADD^XLFDT(DT,7)_U_DT_U_"PXRR Encounter Summary"
- ;
- ;Establish the selection criteria.
- FAC ;Get the facility list.
- N NFAC,PXRRFAC,PXRRFACN
- D FACILITY^PXRRLCSC
- I $D(DTOUT)!$D(DUOUT) G EXIT
- ;
- LORP ;See if the report is to be by location or provider.
- N PXRRWLSC
- D WHICH("L")
- I $D(DTOUT) G EXIT
- I $D(DUOUT) G FAC
- ;
- LOC ;Get the location(s) for the report.
- N NCS,NHL,PXRRCS,PXRRLCHL,PXRRLCSC
- I $P(PXRRWLSC,U,1)="L" D
- . S PXRRLCSC=""
- . D LOC^PXRRLCSC("Select ENCOUNTER LOCATION CRITERIA","HS")
- . I $P(PXRRLCSC,U,1)["C" D BYLOC^PXRRLCSC
- I $D(DTOUT) G EXIT
- I $D(DUOUT) G LORP
- ;
- PRV ;Get the provider(s) for the report.
- N NCL,NPL,PXRRPECL,PXRRPRLL,PXRRPRPL,PXRRPRSC
- N PXRRMPR
- S PXRRMPR=0
- I $P(PXRRWLSC,U,1)="P" D
- . D PRV^PXRRPRSC
- . I ('$D(DTOUT))&('$D(DUOUT)) D
- .. K DIRUT,DTOUT,DUOUT
- .. S DIR(0)="YA"
- .. S DIR("A",1)="Do you want providers broken out by location?"
- .. S DIR("A")="Enter Y (YES) or N (NO) "
- .. S DIR("B")="N"
- .. W !
- .. D ^DIR K DIR
- .. I $D(DIROUT) S DTOUT=1
- .. S PXRRPRLL=Y
- I $D(DTOUT) G EXIT
- I $D(DUOUT) G LORP
- ;
- DR ;Get the date range.
- N PXRRBDT,PXRREDT
- D PDR^PXRRADUT(.PXRRBDT,.PXRREDT,"ENCOUNTER")
- I $D(DTOUT) G EXIT
- I $D(DUOUT) G LORP
- ;
- SCAT ;Get the service categories.
- N PXRRSCAT
- D SCAT^PXRRECSC
- I $D(DTOUT) G EXIT
- I $D(DUOUT) G DR
- ;
- ENTY ;Get the encounter types.
- N PXRRENTY
- D ENTYPE^PXRRECSC
- I $D(DTOUT) G EXIT
- I $D(DUOUT) G SCAT
- ;
- ;Determine whether the report should be queued.
- S %ZIS="QM"
- W !
- D ^%ZIS
- I POP G EXIT
- S PXRRIOD=ION_";"_IOST_";"_IOM_";"_IOSL
- S PXRRQUE=$G(IO("Q"))
- ;
- I PXRRQUE D
- . ;Queue the report.
- . N DESC,IODEV,ROUTINE
- . S DESC="Encounter Summary Report - sort encounters"
- . S IODEV=""
- . S ROUTINE="SORT^PXRRWLSE"
- . S ^XTMP(PXRRXTMP,"SEZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRWLD")
- .;
- . S DESC="Encounter Summary Report - sort appointments"
- . S IODEV=""
- . S ROUTINE="SORT^PXRRWLSA"
- . S ZTDTH="@"
- . S ^XTMP(PXRRXTMP,"SAZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRWLD")
- .;
- . S DESC="Encounter Summary Report - print"
- . S IODEV=PXRRIOD
- . S ROUTINE="PXRRWLPR"
- . S ZTDTH="@"
- . S ^XTMP(PXRRXTMP,"PRZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRWLD")
- ;
- E D SORT^PXRRWLSE
- Q
- ;=======================================================================
- EXIT ;
- D EXIT^PXRRGUT
- Q
- ;
- ;=======================================================================
- SAVE ;Save the variables.
- S ZTSAVE("PXRRBDT")="",ZTSAVE("PXRREDT")=""
- S ZTSAVE("PXRRCS(")="",ZTSAVE("NCS")=""
- S ZTSAVE("PXRRENTY")=""
- S ZTSAVE("PXRRFAC(")="",ZTSAVE("NFAC")=""
- S ZTSAVE("PXRRFACN(")=""
- S ZTSAVE("PXRRIOD")=""
- S ZTSAVE("PXRRLCHL(")="",ZTSAVE("NHL")=""
- S ZTSAVE("PXRRLCSC")=""
- S ZTSAVE("PXRRPECL(")="",ZTSAVE("NCL")=""
- S ZTSAVE("PXRRPRLL")=""
- S ZTSAVE("PXRRPRPL(")="",ZTSAVE("NPL")=""
- S ZTSAVE("PXRRPRSC")=""
- S ZTSAVE("PXRRQUE")=""
- S ZTSAVE("PXRRSCAT")=""
- S ZTSAVE("PXRRXTMP")=""
- S ZTSAVE("PXRRWLSC")=""
- S ZTSAVE("PXRRMPR")=""
- Q
- ;
- ;=======================================================================
- WHICH(DEFAULT) ;Find out if the report is to be by location or provider.
- N X,Y
- K DIROUT,DIRUT,DTOUT,DUOUT
- S DIR(0)="S"_U_"L:Location;"
- S DIR(0)=DIR(0)_"P:Provider"
- S DIR("A")="Do the report by"
- S DIR("B")=DEFAULT
- W !!,"This report may be done by location or provider"
- D ^DIR K DIR
- I $D(DIROUT) S DTOUT=1
- I $D(DTOUT)!($D(DUOUT)) Q
- S PXRRWLSC=Y_U_Y(0)
- Q
- ;
- PXRRXTMP(PXPFX) ; Extrinsic variable.
- ; Gets a unique PXRRXTMP value.
- S PFPFX=$G(PXPFX,"PXRRXTMP") ; Unizue ^XTMP prefix.
- N PXRRXTMP ; Value to return.
- N PXDONE
- I '$D(^XTMP("PXRRXTMP")) D
- . N PXCREATE ; ^XTMP Creation date.
- . N PXPURGE ; ^XTMP Purge date.
- . L +^XTMP("PXRRXTMP",0):300
- . S PXCREATE=$$DT^XLFDT ; Today's date.
- . S PXPURGE=$$HTFM^XLFDT($H+365) ; Not more than one year from today.
- . S ^XTMP("PXRRXTMP",0)=PXCREATE_"^"_PXPURGE_"^PXRR XTMP Coordination"
- . L -^XTMP("PXRRXTMP",0)
- L +^XTMP("PXRRXTMP",1):300
- S PXDONE=0
- F D Q:PXDONE
- . S (^XTMP("PXRRXTMP",1),PXRRXTMP)=$G(^XTMP("PXRRXTMP",1),0)+1
- . S PXRRXTMP=PXPFX_PXRRXTMP
- . Q:$D(^XTMP(PXRRXTMP))
- . Q:$D(^TMP(PXRRXTMP))
- . Q:$D(^TMP($J,PXRRXTMP))
- . S PXDONE=1
- L -^XTMP("PXRRXTMP",1)
- Q PXRRXTMP
- PXRRWLD ;ISL/PKR,ALB/Zoltan - Driver for PCE encounter summary report.;12/1/98
- +1 ;;1.0;PCE PATIENT CARE ENCOUNTER;**20,61**;Aug 12, 1996
- MAIN ;
- +1 NEW PXRRIOD,PXRRWLJB,PXRRWLST,PXRROPT,PXRRQUE,PXRRXTMP
- +2 SET PXRRXTMP=$$PXRRXTMP("PXRRWL")
- +3 SET ^XTMP(PXRRXTMP,0)=$$FMADD^XLFDT(DT,7)_U_DT_U_"PXRR Encounter Summary"
- +4 ;
- +5 ;Establish the selection criteria.
- FAC ;Get the facility list.
- +1 NEW NFAC,PXRRFAC,PXRRFACN
- +2 DO FACILITY^PXRRLCSC
- +3 IF $DATA(DTOUT)!$DATA(DUOUT)
- GOTO EXIT
- +4 ;
- LORP ;See if the report is to be by location or provider.
- +1 NEW PXRRWLSC
- +2 DO WHICH("L")
- +3 IF $DATA(DTOUT)
- GOTO EXIT
- +4 IF $DATA(DUOUT)
- GOTO FAC
- +5 ;
- LOC ;Get the location(s) for the report.
- +1 NEW NCS,NHL,PXRRCS,PXRRLCHL,PXRRLCSC
- +2 IF $PIECE(PXRRWLSC,U,1)="L"
- Begin DoDot:1
- +3 SET PXRRLCSC=""
- +4 DO LOC^PXRRLCSC("Select ENCOUNTER LOCATION CRITERIA","HS")
- +5 IF $PIECE(PXRRLCSC,U,1)["C"
- DO BYLOC^PXRRLCSC
- End DoDot:1
- +6 IF $DATA(DTOUT)
- GOTO EXIT
- +7 IF $DATA(DUOUT)
- GOTO LORP
- +8 ;
- PRV ;Get the provider(s) for the report.
- +1 NEW NCL,NPL,PXRRPECL,PXRRPRLL,PXRRPRPL,PXRRPRSC
- +2 NEW PXRRMPR
- +3 SET PXRRMPR=0
- +4 IF $PIECE(PXRRWLSC,U,1)="P"
- Begin DoDot:1
- +5 DO PRV^PXRRPRSC
- +6 IF ('$DATA(DTOUT))&('$DATA(DUOUT))
- Begin DoDot:2
- +7 KILL DIRUT,DTOUT,DUOUT
- +8 SET DIR(0)="YA"
- +9 SET DIR("A",1)="Do you want providers broken out by location?"
- +10 SET DIR("A")="Enter Y (YES) or N (NO) "
- +11 SET DIR("B")="N"
- +12 WRITE !
- +13 DO ^DIR
- KILL DIR
- +14 IF $DATA(DIROUT)
- SET DTOUT=1
- +15 SET PXRRPRLL=Y
- End DoDot:2
- End DoDot:1
- +16 IF $DATA(DTOUT)
- GOTO EXIT
- +17 IF $DATA(DUOUT)
- GOTO LORP
- +18 ;
- DR ;Get the date range.
- +1 NEW PXRRBDT,PXRREDT
- +2 DO PDR^PXRRADUT(.PXRRBDT,.PXRREDT,"ENCOUNTER")
- +3 IF $DATA(DTOUT)
- GOTO EXIT
- +4 IF $DATA(DUOUT)
- GOTO LORP
- +5 ;
- SCAT ;Get the service categories.
- +1 NEW PXRRSCAT
- +2 DO SCAT^PXRRECSC
- +3 IF $DATA(DTOUT)
- GOTO EXIT
- +4 IF $DATA(DUOUT)
- GOTO DR
- +5 ;
- ENTY ;Get the encounter types.
- +1 NEW PXRRENTY
- +2 DO ENTYPE^PXRRECSC
- +3 IF $DATA(DTOUT)
- GOTO EXIT
- +4 IF $DATA(DUOUT)
- GOTO SCAT
- +5 ;
- +6 ;Determine whether the report should be queued.
- +7 SET %ZIS="QM"
- +8 WRITE !
- +9 DO ^%ZIS
- +10 IF POP
- GOTO EXIT
- +11 SET PXRRIOD=ION_";"_IOST_";"_IOM_";"_IOSL
- +12 SET PXRRQUE=$GET(IO("Q"))
- +13 ;
- +14 IF PXRRQUE
- Begin DoDot:1
- +15 ;Queue the report.
- +16 NEW DESC,IODEV,ROUTINE
- +17 SET DESC="Encounter Summary Report - sort encounters"
- +18 SET IODEV=""
- +19 SET ROUTINE="SORT^PXRRWLSE"
- +20 SET ^XTMP(PXRRXTMP,"SEZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRWLD")
- +21 ;
- +22 SET DESC="Encounter Summary Report - sort appointments"
- +23 SET IODEV=""
- +24 SET ROUTINE="SORT^PXRRWLSA"
- +25 SET ZTDTH="@"
- +26 SET ^XTMP(PXRRXTMP,"SAZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRWLD")
- +27 ;
- +28 SET DESC="Encounter Summary Report - print"
- +29 SET IODEV=PXRRIOD
- +30 SET ROUTINE="PXRRWLPR"
- +31 SET ZTDTH="@"
- +32 SET ^XTMP(PXRRXTMP,"PRZTSK")=$$QUE^PXRRQUE(DESC,IODEV,ROUTINE,"SAVE^PXRRWLD")
- End DoDot:1
- +33 ;
- +34 IF '$TEST
- DO SORT^PXRRWLSE
- +35 QUIT
- +36 ;=======================================================================
- EXIT ;
- +1 DO EXIT^PXRRGUT
- +2 QUIT
- +3 ;
- +4 ;=======================================================================
- SAVE ;Save the variables.
- +1 SET ZTSAVE("PXRRBDT")=""
- SET ZTSAVE("PXRREDT")=""
- +2 SET ZTSAVE("PXRRCS(")=""
- SET ZTSAVE("NCS")=""
- +3 SET ZTSAVE("PXRRENTY")=""
- +4 SET ZTSAVE("PXRRFAC(")=""
- SET ZTSAVE("NFAC")=""
- +5 SET ZTSAVE("PXRRFACN(")=""
- +6 SET ZTSAVE("PXRRIOD")=""
- +7 SET ZTSAVE("PXRRLCHL(")=""
- SET ZTSAVE("NHL")=""
- +8 SET ZTSAVE("PXRRLCSC")=""
- +9 SET ZTSAVE("PXRRPECL(")=""
- SET ZTSAVE("NCL")=""
- +10 SET ZTSAVE("PXRRPRLL")=""
- +11 SET ZTSAVE("PXRRPRPL(")=""
- SET ZTSAVE("NPL")=""
- +12 SET ZTSAVE("PXRRPRSC")=""
- +13 SET ZTSAVE("PXRRQUE")=""
- +14 SET ZTSAVE("PXRRSCAT")=""
- +15 SET ZTSAVE("PXRRXTMP")=""
- +16 SET ZTSAVE("PXRRWLSC")=""
- +17 SET ZTSAVE("PXRRMPR")=""
- +18 QUIT
- +19 ;
- +20 ;=======================================================================
- WHICH(DEFAULT) ;Find out if the report is to be by location or provider.
- +1 NEW X,Y
- +2 KILL DIROUT,DIRUT,DTOUT,DUOUT
- +3 SET DIR(0)="S"_U_"L:Location;"
- +4 SET DIR(0)=DIR(0)_"P:Provider"
- +5 SET DIR("A")="Do the report by"
- +6 SET DIR("B")=DEFAULT
- +7 WRITE !!,"This report may be done by location or provider"
- +8 DO ^DIR
- KILL DIR
- +9 IF $DATA(DIROUT)
- SET DTOUT=1
- +10 IF $DATA(DTOUT)!($DATA(DUOUT))
- QUIT
- +11 SET PXRRWLSC=Y_U_Y(0)
- +12 QUIT
- +13 ;
- PXRRXTMP(PXPFX) ; Extrinsic variable.
- +1 ; Gets a unique PXRRXTMP value.
- +2 ; Unizue ^XTMP prefix.
- SET PFPFX=$GET(PXPFX,"PXRRXTMP")
- +3 ; Value to return.
- NEW PXRRXTMP
- +4 NEW PXDONE
- +5 IF '$DATA(^XTMP("PXRRXTMP"))
- Begin DoDot:1
- +6 ; ^XTMP Creation date.
- NEW PXCREATE
- +7 ; ^XTMP Purge date.
- NEW PXPURGE
- +8 LOCK +^XTMP("PXRRXTMP",0):300
- +9 ; Today's date.
- SET PXCREATE=$$DT^XLFDT
- +10 ; Not more than one year from today.
- SET PXPURGE=$$HTFM^XLFDT($HOROLOG+365)
- +11 SET ^XTMP("PXRRXTMP",0)=PXCREATE_"^"_PXPURGE_"^PXRR XTMP Coordination"
- +12 LOCK -^XTMP("PXRRXTMP",0)
- End DoDot:1
- +13 LOCK +^XTMP("PXRRXTMP",1):300
- +14 SET PXDONE=0
- +15 FOR
- Begin DoDot:1
- +16 SET (^XTMP("PXRRXTMP",1),PXRRXTMP)=$GET(^XTMP("PXRRXTMP",1),0)+1
- +17 SET PXRRXTMP=PXPFX_PXRRXTMP
- +18 IF $DATA(^XTMP(PXRRXTMP))
- QUIT
- +19 IF $DATA(^TMP(PXRRXTMP))
- QUIT
- +20 IF $DATA(^TMP($JOB,PXRRXTMP))
- QUIT
- +21 SET PXDONE=1
- End DoDot:1
- IF PXDONE
- QUIT
- +22 LOCK -^XTMP("PXRRXTMP",1)
- +23 QUIT PXRRXTMP