Annotation of freem_fileman/DIEV1.m, revision 1.1.1.1
1.1 snw 1: DIEV1 ;SFISC/DPC -- VARIABLE POINTER VALIDATION ;5/9/94 09:15
2: ;;21.0;VA FileMan;;Dec 28, 1994
3: ;Per VHA Directive 10-93-142, this routine should not be modified.
4: VP(DIEVF,DIEVFLD,DIEVFLG,DIEVAL,DIEV0,DIVPOUT) ;
5: N DIVPY,DIVPHITF,DIVPZ,DIVPVP,DIVPRNUM,DIVPFILE,DIVPSAVV,DIVPAMB,DIVPFLK
6: K DIVPOUT
7: S DIVPAMB=0
8: I DIEVAL'["."!($P(DIEVAL,".")="") D ALL,DONE Q
9: S DIVPSAVV=DIEVAL,DIVPFLK=$P(DIVPSAVV,"."),DIEVAL=$P(DIVPSAVV,".",2,99)
10: N DIVPVPS D VPNUMS(DIEVF,DIEVFLD,DIVPFLK,.DIVPVPS)
11: I $D(DIVPVPS) D
12: . S DIVPVP=""
13: . F S DIVPVP=$O(DIVPVPS(DIVPVP)) Q:DIVPVP="" D FINDVP Q:DIVPAMB
14: I DIVPAMB S DIVPOUT=U Q
15: I $D(DIVPY) D DONE Q
16: S DIEVAL=DIVPSAVV
17: D ALL,DONE
18: Q
19: ;
20: ALL ;
21: N DIVPORD S DIVPORD=0
22: F S DIVPORD=$O(^DD(DIEVF,DIEVFLD,"V","O",DIVPORD)) Q:'DIVPORD D Q:DIVPAMB
23: . S DIVPVP=$O(^DD(DIEVF,DIEVFLD,"V","O",DIVPORD,""))
24: . D FINDVP
25: Q
26: ;
27: VPNUMS(DIEVF,DIEVFLD,DIVPFLK,DIVPVPS) ;
28: I $D(^DD(DIEVF,DIEVFLD,"V","P",DIVPFLK)) S DIVPVPS($O(^(DIVPFLK,"")))="" Q
29: N DIVPMES S DIVPMES=""
30: F S DIVPMES=$O(^DD(DIEVF,DIEVFLD,"V","M",DIVPMES)) Q:DIVPMES="" D
31: . I $P(DIVPMES,DIVPFLK)="" S DIVPVPS($O(^DD(DIEVF,DIEVFLD,"V","M",DIVPMES,"")))=""
32: S DIVPFILE=0
33: F S DIVPFILE=$O(^DD(DIEVF,DIEVFLD,"V","B",DIVPFILE)) Q:DIVPFILE="" D
34: . I $P($$GET1^DID(DIVPFILE,"","","NAME"),DIVPFLK)="" S DIVPVPS($O(^DD(DIEVF,DIEVFLD,"V","B",DIVPFILE,"")))=""
35: Q
36: ;
37: FINDVP ;
38: S DIVPZ=^DD(DIEVF,DIEVFLD,"V",DIVPVP,0)
39: S DIVPFILE=+DIVPZ Q:'DIVPFILE
40: N DIVPECNT S DIVPECNT=$G(DIERR)
41: I $P(DIVPZ,U,5)="y" N DIC X ^DD(DIEVF,DIEVFLD,"V",DIVPVP,1)
42: I DIVPECNT'=$G(DIERR) D HKERR^DILIBF(DIEVF,"",DIEVFLD,"variable pointer screen") Q
43: S DIVPRNUM=$$FIND1^DIC(DIVPFILE,"","",DIEVAL,"",$G(DIC("S")))
44: I $D(^TMP("DIERR",$J,"E",299)) K DIVPY S DIVPAMB=1
45: I 'DIVPRNUM Q
46: I DIVPRNUM,'$D(DIVPY) S DIVPY=DIVPRNUM,DIVPHITF=DIVPFILE Q
47: I DIVPRNUM,$D(DIVPY) D
48: . K DIVPY
49: . S DIVPAMB=1
50: . N DIVPP S DIVPP(1)=DIEVAL D BLD^DIALOG(299,.DIVPP,.DIVPP)
51: Q
52: ;
53: DONE ;
54: I '$G(DIVPY) S DIVPOUT=U Q
55: S DIVPOUT=DIVPY_";"_$E($$GET1^DID(DIVPHITF,"","","GLOBAL NAME"),2,99)
56: D IT
57: I DIVPOUT=U Q
58: I DIEVFLG["E" S DIVPOUT(0)=$$EXTERNAL^DILFD(DIEVF,DIEVFLD,"",DIVPOUT)
59: Q
60: ;
61: IT ;
62: N X S X=DIVPOUT
63: N DIVPECNT S DIVPECNT=$G(DIERR)
64: I $G(DIEV0) X $P(DIEV0,U,5,99)
65: I '$G(DIEV0) X $P(^DD(DIEVF,DIEVFLD,0),U,5,99)
66: I DIVPECNT'=$G(DIERR) S DIVPOUT=U D HKERR^DILIBF(DIEVF,"",DIEVFLD,"input transform") Q
67: S DIVPOUT=$G(X,U)
68: Q
69: ;
70: VPFILES(DIEVF,DIEVFLD,DIVPFLK,DIVPANS) ;
71: N DIVPVPS,DIEVFILE
72: D VPNUMS(DIEVF,DIEVFLD,DIVPFLK,.DIVPVPS)
73: I '$D(DIVPVPS) Q
74: N DIVPVP S DIVPVP=""
75: F S DIVPVP=$O(DIVPVPS(DIVPVP)) Q:DIVPVP="" D
76: . S DIVPANS(+^DD(DIEVF,DIEVFLD,"V",DIVPVP,0))=""
77: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>