DGFFPLM1 ;ALB/SCK,ARF - FUGITIVE FELON PROGRAM LIST MANAGER - 2 ; 12/6/02
 ;;5.3;Registration;**485,1056**;Aug 13, 1993;Build 18
 ;
SEL(DFN) ;
 N DIC
 ;
 W ! S DIC="^DPT(",DIC(0)="AEQMZ"
 D ^DIC
 S DFN=+Y
 Q
 ;
EN(DFN,DGARY,DGSTART,DGCNT) ;
 N VAROOT,DGADD,VAPA,DGTMP,DGLINE,TXT,X,Y,DGDT,DGCLN,TEMP,DGFFP,TMPARY,DGWARD
 ;
 S VAPA("P")=""
 S VAROOT="DGADD" D ADD^VADPT
 K VAPA
 S VAROOT="DGTMP" D ADD^VADPT
 I '+DGTMP(9)>0 K DGTMP
 ;
 S DGLINE=DGSTART,DGCNT=0
 ;
 ; FF Program Information
 S DGFFP=$G(^DPT(DFN,"FFP"))
 S X=$$SETSTR^VALM1("Date Set:","",5,15)
 S X=$$SETSTR^VALM1($$FMTE^XLFDT($P(DGFFP,U,3),"D"),X,20,20)
 S X=$$SETSTR^VALM1("Set By:",X,40,12)
 S X=$$SETSTR^VALM1($$GET1^DIQ(200,$P(DGFFP,U,2),.01),X,53,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S X=$$SETSTR^VALM1("Date Cleared:","",5,15)
 S X=$$SETSTR^VALM1($$FMTE^XLFDT($P(DGFFP,U,5),"D"),X,20,20)
 S X=$$SETSTR^VALM1("Cleared By:",X,40,12)
 S X=$$SETSTR^VALM1($$GET1^DIQ(200,$P(DGFFP,U,4),.01),X,53,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S X=$$SETSTR^VALM1("Closing Remark:","",5,18)
 S X=$$SETSTR^VALM1($P(DGFFP,U,9),X,23,110)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 D SET(DGARY,DGLINE,"",.DGCNT) S DGLINE=DGLINE+1
 ;
 ; Address Information
 ; DG*5.3*1056 - replaced Permanent with Mailing on the following label
 S X=$$SETSTR^VALM1("Mailing Address:","",5,30)
 S X=$$SETSTR^VALM1("Temporary Address:",X,35,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S X=$$SETSTR^VALM1("==================","",5,30)
 S X=$$SETSTR^VALM1("==================",X,35,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S X=$$SETSTR^VALM1(DGADD(1),"",5,30)
 S X=$$SETSTR^VALM1($G(DGTMP(1)),X,35,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S X=$$SETSTR^VALM1(DGADD(2),"",5,30)
 S X=$$SETSTR^VALM1($G(DGTMP(2)),X,35,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S X=$$SETSTR^VALM1(DGADD(4),"",5,30)
 S X=$$SETSTR^VALM1($G(DGTMP(4)),X,35,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S X=$$SETSTR^VALM1($P(DGADD(5),U,2),"",5,30)
 S X=$$SETSTR^VALM1($P($G(DGTMP(5)),U,2),X,35,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S X=$$SETSTR^VALM1($P(DGADD(11),U,2),"",5,30)
 S X=$$SETSTR^VALM1($P($G(DGTMP(11)),U,2),X,35,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 I +$G(DGTMP(9))>0 D
 . S X=$$SETSTR^VALM1("Effective Date: ","",35,20)
 . S X=$$SETSTR^VALM1($P($G(DGTMP(9)),U,2),X,55,20)
 . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 . S X=$$SETSTR^VALM1("End Date: ",X,35,20)
 . S X=$$SETSTR^VALM1($P($G(DGTMP(10)),U,2),X,55,20)
 . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 N XCNT
 F XCNT=DGLINE:1:VALM("LINES") D
 . D SET(DGARY,DGLINE,"",.DGCNT) S DGLINE=DGLINE+1
 ;
 ; Inpatient Information
 N DGIN
 ;
 S VAROOT="DGIN"
 D IN5^VADPT
 I DGIN(1)>0 D
 . S X=$$SETSTR^VALM1("Last Inpatient Movement:","",5,30)
 . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 . S X=$$SETSTR^VALM1("========================",X,5,30)
 . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 . ;
 . S X=$$SETSTR^VALM1($P(DGIN(2),U,2),X,5,20)
 . S X=$$SETSTR^VALM1($$FMTE^XLFDT($P(DGIN(3),U,1),"D"),X,21,14)
 . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 . ;
 . S X="",X=$$SETSTR^VALM1("Room/Bed:",X,8,12)
 . S X=$$SETSTR^VALM1($P(DGIN(6),U,2),X,20,20)
 . S X=$$SETSTR^VALM1("Ward:",X,40,5)
 . S X=$$SETSTR^VALM1($P(DGIN(5),U,2),X,48,20)
 . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 . D SET(DGARY,DGLINE,"",.DGCNT) S DGLINE=DGLINE+1
 ;
 ; Future Scheduled Admission
 S X=$$SETSTR^VALM1("Future Scheduled Admissions:","",5,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 S X=$$SETSTR^VALM1("============================",X,5,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S TMPARY="^TMP(""DGFFPFU"",$J)"
 K @TMPARY
 D GETFUADM^DGFFP03(DFN,TMPARY)
 ;
 S DGDT=0
 F  S DGDT=$O(@TMPARY@(DGDT)) Q:'DGDT  D
 . S X=$$SETSTR^VALM1("Scheduled:","",5,10)
 . S X=$$SETSTR^VALM1($$FMTE^XLFDT(DGDT,"1P"),X,17,30)
 . S DGWARD=$P(@TMPARY@(DGDT),U,8)
 . S X=$$SETSTR^VALM1("Ward:",X,47,5)
 . S X=$$SETSTR^VALM1($$GET1^DIQ(42,DGWARD,.01),X,53,80)
 . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 D SET(DGARY,DGLINE,"",.DGCNT) S DGLINE=DGLINE+1
 D SET(DGARY,DGLINE,"",.DGCNT) S DGLINE=DGLINE+1
 K @TMPARY
 ;
 ; Outpatient Information
 N TEMP
 ;
 S TEMP="^TMP(""DGFFPOP"",$J)"
 K @TEMP
 D GETAPT^DGFFP03(DFN,TEMP)
 ;
 S X=""
 S X=$$SETSTR^VALM1("Future Appointments:",X,5,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 S X=$$SETSTR^VALM1("====================",X,5,30)
 D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 ;
 S DGCLN=""
 F  S DGCLN=$O(@TEMP@(DGCLN)) Q:DGCLN']""  D
 . S X=$$SETSTR^VALM1(DGCLN,"",5,30)
 . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 . S DGDT=0
 . F  S DGDT=$O(@TEMP@(DGCLN,DGDT)) Q:'DGDT  D
 . . S X=$$SETSTR^VALM1($$FMTE^XLFDT(DGDT,"1P"),"",10,40)
 . . D SET(DGARY,DGLINE,X,.DGCNT) S DGLINE=DGLINE+1
 K @TEMP
 D SET(DGARY,DGLINE,"",.DGCNT) S DGLINE=DGLINE+1
 D SET(DGARY,DGLINE,"",.DGCNT) S DGLINE=DGLINE+1
 Q
 ;
SET(DGARY,DGLINE,DGTEXT,DGCNT) ;
 N X
 ;
 S:DGLINE>DGCNT DGCNT=DGLINE
 S X=$S($D(^TMP(DGARY,$J,DGLINE,0)):^(0),1:"")
 S ^TMP(DGARY,$J,DGLINE,0)=DGTEXT
 S ^TMP(DGARY_"IDX",$J,DGLINE,DGLINE)=DGLINE
 S DGLINE=DGLINE+1
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDGFFPLM1   5379     printed  Sep 23, 2025@20:19:24                                                                                                                                                                                                    Page 2
DGFFPLM1  ;ALB/SCK,ARF - FUGITIVE FELON PROGRAM LIST MANAGER - 2 ; 12/6/02
 +1       ;;5.3;Registration;**485,1056**;Aug 13, 1993;Build 18
 +2       ;
SEL(DFN)  ;
 +1        NEW DIC
 +2       ;
 +3        WRITE !
           SET DIC="^DPT("
           SET DIC(0)="AEQMZ"
 +4        DO ^DIC
 +5        SET DFN=+Y
 +6        QUIT 
 +7       ;
EN(DFN,DGARY,DGSTART,DGCNT) ;
 +1        NEW VAROOT,DGADD,VAPA,DGTMP,DGLINE,TXT,X,Y,DGDT,DGCLN,TEMP,DGFFP,TMPARY,DGWARD
 +2       ;
 +3        SET VAPA("P")=""
 +4        SET VAROOT="DGADD"
           DO ADD^VADPT
 +5        KILL VAPA
 +6        SET VAROOT="DGTMP"
           DO ADD^VADPT
 +7        IF '+DGTMP(9)>0
               KILL DGTMP
 +8       ;
 +9        SET DGLINE=DGSTART
           SET DGCNT=0
 +10      ;
 +11      ; FF Program Information
 +12       SET DGFFP=$GET(^DPT(DFN,"FFP"))
 +13       SET X=$$SETSTR^VALM1("Date Set:","",5,15)
 +14       SET X=$$SETSTR^VALM1($$FMTE^XLFDT($PIECE(DGFFP,U,3),"D"),X,20,20)
 +15       SET X=$$SETSTR^VALM1("Set By:",X,40,12)
 +16       SET X=$$SETSTR^VALM1($$GET1^DIQ(200,$PIECE(DGFFP,U,2),.01),X,53,30)
 +17       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +18      ;
 +19       SET X=$$SETSTR^VALM1("Date Cleared:","",5,15)
 +20       SET X=$$SETSTR^VALM1($$FMTE^XLFDT($PIECE(DGFFP,U,5),"D"),X,20,20)
 +21       SET X=$$SETSTR^VALM1("Cleared By:",X,40,12)
 +22       SET X=$$SETSTR^VALM1($$GET1^DIQ(200,$PIECE(DGFFP,U,4),.01),X,53,30)
 +23       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +24      ;
 +25       SET X=$$SETSTR^VALM1("Closing Remark:","",5,18)
 +26       SET X=$$SETSTR^VALM1($PIECE(DGFFP,U,9),X,23,110)
 +27       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +28      ;
 +29       DO SET(DGARY,DGLINE,"",.DGCNT)
           SET DGLINE=DGLINE+1
 +30      ;
 +31      ; Address Information
 +32      ; DG*5.3*1056 - replaced Permanent with Mailing on the following label
 +33       SET X=$$SETSTR^VALM1("Mailing Address:","",5,30)
 +34       SET X=$$SETSTR^VALM1("Temporary Address:",X,35,30)
 +35       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +36      ;
 +37       SET X=$$SETSTR^VALM1("==================","",5,30)
 +38       SET X=$$SETSTR^VALM1("==================",X,35,30)
 +39       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +40      ;
 +41       SET X=$$SETSTR^VALM1(DGADD(1),"",5,30)
 +42       SET X=$$SETSTR^VALM1($GET(DGTMP(1)),X,35,30)
 +43       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +44      ;
 +45       SET X=$$SETSTR^VALM1(DGADD(2),"",5,30)
 +46       SET X=$$SETSTR^VALM1($GET(DGTMP(2)),X,35,30)
 +47       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +48      ;
 +49       SET X=$$SETSTR^VALM1(DGADD(4),"",5,30)
 +50       SET X=$$SETSTR^VALM1($GET(DGTMP(4)),X,35,30)
 +51       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +52      ;
 +53       SET X=$$SETSTR^VALM1($PIECE(DGADD(5),U,2),"",5,30)
 +54       SET X=$$SETSTR^VALM1($PIECE($GET(DGTMP(5)),U,2),X,35,30)
 +55       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +56      ;
 +57       SET X=$$SETSTR^VALM1($PIECE(DGADD(11),U,2),"",5,30)
 +58       SET X=$$SETSTR^VALM1($PIECE($GET(DGTMP(11)),U,2),X,35,30)
 +59       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +60      ;
 +61       IF +$GET(DGTMP(9))>0
               Begin DoDot:1
 +62               SET X=$$SETSTR^VALM1("Effective Date: ","",35,20)
 +63               SET X=$$SETSTR^VALM1($PIECE($GET(DGTMP(9)),U,2),X,55,20)
 +64               DO SET(DGARY,DGLINE,X,.DGCNT)
                   SET DGLINE=DGLINE+1
 +65               SET X=$$SETSTR^VALM1("End Date: ",X,35,20)
 +66               SET X=$$SETSTR^VALM1($PIECE($GET(DGTMP(10)),U,2),X,55,20)
 +67               DO SET(DGARY,DGLINE,X,.DGCNT)
                   SET DGLINE=DGLINE+1
               End DoDot:1
 +68      ;
 +69       NEW XCNT
 +70       FOR XCNT=DGLINE:1:VALM("LINES")
               Begin DoDot:1
 +71               DO SET(DGARY,DGLINE,"",.DGCNT)
                   SET DGLINE=DGLINE+1
               End DoDot:1
 +72      ;
 +73      ; Inpatient Information
 +74       NEW DGIN
 +75      ;
 +76       SET VAROOT="DGIN"
 +77       DO IN5^VADPT
 +78       IF DGIN(1)>0
               Begin DoDot:1
 +79               SET X=$$SETSTR^VALM1("Last Inpatient Movement:","",5,30)
 +80               DO SET(DGARY,DGLINE,X,.DGCNT)
                   SET DGLINE=DGLINE+1
 +81               SET X=$$SETSTR^VALM1("========================",X,5,30)
 +82               DO SET(DGARY,DGLINE,X,.DGCNT)
                   SET DGLINE=DGLINE+1
 +83      ;
 +84               SET X=$$SETSTR^VALM1($PIECE(DGIN(2),U,2),X,5,20)
 +85               SET X=$$SETSTR^VALM1($$FMTE^XLFDT($PIECE(DGIN(3),U,1),"D"),X,21,14)
 +86               DO SET(DGARY,DGLINE,X,.DGCNT)
                   SET DGLINE=DGLINE+1
 +87      ;
 +88               SET X=""
                   SET X=$$SETSTR^VALM1("Room/Bed:",X,8,12)
 +89               SET X=$$SETSTR^VALM1($PIECE(DGIN(6),U,2),X,20,20)
 +90               SET X=$$SETSTR^VALM1("Ward:",X,40,5)
 +91               SET X=$$SETSTR^VALM1($PIECE(DGIN(5),U,2),X,48,20)
 +92               DO SET(DGARY,DGLINE,X,.DGCNT)
                   SET DGLINE=DGLINE+1
 +93               DO SET(DGARY,DGLINE,"",.DGCNT)
                   SET DGLINE=DGLINE+1
               End DoDot:1
 +94      ;
 +95      ; Future Scheduled Admission
 +96       SET X=$$SETSTR^VALM1("Future Scheduled Admissions:","",5,30)
 +97       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +98       SET X=$$SETSTR^VALM1("============================",X,5,30)
 +99       DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +100     ;
 +101      SET TMPARY="^TMP(""DGFFPFU"",$J)"
 +102      KILL @TMPARY
 +103      DO GETFUADM^DGFFP03(DFN,TMPARY)
 +104     ;
 +105      SET DGDT=0
 +106      FOR 
               SET DGDT=$ORDER(@TMPARY@(DGDT))
               if 'DGDT
                   QUIT 
               Begin DoDot:1
 +107              SET X=$$SETSTR^VALM1("Scheduled:","",5,10)
 +108              SET X=$$SETSTR^VALM1($$FMTE^XLFDT(DGDT,"1P"),X,17,30)
 +109              SET DGWARD=$PIECE(@TMPARY@(DGDT),U,8)
 +110              SET X=$$SETSTR^VALM1("Ward:",X,47,5)
 +111              SET X=$$SETSTR^VALM1($$GET1^DIQ(42,DGWARD,.01),X,53,80)
 +112              DO SET(DGARY,DGLINE,X,.DGCNT)
                   SET DGLINE=DGLINE+1
               End DoDot:1
 +113     ;
 +114      DO SET(DGARY,DGLINE,"",.DGCNT)
           SET DGLINE=DGLINE+1
 +115      DO SET(DGARY,DGLINE,"",.DGCNT)
           SET DGLINE=DGLINE+1
 +116      KILL @TMPARY
 +117     ;
 +118     ; Outpatient Information
 +119      NEW TEMP
 +120     ;
 +121      SET TEMP="^TMP(""DGFFPOP"",$J)"
 +122      KILL @TEMP
 +123      DO GETAPT^DGFFP03(DFN,TEMP)
 +124     ;
 +125      SET X=""
 +126      SET X=$$SETSTR^VALM1("Future Appointments:",X,5,30)
 +127      DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +128      SET X=$$SETSTR^VALM1("====================",X,5,30)
 +129      DO SET(DGARY,DGLINE,X,.DGCNT)
           SET DGLINE=DGLINE+1
 +130     ;
 +131      SET DGCLN=""
 +132      FOR 
               SET DGCLN=$ORDER(@TEMP@(DGCLN))
               if DGCLN']""
                   QUIT 
               Begin DoDot:1
 +133              SET X=$$SETSTR^VALM1(DGCLN,"",5,30)
 +134              DO SET(DGARY,DGLINE,X,.DGCNT)
                   SET DGLINE=DGLINE+1
 +135              SET DGDT=0
 +136              FOR 
                       SET DGDT=$ORDER(@TEMP@(DGCLN,DGDT))
                       if 'DGDT
                           QUIT 
                       Begin DoDot:2
 +137                      SET X=$$SETSTR^VALM1($$FMTE^XLFDT(DGDT,"1P"),"",10,40)
 +138                      DO SET(DGARY,DGLINE,X,.DGCNT)
                           SET DGLINE=DGLINE+1
                       End DoDot:2
               End DoDot:1
 +139      KILL @TEMP
 +140      DO SET(DGARY,DGLINE,"",.DGCNT)
           SET DGLINE=DGLINE+1
 +141      DO SET(DGARY,DGLINE,"",.DGCNT)
           SET DGLINE=DGLINE+1
 +142      QUIT 
 +143     ;
SET(DGARY,DGLINE,DGTEXT,DGCNT) ;
 +1        NEW X
 +2       ;
 +3        if DGLINE>DGCNT
               SET DGCNT=DGLINE
 +4        SET X=$SELECT($DATA(^TMP(DGARY,$JOB,DGLINE,0)):^(0),1:"")
 +5        SET ^TMP(DGARY,$JOB,DGLINE,0)=DGTEXT
 +6        SET ^TMP(DGARY_"IDX",$JOB,DGLINE,DGLINE)=DGLINE
 +7        SET DGLINE=DGLINE+1
 +8        QUIT