Annotation of freem_fileman/DICL.m, revision 1.1

1.1     ! snw         1: DICL   ;SEA/TOAD-VA FileMan: Lookup: Lister ;10/18/94  12:02 ;
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        
        !             5: LIST(DIFILE,DIFIEN,DIFIELDS,DIFLAGS,DINUMBER,DIFROM,DIPART,DINDEX,DICALSCR,DIWRITE,DILIST,DIMSGA)      
        !             6:        ; ENTRY POINT--return a list of entries from a file
        !             7:        ; proc, DIFROM may be passed by ref
        !             8:        
        !             9: IN     ; Branch point from LIST^DIC
        !            10:        I '$D(DIQUIET) N DIQUIET S DIQUIET=1
        !            11:        I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
        !            12:        
        !            13: INPUT  
        !            14:        N DIERN,DIPE
        !            15:        S DIFLAGS=$G(DIFLAGS)
        !            16:        S DIFIELDS=$G(DIFIELDS)
        !            17:        S DINUMBER=$G(DINUMBER) I DINUMBER="" S DINUMBER="*"
        !            18:        S DIPART=$G(DIPART)
        !            19:        S DIFROM=$G(DIFROM)
        !            20:        S DIFROM("IEN")=$G(DIFROM("IEN"))
        !            21:        S DINDEX("WAY")=1 I DIFLAGS["B" S DINDEX("WAY")=-1
        !            22:        S DINDEX=$G(DINDEX,"B"),DINDEX=$S(DINDEX?1U.UNP:DINDEX,1:"B")
        !            23:        S DICALSCR=$G(DICALSCR)
        !            24:        S DIWRITE=$G(DIWRITE)
        !            25:        
        !            26: OUTPUT 
        !            27:        I DIFLAGS'["f" D  Q:$G(DIERR)
        !            28:        . I $G(DIMSGA)'="" D
        !            29:        . . K @DIMSGA@("DIERR"),@DIMSGA@("DIHELP"),@DIMSGA@("DIMSG")
        !            30:        . I $G(DILIST)'="" D  Q:$G(DIERR)
        !            31:        . . I DILIST'?.1"^"1U.7UN.ANP,DILIST'?.1"^%".7UN.ANP D  Q
        !            32:        . . . D BLD^DIALOG(202,"target array")
        !            33:        . . S DILIST=$NA(@DILIST@("DILIST"))
        !            34:        . . Q
        !            35:        . E  S DILIST="^TMP(""DILIST"",$J)"
        !            36:        . K @DILIST
        !            37:        . Q
        !            38:        
        !            39: FILE   
        !            40:        N DIFILSCR,DINODE,DIROOT,DISCREEN
        !            41:        S DIFILE=+$G(DIFILE) I 'DIFILE S DIERN=202,DIPE(1)="file" D ERROUT Q
        !            42:        S DINODE=$G(^DD(DIFILE,.01,0))
        !            43:        I DINODE="" D  Q
        !            44:        . S DIERN=$S('$D(^DD(DIFILE)):401,1:406),DIPE("FILE")=DIFILE D ERROUT Q
        !            45:        I $P(DINODE,U,2)["W" S DIERN=407,DIPE("FILE")=DIFILE D ERROUT Q
        !            46:        S DIFIEN=$G(DIFIEN) I DIFIEN="" S DIFIEN=","
        !            47:        I '$$IEN^DIDU1(DIFIEN) D  Q
        !            48:        . I '$$IEN^DIDU1(DIFIEN_",") S DIERN=202,DIPE(1)="IENS" D ERROUT Q
        !            49: F1     . E  S DIERN=304,DIPE("IENS")=DIFIEN D ERROUT Q
        !            50:        I $P(DIFIEN,",")'="" S DIERN=306,DIPE("IENS")=DIFIEN D ERROUT Q
        !            51:        S DIROOT=$$ROOT^DIQGU(DIFILE,DIFIEN,1,1) I $G(DIERR) D OUT Q
        !            52:        I DIROOT'?1"^"1U.7UN.ANP,DIROOT'?1"^%".7UN.ANP D  Q
        !            53:        . S DIERN=402
        !            54:        . S DIPE("FILE")=DIFILE
        !            55:        . S DIPE("IEN")=DIFIEN
        !            56:        . S DIPE("ROOT")=DIROOT
        !            57:        . D ERROUT
        !            58:        . Q
        !            59:        S DIROOT("O")=$$OREF^DIQGU(DIROOT)
        !            60:        S DIFILSCR=$G(^DD(DIFILE,0,"SCR"))
        !            61:        I $P($G(@DIROOT@(0)),U,2)'["s" S DIFILSCR=""
        !            62:        S DISCREEN=DIFILSCR'=""!(DICALSCR'="")
        !            63:        
        !            64: CHECKS 
        !            65:        N DIFROML,DILAST,DIOUT,DIPARTL,DIUSEFRM
        !            66:        I $TR(DIFLAGS,"BIf")'="" S DIERN=301,DIPE(1)=DIFLAGS D ERROUT Q
        !            67:        S DIPARTL=$L(DIPART)
        !            68:        S DIUSEFRM=DIFROM("IEN")'=""
        !            69:        I DINUMBER'="*",DINUMBER<1!(DINUMBER\1'=DINUMBER) D  Q
        !            70:        . S DIERN=202,DIPE(1)="Number" D ERROUT
        !            71:        S DIOUT=0
        !            72:        I DIPART'="",$E(DIFROM,1,DIPARTL)'=DIPART D
        !            73:        . S DIOUT=0
        !            74:        . I DINDEX("WAY")=1 D  Q
        !            75:        . . I DIFROM]](DIPART_$S(+DIPART=DIPART:" ",1:"")) S DIOUT=1 Q
        !            76:        . . S DIFROM=DIPART_$S(+DIPART'=DIPART:"",DIFROM']]DIPART:"",1:" ")
        !            77:        . . S DIUSEFRM=1
        !            78:        . . Q
        !            79: C1     . ; I DINDEX("WAY")=-1
        !            80:        . I DIFROM'="",DIPART]]DIFROM S DIOUT=1 Q
        !            81:        . I +DIPART'=DIPART D  Q
        !            82:        . . S DIFROM=DIPART
        !            83:        . . S DIFROML=$L(DIFROM)
        !            84:        . . S DILAST=$E(DIFROM,DIFROML)
        !            85:        . . S DILAST=$C($A(DILAST)+1)
        !            86:        . . S $E(DIFROM,DIFROML)=DILAST
        !            87:        . . Q
        !            88:        . S DIFROM=$S(DIFROM="":" ",DIFROM]](DIPART_" "):" ",1:"")
        !            89:        . S DIFROM=DIPART+$S($E(DIPART)="-":-1,1:1)_DIFROM
        !            90:        . Q
        !            91:        I DIOUT S @DILIST@(0)="0^"_DINUMBER_"^0" Q
        !            92:        
        !            93: IXANDID        
        !            94:        N DIDENT
        !            95:        D BOTH^DICU1(.DIFILE,DIFLAGS,DIROOT,.DINDEX,DIFIELDS,DIWRITE,.DIDENT)
        !            96:        I $G(DIERR) D OUT Q
        !            97:        
        !            98: BRANCH 
        !            99:        ; I $G(ZRT) S ZRT(ZRT)="BRANCH^"_$ZH,ZRT=ZRT+1
        !           100:        G PREP^DICL1
        !           101:        
        !           102: ERR    D BLD^DIALOG(DIERN,.DIPE,.DIPE) S DIFROM="",DIFROM("IEN")="" Q
        !           103:        
        !           104: ERROUT D ERR,OUT Q
        !           105:        
        !           106: OUT    D CALLOUT^DIEFU($G(DIMSGA)):$G(DIMSGA)'="" Q
        !           107:        

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