| [613] | 1 | LEXXFI6 ; ISL/KER - File Info - DD Information      ; 07/28/2004
 | 
|---|
 | 2 |  ;;2.0;LEXICON UTILITY;**32**;Sep 23, 1996;Build 1
 | 
|---|
 | 3 |  Q
 | 
|---|
 | 4 |  ;                        
 | 
|---|
 | 5 |  ; Global Variables
 | 
|---|
 | 6 |  ;   ^TMP("LEXI",$J      SACC 2.3.2.5.1
 | 
|---|
 | 7 |  ;                       
 | 
|---|
 | 8 |  ; External References
 | 
|---|
 | 9 |  ;   DBIA 10022  %XY^%RCR
 | 
|---|
 | 10 |  ;                            
 | 
|---|
 | 11 | DDI(X,LEX) ; Data Dictionary Information
 | 
|---|
 | 12 |  N %X,%Y,LEXFI,LEXFLD,LEXLOC,LEXND,LEXNDD,LEXNM,LEXSF
 | 
|---|
 | 13 |  K ^TMP("LEXI",$J) S LEXFI=+($G(X)) Q:+LEXFI'>0
 | 
|---|
 | 14 |  S %X="^DD("_LEXFI_",",%Y="^TMP(""LEXI"",$J,"_LEXFI_"," D %XY^%RCR
 | 
|---|
 | 15 |  S LEX("DD",LEXFI,0)=$G(^TMP("LEXI",$J,LEXFI,0))
 | 
|---|
 | 16 |  S LEXNM=$O(^TMP("LEXI",$J,LEXFI,0,"NM",""))
 | 
|---|
 | 17 |  S:$L(LEXNM) LEX("DD",LEXFI,0,"NM",LEXNM)=""
 | 
|---|
 | 18 |  S LEXFLD=0 F  S LEXFLD=$O(^TMP("LEXI",$J,LEXFI,LEXFLD)) Q:+LEXFLD=0  D
 | 
|---|
 | 19 |  . S LEXLOC=$G(^TMP("LEXI",$J,LEXFI,LEXFLD,0))
 | 
|---|
 | 20 |  . Q:+($P($P(LEXLOC,"^",4),";",2))>0
 | 
|---|
 | 21 |  . S LEX("DD",LEXFI,LEXFLD,0)=$G(^TMP("LEXI",$J,LEXFI,LEXFLD,0))
 | 
|---|
 | 22 |  S LEXND="" F  S LEXND=$O(^TMP("LEXI",$J,LEXFI,"GL",LEXND)) Q:LEXND=""  D
 | 
|---|
 | 23 |  . S LEXLOC="" F  S LEXLOC=$O(^TMP("LEXI",$J,LEXFI,"GL",LEXND,LEXLOC)) Q:LEXLOC=""  D
 | 
|---|
 | 24 |  . . Q:+LEXLOC>0  S LEXFLD=0
 | 
|---|
 | 25 |  . . F  S LEXFLD=$O(^TMP("LEXI",$J,LEXFI,"GL",LEXND,LEXLOC,LEXFLD)) Q:+LEXFLD=0  D
 | 
|---|
 | 26 |  . . . S LEXNDD=$G(^TMP("LEXI",$J,LEXFI,LEXFLD,0))
 | 
|---|
 | 27 |  . . . S LEXSF=+($P(LEXNDD,"^",2)) Q:+LEXSF=0
 | 
|---|
 | 28 |  . . . S LEX("DD",LEXFI,"GL",LEXND,LEXLOC,LEXFLD)=""
 | 
|---|
 | 29 |  . . . S:+LEXSF>0 LEX("DD",LEXFI,"GL",LEXND,LEXLOC,LEXFLD)=+LEXSF
 | 
|---|
 | 30 |  S LEXSF=0 F  S LEXSF=$O(^TMP("LEXI",$J,LEXFI,"SB",LEXSF)) Q:+LEXSF=0  D
 | 
|---|
 | 31 |  . S LEXFLD=0 F  S LEXFLD=$O(^TMP("LEXI",$J,LEXFI,"SB",LEXSF,LEXFLD)) Q:+LEXFLD=0  D
 | 
|---|
 | 32 |  . . S LEX("DD",LEXFI,"SB",LEXSF,LEXFLD)=""
 | 
|---|
 | 33 |  I $L($G(^TMP("LEXI",$J,LEXFI,0,"UP"))) D
 | 
|---|
 | 34 |  . S LEX("DD",LEXFI,0,"UP")=$G(^TMP("LEXI",$J,LEXFI,0,"UP"))
 | 
|---|
 | 35 |  K ^TMP("LEXI",$J,LEXFI)
 | 
|---|
 | 36 |  S %X="^DIC("_LEXFI_",",%Y="^TMP(""LEXI"",$J,"_LEXFI_"," D %XY^%RCR
 | 
|---|
 | 37 |  I $D(^TMP("LEXI",$J,LEXFI,0)) D
 | 
|---|
 | 38 |  . S LEX("DIC",LEXFI,0)=$G(^TMP("LEXI",$J,LEXFI,0))
 | 
|---|
 | 39 |  I $D(^TMP("LEXI",$J,LEXFI,0,"GL")) D
 | 
|---|
 | 40 |  . S LEX("DIC",LEXFI,0,"GL")=$G(^TMP("LEXI",$J,LEXFI,0,"GL"))
 | 
|---|
 | 41 |  K ^TMP("LEXI",$J,LEXFI)
 | 
|---|
 | 42 |  S LEXSF=0 F  S LEXSF=$O(LEX("DD",LEXFI,"SB",LEXSF)) Q:+LEXSF'>0  D DDI2
 | 
|---|
 | 43 |  I $D(LEX("DD",LEXFI,0,"UP")) D DDI3
 | 
|---|
 | 44 |  Q
 | 
|---|
 | 45 | DDI2 ; Sub-Files
 | 
|---|
 | 46 |  Q:+($G(LEXSF))'>0  Q:$D(LEX("DD",LEXSF))
 | 
|---|
 | 47 |  N LEXTSF,LEXTFI S LEXTSF=LEXSF,LEXTFI=LEXFI
 | 
|---|
 | 48 |  N LEXFI S LEXFI=+LEXTSF K ^TMP("LEXI",$J,LEXTFI)
 | 
|---|
 | 49 |  D DDI(LEXFI,.LEX)
 | 
|---|
 | 50 |  Q
 | 
|---|
 | 51 | DDI3 ; Parent Files
 | 
|---|
 | 52 |  Q:'$D(LEX("DD",LEXFI,0,"UP"))
 | 
|---|
 | 53 |  N LEXUP,LEXTFI
 | 
|---|
 | 54 |  S LEXUP=+($G(LEX("DD",LEXFI,0,"UP"))) Q:$D(LEX("DD",LEXUP))
 | 
|---|
 | 55 |  S LEXTFI=LEXFI N LEXFI S LEXFI=+LEXUP
 | 
|---|
 | 56 |  D DDI(LEXFI,.LEX)
 | 
|---|
 | 57 |  Q
 | 
|---|