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

DIQGDDT.m

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