| 1 | DITMU2(SUBFILE,GBL,FORM) ;SFISC/EDE(OHPRD)-RETURN SUBFILE GLOBAL REFERENCE ;
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999
 | 
|---|
| 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
 | 
|---|