Annotation of freem_fileman/DICF5.m, revision 1.1
1.1 ! snw 1: DICF5 ;SEA/TOAD-VA FileMan: Finder, Part 5 (Ptr Indexes) ;11/4/94 10:59 ;
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4:
! 5: PREPP(DIFLAGS,DINDEX,DITYPE,DISKIP,DILIST)
! 6: ; PREPIX^DICF2--transform value for indexed pointer field
! 7: ; proc, DINDEX passed by ref
! 8: N DIF,DINODE,DIPFILE,DIPLIST,DIPVAL,DISAVE
! 9: S DIF=$TR(DIFLAGS,$TR(DIFLAGS,"Xg"))
! 10: S DIPVAL=@DILIST("LVA")@("V")
! 11: S DILIST("SAVE")=DILIST("LVA")
! 12: S DILIST("LVA")="^TMP(""DILVA"",$J,"_DILIST(0)_")"
! 13: S DIPLIST=$NA(@DILIST("LVA")@("V"))
! 14: 90 S DIPLIST(0)=DILIST(0)+1
! 15: S DIPLIST("LVA")=DILIST("SAVE")
! 16: S DISAVE=@DILIST("SAVE")@("S")
! 17: I DISAVE'="" S @DILIST("SAVE")@("S")=""
! 18: F DINODE="1","2","0,5","0,6" D
! 19: . S @("DISAVE("_DINODE_")=$G(@DILIST(""SAVE"")@(""S"","_DINODE_"))")
! 20: . I @("DISAVE("_DINODE_")'=""""") D
! 21: . . S @("@DILIST(""SAVE"")@(""S"","_DINODE_")=""""")
! 22: 91 I DITYPE="P" D
! 23: . S DIPFILE=+$P($P(DINDEX(0,"DEF"),U,2),"P",2)
! 24: . D FIND^DICF(DIPFILE,"","","Mp"_DIF,"","","","","",.DIPLIST,DIPLIST)
! 25: . S DISKIP=DIPLIST("C")=0
! 26: I DISKIP Q
! 27: 92 I DITYPE="VP" D
! 28: . N DIFIELD,DIFILE,DIOUT
! 29: . S DIPLIST("C")=0
! 30: . S DIFILE=DINDEX(0,"FILE")
! 31: . S DIFIELD=DINDEX(0,"FIELD")
! 32: . S DIPFILE=0,DIOUT=0 F D Q:DIOUT
! 33: . . S DIPFILE=$O(^DD(DIFILE,DIFIELD,"V","B",DIPFILE))
! 34: . . I DIPFILE="" S DIOUT=1 Q
! 35: . . D FIND^DICF(DIPFILE,"","","Mpv"_DIF,"","","","","",.DIPLIST,DIPLIST)
! 36: . . S DISKIP=DIPLIST("C")=0&DISKIP
! 37: 93 . I DIPVAL["." D PIECES(DIFILE,DIFIELD,DIF,DIPVAL,.DISKIP,.DIPLIST)
! 38: I 'DISKIP S @DILIST("LVA")@("S")=@DILIST("SAVE")@("S")
! 39: I DISAVE'="" S @DILIST("SAVE")@("S")=DISAVE
! 40: F DINODE="1","2","0,5","0,6" D
! 41: . I @("DISAVE("_DINODE_")'=""""") D
! 42: . . S @("@DILIST(""SAVE"")@(""S"","_DINODE_")=DISAVE("_DINODE_")")
! 43: Q
! 44:
! 45: PIECES(DIFILE,DIFIELD,DIFLAGS,DIPVAL,DISKIP,DIPLIST)
! 46: ; proc, add file.value lookups to index's LVA
! 47: N DILOWER S DILOWER="abcdefghijklmnopqrstuvwxyz"
! 48: N DIUPPER S DIUPPER="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
! 49: N DIFILEN S DIFILEN=$TR($P(DIPVAL,"."),DILOWER,DIUPPER)
! 50: N DIFILES D VPFILES^DIEV1(DIFILE,DIFIELD,DIFILEN,.DIFILES)
! 51: K DIPLIST("LVA")
! 52: N DIVALN S DIVALN=$P(DIPVAL,".",2,9999)
! 53: S DIFILE="" F S DIFILE=$O(DIFILES(DIFILE)) Q:DIFILE="" D
! 54: . D FIND^DICF(DIFILE,"","","Mlpv"_DIFLAGS,DIVALN,"","","","",.DIPLIST,DIPLIST)
! 55: S DISKIP=DIPLIST("C")=0&DISKIP
! 56: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>