Annotation of freem_fileman/DIEV1.m, revision 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>