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