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

XBLFAM.m

Go to the documentation of this file.
  1. XBLFAM ;IHS/SET/GTH - LISTS FILE ATTRIBUTES FOR MODELING ; [ 04/18/2003 9:05 AM ]
  1. ;;3.0;IHS/VA UTILITIES;**9**;FEB 07, 1997
  1. ;IHS/SET/GTH XB*3*9 10/29/2002 New routine.
  1. ; This routine lists the following file attributes, useful for
  1. ; moving to a spreadsheet, or other desktop ap, for database
  1. ; modeling activities:
  1. ;
  1. ; File #, File Name, Field #, Field Label, Field type, Desc/Help.,
  1. ; Min Length, Max Length
  1. ; The output is one line of data per field, semi-colon delimited.
  1. ;
  1. ; NOTE: Fields marked for deletion with a "*" preceeding the label
  1. ; are -not- processed.
  1. ;
  1. ; Thanks to George T. Huggins for the original routine.
  1. ;
  1. START ;
  1. ; --- Display routine description.
  1. D HOME^%ZIS,DT^DICRW
  1. KILL ^UTILITY($J)
  1. S ^UTILITY($J,"XBLFAM")=""
  1. D EN^XBRPTL
  1. KILL ^UTILITY($J)
  1. ;
  1. ; --- Start processing.
  1. NEW QFLG
  1. S QFLG=0
  1. ;
  1. ; --- Get file(s).
  1. D ^XBDSET
  1. Q:'$D(^UTILITY("XBDSET",$J))
  1. ;
  1. ; --- Select device.
  1. W !
  1. S %ZIS="Q",ZTSAVE("^UTILITY(""XBDSET"",$J,")=""
  1. D EN^XUTMDEVQ("EN^XBLFAM","List Attributes for Modeling",.ZTSAVE,.%ZIS)
  1. D EN^XBVK("ZT")
  1. Q
  1. ;
  1. EN ;EP - From TaskMan.
  1. ;
  1. ; --- Main loop: thru selected file(s).
  1. NEW F,X
  1. ;
  1. ; F:File #
  1. ;
  1. S F=0
  1. F S F=$O(^UTILITY("XBDSET",$J,F)) Q:F'=+F D PAGE Q:QFLG D FIELDS(F) Q:QFLG
  1. D ^%ZISC
  1. Q
  1. ; --- End main loop.
  1. FIELDS(F) ; Process fields in File F.
  1. ; Field #, File #, File Name, Field Label, Field type, Desc/Help.
  1. NEW X,XB
  1. S X=""
  1. F XB=0:0 S XB=$O(^DD(F,XB)) Q:'(XB=+XB) D D:$Y>(IOSL-3) PAGE Q:QFLG
  1. . I $E($P($G(^DD(F,XB,0)),"^",1))="*" Q ; field is deprecated.
  1. . I $P(^DD(F,XB,0),"^",2) W $$OUTLINE,! D FIELDS(+$P(^DD(F,XB,0),"^",2)) Q ; Recurse sub-file.
  1. . W $$OUTLINE,!
  1. . Q
  1. Q
  1. ; -------------------------------------------------------
  1. OUTLINE() ;
  1. ; File #, File Name, Field #, Field Label, Field type, Desc/Help.,
  1. ; Min Length, Max Length
  1. Q F_";"_$$FNAME^XBFUNC(F)_";"_XB_";"_$P($G(^DD(F,XB,0)),"^",1)_";"_$$TYPE($P($G(^DD(F,XB,0)),"^",2))_";"_$$HP(F,XB)_$$DESC(F,XB)_$$TDESC(F,XB)_";"_$$MINL(F,XB)_";"_$$MAXL(F,XB)_";"
  1. ; -------------------------------------------------------
  1. PAGE ; PAGE BREAK
  1. NEW F,G,N,X
  1. I IO=IO(0),$E(IOST,1,2)="C-" S QFLG='$$DIR^XBDIR("E") I 'QFLG W @IOF
  1. Q
  1. ; -------------------------------------------------------
  1. MINL(N,F) ; Return minimum length
  1. NEW X
  1. S X=$P(^DD(N,F,0),"^",2)
  1. I X Q "-"
  1. I '(X["F") Q "-"
  1. S X=$P(^DD(N,F,0),"^",5,99)
  1. Q +$E(X,$F(X,"$L(X)<"),$L(X))
  1. ; -------------------------------------------------------
  1. MAXL(N,F) ; Return maximum length
  1. NEW X
  1. S X=$P(^DD(N,F,0),"^",2)
  1. I X Q "-"
  1. I '(X["F") Q "-"
  1. S X=$P(^DD(N,F,0),"^",5,99)
  1. Q +$E(X,$F(X,"$L(X)>"),$L(X))
  1. ; -------------------------------------------------------
  1. NUMBER(F) ;;.001;NUMBER
  1. Q F ; well, duh
  1. ; -------------------------------------------------------
  1. LABEL(N,F) ;;.01;LABEL
  1. Q $P($G(^DD(N,F,0)),"^",1)
  1. ; -------------------------------------------------------
  1. TITLE(N,F) ;;.1;TITLE
  1. Q $P($G(^DD(N,F,.1)),"^",1)
  1. ; -------------------------------------------------------
  1. ;;.12;VARIABLE POINTER (multiple)
  1. ; -------------------------------------------------------
  1. ;;.2;SPECIFIER
  1. ; -------------------------------------------------------
  1. ;;.23;LENGTH
  1. ; -------------------------------------------------------
  1. ;;.24;DECIMAL DEFAULT
  1. ; -------------------------------------------------------
  1. TYPE(P) ;PEP;.25;TYPE
  1. ; Return TYPE of field. Input is the 2nd piece of the 0th node.
  1. I P Q "<SUBFILE>"
  1. NEW W
  1. F W="BOOLEAN","COMPUTED","FREE TEXT","SET","DATE","NUMBER","POINTER","WORD-PROCESSING","K","Z" I P[$E(W) Q
  1. I W="SET" S W=W_" <"_$TR($P($G(^DD(F,XB,0)),"^",3),";","|")_">"
  1. I W="POINTER" S W=W_" to "_$$FNAME^XBFUNC(+$P(P,"P",2))_" file"
  1. Q $S(W'="Z":W,1:"??")
  1. ; -------------------------------------------------------
  1. ;;.26;COMPUTE ALGORITHM
  1. ; -------------------------------------------------------
  1. ;;.27;SUB-FIELDS
  1. ; -------------------------------------------------------
  1. ;;.28;MULTIPLE-VALUED
  1. ; -------------------------------------------------------
  1. ;;.29;DEPTH OF SUB-FIELD
  1. ; -------------------------------------------------------
  1. ;;.3;POINTER
  1. ; -------------------------------------------------------
  1. GSL(N,F) ;;.4;GLOBAL SUBSCRIPT LOCATION
  1. Q 0
  1. ; -------------------------------------------------------
  1. IT(N,F) ;;.5;INPUT TRANSFORM
  1. Q $P($G(^DD(N,F,0)),"^",5,99)
  1. ; -------------------------------------------------------
  1. ;;1;CROSS-REFERENCE (multiple)
  1. ; -------------------------------------------------------
  1. AUDIT(N,F) ;;1.1;AUDIT
  1. Q $G(^DD(N,F,"AUDIT"))
  1. ; -------------------------------------------------------
  1. ;;1.2;AUDIT CONDITION
  1. ; -------------------------------------------------------
  1. OT(N,F) ;;2;OUTPUT TRANSFORM
  1. Q $G(^DD(N,F,2.1))
  1. ; -------------------------------------------------------
  1. HP(N,F) ;;3;'HELP'-PROMPT
  1. NEW X
  1. S X=$G(^DD(N,F,3))
  1. I '$L(X) Q ""
  1. Q "HELP-PROMPT("_$G(^DD(N,F,3))_")"
  1. ; -------------------------------------------------------
  1. XH(N,F) ;;4;XECUTABLE 'HELP'
  1. Q $G(^DD(N,F,4))
  1. ; -------------------------------------------------------
  1. RA(N,F) ;;8;READ ACCESS (OPTIONAL)
  1. Q $G(^DD(N,F,8))
  1. ; -------------------------------------------------------
  1. DA(N,F) ;;8.5;DELETE ACCESS (OPTIONAL)
  1. Q $G(^DD(N,F,8.5))
  1. ; -------------------------------------------------------
  1. WA(N,F) ;;9;WRITE ACCESS (OPTIONAL)
  1. Q $G(^DD(N,F,9))
  1. ; -------------------------------------------------------
  1. ;;9.01;COMPUTED FIELDS USED
  1. ; -------------------------------------------------------
  1. SRC(N,F) ;;10;SOURCE
  1. Q $G(^DD(N,F,10))
  1. ; -------------------------------------------------------
  1. ;;11;DESTINATION (multiple)
  1. ; -------------------------------------------------------
  1. ;;12;POINTER SCREEN
  1. ; -------------------------------------------------------
  1. ;;12.1;CODE TO SET POINTER SCREEN
  1. ; -------------------------------------------------------
  1. ;;12.2;EXPRESSION FOR POINTER SCREEN
  1. ; -------------------------------------------------------
  1. ;;20;GROUP (multiple)
  1. ; -------------------------------------------------------
  1. DESC(N,F) ;;21;DESCRIPTION (word-processing)
  1. ; Field DESCRIPTION and Help-Prompt. N=File, F=Field
  1. NEW X,XB
  1. S X=""
  1. F XB=0:0 S XB=$O(^DD(N,F,21,XB)) Q:'XB S X=X_$G(^(XB,0))
  1. I '$L(X) Q ""
  1. Q "DESCRIPTION("_X_")"
  1. ; -------------------------------------------------------
  1. TDESC(N,F) ;;23;TECHNICAL DESCRIPTION (word-processing)
  1. NEW X,XB
  1. S X=""
  1. F XB=0:0 S XB=$O(^DD(N,F,23,XB)) Q:'XB S X=X_$G(^(XB,0))
  1. I '$L(X) Q ""
  1. Q "TECH_DESCRIPTION("_X_")"
  1. ; -------------------------------------------------------
  1. DFLE(N,F) ;;50;DATE FIELD LAST EDITED
  1. Q $$FMTE^XLFDT($G(^DD(N,F,"DT")))
  1. ; -------------------------------------------------------
  1. ;;999;TRIGGERED-BY POINTER (multiple)
  1. ; -------------------------------------------------------
  1. ;