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>