| 1 | DIEV1 ;SFISC/DPC -- VARIABLE POINTER VALIDATION ;1:39 PM  12 Sep 2002
 | 
|---|
| 2 |  ;;22.0;VA FileMan;**26,72,90,112**;Mar 30, 1999
 | 
|---|
| 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","","","A"),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",$G(^DD(DIEVF,DIEVFLD,"V",DIVPVP,1))]"" 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,"","BO",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","","","A"),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
 | 
|---|