1 | DIEV ;SFISC/DPC-DATA VALIDATOR ;2:10 PM 21 Jul 2000
|
---|
2 | ;;22.0;VA FileMan;**55**;Mar 30, 1999
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | VAL(DIEVF,DIEVIEN,DIEVFLD,DIEVFLG,DIEVAL,DIEVANS,DIEVFAR,DIOUTAR) ;
|
---|
5 | VALX ;
|
---|
6 | N DIEV0,DIEVP2,DA,D,I,C K DIEVANS
|
---|
7 | I '$D(DIQUIET) N DIQUIET S DIQUIET=1
|
---|
8 | I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
|
---|
9 | S DIEVFLG=$G(DIEVFLG) I '$$VERFLG^DIEFU(DIEVFLG,"HFERYUK") G OUT
|
---|
10 | D FLDVAL G:$G(DIEVAL)=U OUT
|
---|
11 | D DA^DIEFU(DIEVIEN,.DA)
|
---|
12 | S C=$L(DIEVIEN,",")-1 F I=1:1:C S D="D"_(C-I) N @D S @D=$P(DIEVIEN,",",I)
|
---|
13 | D AUXVAL(DIEVF,DIEVIEN,DIEVFLD,DIEVFLG,DIEVAL,.DIEVANS,.DIEV0,.DIEVP2)
|
---|
14 | I $G(DIEVANS)=U!("@"[DIEVAL) G OUT
|
---|
15 | MINVAL ;
|
---|
16 | D INT(DIEVF,DIEVFLD,DIEVFLG,DIEVAL,.DIEVANS,$G(DIEV0),$G(DIEVP2))
|
---|
17 | I DIEVANS=U D ERR G OUT
|
---|
18 | I DIEVFLG'["U",$G(DIEVIEN)'?."," D KEY(DIEVF,DIEVIEN,DIEVFLD,DIEVFLG,DIEVANS,.DIEVANS)
|
---|
19 | OUT S DIEVANS=$G(DIEVANS,U)
|
---|
20 | I DIEVFLG["F",DIEVANS'=U D FDA
|
---|
21 | I $G(DIOUTAR)]"" D CALLOUT^DIEFU(DIOUTAR)
|
---|
22 | Q
|
---|
23 | ;
|
---|
24 | FLDVAL ;
|
---|
25 | N DIEVOUT S DIEVOUT=0
|
---|
26 | I '$$VFILE^DIEFU(DIEVF,"D") S DIEVAL=U Q
|
---|
27 | I '$$VFIELD^DIEFU(DIEVF,DIEVFLD,"D") S DIEVAL=U Q
|
---|
28 | S DIEV0=^DD(DIEVF,DIEVFLD,0),DIEVP2=$P(DIEV0,U,2)
|
---|
29 | D DTYPE
|
---|
30 | I DIEVOUT=1 S DIEVAL=U
|
---|
31 | Q
|
---|
32 | ;
|
---|
33 | AUXVAL(DIEVF,DIEVIEN,DIEVFLD,DIEVFLG,DIEVAL,DIEVANS,DIEV0,DIEVP2) ;
|
---|
34 | N DIEVOUT S DIEVOUT=0
|
---|
35 | I '$D(DIOVRD),$P($G(^DD($$FNO^DILIBF(DIEVF),0,"DI")),U,2)="Y",DIEVFLG'["Y" D G AUXERR
|
---|
36 | . N INT,EXT S INT(1)=$$FILENM^DIEFU(DIEVF),EXT("FILE")=DIEVF
|
---|
37 | . D BLD^DIALOG(405,.INT,.EXT)
|
---|
38 | I $P(DIEV0,U,5,99)["DINUM","@"'[DIEVAL D G AUXERR
|
---|
39 | . N EXT,INT S EXT("FILE")=DIEVF,EXT("FIELD")=DIEVFLD,(INT(1),EXT(1))="DINUMed"
|
---|
40 | . D BLD^DIALOG(520,.INT,.EXT)
|
---|
41 | I $E(DIEVAL)="?"!(DIEVP2["V"&(DIEVAL[".?")) N P S P(1)=DIEVF,P(2)=DIEVFLD D BLD^DIALOG(1610,"",.P) G AUXERR
|
---|
42 | I DIEVFLG["R" G:'$$VENTRY^DIEFU(DIEVF,DIEVIEN,"D9") AUXERR
|
---|
43 | I DIEVP2["I",$$DATA(DIEVF,DIEVFLD) N P S P("FIELD")=DIEVFLD,P("FILE")=DIEVF D BLD^DIALOG(710,.P,.P) G AUXERR
|
---|
44 | I "@"[DIEVAL D DELETE G:DIEVOUT AUXERR Q
|
---|
45 | I DIEVFLG["I" D
|
---|
46 | . S DIEVANS=DIEVAL
|
---|
47 | . I DIEVFLG["E" S DIEVANS(0)=$$EXTERNAL^DILFD(DIEVF,DIEVFLD,"",DIEVAL)
|
---|
48 | Q
|
---|
49 | AUXERR S DIEVANS=U
|
---|
50 | Q
|
---|
51 | ;
|
---|
52 | DTYPE ;
|
---|
53 | I DIEVP2 D S DIEVOUT=1 Q
|
---|
54 | . N T,INT,EXT D DTYP^DIOU(DIEVF,DIEVFLD,.T)
|
---|
55 | . I T=5 S INT(1)="word-processing",EXT("FIELD")=DIEVFLD,EXT("FILE")=DIEVF D BLD^DIALOG(520,.INT,.EXT) Q
|
---|
56 | . S INT(1)="multi-valued",EXT("FIELD")=DIEVFLD,EXT("FILE")=DIEVF D BLD^DIALOG(520,.INT,.EXT)
|
---|
57 | I DIEVP2["C" N INT,EXT S INT(1)="computed",EXT("FIELD")=DIEVFLD,EXT("FILE")=DIEVF D BLD^DIALOG(520,.INT,.EXT) S DIEVOUT=1 Q
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | DELETE ;
|
---|
61 | I $D(^DD(DIEVF,DIEVFLD,"DEL")) D
|
---|
62 | . N DIEVECNT S DIEVECNT=$G(DIERR)
|
---|
63 | . N I S I="" F S I=$O(^DD(DIEVF,DIEVFLD,"DEL",I)) Q:I="" X $G(^(I,0)) I S DIEVOUT=1
|
---|
64 | . I DIEVECNT'=$G(DIERR) S DIEVOUT=1 D HKERR^DILIBF(DIEVF,$G(DIEVIEN),DIEVFLD,"DEL node")
|
---|
65 | I DIEVP2["R" D
|
---|
66 | . I DIEVFLD'=.01 S DIEVOUT=1 Q
|
---|
67 | . I '$D(^DD(DIEVF,0,"UP")) Q
|
---|
68 | . I $P($G(@$$ROOT^DILFD(DIEVF,DIEVIEN,1)@(0)),U,4)=1 S DIEVOUT=1
|
---|
69 | I 'DIEVOUT,DIEVFLG'["U",DIEVFLD'=.01 D Q:DIEVOUT
|
---|
70 | . N DIEVKEY
|
---|
71 | . S DIEVKEY=0
|
---|
72 | . F S DIEVKEY=$O(^DD("KEY","F",DIEVF,DIEVFLD,DIEVKEY)) Q:'DIEVKEY D
|
---|
73 | . . Q:$D(^DD("KEY",DIEVKEY,0))[0
|
---|
74 | . . D ERR742^DIEVK1(DIEVF,DIEVFLD,DIEVKEY,DIEVIEN)
|
---|
75 | . . S DIEVOUT=1
|
---|
76 | I 'DIEVOUT S DIEVANS="" S:DIEVFLG["E" DIEVANS(0)=""
|
---|
77 | E D
|
---|
78 | . N INT,EXT
|
---|
79 | . S INT(1)=$$FLDNM^DIEFU(DIEVF,DIEVFLD),INT(2)=$$FILENM^DIEFU(DIEVF)
|
---|
80 | . S EXT("FILE")=DIEVF,EXT("FIELD")=DIEVFLD
|
---|
81 | . D BLD^DIALOG(712,.INT,.EXT)
|
---|
82 | Q
|
---|
83 | ;
|
---|
84 | DATA(DIEVF,DIEVFLD) ;
|
---|
85 | N DIEVNODE,DIEVSPOT,N S DIEVSPOT=" ",N=0
|
---|
86 | D GLRF^DIOU(DIEVF,DIEVFLD,.DIEVNODE,.DIEVSPOT)
|
---|
87 | I +DIEVSPOT D
|
---|
88 | . I $P($G(@DIEVNODE),U,DIEVSPOT)'="" S N=1
|
---|
89 | E I $E(DIEVSPOT)="E" D
|
---|
90 | . N F,T
|
---|
91 | . S F=$P($P(DIEVSPOT,"E",2),",",1),T=$P(DIEVSPOT,",",2)
|
---|
92 | . I $TR($E($G(@DIEVNODE),F,T)," ")'="" S N=1
|
---|
93 | Q N
|
---|
94 | ;
|
---|
95 | INT(%B1,%B2,DIEVFLG,X,DIEVANS,%B3,%B) ;
|
---|
96 | N %A,%E,%C,DIR,DIC,Y,DIE,%J,%T,%BA,DP,DIFLD,DDH,%BU,%I,%K,DQ,DIFILE,C,DIEVECNT,DIRDINUM
|
---|
97 | I $G(%B3)="" S %B3=^DD(%B1,%B2,0),%B=$P(%B3,U,2)
|
---|
98 | I %B["V" D VP^DIEV1(%B1,%B2,DIEVFLG,X,%B3,.DIEVANS) Q
|
---|
99 | I %B["N" D Q:$G(DIEVANS)=U
|
---|
100 | . I $L($P(X,"."))>24 S DIEVANS=U Q
|
---|
101 | I %B["S" S X=$$UP^DILIBF(X)
|
---|
102 | S %A=%B1_","_%B2_",V",%E=0,DIR("V")="",%T=$E(%B1)
|
---|
103 | S DIEVECNT=$G(DIERR)
|
---|
104 | S:DIEVFLG["N" DIRDINUM=1 D 1^DIR1
|
---|
105 | I DIEVECNT'=$G(DIERR) S DIEVANS=U D HKERR^DILIBF(%B1,$G(DIEVIEN),%B2,"screen on a pointer or set of codes or in an input transform") K:$G(DIRDINUM) DINUM Q
|
---|
106 | I %E S DIEVANS=U K:$G(DIRDINUM) DINUM Q
|
---|
107 | S DIEVANS=$S(%B'["P":Y,1:$P(Y,U))
|
---|
108 | I DIEVFLG["E" D
|
---|
109 | . I %B["S"!(%B["D") S DIEVANS(0)=$P(Y(0),U)
|
---|
110 | . E I %B["P" S DIEVANS(0)=Y(0,0)
|
---|
111 | . E I %B["O" D
|
---|
112 | . . S DIEVECNT=$G(DIERR)
|
---|
113 | . . X $G(^DD(%B1,%B2,2))
|
---|
114 | . . I DIEVECNT'=$G(DIERR) D HKERR^DILIBF(%B1,$G(DIEVIEN),%B2,"output transform") Q
|
---|
115 | . . S DIEVANS(0)=Y
|
---|
116 | . . Q
|
---|
117 | . E S DIEVANS(0)=Y
|
---|
118 | . Q
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | KEY(DIEVF,DIEVIEN,DIEVFLD,DIEVFLG,DIEVAL,DIEVANS) ;checks Key integrity for a value
|
---|
122 | N DIEVKEY,DIEVFDA S DIEVKEY=""
|
---|
123 | S DIEVFDA(DIEVF,DIEVIEN,DIEVFLD)=DIEVAL
|
---|
124 | I '$$KEYVAL^DIEVK($E("K",DIEVFLG["K"),"DIEVFDA") K DIEVANS S DIEVANS=U
|
---|
125 | Q
|
---|
126 | ;
|
---|
127 | FDA ;
|
---|
128 | I $G(DIEVFAR)="" D BLD^DIALOG(202,"FDA") Q
|
---|
129 | D LOAD^DIEF1(DIEVF,DIEVIEN,DIEVFLD,"",DIEVANS,DIEVFAR)
|
---|
130 | Q
|
---|
131 | ;
|
---|
132 | ERR ;
|
---|
133 | N INT,EXT
|
---|
134 | S INT(1)=$$FLDNM^DIEFU(DIEVF,DIEVFLD),INT(2)=$$FILENM^DIEFU(DIEVF),(INT(3),EXT(3))=DIEVAL
|
---|
135 | S EXT("FILE")=DIEVF,EXT("FIELD")=DIEVFLD,EXT("IENS")=$G(DIEVIEN)
|
---|
136 | D BLD^DIALOG(701,.INT,.EXT)
|
---|
137 | I DIEVFLG["H" D GET^DIEH(DIEVF,"",DIEVFLD,"?b") ;DA() and D0,D1,etc. passed thru symbol table
|
---|
138 | Q
|
---|
139 | ;
|
---|
140 | CHKX ;
|
---|
141 | N DIEV0,DIEVP2 K DIEVANS
|
---|
142 | I '$D(DIQUIET) N DIQUIET S DIQUIET=1
|
---|
143 | I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
|
---|
144 | S DIEVFLG=$G(DIEVFLG) I '$$VERFLG^DIEFU(DIEVFLG,"HEN") G OUT
|
---|
145 | D FLDVAL I $G(DIEVAL)=U D OUT Q
|
---|
146 | D MINVAL
|
---|
147 | Q
|
---|