DGPSEUDO ;ALB/ERC - REPORTS FOR PSEUDO SSN ; 1/17/06 9:58am
 ;;5.3;Registration;**653**;Aug 13, 1993;Build 2
 ;
 ;creates a report of all patients with pseudo SSNs
 ;can call for veteran, non-veterans or both
 ;can call for one Pseudo SSN Reason or can call for all reasons
 ;sorted by reason
TSK1 ;
 N DGQUIT,DGREAS,DGREASON,DGTXT,DGQ,DGVET,DGXREAS,DGXVET
 N ZTRTN,ZTDESC,ZTSK,ZTIO,ZTDTH,POP,IO,IOBS,IOF,IOHG,IOM,ION,IOPAR
 N IOS,IOSL,IOST,IOT,IOUPAR,IOXY,%ZIS,ZTSAVE
 K ^TMP("DGEVC",$J)
 S DGQUIT=0
 D QUESVET Q:DGQUIT
 D QUESREAS Q:DGQUIT
 S %ZIS="Q" D ^%ZIS I $G(POP) D ^%ZISC,HOME^%ZIS W !,"Job Terminated!" Q
 I $D(IO("Q")) D  Q
 . S ZTRTN="RPT1^DGPSEUDO"
 . S ZTDESC="PATIENTS WITH PSEUDO SOCIAL SECURITY NUMBERS"
 . S (ZTSAVE("DGXREAS"),ZTSAVE("DGXVET"))=""
 . D ^%ZTLOAD
 . S DGTXT=$S($G(ZTSK):"Task: "_ZTSK_" Queued.",1:"Error: Process not queued!")
 . W !,DGTXT
RPT1 ;
 N DGC,DGPAGE,DGXXVET
 S DGPAGE=0
 S DGC=0
 S DGXXVET=DGXVET
 D LOOP1
 D HDR1
 I $G(DGC)'>0 W !!?25,"****NO RECORDS TO REPORT****" W ! D PAUSE Q
 D REP1(DGXVET,DGXREAS)
 D ^%ZISC,HOME^%ZIS
 K ^TMP("DGEVC",$J)
 Q
QUESVET ;ask user if report should be veterans, non-veterans, or both
 N DGBOTH,DIR,DIRUT,DIROUT,X
 W !!!,?10,"REPORT OF PATIENTS WITH PSEUDO SOCIAL SECURITY NUMBERS"
 W !?5,"This report excludes deceased patients, non-user enrollees and"
 W !?5,"with no Integration Control Numbers (ICN).",!
 S DIR("A",1)="Do you want this report for Veterans, Non-Veterans or both?"
 S DIR("A",2)="1. Veterans only"
 S DIR("A",3)="2. Non-Veterans only"
 S DIR("A",4)="3. Veterans and Non-Veterans"
 S DIR("A")="Select"
 S DIR("B")=1
 S DIR("?")="Choose a report with Veterans only, Non-Veterans only or both."
 S DIR(0)="N^1:3"
 D ^DIR
 I $D(DIRUT)!($D(DIROUT)) S DGQUIT=1
 S DGXVET=$S(X=1:"VET",X=2:"NON",1:"BOTH")
 Q
 ;
QUESREAS ;ask user which Pseudo SSN Reason, or all
 N DIR,DIRUT,DIROUT,X
 W !
 S DIR("A",1)="Select which Pseudo SSN Reason(s) to be included in the report."
 S DIR("A",2)="1. Refused to Provide"
 S DIR("A",3)="2. SSN Unknown/Follow-up Required"
 S DIR("A",4)="3. No SSN Assigned"
 S DIR("A",5)="4. No reason on file"
 S DIR("A",6)="5. All of the above"
 S DIR("A")="Select"
 S DIR("?")="Select one of the Reasons for having a Pseudo SSN."
 S DIR(0)="N^1:5"
 D ^DIR
 I $D(DIRUT)!($D(DIROUT)) S DGQUIT=1
 S DGXREAS=$S(X=1:"REFUSED TO PROVIDE",X=2:"SSN UNKNOWN/FOLLOW-UP REQUIRED",X=3:"NO SSN ASSIGNED",X=4:"NULL",1:"ALL")
 Q
