XDRCNT ;SF-IRMFO/OHPRD/LAB - Count/Tally records by status/merged status; [ 08/13/92 09:50 AM ] ;11/10/93 13:28 [5/2/96 11:50am] ;;7.3;TOOLKIT;**23**;Apr 25, 1995 ;; START ; D EN^XDRVCHEK D INFORM D INIT D GETFILE G:XDRQFLG EOJ D ZIS G:XDRQFLG EOJ D PROCESS D EOJ Q EOJ ;Eoj cleanup K XDRQFLG,XDRD,XDRFL,XDRCNT S:$D(ZTQUEUED) ZTREQ="@" K ZTSK,POP,I,S W:$D(IOF) @IOF D ^%ZISC Q INIT ;initialize variables S XDRQFLG=0,XDRCNT("PG")=0 S X=$G(^DD(15,.03,0)) I X="" W !!,$C(7),"Dictionary error!! Notify a programmer!" S XDRQFLG=1 Q S X=$P(X,U,3) F I=1:1 S S=$P(X,";",I) Q:S="" S XDRCNT("STATUS",$P(S,":",1),"CNT")=0,XDRCNT("STATUS",$P(S,":",1),"NAME")=$P(S,":",2) I '$D(XDRCNT("STATUS")) S XDRQFLG=1 W !!,"Dictionary error!! Notify a programmer!" Q S X=$G(^DD(15,.05,0)) I X="" W !!,$C(7),"Dictionary error!! Notify a programmer!" S XDRQFLG=1 Q S X=$P(X,U,3) F I=1:1 S S=$P(X,";",I) Q:S="" S XDRCNT("MERGE STATUS",$P(S,":",1),"CNT")=0,XDRCNT("MERGE STATUS",$P(S,":",1),"NAME")=$P(S,":",2) I '$D(XDRCNT("MERGE STATUS")) S XDRQFLG=1 W !!,"Dictionary error!! Notify a programmer!" Q S XDRCNT("TOTAL RECS")=0 Q ; GETFILE ;get file to tally records fo K XDRFL S DIC("A")="Tally duplicate entries for which file? " D FILE^XDRDQUE Q:XDRQFLG S XDRCNT("GBL")=^DIC(XDRFL,0,"GL"),XDRCNT("GBL")=$P(XDRCNT("GBL"),U,2) Q ZIS W !! K ZTSK,ZTQUEUED,IOP S %ZIS="PQM" D ^%ZIS I POP S XDRQFLG=1 Q I $D(IO("Q")) D TSKMN Q TSKMN ; S ZTIO=$S($D(ION):ION,1:IO) I $D(IOST)#2,IOST]"" S ZTIO=ZTIO_";"_IOST I $D(IO("DOC")),IO("DOC")]"" S ZTIO=ZTIO_";"_IO("DOC") I $D(IOM)#2,IOM S ZTIO=ZTIO_";"_IOM I $D(IOSL)#2,IOSL S ZTIO=ZTIO_";"_IOSL K ZTSAVE S ZTSAVE("*")="" S ZTRTN="PROCESS^XDRCNT",ZTDTH="",ZTDESC="TALLY DUPLICATE RECORD STATUS" D ^%ZTLOAD S XDRQFLG=1 Q PROCESS ; NEW X,D,S ;S X=0_";"_XDRCNT("GBL") F S X=$O(^VA(15,"B",X)) Q:X=""!($P(X,";",2)'=XDRCNT("GBL")) D S X=0_";"_XDRCNT("GBL") F S X=$O(^VA(15,"B",X)) Q:X="" I $P(X,";",2)=XDRCNT("GBL") D . S D=0 F S D=$O(^VA(15,"B",X,D)) Q:D'=+D D . . Q:^VA(15,"B",X,D)=1 . . S XDRCNT("TOTAL RECS")=XDRCNT("TOTAL RECS")+1 . . S S=$P(^VA(15,D,0),U,3) . . I S="" . . E S XDRCNT("STATUS",S,"CNT")=$G(XDRCNT("STATUS",S,"CNT"))+1 . . I S="V" D . . . S S=+$P(^VA(15,D,0),U,5) . . . S XDRCNT("MERGE STATUS",S,"CNT")=XDRCNT("MERGE STATUS",S,"CNT")+1 . . Q .Q PRINT ;print report U IO D HEADER W !!,"Total Number of Duplicate Records for File ",$E(XDRD(0,0),1,18),": ",?65,$J(XDRCNT("TOTAL RECS"),6),! W !?5,"STATUS field:" S X=0 F S X=$O(XDRCNT("STATUS",X)) Q:X="" D .I $Y>(IOSL-5) D HEADER Q:$D(XDRCNT("QUIT")) W ! .W ?26,$E(XDRCNT("STATUS",X,"NAME"),1,34),?65,$J(XDRCNT("STATUS",X,"CNT"),6),! W !?5,"MERGE STATUS field:" S X="" F S X=$O(XDRCNT("MERGE STATUS",X)) Q:X="" D .I $Y>(IOSL-5) D HEADER Q:$D(XDRCNT("QUIT")) W ! .W ?26,$E(XDRCNT("MERGE STATUS",X,"NAME"),1,34),?65,$J(XDRCNT("MERGE STATUS",X,"CNT"),6),! .Q I $E(IOST)="C" W !!,"End of Report. Press return to exit" R X:DTIME Q HEADER ;print header information N DIR,X,Y I 'XDRCNT("PG") G HEADER1 I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S XDRCNT("QUIT")="" Q HEADER1 ; W:$D(IOF) @IOF S XDRCNT("PG")=XDRCNT("PG")+1 W !?3,$P(^DIC(4,DUZ(2),0),U) S Y=DT D DD^%DT W ?50,Y,?70,"Page ",XDRCNT("PG"),?78,! W !?12,"TALLY OF DUPLICATE RECORDS' STATUS/MERGE STATUS FIELDS" S XDRCNT("LENG")=7+$L(XDRD(0,0)) W !?((80-XDRCNT("LENG"))/2),"FILE: ",XDRD(0,0),?78,! W !,$TR($J("",80)," ","-") Q INFORM ;inform user W !!,"This report will tally the Status and Merge Status fields for all",!,"entries in the Duplicate record file for the file that you select.",! Q