- DGMSRPT2 ;ALB/LBD - Military Service Inconsistency Report; 01/05/04
- ;;5.3;Registration;**562,1015**; Aug 13,1993;Build 21
- ;
- ; This routine prints the Military Service Data Inconsistencies
- ; report from the extracted data stored in ^XTMP("DSMSRPT").
- ;
- ;
- EN(DGBEG,DGEND,DGSRT) ; Entry point called from ^DGMSRPT
- ; INPUT: DGBEG - Starting record number to print
- ; DGEND - Ending record number to print
- ; DGSRT - Sort order for report (Name or SSN)
- N PG,LINE,RPTDT,CRT,OUT,DSH,CNT,MXLNE,DGXTMP,DGTOT,LOOP
- S:$G(ZTSK) ZTREQ="@"
- D PRTVAR
- U IO D HDR
- I 'DGTOT W !!,?10,"*** There are no records to print ***" S OUT=$$PAUSE Q
- S LOOP="LOOP"_DGSRT
- D @LOOP Q:OUT
- D TOT Q:OUT
- W ! S OUT=$$PAUSE
- Q
- LOOPN ; Sort by name. Loop through ^XTMP("DGMSRPT","MSINC","NAM", x-ref
- N NM,DFN
- S NM=""
- F S NM=$O(@DGXTMP@("NAM",NM)) Q:NM=""!(CNT>DGEND)!OUT S DFN="" F S DFN=$O(@DGXTMP@("NAM",NM,DFN)) Q:DFN=""!(CNT>DGEND)!OUT S CNT=CNT+1 I CNT'<DGBEG,CNT'>DGEND D PRINT
- Q
- LOOPS ; Sort by SSN. Loop through ^XTMP("DGMSRPT","MSINC","SSN", x-ref
- N S2,S4,S9,DFN
- S S2=""
- F S S2=$O(@DGXTMP@("SSN",S2)) Q:S2=""!(CNT>DGEND)!OUT S S4="" F S S4=$O(@DGXTMP@("SSN",S2,S4)) Q:S4=""!(CNT>DGEND)!OUT D
- . S S9=""
- . F S S9=$O(@DGXTMP@("SSN",S2,S4,S9)) Q:S9=""!(CNT>DGEND)!OUT S DFN="" F S DFN=$O(@DGXTMP@("SSN",S2,S4,S9,DFN)) Q:DFN=""!(CNT>DGEND)!OUT S CNT=CNT+1 I CNT'<DGBEG,CNT'>DGEND D PRINT
- Q
- PRINT ; Print detail
- N VET,CT,CAT,IN
- Q:'$D(@DGXTMP@(DFN))
- S VET=$G(@DGXTMP@(DFN,0))
- I LINE>MXLNE S OUT=$$PAUSE Q:OUT D HDR
- W !,$P(VET,U,2),?12,$E($P(VET,U,1),1,25)
- S LINE=LINE+1,CAT=0
- F CT=1:1 S CAT=$O(@DGXTMP@(DFN,CAT)) Q:CAT=""!OUT D
- . I CT>1 D
- . . I LINE>MXLNE S OUT=$$PAUSE Q:OUT D HDR
- . . W ! S LINE=LINE+1
- . W ?37,CAT
- . S IN="" F S IN=$O(@DGXTMP@(DFN,CAT,IN)) Q:IN=""!OUT D
- . . I IN>1 D Q:OUT
- . . . I LINE>MXLNE S OUT=$$PAUSE Q:OUT D HDR
- . . . W ! S LINE=LINE+1
- . . W ?43,@DGXTMP@(DFN,CAT,IN)
- Q
- TOT ; Print total records at the end of the report
- I LINE+5>MXLNE S OUT=$$PAUSE Q:OUT D HDR
- W !!," Starting Record #:",$$RJ^XLFSTR(DGBEG,7)
- W !," Ending Record #:",$$RJ^XLFSTR(DGEND,7)
- W !!,"Total Records Printed:",$$RJ^XLFSTR((DGEND-DGBEG)+1,7)," out of ",DGTOT
- Q
- PRTVAR ; Set up variables needed to print report
- S CRT=$S($E(IOST,1,2)="C-":1,1:0)
- S DGXTMP="^XTMP(""DGMSRPT"",""MSINC"")"
- S DGTOT=+$G(@DGXTMP@("CNT","VET"))
- S:'$G(DGBEG) DGBEG=1 S:'$G(DGEND) DGEND=DGTOT
- S:$G(DGSRT)="" DGSRT="N"
- S (PG,CNT,OUT)=0,RPTDT=$$FMTE^XLFDT(DT),MXLNE=$S(CRT:15,1:52)
- S DSH="",$P(DSH,"=",80)=""
- Q
- HDR ; Print report header
- S PG=PG+1,LINE=0
- W @IOF
- W ?0,"Report Date: ",RPTDT,?68,"Page: ",$$RJ^XLFSTR(PG,4)
- W !,"Sorted By: "_$S(DGSRT="N":"Name",1:"SSN (Terminal Digits)")
- W !!,$$CJ^XLFSTR("MILITARY SERVICE DATA INCONSISTENCIES DETAIL REPORT",80)
- W !!,"SSN",?12,"Veteran's Name",?37,"Cat. Inconsistencies"
- W !,DSH
- Q
- PAUSE() ; If report is sent to screen, prompt for next page or quit
- N DIR,DIRUT,DUOUT,DTOUT,X,Y
- I 'CRT Q 0
- S DIR(0)="E"
- D ^DIR I 'Y Q 1
- Q 0
- DGMSRPT2 ;ALB/LBD - Military Service Inconsistency Report; 01/05/04
- +1 ;;5.3;Registration;**562,1015**; Aug 13,1993;Build 21
- +2 ;
- +3 ; This routine prints the Military Service Data Inconsistencies
- +4 ; report from the extracted data stored in ^XTMP("DSMSRPT").
- +5 ;
- +6 ;
- EN(DGBEG,DGEND,DGSRT) ; Entry point called from ^DGMSRPT
- +1 ; INPUT: DGBEG - Starting record number to print
- +2 ; DGEND - Ending record number to print
- +3 ; DGSRT - Sort order for report (Name or SSN)
- +4 NEW PG,LINE,RPTDT,CRT,OUT,DSH,CNT,MXLNE,DGXTMP,DGTOT,LOOP
- +5 IF $GET(ZTSK)
- SET ZTREQ="@"
- +6 DO PRTVAR
- +7 USE IO
- DO HDR
- +8 IF 'DGTOT
- WRITE !!,?10,"*** There are no records to print ***"
- SET OUT=$$PAUSE
- QUIT
- +9 SET LOOP="LOOP"_DGSRT
- +10 DO @LOOP
- IF OUT
- QUIT
- +11 DO TOT
- IF OUT
- QUIT
- +12 WRITE !
- SET OUT=$$PAUSE
- +13 QUIT
- LOOPN ; Sort by name. Loop through ^XTMP("DGMSRPT","MSINC","NAM", x-ref
- +1 NEW NM,DFN
- +2 SET NM=""
- +3 FOR
- SET NM=$ORDER(@DGXTMP@("NAM",NM))
- IF NM=""!(CNT>DGEND)!OUT
- QUIT
- SET DFN=""
- FOR
- SET DFN=$ORDER(@DGXTMP@("NAM",NM,DFN))
- IF DFN=""!(CNT>DGEND)!OUT
- QUIT
- SET CNT=CNT+1
- IF CNT'<DGBEG
- IF CNT'>DGEND
- DO PRINT
- +4 QUIT
- LOOPS ; Sort by SSN. Loop through ^XTMP("DGMSRPT","MSINC","SSN", x-ref
- +1 NEW S2,S4,S9,DFN
- +2 SET S2=""
- +3 FOR
- SET S2=$ORDER(@DGXTMP@("SSN",S2))
- IF S2=""!(CNT>DGEND)!OUT
- QUIT
- SET S4=""
- FOR
- SET S4=$ORDER(@DGXTMP@("SSN",S2,S4))
- IF S4=""!(CNT>DGEND)!OUT
- QUIT
- Begin DoDot:1
- +4 SET S9=""
- +5 FOR
- SET S9=$ORDER(@DGXTMP@("SSN",S2,S4,S9))
- IF S9=""!(CNT>DGEND)!OUT
- QUIT
- SET DFN=""
- FOR
- SET DFN=$ORDER(@DGXTMP@("SSN",S2,S4,S9,DFN))
- IF DFN=""!(CNT>DGEND)!OUT
- QUIT
- SET CNT=CNT+1
- IF CNT'<DGBEG
- IF CNT'>DGEND
- DO PRINT
- End DoDot:1
- +6 QUIT
- PRINT ; Print detail
- +1 NEW VET,CT,CAT,IN
- +2 IF '$DATA(@DGXTMP@(DFN))
- QUIT
- +3 SET VET=$GET(@DGXTMP@(DFN,0))
- +4 IF LINE>MXLNE
- SET OUT=$$PAUSE
- IF OUT
- QUIT
- DO HDR
- +5 WRITE !,$PIECE(VET,U,2),?12,$EXTRACT($PIECE(VET,U,1),1,25)
- +6 SET LINE=LINE+1
- SET CAT=0
- +7 FOR CT=1:1
- SET CAT=$ORDER(@DGXTMP@(DFN,CAT))
- IF CAT=""!OUT
- QUIT
- Begin DoDot:1
- +8 IF CT>1
- Begin DoDot:2
- +9 IF LINE>MXLNE
- SET OUT=$$PAUSE
- IF OUT
- QUIT
- DO HDR
- +10 WRITE !
- SET LINE=LINE+1
- End DoDot:2
- +11 WRITE ?37,CAT
- +12 SET IN=""
- FOR
- SET IN=$ORDER(@DGXTMP@(DFN,CAT,IN))
- IF IN=""!OUT
- QUIT
- Begin DoDot:2
- +13 IF IN>1
- Begin DoDot:3
- +14 IF LINE>MXLNE
- SET OUT=$$PAUSE
- IF OUT
- QUIT
- DO HDR
- +15 WRITE !
- SET LINE=LINE+1
- End DoDot:3
- IF OUT
- QUIT
- +16 WRITE ?43,@DGXTMP@(DFN,CAT,IN)
- End DoDot:2
- End DoDot:1
- +17 QUIT
- TOT ; Print total records at the end of the report
- +1 IF LINE+5>MXLNE
- SET OUT=$$PAUSE
- IF OUT
- QUIT
- DO HDR
- +2 WRITE !!," Starting Record #:",$$RJ^XLFSTR(DGBEG,7)
- +3 WRITE !," Ending Record #:",$$RJ^XLFSTR(DGEND,7)
- +4 WRITE !!,"Total Records Printed:",$$RJ^XLFSTR((DGEND-DGBEG)+1,7)," out of ",DGTOT
- +5 QUIT
- PRTVAR ; Set up variables needed to print report
- +1 SET CRT=$SELECT($EXTRACT(IOST,1,2)="C-":1,1:0)
- +2 SET DGXTMP="^XTMP(""DGMSRPT"",""MSINC"")"
- +3 SET DGTOT=+$GET(@DGXTMP@("CNT","VET"))
- +4 IF '$GET(DGBEG)
- SET DGBEG=1
- IF '$GET(DGEND)
- SET DGEND=DGTOT
- +5 IF $GET(DGSRT)=""
- SET DGSRT="N"
- +6 SET (PG,CNT,OUT)=0
- SET RPTDT=$$FMTE^XLFDT(DT)
- SET MXLNE=$SELECT(CRT:15,1:52)
- +7 SET DSH=""
- SET $PIECE(DSH,"=",80)=""
- +8 QUIT
- HDR ; Print report header
- +1 SET PG=PG+1
- SET LINE=0
- +2 WRITE @IOF
- +3 WRITE ?0,"Report Date: ",RPTDT,?68,"Page: ",$$RJ^XLFSTR(PG,4)
- +4 WRITE !,"Sorted By: "_$SELECT(DGSRT="N":"Name",1:"SSN (Terminal Digits)")
- +5 WRITE !!,$$CJ^XLFSTR("MILITARY SERVICE DATA INCONSISTENCIES DETAIL REPORT",80)
- +6 WRITE !!,"SSN",?12,"Veteran's Name",?37,"Cat. Inconsistencies"
- +7 WRITE !,DSH
- +8 QUIT
- PAUSE() ; If report is sent to screen, prompt for next page or quit
- +1 NEW DIR,DIRUT,DUOUT,DTOUT,X,Y
- +2 IF 'CRT
- QUIT 0
- +3 SET DIR(0)="E"
- +4 DO ^DIR
- IF 'Y
- QUIT 1
- +5 QUIT 0