LOOP1 ;
 I $E(IOST,1,2)["C-" U IO(0) W !!,"Scanning file...."
 U IO
 N DGDFN,DGX
 K ^TMP("DGEVC",$J)
 S ^TMP("DGEVC",$J,"COUNT","VET","REFUSED TO PROVIDE")=0
 S ^TMP("DGEVC",$J,"COUNT","VET","SSN UNKNOWN/FOLLOW-UP REQUIRED")=0
 S ^TMP("DGEVC",$J,"COUNT","VET","NO SSN ASSIGNED")=0
 S ^TMP("DGEVC",$J,"COUNT","VET","NULL")=0
 S ^TMP("DGEVC",$J,"COUNT","NON","REFUSED TO PROVIDE")=0
 S ^TMP("DGEVC",$J,"COUNT","NON","SSN UNKNOWN/FOLLOW-UP REQUIRED")=0
 S ^TMP("DGEVC",$J,"COUNT","NON","NO SSN ASSIGNED")=0
 S ^TMP("DGEVC",$J,"COUNT","NON","NULL")=0
 S DGX=999999999
 F  S DGX=$O(^DPT("SSN",DGX)) Q:DGX=""  D
 . I DGX'["P" Q
 . S DGDFN=""
 . F  S DGDFN=$O(^DPT("SSN",DGX,DGDFN)) Q:'DGDFN  D
 . . I '$D(^DPT(DGDFN,0)) Q
 . . D PSEU1
 Q
PSEU1 ;
 N DGARR,DGDOB,DGEC,DGERR,DGNAM,DGREASON,DGSSN,DGUSER,DGVET
 I $D(^TMP("DGEVC",$J,DGDFN)) Q
 D GETS^DIQ(2,DGDFN_",",".01;.03;.09;.0906;.351;.361;.3617;991.01;1901","EI","DGARR","DGERR")
 I $D(DGERR) K DGERR Q
 I $G(DGARR(2,DGDFN_",",.351,"I"))]"" K DGARR Q
 I $G(DGARR(2,DGDFN_",",991.01,"I"))']"" K DGARR Q
 S DGVET=$S($G(DGARR(2,DGDFN_",",1901,"I"))="Y":"VET",$G(DGARR(2,DGDFN_",",1901,"I"))="N":"NON",1:"NON")
 I $G(DGVET)]"",DGXVET'="BOTH",DGVET'=DGXVET K DGARR Q
 S DGREASON=$G(DGARR(2,DGDFN_",",.0906,"E"))
 I $G(DGREASON)']"" S DGREASON="NULL"
 I DGXREAS'="ALL",DGXREAS'=DGREASON K DGARR Q
 S DGUSER=$G(DGARR(2,DGDFN_",",.3617,"I"))
 I DGVET="YES",($G(DGUSER)']"") K DGARR Q
 S DGUSER=$$FY($E(DGUSER,1,3)+1700)
 I DGVET="VET",$G(DGUSER)'=1 K DGARR Q
 S DGNAM=$G(DGARR(2,DGDFN_",",.01,"I"))
 I $G(DGNAM)']"" K DGARR Q
 S DGDOB=$G(DGARR(2,DGDFN_",",.03,"E"))
 S DGEC=$G(DGARR(2,DGDFN_",",.361,"E"))
 S DGSSN=DGARR(2,DGDFN_",",.09,"I")
 I DGX'=DGSSN K DGARR Q
 S DGC=DGC+1
 S ^TMP("DGEVC",$J,DGVET,DGREASON,DGNAM,DGDFN)=$G(DGSSN)_"^"_$G(DGDOB)_"^"_$G(DGEC)
 S ^TMP("DGEVC",$J,"COUNT")=DGC
 S ^TMP("DGEVC",$J,"COUNT",DGVET,DGREASON)=$G(^TMP("DGEVC",$J,"COUNT",DGVET,DGREASON))+1
 Q
FY(DGFY) ;determine if user enrollee date is current FY or later
 N DGYEAR
 S DGYEAR=$E(DT,1,3)+1700
 I $E(DT,4,5)>9 S DGYEAR=DGYEAR+1
 Q $S(DGFY>DGYEAR:1,DGFY=DGYEAR:1,1:0)
HDR1 ;
 N DGDATE,DGL,DGLINE,DGT,Y ;display veteran, non-vet or both
 I $E(IOST,1,2)["C-" W @IOF
 S DGPAGE=DGPAGE+1
 W !?((IOM-44)\2),"Patients with Pseudo Social Security Numbers",?70,"Page:"_DGPAGE
 S DGT=$S(DGXXVET="VET":"Veterans only",DGXXVET="NON":"Non-Veterans only",1:"Veterans and Non-Veterans")
 S DGT="Report shows "_DGT
 S DGL=$L(DGT)
 W !?((IOM-DGL)\2),DGT
 S Y=DT X ^DD("DD") S DGDATE=Y
 W !?62,"Date: "_$G(DGDATE)
 W !!,"PATIENT",?32,"PSEUDO SSN",?44,"BIRTHDATE",?56,"PRIMARY ELIGIBILITY CODE"
 N DGZ
 W !
 F DGZ=1:1:IOM W "-" ;S $P(DGLINE,"-",DGZ)=""
 Q
REP1(DGXVET,DGXREAS) ;
 N DGCT,DGV
 S DGCT=0
 I DGXVET="BOTH" D
 . F DGV="VET","NON" D
 . . Q:'$D(^TMP("DGEVC",$J,DGV))
 . . Q:$G(DGQ)
 . . I $E(IOST,1,2)["C-",($Y>(IOSL-4)) D PAUSE Q:$G(DGQ)
 . . I $Y>(IOSL-4) D
 . . . W @IOF
 . . . D HDR1
 . . W !!?5,"Report for "_$S(DGV="VET":"Veterans",1:"Non-Veterans")
 . . D VET(DGV)
 I DGXVET'="BOTH" D VET(DGXVET)
 I $G(DGC)=DGCT W !!?29,"Patients with Pseudo SSNs: "_DGCT
 I $E(IOST,1,2)["C-",('$G(DGQ)) W ! D PAUSE
 Q
VET(DGXVET) ;
 N DGR
 I DGXREAS="ALL" D
 . F DGR="REFUSED TO PROVIDE","SSN UNKNOWN/FOLLOW-UP REQUIRED","NO SSN ASSIGNED","NULL" D
 . . Q:$G(DGQ)
 . . D REAS(DGXVET,DGR)
 I DGXREAS'="ALL" D
 . D REAS(DGXVET,DGXREAS)
 Q
REAS(DGXVET,DGXRR) ;
 N DGN,DGNAM,DGDFN
 S DGDFN=0
 I $E(IOST,1,2)["C-",($Y>(IOSL-4)) D PAUSE Q:$G(DGQ)
 I $Y>(IOSL-4) D
 . W @IOF
 . D HDR1
 I $O(^TMP("DGEVC",$J,DGXVET,DGXRR,""))]"" W !!?10,"Pseudo SSN Reason: "_$S(DGXRR="NULL":"<NONE ENTERED>",1:DGXRR)
 S DGNAM=""
 F  S DGNAM=$O(^TMP("DGEVC",$J,DGXVET,DGXRR,DGNAM)) Q:DGNAM']""!($G(DGQ))  D
 . F  S DGDFN=$O(^TMP("DGEVC",$J,DGXVET,DGXRR,DGNAM,DGDFN)) Q:DGDFN']""!($G(DGQ))  D
 . . I $E(IOST,1,2)["C-",($Y>(IOSL-4)) D PAUSE Q:$G(DGQ)
 . . I $Y>(IOSL-4) D
 . . . W @IOF
 . . . D HDR1
 . . S DGN=^TMP("DGEVC",$J,DGXVET,DGXRR,DGNAM,DGDFN)
 . . W !,DGNAM,?32,$P(DGN,U),?44,$P(DGN,U,2)
 . . I $P(DGN,U,3)["SERVICE CONNECTED" S $P(DGN,U,3)="SC 50% TO 100%"
 . . W ?56,$E($P(DGN,U,3),1,23)
 . . S DGCT=$G(DGCT)+1
 I ^TMP("DGEVC",$J,"COUNT",DGXVET,DGXRR)>0,(DGXREAS="ALL") W !?46,"Subtotal: "_^TMP("DGEVC",$J,"COUNT",DGXVET,DGXRR)
 Q
 ;
PAUSE ;
 N DIR,X,Y
 S DGQ=0
 S DIR(0)="E"
 D ^DIR
 I '+Y!($D(DIRUT)) S DGQ=1
 Q
 ;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDGPSEUDO   6933     printed  Sep 23, 2025@20:27:04                                                                                                                                                                                                    Page 2
DGPSEUDO  ;ALB/ERC - REPORTS FOR PSEUDO SSN ; 1/17/06 9:58am
 +1       ;;5.3;Registration;**653**;Aug 13, 1993;Build 2
 +2       ;
 +3       ;creates a report of all patients with pseudo SSNs
 +4       ;can call for veteran, non-veterans or both
 +5       ;can call for one Pseudo SSN Reason or can call for all reasons
 +6       ;sorted by reason
TSK1      ;
 +1        NEW DGQUIT,DGREAS,DGREASON,DGTXT,DGQ,DGVET,DGXREAS,DGXVET
 +2        NEW ZTRTN,ZTDESC,ZTSK,ZTIO,ZTDTH,POP,IO,IOBS,IOF,IOHG,IOM,ION,IOPAR
 +3        NEW IOS,IOSL,IOST,IOT,IOUPAR,IOXY,%ZIS,ZTSAVE
 +4        KILL ^TMP("DGEVC",$JOB)
 +5        SET DGQUIT=0
 +6        DO QUESVET
           if DGQUIT
               QUIT 
 +7        DO QUESREAS
           if DGQUIT
               QUIT 
 +8        SET %ZIS="Q"
           DO ^%ZIS
           IF $GET(POP)
               DO ^%ZISC
               DO HOME^%ZIS
               WRITE !,"Job Terminated!"
               QUIT 
 +9        IF $DATA(IO("Q"))
               Begin DoDot:1
 +10               SET ZTRTN="RPT1^DGPSEUDO"
 +11               SET ZTDESC="PATIENTS WITH PSEUDO SOCIAL SECURITY NUMBERS"
 +12               SET (ZTSAVE("DGXREAS"),ZTSAVE("DGXVET"))=""
 +13               DO ^%ZTLOAD
 +14               SET DGTXT=$SELECT($GET(ZTSK):"Task: "_ZTSK_" Queued.",1:"Error: Process not queued!")
 +15               WRITE !,DGTXT
               End DoDot:1
               QUIT 
RPT1      ;
 +1        NEW DGC,DGPAGE,DGXXVET
 +2        SET DGPAGE=0
 +3        SET DGC=0
 +4        SET DGXXVET=DGXVET
 +5        DO LOOP1
 +6        DO HDR1
 +7        IF $GET(DGC)'>0
               WRITE !!?25,"****NO RECORDS TO REPORT****"
               WRITE !
               DO PAUSE
               QUIT 
 +8        DO REP1(DGXVET,DGXREAS)
 +9        DO ^%ZISC
           DO HOME^%ZIS
 +10       KILL ^TMP("DGEVC",$JOB)
 +11       QUIT 
QUESVET   ;ask user if report should be veterans, non-veterans, or both
 +1        NEW DGBOTH,DIR,DIRUT,DIROUT,X
 +2        WRITE !!!,?10,"REPORT OF PATIENTS WITH PSEUDO SOCIAL SECURITY NUMBERS"
 +3        WRITE !?5,"This report excludes deceased patients, non-user enrollees and"
 +4        WRITE !?5,"with no Integration Control Numbers (ICN).",!
 +5        SET DIR("A",1)="Do you want this report for Veterans, Non-Veterans or both?"
 +6        SET DIR("A",2)="1. Veterans only"
 +7        SET DIR("A",3)="2. Non-Veterans only"
 +8        SET DIR("A",4)="3. Veterans and Non-Veterans"
 +9        SET DIR("A")="Select"
 +10       SET DIR("B")=1
 +11       SET DIR("?")="Choose a report with Veterans only, Non-Veterans only or both."
 +12       SET DIR(0)="N^1:3"
 +13       DO ^DIR
 +14       IF $DATA(DIRUT)!($DATA(DIROUT))
               SET DGQUIT=1
 +15       SET DGXVET=$SELECT(X=1:"VET",X=2:"NON",1:"BOTH")
 +16       QUIT 
 +17      ;
QUESREAS  ;ask user which Pseudo SSN Reason, or all
 +1        NEW DIR,DIRUT,DIROUT,X
 +2        WRITE !
 +3        SET DIR("A",1)="Select which Pseudo SSN Reason(s) to be included in the report."
 +4        SET DIR("A",2)="1. Refused to Provide"
 +5        SET DIR("A",3)="2. SSN Unknown/Follow-up Required"
 +6        SET DIR("A",4)="3. No SSN Assigned"
 +7        SET DIR("A",5)="4. No reason on file"
 +8        SET DIR("A",6)="5. All of the above"
 +9        SET DIR("A")="Select"
 +10       SET DIR("?")="Select one of the Reasons for having a Pseudo SSN."
 +11       SET DIR(0)="N^1:5"
 +12       DO ^DIR
 +13       IF $DATA(DIRUT)!($DATA(DIROUT))
               SET DGQUIT=1
 +14       SET DGXREAS=$SELECT(X=1:"REFUSED TO PROVIDE",X=2:"SSN UNKNOWN/FOLLOW-UP REQUIRED",X=3:"NO SSN ASSIGNED",X=4:"NULL",1:"ALL")
 +15       QUIT 
LOOP1     ;
 +1        IF $EXTRACT(IOST,1,2)["C-"
               USE IO(0)
               WRITE !!,"Scanning file...."
 +2        USE IO
 +3        NEW DGDFN,DGX
 +4        KILL ^TMP("DGEVC",$JOB)
 +5        SET ^TMP("DGEVC",$JOB,"COUNT","VET","REFUSED TO PROVIDE")=0
 +6        SET ^TMP("DGEVC",$JOB,"COUNT","VET","SSN UNKNOWN/FOLLOW-UP REQUIRED")=0
 +7        SET ^TMP("DGEVC",$JOB,"COUNT","VET","NO SSN ASSIGNED")=0
 +8        SET ^TMP("DGEVC",$JOB,"COUNT","VET","NULL")=0
 +9        SET ^TMP("DGEVC",$JOB,"COUNT","NON","REFUSED TO PROVIDE")=0
 +10       SET ^TMP("DGEVC",$JOB,"COUNT","NON","SSN UNKNOWN/FOLLOW-UP REQUIRED")=0
 +11       SET ^TMP("DGEVC",$JOB,"COUNT","NON","NO SSN ASSIGNED")=0
 +12       SET ^TMP("DGEVC",$JOB,"COUNT","NON","NULL")=0
 +13       SET DGX=999999999
 +14       FOR 
               SET DGX=$ORDER(^DPT("SSN",DGX))
               if DGX=""
                   QUIT 
               Begin DoDot:1
 +15               IF DGX'["P"
                       QUIT 
 +16               SET DGDFN=""
 +17               FOR 
                       SET DGDFN=$ORDER(^DPT("SSN",DGX,DGDFN))
                       if 'DGDFN
                           QUIT 
                       Begin DoDot:2
 +18                       IF '$DATA(^DPT(DGDFN,0))
                               QUIT 
 +19                       DO PSEU1
                       End DoDot:2
               End DoDot:1
 +20       QUIT 
PSEU1     ;
 +1        NEW DGARR,DGDOB,DGEC,DGERR,DGNAM,DGREASON,DGSSN,DGUSER,DGVET
 +2        IF $DATA(^TMP("DGEVC",$JOB,DGDFN))
               QUIT 
 +3        DO GETS^DIQ(2,DGDFN_",",".01;.03;.09;.0906;.351;.361;.3617;991.01;1901","EI","DGARR","DGERR")
 +4        IF $DATA(DGERR)
               KILL DGERR
               QUIT 
 +5        IF $GET(DGARR(2,DGDFN_",",.351,"I"))]""
               KILL DGARR
               QUIT 
 +6        IF $GET(DGARR(2,DGDFN_",",991.01,"I"))']""
               KILL DGARR
               QUIT 
 +7        SET DGVET=$SELECT($GET(DGARR(2,DGDFN_",",1901,"I"))="Y":"VET",$GET(DGARR(2,DGDFN_",",1901,"I"))="N":"NON",1:"NON")
 +8        IF $GET(DGVET)]""
               IF DGXVET'="BOTH"
                   IF DGVET'=DGXVET
                       KILL DGARR
                       QUIT 
 +9        SET DGREASON=$GET(DGARR(2,DGDFN_",",.0906,"E"))
 +10       IF $GET(DGREASON)']""
               SET DGREASON="NULL"
 +11       IF DGXREAS'="ALL"
               IF DGXREAS'=DGREASON
                   KILL DGARR
                   QUIT 
 +12       SET DGUSER=$GET(DGARR(2,DGDFN_",",.3617,"I"))
 +13       IF DGVET="YES"
               IF ($GET(DGUSER)']"")
                   KILL DGARR
                   QUIT 
 +14       SET DGUSER=$$FY($EXTRACT(DGUSER,1,3)+1700)
 +15       IF DGVET="VET"
               IF $GET(DGUSER)'=1
                   KILL DGARR
                   QUIT 
 +16       SET DGNAM=$GET(DGARR(2,DGDFN_",",.01,"I"))
 +17       IF $GET(DGNAM)']""
               KILL DGARR
               QUIT 
 +18       SET DGDOB=$GET(DGARR(2,DGDFN_",",.03,"E"))
 +19       SET DGEC=$GET(DGARR(2,DGDFN_",",.361,"E"))
 +20       SET DGSSN=DGARR(2,DGDFN_",",.09,"I")
 +21       IF DGX'=DGSSN
               KILL DGARR
               QUIT 
 +22       SET DGC=DGC+1
 +23       SET ^TMP("DGEVC",$JOB,DGVET,DGREASON,DGNAM,DGDFN)=$GET(DGSSN)_"^"_$GET(DGDOB)_"^"_$GET(DGEC)
 +24       SET ^TMP("DGEVC",$JOB,"COUNT")=DGC
 +25       SET ^TMP("DGEVC",$JOB,"COUNT",DGVET,DGREASON)=$GET(^TMP("DGEVC",$JOB,"COUNT",DGVET,DGREASON))+1
 +26       QUIT 
FY(DGFY)  ;determine if user enrollee date is current FY or later
 +1        NEW DGYEAR
 +2        SET DGYEAR=$EXTRACT(DT,1,3)+1700
 +3        IF $EXTRACT(DT,4,5)>9
               SET DGYEAR=DGYEAR+1
 +4        QUIT $SELECT(DGFY>DGYEAR:1,DGFY=DGYEAR:1,1:0)
HDR1      ;
 +1       ;display veteran, non-vet or both
           NEW DGDATE,DGL,DGLINE,DGT,Y
 +2        IF $EXTRACT(IOST,1,2)["C-"
               WRITE @IOF
 +3        SET DGPAGE=DGPAGE+1
 +4        WRITE !?((IOM-44)\2),"Patients with Pseudo Social Security Numbers",?70,"Page:"_DGPAGE
 +5        SET DGT=$SELECT(DGXXVET="VET":"Veterans only",DGXXVET="NON":"Non-Veterans only",1:"Veterans and Non-Veterans")
 +6        SET DGT="Report shows "_DGT
 +7        SET DGL=$LENGTH(DGT)
 +8        WRITE !?((IOM-DGL)\2),DGT
 +9        SET Y=DT
           XECUTE ^DD("DD")
           SET DGDATE=Y
 +10       WRITE !?62,"Date: "_$GET(DGDATE)
 +11       WRITE !!,"PATIENT",?32,"PSEUDO SSN",?44,"BIRTHDATE",?56,"PRIMARY ELIGIBILITY CODE"
 +12       NEW DGZ
 +13       WRITE !
 +14      ;S $P(DGLINE,"-",DGZ)=""
           FOR DGZ=1:1:IOM
               WRITE "-"
 +15       QUIT 
REP1(DGXVET,DGXREAS) ;
 +1        NEW DGCT,DGV
 +2        SET DGCT=0
 +3        IF DGXVET="BOTH"
               Begin DoDot:1
 +4                FOR DGV="VET","NON"
                       Begin DoDot:2
 +5                        if '$DATA(^TMP("DGEVC",$JOB,DGV))
                               QUIT 
 +6                        if $GET(DGQ)
                               QUIT 
 +7                        IF $EXTRACT(IOST,1,2)["C-"
                               IF ($Y>(IOSL-4))
                                   DO PAUSE
                                   if $GET(DGQ)
                                       QUIT 
 +8                        IF $Y>(IOSL-4)
                               Begin DoDot:3
 +9                                WRITE @IOF
 +10                               DO HDR1
                               End DoDot:3
 +11                       WRITE !!?5,"Report for "_$SELECT(DGV="VET":"Veterans",1:"Non-Veterans")
 +12                       DO VET(DGV)
                       End DoDot:2
               End DoDot:1
 +13       IF DGXVET'="BOTH"
               DO VET(DGXVET)
 +14       IF $GET(DGC)=DGCT
               WRITE !!?29,"Patients with Pseudo SSNs: "_DGCT
 +15       IF $EXTRACT(IOST,1,2)["C-"
               IF ('$GET(DGQ))
                   WRITE !
                   DO PAUSE
 +16       QUIT 
VET(DGXVET) ;
 +1        NEW DGR
 +2        IF DGXREAS="ALL"
               Begin DoDot:1
 +3                FOR DGR="REFUSED TO PROVIDE","SSN UNKNOWN/FOLLOW-UP REQUIRED","NO SSN ASSIGNED","NULL"
                       Begin DoDot:2
 +4                        if $GET(DGQ)
                               QUIT 
 +5                        DO REAS(DGXVET,DGR)
                       End DoDot:2
               End DoDot:1
 +6        IF DGXREAS'="ALL"
               Begin DoDot:1
 +7                DO REAS(DGXVET,DGXREAS)
               End DoDot:1
 +8        QUIT 
REAS(DGXVET,DGXRR) ;
 +1        NEW DGN,DGNAM,DGDFN
 +2        SET DGDFN=0
 +3        IF $EXTRACT(IOST,1,2)["C-"
               IF ($Y>(IOSL-4))
                   DO PAUSE
                   if $GET(DGQ)
                       QUIT 
 +4        IF $Y>(IOSL-4)
               Begin DoDot:1
 +5                WRITE @IOF
 +6                DO HDR1
               End DoDot:1
 +7        IF $ORDER(^TMP("DGEVC",$JOB,DGXVET,DGXRR,""))]""
               WRITE !!?10,"Pseudo SSN Reason: "_$SELECT(DGXRR="NULL":"<NONE ENTERED>",1:DGXRR)
 +8        SET DGNAM=""
 +9        FOR 
               SET DGNAM=$ORDER(^TMP("DGEVC",$JOB,DGXVET,DGXRR,DGNAM))
               if DGNAM']""!($GET(DGQ))
                   QUIT 
               Begin DoDot:1
 +10               FOR 
                       SET DGDFN=$ORDER(^TMP("DGEVC",$JOB,DGXVET,DGXRR,DGNAM,DGDFN))
                       if DGDFN']""!($GET(DGQ))
                           QUIT 
                       Begin DoDot:2
 +11                       IF $EXTRACT(IOST,1,2)["C-"
                               IF ($Y>(IOSL-4))
                                   DO PAUSE
                                   if $GET(DGQ)
                                       QUIT 
 +12                       IF $Y>(IOSL-4)
                               Begin DoDot:3
 +13                               WRITE @IOF
 +14                               DO HDR1
                               End DoDot:3
 +15                       SET DGN=^TMP("DGEVC",$JOB,DGXVET,DGXRR,DGNAM,DGDFN)
 +16                       WRITE !,DGNAM,?32,$PIECE(DGN,U),?44,$PIECE(DGN,U,2)
 +17                       IF $PIECE(DGN,U,3)["SERVICE CONNECTED"
                               SET $PIECE(DGN,U,3)="SC 50% TO 100%"
 +18                       WRITE ?56,$EXTRACT($PIECE(DGN,U,3),1,23)
 +19                       SET DGCT=$GET(DGCT)+1
                       End DoDot:2
               End DoDot:1
 +20       IF ^TMP("DGEVC",$JOB,"COUNT",DGXVET,DGXRR)>0
               IF (DGXREAS="ALL")
                   WRITE !?46,"Subtotal: "_^TMP("DGEVC",$JOB,"COUNT",DGXVET,DGXRR)
 +21       QUIT 
 +22      ;
PAUSE     ;
 +1        NEW DIR,X,Y
 +2        SET DGQ=0
 +3        SET DIR(0)="E"
 +4        DO ^DIR
 +5        IF '+Y!($DATA(DIRUT))
               SET DGQ=1
 +6        QUIT 
 +7       ;