Annotation of freem_fileman/DIEV.m, revision 1.1

1.1     ! snw         1: DIEV   ;SFISC/DPC-DATA VALIDATOR ;11/28/94  13:48
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             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,"HFERY") 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
        !            18: OUT    S DIEVANS=$G(DIEVANS,U)
        !            19:        I DIEVFLG["F",DIEVANS'=U D FDA
        !            20:        I $G(DIOUTAR)]"" D CALLOUT^DIEFU(DIOUTAR)
        !            21:        Q
        !            22:        ;
        !            23: FLDVAL ;
        !            24:        N DIEVOUT S DIEVOUT=0
        !            25:        I '$$VFILE^DIEFU(DIEVF,"D") S DIEVAL=U Q
        !            26:        I '$$VFIELD^DIEFU(DIEVF,DIEVFLD,"D") S DIEVAL=U Q
        !            27:        S DIEV0=^DD(DIEVF,DIEVFLD,0),DIEVP2=$P(DIEV0,U,2)
        !            28:        D DTYPE
        !            29:        I DIEVOUT=1 S DIEVAL=U
        !            30:        Q
        !            31:        ;
        !            32: AUXVAL(DIEVF,DIEVIEN,DIEVFLD,DIEVFLG,DIEVAL,DIEVANS,DIEV0,DIEVP2)      ;
        !            33:        N DIEVOUT S DIEVOUT=0
        !            34:        I '$D(DIOVRD),$P($G(^DD($$FNO^DILIBF(DIEVF),0,"DI")),U,2)="Y",DIEVFLG'["Y" D  G AUXERR
        !            35:        . N INT,EXT S INT(1)=$$FILENM^DIEFU(DIEVF),EXT("FILE")=DIEVF
        !            36:        . D BLD^DIALOG(405,.INT,.EXT)
        !            37:        I $P(DIEV0,U,5,99)["DINUM","@"'[DIEVAL D  G AUXERR
        !            38:        . N EXT,INT S EXT("FILE")=DIEVF,EXT("FIELD")=DIEVFLD,(INT(1),EXT(1))="DINUMed"
        !            39:        . D BLD^DIALOG(520,.INT,.EXT)
        !            40:        I $E(DIEVAL)="?"!(DIEVP2["V"&(DIEVAL[".?")) N P S P(1)=DIEVF,P(2)=DIEVFLD D BLD^DIALOG(1610,"",.P) G AUXERR
        !            41:        I DIEVFLG["R" G:'$$VENTRY^DIEFU(DIEVF,DIEVIEN,"D9") AUXERR
        !            42:        I DIEVP2["I",$$DATA(DIEVF,DIEVFLD) N P S P("FIELD")=DIEVFLD,P("FILE")=DIEVF D BLD^DIALOG(710,.P,.P) G AUXERR
        !            43:        I "@"[DIEVAL D DELETE G:DIEVOUT AUXERR Q
        !            44:        I DIEVFLG["I" D
        !            45:        . S DIEVANS=DIEVAL
        !            46:        . I DIEVFLG["E" S DIEVANS(0)=$$EXTERNAL^DIQGU(DIEVF,DIEVFLD,"",DIEVAL)
        !            47:        Q
        !            48: AUXERR S DIEVANS=U
        !            49:        Q
        !            50:        ;
        !            51: DTYPE  ;
        !            52:        I DIEVP2 D  S DIEVOUT=1 Q
        !            53:        . N T,INT,EXT D DTYP^DIOU(DIEVF,DIEVFLD,.T)
        !            54:        . I T=5 S INT(1)="word-processing",EXT("FIELD")=DIEVFLD,EXT("FILE")=DIEVF D BLD^DIALOG(520,.INT,.EXT) Q
        !            55:        . S INT(1)="multi-valued",EXT("FIELD")=DIEVFLD,EXT("FILE")=DIEVF D BLD^DIALOG(520,.INT,.EXT)
        !            56:        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
        !            57:        Q
        !            58:        ;
        !            59: DELETE ;
        !            60:        I $D(^DD(DIEVF,DIEVFLD,"DEL")) D
        !            61:        . N DIEVECNT S DIEVECNT=$G(DIERR)
        !            62:        . N I S I="" F  S I=$O(^DD(DIEVF,DIEVFLD,"DEL",I)) Q:I=""  X $G(^(I,0)) I  S DIEVOUT=1
        !            63:        . I DIEVECNT'=$G(DIERR) S DIEVOUT=1 D HKERR^DILIBF(DIEVF,$G(DIEVIEN),DIEVFLD,"DEL node")
        !            64:        I DIEVP2["R" D
        !            65:        . I DIEVFLD'=.01 S DIEVOUT=1 Q
        !            66:        . I '$D(^DD(DIEVF,0,"UP")) Q
        !            67:        . I $P($G(@$$ROOT^DILFD(DIEVF,DIEVIEN,1)@(0)),U,4)=1 S DIEVOUT=1
        !            68:        I 'DIEVOUT S DIEVANS="" S:DIEVFLG["E" DIEVANS(0)=""
        !            69:        E  D
        !            70:        . N INT,EXT
        !            71:        . S INT(1)=$$FLDNM^DIEFU(DIEVF,DIEVFLD),INT(2)=$$FILENM^DIEFU(DIEVF)
        !            72:        . S EXT("FILE")=DIEVF,EXT("FIELD")=DIEVFLD
        !            73:        . D BLD^DIALOG(712,.INT,.EXT)
        !            74:        Q
        !            75:        ;
        !            76: DATA(DIEVF,DIEVFLD)    ;
        !            77:        N DIEVNODE,DIEVSPOT,N S DIEVSPOT=" ",N=0
        !            78:        D GLRF^DIOU(DIEVF,DIEVFLD,.DIEVNODE,.DIEVSPOT)
        !            79:        I +DIEVSPOT D
        !            80:        . I $P($G(@DIEVNODE),U,DIEVSPOT)'="" S N=1
        !            81:        E  I $E(DIEVSPOT)="E" D
        !            82:        . N F,T
        !            83:        . S F=$P($P(DIEVSPOT,"E",2),",",1),T=$P(DIEVSPOT,",",2)
        !            84:        . I $TR($E($G(@DIEVNODE),F,T)," ")'="" S N=1
        !            85:        Q N
        !            86:        ;
        !            87: INT(%B1,%B2,DIEVFLG,X,DIEVANS,%B3,%B)  ;
        !            88:        N %A,%E,%C,DIR,DIC,Y,DIE,%J,%T,%BA,DP,DIFLD,DDH,%BU,%I,%K,DQ,DIFILE,C,DIEVECNT
        !            89:        I $G(%B3)="" S %B3=^DD(%B1,%B2,0),%B=$P(%B3,U,2)
        !            90:        I %B["V" D VP^DIEV1(%B1,%B2,DIEVFLG,X,%B3,.DIEVANS) Q
        !            91:        I %B["N" D  Q:$G(DIEVANS)=U
        !            92:        . I $L($P(X,"."))>24 S DIEVANS=U Q
        !            93:        I %B["S" S X=$$UP^DILIBF(X)
        !            94:        S %A=%B1_","_%B2_",V",%E=0,DIR("V")="",%T=$E(%B1)
        !            95:        S DIEVECNT=$G(DIERR)
        !            96:        D 1^DIR1
        !            97:        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") Q
        !            98:        I %E S DIEVANS=U Q
        !            99:        S DIEVANS=$S(%B'["P":Y,1:$P(Y,U))
        !           100:        I DIEVFLG["E" D
        !           101:        . I %B["S"!(%B["D") S DIEVANS(0)=$P(Y(0),U)
        !           102:        . E  I %B["P" S DIEVANS(0)=Y(0,0)
        !           103:        . E  I %B["O" D
        !           104:        . . S Y=X
        !           105:        . . S DIEVECNT=$G(DIERR)
        !           106:        . . X $G(^DD(%B1,%B2,2))
        !           107:        . . I DIEVECNT'=$G(DIERR) D HKERR^DILIBF(%B1,$G(DIEVIEN),%B2,"output transform") Q
        !           108:        . . S DIEVANS(0)=Y
        !           109:        . . Q
        !           110:        . E  S DIEVANS(0)=X
        !           111:        . Q
        !           112:        Q
        !           113:        ;
        !           114: FDA    ;
        !           115:        I $G(DIEVFAR)="" D BLD^DIALOG(202,"FDA") Q
        !           116:        D LOAD^DIEF1(DIEVF,DIEVIEN,DIEVFLD,"",DIEVANS,DIEVFAR)
        !           117:        Q
        !           118:        ;
        !           119: ERR    ;
        !           120:        N INT,EXT
        !           121:        S INT(1)=$$FLDNM^DIEFU(DIEVF,DIEVFLD),INT(2)=$$FILENM^DIEFU(DIEVF),(INT(3),EXT(3))=DIEVAL
        !           122:        S EXT("FILE")=DIEVF,EXT("FIELD")=DIEVFLD,EXT("IENS")=$G(DIEVIEN)
        !           123:        D BLD^DIALOG(701,.INT,.EXT)
        !           124:        I DIEVFLG["H" D GET^DIEH(DIEVF,"",DIEVFLD,"?b") ;DA() and D0,D1,etc. passed thru symbol table
        !           125:        Q
        !           126:        ;
        !           127: CHKX   ;
        !           128:        N DIEV0,DIEVP2 K DIEVANS
        !           129:        I '$D(DIQUIET) N DIQUIET S DIQUIET=1
        !           130:        I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
        !           131:        S DIEVFLG=$G(DIEVFLG) I '$$VERFLG^DIEFU(DIEVFLG,"HE") G OUT
        !           132:        D FLDVAL I $G(DIEVAL)=U D OUT Q
        !           133:        D MINVAL
        !           134:        Q

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>