130 lines
4.5 KiB
Mathematica
130 lines
4.5 KiB
Mathematica
DIQGDDT ;SFISC/DCL-DATA DICTIONARY ATTRIBUTE TEXT ;8/15/96 13:29
|
|
;;22.0;VA FileMan;;Mar 30, 1999
|
|
;Per VHA Directive 10-93-142, this routine should not be modified.
|
|
LIST(TYPE,DIDARRAY,TP,EQL) ;DO CALL
|
|
;TYPE="FILETXT" OR "FIELDTXT"
|
|
;DIDARRAY=TARGET ARRAY - IS LOCAL ARRAY PASSED BY REFERENCE WHICH WILL BE SEEDED WITH FILE OR FIELD ATTRIBUTES
|
|
;TP=TEXT PIECE USING ; AS DELIMITER
|
|
;EQL=EQUAL TO - NULL IS DEFAUL OR PIECE OF TXT
|
|
ENLST S:$G(TP)'>0 TP=4 S:$G(EQL)'>0 EQL=99
|
|
N DIQGI,DIQGX,DIQGY F DIQGI=1:1 S DIQGX=$T(@TYPE+DIQGI),DIQGY=$P(DIQGX,";",TP) Q:DIQGY="" D
|
|
.S DIDARRAY(DIQGY)=$P(DIQGX,";",EQL)
|
|
.S:$P(DIQGX,";",5)]"" DIDARRAY(DIQGY,"#(word-processing)")=$S($G(DIQGDFLG)["L":"",1:$P(DIQGX,";",5))
|
|
.I $P(DIQGX,";",6)]"" D
|
|
..N TYPE
|
|
..S TYPE=$P(DIQGX,";",7)
|
|
..N DIQGI,DIQGX,DIQGYS
|
|
..F DIQGI=1:1 S DIQGX=$T(@TYPE+DIQGI) Q:$P(DIQGX,";",4)="" D
|
|
...S DIQGYS=$P(DIQGX,";",4),DIDARRAY(DIQGY,"#",DIQGYS)=""
|
|
...Q
|
|
.Q
|
|
;DIQGI,DIQGY ARE SCRATCH VARIABLES USED TO BUILD ARRAY
|
|
;DIQGI INDEXES TEXT AND DIQGY CONTAINS THE ATTRIBUTE NAME
|
|
Q
|
|
DD N %,%ZISOS,A,D0,D1,D2,DA,DIC,DIW,DIWF,DIWL,DIWR,DIWT,DK,DL,DN,DX,I,POP,S,X,Y,DIQGF,DIQGFN
|
|
S DIC=1,DIC(0)="AEMQ" D ^DIC Q:Y'>0 ;Select file
|
|
S DIC="^DD("_+Y_",",DIQGFN=+Y
|
|
D F(DIQGFN,.DIQGF)
|
|
D ^%ZIS Q:POP U IO
|
|
S DIC="^DIC(",DA=DIQGFN
|
|
D EN^DIQ
|
|
S X=""
|
|
F S X=$O(^DIC(DIQGFN,0,X)) Q:X="" W !,X,"=",^(X)
|
|
S DIQGF="" F S DIQGF=$O(DIQGF(DIQGFN,DIQGF)) Q:DIQGF="" D
|
|
.W !,$$L("=",IOM),!,"DD NUMBER: ",DIQGF,!
|
|
.S DA="" F S DA=$O(DIQGF(DIQGFN,DIQGF,DA)) Q:DA="" D
|
|
..W !,$$L("-",IOM),!
|
|
..S DIC="^DD("_DIQGF_"," D EN^DIQ
|
|
..Q
|
|
.Q
|
|
W !!,"End of Report",!!
|
|
D ^%ZISC
|
|
Q
|
|
;
|
|
L(X,RM) Q $TR($J("",RM)," ",X)
|
|
;
|
|
F(DIQGDICN,DIQGFSTA,DIQGSEL,DIQGDEL) ;
|
|
; DIQGDICN file number
|
|
; DIQGFSTA Field Selected Target Array(can be passed by reference or
|
|
; as a reference)
|
|
; DIQGSEL Selection Marker(optional)
|
|
; DIQGDEL Deselection Marker (optional)
|
|
N %,%Y,DA,DDC,DIC,DIQGDWN,DIQGTGA,X,Y
|
|
I $D(@("^DIC("_DIQGDICN_",0)")) W !!?4,"'",$P(^(0),"^"),"' FILE",!
|
|
S:'$D(DIQGSEL) DIQGSEL="+" S:'$D(DIQGDEL) DIQGDEL="-"
|
|
S DIC="^DD("_DIQGDICN_",",DIC(0)="AEMQ",X=$E($G(DIQGFSTA)),DIQGTGA=(X="^"!(X=".")) S:X="." DIQGFSTA=$E(DIQGFSTA,2,99)
|
|
M S DIC("W")="W:$P(^(0),U,2) $S($P(^DD(+$P(^(0),U,2),.01,0),U,2)[""W"":"" (word-processing)"",1:"" (multiple)"") W:$D("_$S(DIQGTGA:"@DIQGFSTA@(DIQGDICN,+$E(DIC,5,99),+Y)",1:"DIQGFSTA(DIQGDICN,+$E(DIC,5,99),+Y)")_") DIQGSEL"
|
|
D ^DIC I Y'>0,$D(@(DIC_"0,""UP"")")) S DIC="^DD("_+^("UP")_"," G M ;Select field/back out of multiples
|
|
S DIQGDWN="" I Y>0,$P(@(DIC_+Y_",0)"),U,2) S DIQGDWN=+$P(^(0),U,2) I $P(^DD(+$P(^(0),U,2),.01,0),U,2)'["W" D T(DIQGDWN) S DIC="^DD("_DIQGDWN_"," G M
|
|
I Y>0,DIQGDWN>0 D T(DIQGDWN) G M
|
|
I Y>0 D T() G M
|
|
Q
|
|
T(DWN) ;
|
|
D @$S(DIQGTGA:"TAR(+$E(DIC,5,99),+Y,$G(DWN))",1:"TBR(+$E(DIC,5,99),+Y,$G(DWN))")
|
|
Q
|
|
TAR(DDFN,FLD,DWNFN) ;Target array is in DIQGFSTA As a global/local Reference
|
|
I DWNFN S @DIQGFSTA@(DIQGDICN,DWNFN)=DDFN_"^"_FLD
|
|
I '$D(@DIQGFSTA@(DIQGDICN,DDFN,FLD)) S @DIQGFSTA@(DIQGDICN,DDFN,FLD)=$S(DWNFN:DWNFN,1:"") Q
|
|
I DWNFN,$D(@DIQGFSTA@(DIQGDICN,DWNFN))>9 Q
|
|
N X S X=$G(@DIQGFSTA@(DIQGDICN,DDFN,FLD)) I X K @DIQGFSTA@(DIQGDICN,$P(X,"^"))
|
|
K @DIQGFSTA@(DIQGDICN,DDFN,FLD) W DIQGDEL Q
|
|
Q
|
|
TBR(DDFN,FLD,DWNFN) ;Target array DIQGFSTA is a local array passed By Reference
|
|
I DWNFN S DIQGFSTA(DIQGDICN,DWNFN)=DDFN_"^"_FLD
|
|
I '$D(DIQGFSTA(DIQGDICN,DDFN,FLD)) S DIQGFSTA(DIQGDICN,DDFN,FLD)=$S(DWNFN:DWNFN,1:"") Q
|
|
I DWNFN,$D(DIQGFSTA(DIQGDICN,DWNFN))>9 Q
|
|
N X S X=$G(DIQGFSTA(DIQGDICN,DDFN,FLD)) I X K DIQGFSTA(DIQGDICN,$P(X,"^"))
|
|
K DIQGFSTA(DIQGDICN,DDFN,FLD) W DIQGDEL Q
|
|
Q
|
|
;
|
|
;ATRBUTE FLD #;ATRBUTE NAME;1=WORD PROCESSING
|
|
FILETXT ;
|
|
;;.01;NAME;
|
|
;;1;GLOBAL NAME;
|
|
;;1.1;ENTRIES;
|
|
;;4;DESCRIPTION;1
|
|
;;20;DEVELOPER;
|
|
;;21;DATE;
|
|
;;31;DD ACCESS;
|
|
;;32;RD ACCESS;
|
|
;;33;WR ACCESS;
|
|
;;34;DEL ACCESS;
|
|
;;35;LAYGO ACCESS;
|
|
;;36;AUDIT ACCESS;
|
|
;;50;LOOKUP PROGRAM;
|
|
;;51;VERSION;
|
|
;;51.1;DISTRIBUTION PACKAGE;
|
|
;;51.2;PACKAGE REVISION DATA;
|
|
;;54;ARCHIVE FILE;
|
|
;;100.6;REQUIRED IDENTIFIERS;;1;RI
|
|
;;
|
|
FIELDTXT ;
|
|
;;.01;LABEL;
|
|
;;.1;TITLE;
|
|
;;.2;SPECIFIER;
|
|
;;.24;DECIMAL DEFAULT;
|
|
;;.25;TYPE;
|
|
;;.26;COMPUTE ALGORITHM;
|
|
;;.28;MULTIPLE-VALUED;
|
|
;;.3;POINTER;
|
|
;;.4;GLOBAL SUBSCRIPT LOCATION;
|
|
;;.5;INPUT TRANSFORM;
|
|
;;1.1;AUDIT;
|
|
;;1.2;AUDIT CONDITION;
|
|
;;2;OUTPUT TRANSFORM;
|
|
;;3;HELP-PROMPT;
|
|
;;4;XECUTABLE HELP;
|
|
;;8;READ ACCESS;
|
|
;;8.5;DELETE ACCESS;
|
|
;;9;WRITE ACCESS;
|
|
;;9.01;COMPUTED FIELDS USED;
|
|
;;10;SOURCE;
|
|
;;21;DESCRIPTION;1
|
|
;;23;TECHNICAL DESCRIPTION;1
|
|
;;50;DATE FIELD LAST EDITED;
|
|
;;200;FIELD LENGTH;
|
|
;
|
|
RI ;REQUIRED IDENTIFIERS
|
|
;;1;FIELD;
|
|
;;
|