Annotation of freem_fileman/DITMU2.m, revision 1.1
1.1 ! snw 1: DITMU2(SUBFILE,GBL,FORM) ;SFISC/EDE(OHPRD)-RETURN SUBFILE GLOBAL REFERENCE ;
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4: ;
! 5: ; Given a subfile number and global reference form, this routine
! 6: ; will return the global reference for a subfile in the form
! 7: ; specified.
! 8: ;
! 9: ; FORM is optional but if passed should equal 1 or 2. If FORM is
! 10: ; not passed the default form will be 1.
! 11: ;
! 12: ; FORM = 1 will be in the form ^GBL(DA(2),11,DA(1),11,DA,
! 13: ; FORM = 2 will be in the form ^GBL(D0,11,D1,11,D2,
! 14: ;
! 15: ; Formal list:
! 16: ;
! 17: ; 1) SUBFILE = subfile number (call by value)
! 18: ; 2) GBL = global reference (call by reference)
! 19: ; 3) FORM = global reference form (call by value)
! 20: ;
! 21: ; *** NO ERROR CHECKING DONE ***
! 22: ;
! 23: START ;
! 24: NEW FIELD,I,LVL,NODE,PARENT
! 25: S GBL="",LVL=1
! 26: D BACKUP
! 27: S GBL=^DIC(PARENT,0,"GL")
! 28: I $G(FORM)=2 D S GBL=GBL_"D"_(I+1)_"," I 1
! 29: . F I=0:1 S GBL=GBL_"D"_I_","_NODE(99-LVL)_",",LVL=LVL-1 Q:LVL=0
! 30: . Q
! 31: E D S GBL=GBL_"DA,"
! 32: . F LVL=LVL:-1:0 Q:LVL=0 S GBL=GBL_"DA("_LVL_"),"_NODE(99-LVL)_","
! 33: . Q
! 34: Q
! 35: ;
! 36: BACKUP ; BACKUP TREE (CALLED RECURSIVELY)
! 37: S PARENT=^DD(SUBFILE,0,"UP")
! 38: S FIELD=$O(^DD(PARENT,"SB",SUBFILE,""))
! 39: S NODE(99-LVL)=$P($P(^DD(PARENT,FIELD,0),"^",4),";",1) S:NODE(99-LVL)'=+NODE(99-LVL) NODE(99-LVL)=""""_NODE(99-LVL)_""""
! 40: I $D(^DD(PARENT,0,"UP")) S SUBFILE=PARENT,LVL=LVL+1 D BACKUP ; Recurse
! 41: Q
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>