| 1 | DIVR1 ;SFISC/DCM-VERIFY FIELDS API ;9:16 AM  1 Jul 1999 | 
|---|
| 2 | ;;22.0;VA FileMan;**7**;Mar 30, 1999 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | EN ; | 
|---|
| 5 | I '$D(DIVRREC) S DIVRREC="" | 
|---|
| 6 | N %ZIS,POP,ZTRTN,ZTSAVE,SUB | 
|---|
| 7 | S %ZIS="Q" D ^%ZIS  Q:POP | 
|---|
| 8 | I $D(IO("Q")) S ZTRTN="DQ^DIVR1",(ZTSAVE("DIVRFILE"),ZTSAVE("DIVRDR"),ZTSAVE("DIVROUT"))="" S SUB="DIVRREC"_$S($D(DIVRREC)=10:"(",1:"") S ZTSAVE(SUB)="" D ^%ZTLOAD Q | 
|---|
| 9 | DQ N PG,TAB,REC,Y,DATE,I,J,K,DIVRFI0,DIVRFINM,DIVRFIIN,DA,V,DIRUT,R,DE,DIUTIL | 
|---|
| 10 | K ^TMP("DIVR1",$J),^TMP("DIERR",$J) | 
|---|
| 11 | I $D(ZTQUEUED) S ZTREQ="@" | 
|---|
| 12 | S PG=0,TAB=0,REC=0,DIUTIL="VERIFY FIELDS" U IO | 
|---|
| 13 | S Y=DT D DD^%DT S DATE=Y | 
|---|
| 14 | D DIVRFILE Q:$G(DIERR) | 
|---|
| 15 | D DIVRREC | 
|---|
| 16 | I '$D(^TMP("DIVR1",$J)),'$G(DIERR) W !!!,?20,"*** NO ERRORS FOUND ***" D Q | 
|---|
| 17 | D DIVROUT^DIV,Q | 
|---|
| 18 | Q | 
|---|
| 19 | DIVRFILE S (DIVRFILE,DIVRFIIN)=+DIVRFILE | 
|---|
| 20 | Q:'$$VFILE^DILFD(DIVRFILE,"D") | 
|---|
| 21 | S DIVRFI0=$$FNO^DILIBF(DIVRFILE),DIVRFINM=$$GET1^DID(DIVRFI0,"","","NAME") | 
|---|
| 22 | Q | 
|---|
| 23 | DIVRREC S R=$D(DIVRREC) | 
|---|
| 24 | I $D(DIVRREC)#2,(DIVRREC=""!(DIVRREC="ALL")) S R=0 D IJ^DIVU(DIVRFIIN),H1,DIVRDR Q | 
|---|
| 25 | I $D(DIVRREC)#2,$E(DIVRREC)="[" D  Q | 
|---|
| 26 | . N Y,D0,DS D DIBT^DIVU(DIVRREC,.Y,DIVRFI0) Q:Y'>0 | 
|---|
| 27 | . S D0=0 D H2,IJ^DIVU(DIVRFI0) F  S D0=$O(^DIBT(+Y,1,D0)) Q:D0'>0  S DE="",DS=1 D:$$VENTRY^DIEFU(DIVRFI0,+D0,"D") DIVRDR Q:$D(DIRUT) | 
|---|
| 28 | I $D(DIVRREC)=10 D  Q | 
|---|
| 29 | . N I S I="" D H2,IJ^DIVU(DIVRFIIN) | 
|---|
| 30 | . F  S I=$O(DIVRREC(I)) Q:I'>0  S DIVRREC=I D ONE | 
|---|
| 31 | D H2,IJ^DIVU(DIVRFIIN) | 
|---|
| 32 | ONE Q:'$$IENCHK^DIT3(DIVRFIIN,DIVRREC) | 
|---|
| 33 | Q:'$$VENTRY^DIEFU(DIVRFIIN,DIVRREC,"D") | 
|---|
| 34 | N %,DEPTH,D,DS | 
|---|
| 35 | S DEPTH=$L(DIVRREC,",")-1 | 
|---|
| 36 | F %=1:1:DEPTH S D="D"_(DEPTH-%) N @D S @D=$P(DIVRREC,",",%) | 
|---|
| 37 | S DS=DEPTH D DIVRDR | 
|---|
| 38 | Q | 
|---|
| 39 | DIVRDR N FLD,PC,Z,END,OUT,F,Y,Q,S | 
|---|
| 40 | S F=1,FLD=0,Q="""",S=";" | 
|---|
| 41 | S:$G(DIVRDR)="" DIVRDR="ALL" | 
|---|
| 42 | I DIVRDR="ALL" D  Q | 
|---|
| 43 | . F  S FLD=$O(^DD(DIVRFILE,FLD)) Q:FLD'>0  D SET Q:$D(DIRUT) | 
|---|
| 44 | F  S Z=$G(Z)+1 S PC=$P(DIVRDR,S,Z) Q:PC=""  D  Q:$D(DIRUT) | 
|---|
| 45 | . N Z | 
|---|
| 46 | . I PC[":" S FLD=$O(^DD(DIVRFILE,+PC),-1),END=+$P(PC,":",2) D  Q | 
|---|
| 47 | . . F  S FLD=$O(^DD(DIVRFILE,FLD)) Q:FLD'>0!(FLD>END)  D SET Q:$D(DIRUT) | 
|---|
| 48 | . S FLD=PC I $$VFIELD^DILFD(DIVRFILE,PC,"D") D SET  Q | 
|---|
| 49 | Q | 
|---|
| 50 | SET N TYP,IT,T,W,PC3,M,Y,KEY | 
|---|
| 51 | S Y=FLD,Y(0)=^DD(DIVRFILE,FLD,0),TYP=$P(Y(0),U,2),IT=$P(Y(0),U,5,99),PC3=$P(Y(0),U,3) | 
|---|
| 52 | F T="N","D","P","S","V","F" Q:TYP[T | 
|---|
| 53 | F W="FREE TEXT","SET OF CODES","DATE","NUMERIC","POINTER","VARIABLE POINTER","K" I T[$E(W) S:W="K" W="MUMPS" Q | 
|---|
| 54 | I TYP["C" Q | 
|---|
| 55 | I TYP,$P(^DD(+TYP,.01,0),U,2)["W" Q | 
|---|
| 56 | I TYP D MULT Q | 
|---|
| 57 | I 'R D:$Y>(IOSL-4) FF Q:$D(DIRUT)  W !!?TAB,$P(^DD(DIVRFILE,FLD,0),U)_" (#"_FLD_")",?40,W | 
|---|
| 58 | I TYP["*",TYP'["X" S IT="Q" I $D(^DD(DIVRFILE,FLD,12.1)) X ^(12.1) I $D(DIC("S")) S IT(1)=DIC("S"),IT="X IT(1) E  K X" | 
|---|
| 59 | S KEY=$D(^DD("KEY","F",DIVRFILE,FLD))>9 | 
|---|
| 60 | D XDE | 
|---|
| 61 | Q | 
|---|
| 62 | XDE I F D | 
|---|
| 63 | .I R,DIVRFILE=DIVRFIIN S DE="D DA^DIVU(.DA) X DE(99) G Q:$G(DIRUT)" Q | 
|---|
| 64 | .D DE^DIVU(DIVRFILE,"","","DE",$G(DS)_U_$G(DS)) S F=0,DE=DE_" D DA^DIVU(.DA) X DE(99) G Q:$G(DIRUT)" Q | 
|---|
| 65 | D DE99(DIVRFILE,FLD) | 
|---|
| 66 | X DE | 
|---|
| 67 | Q | 
|---|
| 68 | MULT D:$Y>(IOSL-4) FF Q:$D(DIRUT) | 
|---|
| 69 | W:'R !!?TAB,$P(^DD(DIVRFILE,FLD,0),U)_"(#"_FLD_") --multiple--" | 
|---|
| 70 | N DIVRFILE,FLD,DA,V,I,J,K,F,DE | 
|---|
| 71 | S DIVRFILE=+TYP,FLD=0,TAB=TAB+2,F=1 D IJ^DIVU(DIVRFILE) | 
|---|
| 72 | F  S FLD=$O(^DD(DIVRFILE,FLD)) Q:FLD'>0  D SET Q:$D(DIRUT) | 
|---|
| 73 | S TAB=TAB-2 K @("D"_V) | 
|---|
| 74 | Q | 
|---|
| 75 | R I X?." " Q:TYP'["R"&'KEY  D  Q | 
|---|
| 76 | . I X="" S M="Missing"_$S(KEY:" key value",1:"") | 
|---|
| 77 | . E  S M="Equals only 1 or more spaces" | 
|---|
| 78 | . D X | 
|---|
| 79 | D @T Q | 
|---|
| 80 | P I @("$D(^"_PC3_"X,0))") D F Q | 
|---|
| 81 | S M="No '"_X_"' in pointed-to File" D X Q | 
|---|
| 82 | V I $P(X,S,2)'?1A.AN1"(".ANP,$P(X,S,2)'?1"%".AN1"(".ANP S M=Q_X_Q_" has the wrong format" D X Q | 
|---|
| 83 | S M=$S($D(@(U_$P(X,S,2)_"0)")):^(0),1:"") | 
|---|
| 84 | I '$D(^DD(DIVRFILE,FLD,"V","B",+$P(M,U,2))) S M=$P(M,U)_" FILE not in the DD" D X Q | 
|---|
| 85 | I '$D(@(U_$P(X,S,2)_+X_",0)")) S M=U_$P(X,S,2)_+X_",0) does not exist" D X Q | 
|---|
| 86 | D F Q | 
|---|
| 87 | S S Y=X I TYP'["X" X IT I '$D(X) S M=Q_Y_Q_" fails screen" D X Q | 
|---|
| 88 | Q:S_PC3[(S_X_":")  S M=Q_X_Q_" not in Set" D X Q | 
|---|
| 89 | D N Y,%DT S Y=$F(IT,"%DT=""E") S:Y IT=$E(IT,1,Y-2)_$E(IT,Y,999) | 
|---|
| 90 | I TYP["X" X $P(IT," D ^%DT") D ^%DT I Y<0 S M="Invalid date" D X Q | 
|---|
| 91 | D F Q | 
|---|
| 92 | N I TYP["X",X'?.1"-".N.".".N S M="Invalid number" D X Q | 
|---|
| 93 | D F Q | 
|---|
| 94 | K D ^DIM I '$D(X) S M="Invalid M code" D X | 
|---|
| 95 | Q | 
|---|
| 96 | F N Y S Y=X I X'?.ANP S M="Non-printing character" D X | 
|---|
| 97 | IT Q:TYP["X"  D  Q:$D(X)  S M=Q_Y_Q_" fails Input Transform" | 
|---|
| 98 | .N %Y S %Y=Y X IT S Y=%Y | 
|---|
| 99 | ; | 
|---|
| 100 | X S X=$S(V:DA(V),1:DA),^TMP("DIVR1",$J,$S('R:X,$G(DIVRREC)["[":X,(R&($G(DIVROUT)["[")):X,1:DIVRREC))="",X=V,Z=0 | 
|---|
| 101 | I @(I(0)_"0)") | 
|---|
| 102 | IEN D FF:$Y>(IOSL-3) Q:$D(DIRUT) | 
|---|
| 103 | I 'R D  Q | 
|---|
| 104 | .F  Q:'X  W !?5,@("D"_Z),?15,$P(^(@("D"_Z),0),U) S X=X-1,Z=Z+1,@("Y=$D(^("_I(V-X)_",0))") | 
|---|
| 105 | .W !?5,@("D"_Z),?15,$S($D(^(@("D"_Z),0)):$P(^(0),U),1:@("D"_Z)),?50,$E(M,1,40) W:V ! | 
|---|
| 106 | I R D  Q | 
|---|
| 107 | .F  Q:'X  W !,@("D"_Z),?10,$P(^(@("D"_Z),0),U) W:Z " (",K(Z),")" S X=X-1,Z=Z+1,@("Y=$D(^("_I(V-X)_",0))") | 
|---|
| 108 | .W !,@("D"_Z),?10,$S($D(^(@("D"_Z),0)):$P(^(0),U),1:@("D"_Z)) W:Z " (",K(Z),")" W !?5,$P(^DD(DIVRFILE,FLD,0),U)," (#",FLD,")",?35,W,?50,M W:V ! | 
|---|
| 109 | Q | 
|---|
| 110 | ; | 
|---|
| 111 | DE99(FI,FD,NP) ; | 
|---|
| 112 | N Y | 
|---|
| 113 | D GET^DIOU(FI,FD,"X",.Y,"I") | 
|---|
| 114 | S DE(99)=Y_" D R " Q | 
|---|
| 115 | Q | 
|---|
| 116 | Q D ^%ZISC | 
|---|
| 117 | Q | 
|---|
| 118 | FF I IOST["C-" N DIR,X,Y S DIR(0)="E" D ^DIR Q:$D(DIRUT) | 
|---|
| 119 | I R D H2 Q | 
|---|
| 120 | H1 W:$Y @IOF W "Verify Fields     File: ",DIVRFI0_" "_DIVRFINM,?(IOM-25) W DATE W ?(IOM-9),"PAGE ",PG+1 | 
|---|
| 121 | W !,"Field Name (Field #)",?40,"Type" | 
|---|
| 122 | W !?5,"Entry #",?15,"Name",?50,"ERROR" | 
|---|
| 123 | N L W ! F L=1:1:(IOM-2) W "-" | 
|---|
| 124 | S PG=PG+1 | 
|---|
| 125 | Q | 
|---|
| 126 | H2 W:$Y @IOF W "Verify Fields     File: ",DIVRFI0_" "_DIVRFINM,?(IOM-25) W DATE W ?(IOM-9),"PAGE ",PG+1 | 
|---|
| 127 | W !,"Entry #",?10,"Name" | 
|---|
| 128 | W !?5,"Field Name (Field #)",?35,"Type",?50,"ERROR" | 
|---|
| 129 | N L W ! F L=1:1:(IOM-2) W "-" | 
|---|
| 130 | S PG=PG+1 | 
|---|
| 131 | Q | 
|---|