Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DITMU2

DITMU2.m

Go to the documentation of this file.
  1. DITMU2(SUBFILE,GBL,FORM) ;SFISC/EDE(OHPRD)-RETURN SUBFILE GLOBAL REFERENCE ;
  1. ;;22.0;VA FileMan;;Mar 30, 1999
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;
  1. ; Given a subfile number and global reference form, this routine
  1. ; will return the global reference for a subfile in the form
  1. ; specified.
  1. ;
  1. ; FORM is optional but if passed should equal 1 or 2. If FORM is
  1. ; not passed the default form will be 1.
  1. ;
  1. ; FORM = 1 will be in the form ^GBL(DA(2),11,DA(1),11,DA,
  1. ; FORM = 2 will be in the form ^GBL(D0,11,D1,11,D2,
  1. ;
  1. ; Formal list:
  1. ;
  1. ; 1) SUBFILE = subfile number (call by value)
  1. ; 2) GBL = global reference (call by reference)
  1. ; 3) FORM = global reference form (call by value)
  1. ;
  1. ; *** NO ERROR CHECKING DONE ***
  1. ;
  1. START ;
  1. NEW FIELD,I,LVL,NODE,PARENT
  1. S GBL="",LVL=1
  1. D BACKUP
  1. S GBL=^DIC(PARENT,0,"GL")
  1. I $G(FORM)=2 D S GBL=GBL_"D"_(I+1)_"," I 1
  1. . F I=0:1 S GBL=GBL_"D"_I_","_NODE(99-LVL)_",",LVL=LVL-1 Q:LVL=0
  1. . Q
  1. E D S GBL=GBL_"DA,"
  1. . F LVL=LVL:-1:0 Q:LVL=0 S GBL=GBL_"DA("_LVL_"),"_NODE(99-LVL)_","
  1. . Q
  1. Q
  1. ;
  1. BACKUP ; BACKUP TREE (CALLED RECURSIVELY)
  1. S PARENT=^DD(SUBFILE,0,"UP")
  1. S FIELD=$O(^DD(PARENT,"SB",SUBFILE,""))
  1. 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)_""""
  1. I $D(^DD(PARENT,0,"UP")) S SUBFILE=PARENT,LVL=LVL+1 D BACKUP ; Recurse
  1. Q