| [613] | 1 | LEXXFI4 ; ISL/KER - File Info - Record Counts (2)      ; 07/28/2004 | 
|---|
|  | 2 | ;;2.0;LEXICON UTILITY;**32**;Sep 23, 1996;Build 1 | 
|---|
|  | 3 | Q | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | ; Global Variables | 
|---|
|  | 6 | ;   ^TMP("LEXCNT",$J   SACC 2.3.2.5.1 | 
|---|
|  | 7 | ; | 
|---|
|  | 8 | ; External References | 
|---|
|  | 9 | ;   DBIA 10103  $$FMDIFF^XLFDT | 
|---|
|  | 10 | ; | 
|---|
|  | 11 | DSP ; Display Results | 
|---|
|  | 12 | N LEXFP,LEXCT,LEXFI,LEXGTOT,LEXHSF,LEXJOB,LEXMD,LEXX,LEXLVL,LEXML | 
|---|
|  | 13 | N LEXNCFI,LEXNFI,LEXNPAR,LEXOPAR,LEXO,LEXPAR,LEXTAB,LEXTXT | 
|---|
|  | 14 | S (LEXCT,LEXGTOT,LEXML)=0,LEXOPAR="" | 
|---|
|  | 15 | S LEXJOB=$J S:+($G(LEXMD))>0 LEXJOB=+($G(LEXMD)) | 
|---|
|  | 16 | K:$D(LEXMD) LEXMD S LEXFP="" S LEXFP="" | 
|---|
|  | 17 | F  S LEXFP=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP)) Q:LEXFP=""  D | 
|---|
|  | 18 | . S LEXO="" | 
|---|
|  | 19 | . F  S LEXO=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO)) Q:LEXO=""  D | 
|---|
|  | 20 | . . N LEXFI,LEXPAR,LEXLVL,LEXTAB,LEXTXT,LEXHSF,LEXX | 
|---|
|  | 21 | . . S LEXTAB="",LEXHSF=0 | 
|---|
|  | 22 | . . S LEXPAR=$G(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO)) | 
|---|
|  | 23 | . . S LEXFI=+($P(LEXPAR,"^",2)),LEXLVL=+($P(LEXPAR,"^",3)) | 
|---|
|  | 24 | . . S LEXPAR=+($P(LEXPAR,"^",1)) Q:LEXPAR=0 | 
|---|
|  | 25 | . . S LEXNFI=$O(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXPAR)) | 
|---|
|  | 26 | . . S:LEXNFI>0&(LEXNFI'=LEXPAR) LEXHSF=1 | 
|---|
|  | 27 | . . S LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXFI)),LEXCT=LEXCT+1 | 
|---|
|  | 28 | . . S LEXNPAR=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO)) | 
|---|
|  | 29 | . . S LEXNPAR=$P(LEXNPAR,";",1) | 
|---|
|  | 30 | . . S LEXNCFI=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP)) | 
|---|
|  | 31 | . . I '$L(LEXNPAR),$L(LEXNCFI) S LEXML=1 | 
|---|
|  | 32 | . . I LEXCT=1 D TTL,HDR | 
|---|
|  | 33 | . . I +LEXFI>0 D TSF | 
|---|
|  | 34 | . . I +LEXFI'>0,+($G(LEXHSF))>0 D GTSF | 
|---|
|  | 35 | D GT,CK | 
|---|
|  | 36 | Q | 
|---|
|  | 37 | TSF ;   Total for a Single File/Sub-File | 
|---|
|  | 38 | N LEXNM,LEXTAB,LEXTOT,LEXTXT,LEXTYP | 
|---|
|  | 39 | S LEXX=$G(LEXX),LEXTOT=+LEXX,LEXNM=$P(LEXX,"^",2) | 
|---|
|  | 40 | S LEXTYP=$P(LEXX,"^",3),LEXTAB="" | 
|---|
|  | 41 | Q:+LEXTOT'>0  Q:'$L(LEXNM)  Q:'$L(LEXTYP) | 
|---|
|  | 42 | S $P(LEXTAB," ",(+($G(LEXLVL))*2))="" | 
|---|
|  | 43 | S LEXTXT="  "_LEXTAB_LEXNM_" ("_LEXTYP_")" | 
|---|
|  | 44 | S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J(LEXTOT,9) | 
|---|
|  | 45 | S LEXGTOT=+($G(LEXGTOT))+LEXTOT D TL^LEXXFI8(LEXTXT) | 
|---|
|  | 46 | Q | 
|---|
|  | 47 | GTSF ;   Grand Total for a Single File | 
|---|
|  | 48 | N LEXLVL,LEXNM,LEXTAB,LEXTOT,LEXTXT,LEXTYP,LEXX | 
|---|
|  | 49 | S LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXPAR)),LEXLVL=+($$ML)+2 | 
|---|
|  | 50 | S LEXNM=$P(LEXX,"^",2),LEXTYP=$P(LEXX,"^",3) Q:'$L(LEXNM)  Q:'$L(LEXTYP) | 
|---|
|  | 51 | S LEXTAB="",LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,0)) | 
|---|
|  | 52 | S LEXTOT=+LEXX,$P(LEXTAB," ",(LEXLVL*2))="" | 
|---|
|  | 53 | S LEXTXT="  "_LEXTAB_" - Total Records for "_LEXTYP | 
|---|
|  | 54 | S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J(LEXTOT,9) | 
|---|
|  | 55 | D TL^LEXXFI8(LEXTXT) | 
|---|
|  | 56 | Q | 
|---|
|  | 57 | GT ;   Grand Totals for Multiple Files | 
|---|
|  | 58 | N LEXCT,LEXFI,LEXTXT S LEXCT=0,LEXFI="" I +($G(LEXGTOT))>0,+($G(LEXML))>0 D | 
|---|
|  | 59 | . D BL^LEXXFI8 S LEXTXT="   GRAND TOTAL (ALL FILES) " | 
|---|
|  | 60 | . S LEXTXT=LEXTXT_$J("",(50-$L(LEXTXT)))_$J(LEXGTOT,19) D TL^LEXXFI8(LEXTXT) | 
|---|
|  | 61 | Q | 
|---|
|  | 62 | TTL ; Record Count Title | 
|---|
|  | 63 | D:+($G(LEXMUL))>0 TT^LEXXFI8("","Record Counts") | 
|---|
|  | 64 | D:+($G(LEXMUL))'>0 TT^LEXXFI8($G(LEXFI),"Record Count") | 
|---|
|  | 65 | D BL^LEXXFI8 | 
|---|
|  | 66 | Q | 
|---|
|  | 67 | HDR ; Record Count Header | 
|---|
|  | 68 | N LEXTXT S LEXTXT="   Name (File Number)" | 
|---|
|  | 69 | S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J("Entries",9) D TL^LEXXFI8(LEXTXT) | 
|---|
|  | 70 | S LEXTXT="   -------------------------------------------------" | 
|---|
|  | 71 | S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J("-------",9) D TL^LEXXFI8(LEXTXT) | 
|---|
|  | 72 | Q | 
|---|
|  | 73 | CK ; Records Checked | 
|---|
|  | 74 | N LEXF,LEXS,LEXFT,LEXST,LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J) | 
|---|
|  | 75 | S LEXF=+($G(^TMP("LEXCNT",LEXJ,"CNT"))) | 
|---|
|  | 76 | S LEXFT=$S(LEXF=1:"1 File",LEXF>1:(LEXF_" Files"),1:"") | 
|---|
|  | 77 | S LEXS=+($G(^TMP("LEXCNT",LEXJ,"SUB"))) | 
|---|
|  | 78 | S LEXST=$S(LEXS=1:"1 Sub-File",LEXS>1:(LEXS_" Sub-Files"),1:"") | 
|---|
|  | 79 | I (LEXF+LEXS)>1 D | 
|---|
|  | 80 | . S LEXTXT="   " S:$L(LEXFT) LEXTXT=LEXTXT_LEXFT | 
|---|
|  | 81 | . S:$L(LEXFT)&($L(LEXST)) LEXTXT=LEXTXT_" and "_LEXST | 
|---|
|  | 82 | . S:'$L(LEXFT)&($L(LEXST)) LEXTXT=LEXTXT_LEXST | 
|---|
|  | 83 | . I $L(LEXFT)!($L(LEXST)) S LEXTXT=LEXTXT_" Checked" D | 
|---|
|  | 84 | . . D BL^LEXXFI8,TL^LEXXFI8(LEXTXT) | 
|---|
|  | 85 | Q | 
|---|
|  | 86 | ML(X) ; Maximum Level | 
|---|
|  | 87 | N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J) | 
|---|
|  | 88 | S X=+($G(^TMP("LEXCNT",LEXJ,"LVL"))) S:+X'>0 X=1 | 
|---|
|  | 89 | Q X | 
|---|
|  | 90 | NF(X) ; Number of Files | 
|---|
|  | 91 | N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J) | 
|---|
|  | 92 | S X=+($G(^TMP("LEXCNT",LEXJ,"CNT"))) | 
|---|
|  | 93 | Q X | 
|---|
|  | 94 | NS(X) ; Number of Sub-Files | 
|---|
|  | 95 | N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J) | 
|---|
|  | 96 | S X=+($G(^TMP("LEXCNT",LEXJ,"SUB"))) | 
|---|
|  | 97 | Q X | 
|---|
|  | 98 | ST ; Show TMP Array | 
|---|
|  | 99 | N NN,NC S NN="^TMP(""LEXCNT"")",NC="^TMP(""LEXCNT""," | 
|---|
|  | 100 | F  S NN=$Q(@NN) Q:NN=""!(NN'[NC)  D | 
|---|
|  | 101 | . W !,NN,"=",@NN | 
|---|
|  | 102 | Q | 
|---|
|  | 103 | EP(X,Y) ;   Elapsed Time (Begin, End) | 
|---|
|  | 104 | N LEXTIM,LEXBEG,LEXEND | 
|---|
|  | 105 | S LEXBEG=$G(X),LEXEND=$G(Y) Q:+LEXBEG'>0 ""  Q:+LEXEND'>0 "" | 
|---|
|  | 106 | S LEXTIM=$$FMDIFF^XLFDT(LEXEND,LEXBEG,2) Q:+LEXTIM'>0 "00:00:00" | 
|---|
|  | 107 | S LEXTIM=$$TIM(LEXTIM) | 
|---|
|  | 108 | Q LEXTIM | 
|---|
|  | 109 | TIM(X) ;   Format Time Elapsed | 
|---|
|  | 110 | N LEXD,LEXH,LEXM,LEXS,LEXT,LEXV S X=+($G(X)) Q:X'>0 "00:00:00" | 
|---|
|  | 111 | S LEXD=X\86400 S LEXV=LEXD*86400 S:+LEXV>0&(LEXV<X) X=X-LEXV | 
|---|
|  | 112 | S LEXH=X\3600 S LEXV=LEXH*3600 S:+LEXV>0&(LEXV<X) X=X-LEXV | 
|---|
|  | 113 | S:$L(LEXH)<2 LEXH="0"_LEXH S:$L(LEXH)<2 LEXH="0"_LEXH | 
|---|
|  | 114 | S LEXM=X\60 S LEXV=LEXM*60 S:+LEXV>0&(LEXV<X) X=X-LEXV | 
|---|
|  | 115 | S:$L(LEXM)<2 LEXM="0"_LEXM S:$L(LEXM)<2 LEXM="0"_LEXM | 
|---|
|  | 116 | S LEXS=X S:$L(LEXS)<2 LEXS="0"_LEXS S:$L(LEXS)<2 LEXS="0"_LEXS | 
|---|
|  | 117 | S LEXT="" S:+LEXD>0 LEXT=+LEXD_" day"_$S(+LEXD>1:"s",1:"")_" " | 
|---|
|  | 118 | S LEXT=LEXT_LEXH_":"_LEXM_":"_LEXS,X=LEXT | 
|---|
|  | 119 | Q X | 
|---|