Annotation of freem_fileman/DIC.m, revision 1.1

1.1     ! snw         1: DIC    ;SFISC/XAK,SEA/TOAD-VA FileMan: Lookup, Part 1 ;11/16/94  11:30
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        N D
        !             5:        S D="B" K DF,DS,DIROUT,DTOUT,DUOUT
        !             6: EN     K DO,DICR S U="^" S:DIC DIC=^DIC(DIC,0,"GL") D PGM^DIC2 I $D(DIPGM) S DIPGM(0)=1 G @DIPGM
        !             7:        I '$D(@(DIC_"0)")),'$D(DIC("P")),$E(DIC,1,6)'="^DOPT(" S Y=-1 G Q^DIC2
        !             8: ASK    I DIC(0)["A" W ! D ^DIC1
        !             9:        I $D(DIADD),X'["""",U'[X,X'?."?" S X=""""_X_""""
        !            10: X      ;
        !            11:        D DO^DIC1:'$D(DO) I U'[X,X'?."?",$D(^DD(+DO(2),.01,7.5)) X ^(7.5) G:'$D(X) BAD^DIC1
        !            12:        D PGM^DIC2 I $D(DIPGM) S DIPGM(0)=2 G @DIPGM
        !            13: RTN    D:'$D(DO) DO^DIC1
        !            14:        G O^DIC1:X'?.ANP,N:$L(X)>30
        !            15:        I X?.NP G NO:X="",N:U[X,NUM:+X=X&(X>0),^DICQ:X?1."?" I X=" ",$L(DIC)<29,$D(^DISV(DUZ,DIC))#2 S Y=+^(DIC) D S G GOT^DIC2:$T,BAD^DIC1
        !            16: F      ;
        !            17:        S (DD,DS)=0
        !            18: T      S Y=$O(@(DIC_"D,X,0)")),DIX=X S:Y="" Y=-1 I Y'<0 G DIY:$O(^(Y))]""!((DIC(0)'["O")&(DIC(0)["E")) D MN I  G K:DS S DS=1 G GOT^DIC2
        !            19: DIX    I DIC(0)'["X" S:X?.N&(DO(2)'["D")&'$D(DIDA) DIX=$O(@(DIC_"D,DIX_"" "")"),-1) S DIX=$O(@(DIC_"D,DIX)")) I $P(DIX,X)="",DIX'="" S Y=$O(^(DIX,0)) S:Y="" Y=-1 G DIY
        !            20: M      I DIC(0)["M" S D=$S($D(DID):$P(DID,U,DID(1)),1:$O(@(DIC_"D)"))) S:$D(DID) DID(1)=DID(1)+1
        !            21:        I DIC(0)["M",D]"" G M:$D(@(DIC_"D)"))-10,T:X'?.NP,T:+X'=X D DO^DIC1:'$D(DO) S Y=$O(^DD(+DO(2),0,"IX",D,0)) S:Y="" Y=-1 G T:$O(^(Y,0))="",T:'$D(^DD(Y,$O(^(0)),0)),M:$P(^(0),U,2)["P",T
        !            22:        D D G G:DS=1,Y^DIC1:DS
        !            23: N      I X[U S DUOUT=1 G NO
        !            24:        D DO^DIC1:'$D(DO) I X?1"`".NP S Y=$E(X,2,30),DZ=0 G A:Y="" D S S DS=1,DD=Y G GOT^DIC2:$T I DIC(0)'["L" W:DIC(0)["Q" $C(7),$S('$D(DDS):"  ??",1:"") G A
        !            25:        G ^DICQ:X?."?",^DICM
        !            26: NUM    D DO^DIC1:'$D(DO) G F:DO(2)<0!$D(DF) S DD=$D(^DD(+DO(2),.001)),DS=$P(^(.01,0),"^",2) I $D(@(DIC_"X)")) G:'DD P:DS["N"!('$O(^("A["))&($O(^("A["))]"")) S Y=X D S G GOT^DIC2:$T
        !            27: P      I DS["P"!(DS["V"),DIC(0)'["U" S (DD,DS)=0 G M
        !            28:        G F
        !            29: 1      ;
        !            30:        D S G GOT^DIC2:$T,F
        !            31: MN     S DZ=$S(DIC(0)["D":1,$D(^(Y))-1:0,1:^(Y)),DIYX=0 D:'$D(DO) DO^DIC1
        !            32:        I 'DZ,'$D(DO("SCR")),$L(DIX)<30,D="B",'$D(DIC("S")),'$D(@(DIC_"Y,-9)")) S DIY="" Q
        !            33:        D S S:D="B"&'DZ&($P(DIY,DIX)="") DIY=$P(DIY,DIX,2,9),DIYX=1
        !            34:        Q
        !            35: S      D:'$D(DO) DO^DIC1 I $D(@(DIC_"Y,0)")) S DIY=$P(^(0),U)
        !            36:        E  S DIY="" Q
        !            37:        I '$D(^(-9)) X:$D(DIC("S")) DIC("S") K DIAC,DIFILE Q:'$T!'$D(DO("SCR"))  I $D(@(DIC_"Y,0)")) X DO("SCR")
        !            38:        Q
        !            39: Y      S Y=$O(@(DIC_"D,DIX,Y)")) S:Y="" Y=-1
        !            40: DIY    I Y<0 G DIX:DIC(0)'["O"&(DIC(0)["E"),G:DS=1&(D="B")&(DIX=X),DIX
        !            41:        D MN E  G Y
        !            42: K      F DZ=1:1:DS I $D(DS(DZ)),+DS(DZ)=Y,DIC(0)'["C" G Y
        !            43:        D DS^DICN1:'$D(DISMN) I $S<DISMN F DZ=1:1:DS-7 K DS(DZ),DIY(DZ),DIYX(DZ)
        !            44:        S DS=DS+1,DS(DS)=Y_"^"_$P(DIX,X,2,99),DIY(DS)=DIY S:DIY]""&$G(DIYX) DIYX(DS)=1 G Y:DS#5-1,Y:DS=1,Y:DIC(0)["Y",Y^DIC1
        !            45: G      S DIY=1,DIX=X I DIC(0)["E",DIC(0)'["D",'$D(DICRS) S:$D(DDS) DST=$S($D(DST)#2:DST_"  ",1:"")_X_$P(DS(1),U,2,99)_$S($G(DIYX(1)):$G(DIY(1)),1:"") W:'$D(DDS) $P(DS(1),U,2,99)
        !            46: C      S Y=+DS(DIY),X=X_$P(DS(DIY),"^",2),DIYX=$G(DIYX(DIY)),DIY=DIY(DIY)
        !            47:        G GOT^DIC2
        !            48:        ;
        !            49: D      S D=$S($D(DF):DF,1:"B") S:$D(DID(1)) DID(1)=2 Q
        !            50: IX     K DTOUT,DUOUT S DF=D G EN
        !            51: A      K DIY,DIYX,DS I DIC(0)["A" D D G ASK
        !            52: NO     S Y=-1 G Q^DIC2
        !            53:        ;
        !            54:        ;DBS entry points
        !            55:        ;
        !            56: LIST(DIFILE,DIFIEN,DIFIELDS,DIFLAGS,DINUMBER,DIFROM,DIPART,DINDEX,DICALSCR,DIWRITE,DILIST,DIMSGA)      ;SEA/TOAD
        !            57:        ;ENTRY POINT--return a list of entries from a file
        !            58:        ;subroutine, DIFROM passed by value
        !            59:        G IN^DICL
        !            60:        ;
        !            61: FIND1(DIFILE,DIEN,DIFLAGS,DIVALUE,DINDEX,DISCREEN,DIMSGA)      ;SEA/TOAD
        !            62:        ;ENTRY POINT--find a single entry in the file
        !            63:        ;function, all passed by value
        !            64:        I '$D(DIQUIET) N DIQUIET S DIQUIET=1
        !            65:        I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
        !            66:        I $G(DIMSGA)'="" D 
        !            67:        .K @DIMSGA@("DIERR"),@DIMSGA@("DIHELP"),@DIMSGA@("DIMSG")
        !            68:        N DIERN,DIFIND,DIPE,DITARGET
        !            69:        D FIND^DICF($G(DIFILE),$G(DIEN),"",$G(DIFLAGS)_"f",$G(DIVALUE),1,$G(DINDEX),$G(DISCREEN),"","DITARGET")
        !            70:        I $D(DIERR) S DIFIND=""
        !            71:        E  I $P($G(DITARGET(0)),U,3) K DITARGET S DIFIND="" D
        !            72:        .S DIERN=299
        !            73:        .S DIPE(1)=$G(DIVALUE)
        !            74: F1     .S DIPE("FILE")=$G(DIFILE)
        !            75:        .S DIPE("IEN")=$G(DIEN)
        !            76:        .D BLD^DIALOG(DIERN,.DIPE,.DIPE)
        !            77:        .Q
        !            78:        E  S DIFIND=+$G(DITARGET(1))
        !            79:        I $G(DIMSGA)'="" D CALLOUT^DIEFU(DIMSGA)
        !            80:        Q DIFIND
        !            81:        ;
        !            82: FIND(DIFILE,DIEN,DIFLDS,DIFLAGS,DIVALUE,DIMAX,DIFORCE,DISCREEN,DID,DILIST,DIMSGA)      ;SEA/TOAD
        !            83:        ;ENTRY POINT--in a file find entries that match a value
        !            84:        ;procedure, all passed by value
        !            85:        G FINDX^DICF
        !            86:        ;

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