1 | 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]
|
---|
2 | ;;7.3;TOOLKIT;**23**;Apr 25, 1995
|
---|
3 | ;;
|
---|
4 | START ;
|
---|
5 | D EN^XDRVCHEK
|
---|
6 | D INFORM
|
---|
7 | D INIT
|
---|
8 | D GETFILE
|
---|
9 | G:XDRQFLG EOJ
|
---|
10 | D ZIS
|
---|
11 | G:XDRQFLG EOJ
|
---|
12 | D PROCESS
|
---|
13 | D EOJ
|
---|
14 | Q
|
---|
15 | EOJ ;Eoj cleanup
|
---|
16 | K XDRQFLG,XDRD,XDRFL,XDRCNT
|
---|
17 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
18 | K ZTSK,POP,I,S
|
---|
19 | W:$D(IOF) @IOF
|
---|
20 | D ^%ZISC
|
---|
21 | Q
|
---|
22 | INIT ;initialize variables
|
---|
23 | S XDRQFLG=0,XDRCNT("PG")=0
|
---|
24 | S X=$G(^DD(15,.03,0)) I X="" W !!,$C(7),"Dictionary error!! Notify a programmer!" S XDRQFLG=1 Q
|
---|
25 | S X=$P(X,U,3)
|
---|
26 | 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)
|
---|
27 | I '$D(XDRCNT("STATUS")) S XDRQFLG=1 W !!,"Dictionary error!! Notify a programmer!" Q
|
---|
28 | S X=$G(^DD(15,.05,0)) I X="" W !!,$C(7),"Dictionary error!! Notify a programmer!" S XDRQFLG=1 Q
|
---|
29 | S X=$P(X,U,3)
|
---|
30 | 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)
|
---|
31 | I '$D(XDRCNT("MERGE STATUS")) S XDRQFLG=1 W !!,"Dictionary error!! Notify a programmer!" Q
|
---|
32 | S XDRCNT("TOTAL RECS")=0
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | GETFILE ;get file to tally records fo
|
---|
36 | K XDRFL
|
---|
37 | S DIC("A")="Tally duplicate entries for which file? " D FILE^XDRDQUE
|
---|
38 | Q:XDRQFLG
|
---|
39 | S XDRCNT("GBL")=^DIC(XDRFL,0,"GL"),XDRCNT("GBL")=$P(XDRCNT("GBL"),U,2)
|
---|
40 | Q
|
---|
41 | ZIS W !! K ZTSK,ZTQUEUED,IOP S %ZIS="PQM" D ^%ZIS
|
---|
42 | I POP S XDRQFLG=1 Q
|
---|
43 | I $D(IO("Q")) D TSKMN
|
---|
44 | Q
|
---|
45 | TSKMN ;
|
---|
46 | S ZTIO=$S($D(ION):ION,1:IO) I $D(IOST)#2,IOST]"" S ZTIO=ZTIO_";"_IOST
|
---|
47 | I $D(IO("DOC")),IO("DOC")]"" S ZTIO=ZTIO_";"_IO("DOC")
|
---|
48 | I $D(IOM)#2,IOM S ZTIO=ZTIO_";"_IOM I $D(IOSL)#2,IOSL S ZTIO=ZTIO_";"_IOSL
|
---|
49 | K ZTSAVE S ZTSAVE("*")=""
|
---|
50 | S ZTRTN="PROCESS^XDRCNT",ZTDTH="",ZTDESC="TALLY DUPLICATE RECORD STATUS" D ^%ZTLOAD S XDRQFLG=1
|
---|
51 | Q
|
---|
52 | PROCESS ;
|
---|
53 | NEW X,D,S
|
---|
54 | ;S X=0_";"_XDRCNT("GBL") F S X=$O(^VA(15,"B",X)) Q:X=""!($P(X,";",2)'=XDRCNT("GBL")) D
|
---|
55 | S X=0_";"_XDRCNT("GBL") F S X=$O(^VA(15,"B",X)) Q:X="" I $P(X,";",2)=XDRCNT("GBL") D
|
---|
56 | . S D=0 F S D=$O(^VA(15,"B",X,D)) Q:D'=+D D
|
---|
57 | . . Q:^VA(15,"B",X,D)=1
|
---|
58 | . . S XDRCNT("TOTAL RECS")=XDRCNT("TOTAL RECS")+1
|
---|
59 | . . S S=$P(^VA(15,D,0),U,3)
|
---|
60 | . . I S=""
|
---|
61 | . . E S XDRCNT("STATUS",S,"CNT")=$G(XDRCNT("STATUS",S,"CNT"))+1
|
---|
62 | . . I S="V" D
|
---|
63 | . . . S S=+$P(^VA(15,D,0),U,5)
|
---|
64 | . . . S XDRCNT("MERGE STATUS",S,"CNT")=XDRCNT("MERGE STATUS",S,"CNT")+1
|
---|
65 | . . Q
|
---|
66 | .Q
|
---|
67 | PRINT ;print report
|
---|
68 | U IO
|
---|
69 | D HEADER
|
---|
70 | W !!,"Total Number of Duplicate Records for File ",$E(XDRD(0,0),1,18),": ",?65,$J(XDRCNT("TOTAL RECS"),6),!
|
---|
71 | W !?5,"STATUS field:" S X=0 F S X=$O(XDRCNT("STATUS",X)) Q:X="" D
|
---|
72 | .I $Y>(IOSL-5) D HEADER Q:$D(XDRCNT("QUIT")) W !
|
---|
73 | .W ?26,$E(XDRCNT("STATUS",X,"NAME"),1,34),?65,$J(XDRCNT("STATUS",X,"CNT"),6),!
|
---|
74 | W !?5,"MERGE STATUS field:" S X="" F S X=$O(XDRCNT("MERGE STATUS",X)) Q:X="" D
|
---|
75 | .I $Y>(IOSL-5) D HEADER Q:$D(XDRCNT("QUIT")) W !
|
---|
76 | .W ?26,$E(XDRCNT("MERGE STATUS",X,"NAME"),1,34),?65,$J(XDRCNT("MERGE STATUS",X,"CNT"),6),!
|
---|
77 | .Q
|
---|
78 | I $E(IOST)="C" W !!,"End of Report. Press return to exit" R X:DTIME
|
---|
79 | Q
|
---|
80 | HEADER ;print header information
|
---|
81 | N DIR,X,Y
|
---|
82 | I 'XDRCNT("PG") G HEADER1
|
---|
83 | 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
|
---|
84 | HEADER1 ;
|
---|
85 | W:$D(IOF) @IOF S XDRCNT("PG")=XDRCNT("PG")+1
|
---|
86 | W !?3,$P(^DIC(4,DUZ(2),0),U) S Y=DT D DD^%DT W ?50,Y,?70,"Page ",XDRCNT("PG"),?78,!
|
---|
87 | W !?12,"TALLY OF DUPLICATE RECORDS' STATUS/MERGE STATUS FIELDS"
|
---|
88 | S XDRCNT("LENG")=7+$L(XDRD(0,0))
|
---|
89 | W !?((80-XDRCNT("LENG"))/2),"FILE: ",XDRD(0,0),?78,!
|
---|
90 | W !,$TR($J("",80)," ","-")
|
---|
91 | Q
|
---|
92 | INFORM ;inform user
|
---|
93 | 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.",!
|
---|
94 | Q
|
---|