Annotation of freem_fileman/DDS01.m, revision 1.1

1.1     ! snw         1: DDS01  ;SFISC/MLH,MKO-PROCESS BLOCK ;09:44 AM  21 Dec 1994
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        F  D IN,CHK Q:"^Q^NB^NP^"[(U_DDACT_U)
        !             5:        Q
        !             6:        ;
        !             7: IN     K DDSBR,DDSFLD,DDSO,DDSU,DIR
        !             8:        S:$D(@DDSREFS@(DDSPG,$S(DDO:DDSBK,1:0),DDO,"N"))#2 DDSU("N")=^("N")
        !             9:        ;
        !            10:        I DDM,'$G(DDSKM) D CLRMSG^DDS
        !            11:        G:'DDO COM^DDSCOM
        !            12:        ;
        !            13:        S DDSOSV=0
        !            14:        F DDSI=0,1,2,4,7,10:1:14,20 D
        !            15:        . S:$D(^DIST(.404,DDSBK,40,DDO,DDSI))#2 DDSO(DDSI)=^(DDSI)
        !            16:        K DDSI
        !            17:        ;
        !            18:        S DDSFLD=$G(DDSO(1)) K DDSO(1)
        !            19:        I $P($G(DDSO(0)),U,3)=2 N DDP S DDP=0,DDSFLD=DDO_","_DDSBK
        !            20:        ;
        !            21:        I DDSFLD]"",DDSDA]"" F DDSI="A","D","F","M","O","X" D
        !            22:        . S:$D(@DDSREFT@("F"_DDP,DDSDA,DDSFLD,DDSI))#2 DDSU(DDSI)=^(DDSI)
        !            23:        K DDSI
        !            24:        ;
        !            25:        I '$D(DDSREP)!DDSDA,$$UNED($G(DDSU("A")),$G(DDSO(4)),$G(DDSU("N"))) D CURSOR Q:$D(DDSBR)#2  S DDSCHKQ=1 Q
        !            26:        ;
        !            27:        S (X,DDSOLD)=$G(DDSU("D")),DDSEXT=$G(DDSU("X"),X)
        !            28:        ;
        !            29:        X:$G(DDSO(11))'?."^" DDSO(11)
        !            30:        I $D(DDSBR)#2 D BR^DDS2 Q:$D(DDSBR)#2
        !            31:        ;
        !            32:        S DIR0N=1 Q:DDSFLD=""
        !            33:        ;
        !            34:        S:$G(^DD(DDP,DDSFLD,0))'?."^" DDSU("DD")=^(0)
        !            35:        I $D(DDSU("N"))[0 S DDACT="N" Q
        !            36:        Q:$D(DDSO(2))[0
        !            37:        ;
        !            38:        D:$G(@DDSREFT@("HLP"))>0 HLP^DDSMSG()
        !            39:        K DDSKM,DDQ
        !            40:        ;
        !            41:        S DIR0=$P(@DDSREFS@(DDSPG,DDSBK,DDO,"D"),U,1,3)
        !            42:        S:$P(@DDSREFS@(DDSPG,DDSBK,DDO,"D"),U,10) $P(DIR0,U,6)=1
        !            43:        S:$P($G(DDSREP),U,3)>1 $P(DIR0,U)=$P(DIR0,U)+$P(DDSREP,U,3)-1
        !            44:        ;
        !            45:        I $D(DDSREP),'DDSDA,$P(DDSO(0),U,3)'=2 K DDSU("DD") G SEL^DDSM
        !            46:        I $D(DDSU("M"))#2 S DDSGL=U_$P(DDSU("M"),U,2) G:'DDSU("M") WP^DDSWP
        !            47:        S DIR("B")=$G(DDSU("X"),DDSOLD)
        !            48:        ;
        !            49:        I $D(DDSU("M"))#2 D SEL^DDS5 G:X'=DDSOLD&(DDACT="N") EXT
        !            50:        I $P($G(DDSO(0)),U,3)'=2 S DIR(0)=DDP_","_DDSFLD_"O"
        !            51:        E  D DIR^DDSFO
        !            52:        D ^DIR K DIR,DUOUT,DIRUT,DIROUT
        !            53:        I DIR0N S (X,Y)=DDSOLD Q
        !            54:        ;
        !            55: EXT    I $E(X)=U!$D(DTOUT) S DIR0N=1 Q
        !            56:        G EXT^DDS02
        !            57:        ;
        !            58: CHK    Q:$D(DDSBR)#2
        !            59:        I $G(DDSCHKQ)=1 K DDSCHKQ Q
        !            60:        G:$D(DTOUT) TO^DDS3
        !            61:        G:$E(X)=U UPA^DDS2
        !            62:        I $G(DDSFLD)=.01,X="",$G(DA) G ^DDS6
        !            63:        ;
        !            64:        I 'DIR0N,$G(DDSFLD),$D(DDSU("M"))[0,$G(DDSCHKQ)'=2,$P($G(DDSU("DD")),U,5,99)["DINUM"!($P($G(DDSU("DD")),U,2)["I")!$S($P($G(DDSU("A")),U,4)="":$P($G(DDSO(4)),U,4),1:$P($G(DDSU("A")),U,4)) G UNED^DDS02
        !            65:        K DDSCHKQ
        !            66:        ;
        !            67:        I $G(DDSFLD)=.01,$G(DDSPTB)]"",$G(DDSREP)<2,'DIR0N D RPF^DDS7(DDP,DDSPTB,DDSDA,.DA)
        !            68:        X:$G(DDSO(12))'?."^" DDSO(12)
        !            69:        ;
        !            70:        I 'DIR0N,DDO,$G(DDSFLD)]"" D
        !            71:        . I $P($G(DDSO(0)),U,3)=2 N DDP S DDP=0
        !            72:        . S DDSCHG=1
        !            73:        . S:+$G(DDSU("F"))'=1 $P(@DDSREFT@("F"_DDP,DDSDA,DDSFLD,"F"),U)=1
        !            74:        . X:$G(DDSO(13))'?."^" DDSO(13)
        !            75:        . D:$D(@DDSREFS@("PT",DDP,DDSFLD)) RPB^DDS7(DDP,DDSFLD,DDSPG)
        !            76:        . D:$D(@DDSREFS@("COMP",DDP,DDSFLD,DDSPG)) RPCF^DDSCOMP(DDSPG)
        !            77:        ;
        !            78:        I $D(DDSBR)#2 D BR^DDS2 Q:$D(DDSBR)#2
        !            79:        I $T(@DDACT)]"" G @DDACT
        !            80:        I 'DDO G:X]"" ^DDS3 S DDSO(0)=0
        !            81:        ;
        !            82:        G:"^U^D^R^L^"[(U_DDACT_U) CURSOR
        !            83:        G:$D(DDSU("M"))[0 NF
        !            84:        G:DDSU("M") ^DDS5
        !            85:        D EDIT^DDSWP,R^DDSR
        !            86:        ;
        !            87: NF     I 'DDO,DDSOSV S DDO=DDSOSV Q
        !            88:        ;
        !            89:        I DDO,$S($D(DDSREP):DDSDA,1:1) D
        !            90:        . D:'$D(DDSU("M"))
        !            91:        .. I $G(@DDSREFS@("ASUB",DDSPG,DDSBK,DDO))]"" S DDSSTACK="`"_^(DDO)
        !            92:        .. E  I $P($G(DDSO(7)),U,2)]"" S DDSSTACK=$P(DDSO(7),U,2)
        !            93:        . X:$G(DDSO(10))'?."^" DDSO(10)
        !            94:        ;
        !            95:        I $D(DDSSTACK) D ^DDSSTK,R^DDS3 K DDSU
        !            96:        I $D(DDSBR)#2 D BR^DDS2 Q:$D(DDSBR)#2
        !            97:        S DDACT="N"
        !            98:        ;
        !            99: CURSOR N ACT,B,BLK,BLK0,FND,N,REP
        !           100:        S:$D(DDSU("N"))[0 DDSU("N")=$G(@DDSREFS@(DDSPG,DDSBK,DDO,"N"))
        !           101:        S FND=0
        !           102:        I $D(DDSREP),DDO D MNAV^DDSM(.FND) Q:FND
        !           103:        ;
        !           104:        S B=U,(BLK,BLK0)=DDSBK,N=DDSU("N"),ACT=$S(DDO&$G(DDSDN):"N",1:DDACT)
        !           105:        F  D  Q:FND!$D(REP)
        !           106:        . S DDO=$P(N,U,$L($P("U^D^R^L^N",ACT),U))
        !           107:        . I 'DDO S (DDO,DDSBK)=0,FND=1 Q
        !           108:        . ;
        !           109:        . S DDSBK=$P(DDO,",",2),DDO=+DDO
        !           110:        . I DDSBK D  Q:$D(REP)
        !           111:        .. I $P(@DDSREFS@(DDSPG,DDSBK),U,7)>1 S REP=1,DDACT="NB",DDSBR="" Q
        !           112:        .. I $P($G(@DDSREFS@(DDSPG,DDSBK)),U,4) D
        !           113:        ... S DDO=$P($G(@DDSREFS@(DDSPG,DDSBK)),U,9),ACT="N"
        !           114:        .. E  S ACT=DDACT
        !           115:        .. S:$P($G(@DDSREFT@(DDSPG,DDSBK)),U)="" B=B_DDSBK_U
        !           116:        . E  S DDSBK=BLK
        !           117:        . ;
        !           118:        . I B'[(U_DDSBK_U) S FND=1 S:DDSBK'=BLK0 DDACT="NB",DDSBR=""
        !           119:        . ;
        !           120:        . S:'FND N=$G(@DDSREFS@(DDSPG,DDSBK,+DDO,"N")),BLK=DDSBK
        !           121:        Q
        !           122:        ;
        !           123: NP     ;;
        !           124:        G:$D(DDSREP)&DDO PGDN^DDSM
        !           125:        S:DDSNP]"" DDSPG=DDSNP
        !           126:        S:DDSNP="" DDACT="N"
        !           127:        Q
        !           128: PP     ;;
        !           129:        G:$D(DDSREP)&DDO PGUP^DDSM
        !           130:        S DDSPG=$$PP^DDS5(.Y)
        !           131:        S DDACT=$S(Y=1:"NP",1:"N")
        !           132:        Q
        !           133: NB     ;;
        !           134:        S DDSBK=$$NB^DDS5(.Y),DDACT=$S(Y=1:"NB",1:"N")
        !           135:        Q
        !           136: SEL    ;;
        !           137:        S DDACT="N" G PG^DDSRSEL
        !           138: SV     ;;
        !           139:        G SV^DDS02
        !           140: QT     ;;
        !           141:        G QT^DDS3
        !           142: EX     ;;
        !           143:        G EX^DDS3
        !           144: CL     ;;
        !           145:        G CL^DDS3
        !           146: RF     ;;
        !           147:        G R^DDSR
        !           148:        ;
        !           149: UNED(ATT,DEF,N)        ;
        !           150:        Q $S(N="":1,$P(ATT,U,4)="":$P(DEF,U,4)=1,1:$P(ATT,U,4)=1)&'$P(N,U,11)

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