DGFFP03 ; ALB/SCK - FUGITIVE FELON PROGRAM VISIT REPORT ; 11/14/2002 ;;5.3;Registration;**485**;Aug 13, 1993 ; QUE ; N ZTSAVE,DGTMP,DIR,Y,DGEND,DGBEG,DIRUT,ZTRTN,ZTDESC,ZTDTH,ZTIO,%ZIS ; S DIR(0)="YAO",DIR("B")="YES",DIR("A")="Print report by date range? " S DIR("?",1)="Enter 'YES' to print the report showing those patients for whom the" S DIR("?",2)="flag was set within a specific date range." S DIR("?")="Enter 'NO' to print for all dates." D ^DIR K DIR Q:$D(DIRUT) I '+Y S (DGBEG,DGEND)=0 E D GETDT^DGFFP02(.DGBEG,.DGEND) ; W !,$CHAR(7) W !?5,">> This report requires a 132-column printer" S %ZIS="Q" D ^%ZIS G EXIT:POP I $D(IO("Q")) D START Q D RPT,^%ZISC Q ; START ; S ZTDTH=$$NOW^XLFDT S ZTSAVE("DGBEG")="",ZTSAVE("DGEND")="" S ZTDESC="DGFFP CURRENT STATUS REPORT" S ZTRTN="RPT^DGFFP03" D ^%ZTLOAD I $D(ZTSK)[0 W !!?5,"Report canceled" E W !!?5,"Report Queued" EXIT D HOME^%ZIS Q ; RPT ; N PAGE ; U IO S PAGE=1 K ^TMP("DGFFP",$J) ; I +DGBEG>0 D GETLST(DGBEG,DGEND) E D GETALL ; D PRINT(DGBEG,DGEND) K ^TMP("DGFFP",$J) D ^%ZISC Q ; GETALL ; Retrieve entire list of patient to print N DGDFN,DFN,VAROOT,DGINP ; S DGDFN=0 F S DGDFN=$O(^DPT("AXFFP",1,DGDFN)) Q:'DGDFN D . S DFN=DGDFN,VAROOT="DGINP" . D INP^VADPT . S ^TMP("DGFFP",$J,$S(+DGINP(1):"I",1:"O"),$$GET1^DIQ(2,DGDFN,.01),DGDFN)="" . K DGINP Q ; GETLST(DGBEG,DGEND) ; Retrieve list of patients with the Fugitive Felon Flag set within specified date range N DGDFN,DFN,VAROOT,DGINP,DGFFP ; S DGEND=$$FMADD^XLFDT(DGEND,1) S DGDFN=0 F S DGDFN=$O(^DPT("AXFFP",1,DGDFN)) Q:'DGDFN D . S DGFFP=$P($G(^DPT(DGDFN,"FFP")),U,3) . I DGFFP>DGBEG&(DGFFPIOSL) D . . . I $$PAUSE^DGFFP02 S DGABRT=1 Q .. . D HDR(DGBEG,DGEND),INPHDR Q ; OUTP(DGBEG,DGEND) ; N DGNAME,DFN,DGABRT,VA,DGAPT,TXT,DGSTAT ; D HDR(DGBEG,DGEND) D OUTHDR ; I '$D(^TMP("DGFFP",$J,"O")) W !!,"No Patients Found" Q S DGNAME="" F S DGNAME=$O(^TMP("DGFFP",$J,"O",DGNAME)) Q:DGNAME']"" D Q:$G(DGABRT) . S DFN=0 . F S DFN=$O(^TMP("DGFFP",$J,"O",DGNAME,DFN)) Q:'DFN D Q:$G(DGABRT) . . D PID^VADPT6 . . S TXT=$E(DGNAME,1,$L(DGNAME))_" ("_VA("BID")_")" W !,TXT . . D PRNSCRP(DFN) . . D PRNRCNT(DFN) . . D PRNAPT(DFN) . . W ! . . I (($Y+5)>IOSL) D . . . I $$PAUSE^DGFFP02 S DGABRT=1 Q . . . D HDR(DGBEG,DGEND),INPHDR Q ; SCHED(DGBEG,DGEND) ; N DGNAME,DFN,DGABRT,VA,DGAPT,TXT,DGSTAT,TMPARY ; D HDR(DGBEG,DGEND) D FUHDR ; S DFN=0 F S DFN=$O(^DPT("AXFFP",1,DFN)) Q:'DFN D . S ^TMP("DGFFP",$J,"F",$$GET1^DIQ(2,DFN,.01),DFN)="" ; S DGNAME="" F S DGNAME=$O(^TMP("DGFFP",$J,"F",DGNAME)) Q:DGNAME']"" D Q:$G(DGABRT) . S DFN=0 . F S DFN=$O(^TMP("DGFFP",$J,"F",DGNAME,DFN)) Q:'DFN D Q:$G(DGABRT) . . S TMPARY="^TMP(""DGFFPF"",$J)" K @TMPARY . . D GETFUADM(DFN,TMPARY) . . Q:'$D(@TMPARY) . . D PID^VADPT6 . . S TXT=$E(DGNAME,1,$L(DGNAME))_" ("_VA("BID")_")" W !,TXT . . D PRNSCRP(DFN) . . D PRNRCNT(DFN) . . D PRNFUT(TMPARY) . . K @TMPARY Q ; PRNFUT(TMPARY) ; N DGDT,DGWARD ; S DGDT=0 F S DGDT=$O(@TMPARY@(DGDT)) Q:'DGDT D . W !?40,$$FMTE^XLFDT(DGDT,"1P") . S DGWARD=$P(@TMPARY@(DGDT),U,8) . W ?80,$$GET1^DIQ(42,DGWARD,.01) Q ; PRNSCRP(DFN) ; Print Active Script Information N DGSCRPT ; S DGSCRPT=$$GET1^DIQ(55,DFN,50) W ?110,$S(DGSCRPT>0:DGSCRPT,1:"None") Q ; PRNINP(DFN) ; Print Inpatient Information N VAROOT,DGIN ; S VAROOT="DGIN" D IN5^VADPT W ?40,$P(DGIN(2),U,2) W ?55,$$FMTE^XLFDT($P(DGIN(3),U,1),"D") W ?70,$P(DGIN(6),U,2) W ?80,$P(DGIN(5),U,2) Q ; PRNRCNT(DFN) ; Print most recent activity N DGLAST ; S DGLAST=$$LASTACT^DGFFPLM(DFN) I DGLAST]"" D . W !?3,">> "_DGLAST Q ; PRNAPT(DFN) ; Print Future Appointment information N LINE,DGRTN,DGCLN,DGDT,TEMP ; S TEMP="^TMP(""VASD"",$J)" K @TEMP D GETAPT(DFN,TEMP) S DGCLN="" F S DGCLN=$O(@TEMP@(DGCLN)) Q:DGCLN']"" D Q:$G(RSLT) . W !?40,DGCLN . S DGDT=0 . F S DGDT=$O(@TEMP@(DGCLN,DGDT)) Q:'DGDT D Q:$G(RSLT) . . W ?70,$$FMTE^XLFDT(DGDT,"1P"),! K @TEMP Q ; GETAPT(DFN,TEMP) ; Sort Clinic appointments by clinic N LINE,VAROOT,VASD,DGAPT ; D SDA^VADPT S DGAPT="^UTILITY(""VASD"",$J)" S LINE=0 F S LINE=$O(@DGAPT@(LINE)) Q:'LINE D . S @TEMP@($P(@DGAPT@(LINE,"E"),U,2),$P(@DGAPT@(LINE,"I"),U,1))=$P(@DGAPT@(LINE,"E"),U,3) K @DGAPT Q ; GETFUADM(DFN,TMPARY) ; Get future scheduled admissions N DGIEN,DGNODE ; S DGIEN=0 F S DGIEN=$O(^DGS(41.1,"B",DFN,DGIEN)) Q:'DGIEN D . S DGNODE=$G(^DGS(41.1,DGIEN,0)) . S @TMPARY@($P(DGNODE,U,2))=DGNODE Q ; HDR(DGBEG,DGEND) ; N LINE,TXT,SPACE ; I $E(IOST,1,2)="C-"!($G(PAGE)>1) W @IOF S TXT="Fugitive Felon Status Report" S SPACE=(IOM-$L(TXT))/2 W !?SPACE,TXT ; I DGBEG>0 D . S TXT="Report Date Range: "_$$FMTE^XLFDT(DGBEG)_" to "_$$FMTE^XLFDT(DGEND) . S SPACE=(IOM-$L(TXT))/2 . W !?SPACE,TXT ; S TXT="Print Date: "_$$FMTE^XLFDT($$NOW^XLFDT) S SPACE=(IOM-$L(TXT))/2 W !?SPACE,TXT ; S TXT="Page: "_PAGE S SPACE=(IOM-$L(TXT))/2 W !?SPACE,TXT S PAGE=PAGE+1 Q ; INPHDR ; N TXT,LINE,SPACE ; S TXT="Inpatient Listing" S SPACE=(IOM-$L(TXT))/2 W !?SPACE,TXT ; W !!,"Patient Name",?40,"Movement",?55,"Date",?70,"Room/Bed",?80,"Ward",?110,"Active Scripts?" S $P(LINE,"=",IOM)="" W !,LINE Q ; OUTHDR ; N TXT,LINE,SPACE ; S TXT="Outpatient Listing" S SPACE=(IOM-$L(TXT))/2 W !?SPACE,TXT ; W !!,"Patient Name",?40,"Clinic",?70,"Appt. D/T",?110,"Active Scripts?" S $P(LINE,"=",IOM)="" W !,LINE Q ; FUHDR ; N TXT,LINE,SPACE ; S TXT="Future Scheduled Admissions" S SPACE=(IOM-$L(TXT))/2 W !?SPACE,TXT ; W !!,"Patient Name",?40,"Scheduled Admission",?80,"Ward",?110,"Active Scripts?" S $P(LINE,"=",IOM)="" W !,LINE Q