| 1 | DINIT2A0 ;SFISC/MKO-KEY AND INDEX FILES ;10:50 AM  30 Mar 1999
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  F I=1:2 S X=$T(Q+I) Q:X=""  S Y=$E($T(Q+I+1),4,999),X=$E(X,4,999) S:$A(Y)=126 I=I+1,Y=$E(Y,2,999)_$E($T(Q+I+1),5,99) S:$A(Y)=61 Y=$E(Y,2,999) S @X=Y
 | 
|---|
| 5 |  G ^DINIT2A1
 | 
|---|
| 6 | Q Q
 | 
|---|
| 7 |  ;;^DIC(.11,0,"GL")
 | 
|---|
| 8 |  ;;=^DD("IX",
 | 
|---|
| 9 |  ;;^DIC("B","INDEX",.11)
 | 
|---|
| 10 |  ;;=
 | 
|---|
| 11 |  ;;^DIC(.11,"%D",0)
 | 
|---|
| 12 |  ;;=^^5^5^2980911^
 | 
|---|
| 13 |  ;;^DIC(.11,"%D",1,0)
 | 
|---|
| 14 |  ;;=This file stores information about new-style cross-references defined on a
 | 
|---|
| 15 |  ;;^DIC(.11,"%D",2,0)
 | 
|---|
| 16 |  ;;=file. Whereas traditional cross-references are stored under the 1 nodes of
 | 
|---|
| 17 |  ;;^DIC(.11,"%D",3,0)
 | 
|---|
| 18 |  ;;=the ^DD for a particular field, new-style cross-references are stored in
 | 
|---|
| 19 |  ;;^DIC(.11,"%D",4,0)
 | 
|---|
| 20 |  ;;=this file and can consist of one field (simple cross-references), as well
 | 
|---|
| 21 |  ;;^DIC(.11,"%D",5,0)
 | 
|---|
| 22 |  ;;=as more than one field (compound cross-references).
 | 
|---|
| 23 |  ;;^DD(.11,0)
 | 
|---|
| 24 |  ;;=FIELD^^11.1^20
 | 
|---|
| 25 |  ;;^DD(.11,0,"DDA")
 | 
|---|
| 26 |  ;;=N
 | 
|---|
| 27 |  ;;^DD(.11,0,"DT")
 | 
|---|
| 28 |  ;;=2980908
 | 
|---|
| 29 |  ;;^DD(.11,0,"ID","DI SHORT DESCRIPTION 50")
 | 
|---|
| 30 |  ;;=D EN^DDIOL($E($P(^(0),U,3),1,50),"","?0")
 | 
|---|
| 31 |  ;;^DD(.11,0,"IX","AC",.11,.51)
 | 
|---|
| 32 |  ;;=
 | 
|---|
| 33 |  ;;^DD(.11,0,"IX","B",.11,.01)
 | 
|---|
| 34 |  ;;=
 | 
|---|
| 35 |  ;;^DD(.11,0,"NM","INDEX")
 | 
|---|
| 36 |  ;;=
 | 
|---|
| 37 |  ;;^DD(.11,0,"PT",.31,3)
 | 
|---|
| 38 |  ;;=
 | 
|---|
| 39 |  ;;^DD(.11,.01,0)
 | 
|---|
| 40 |  ;;=FILE^RNJ20,7^^0;1^K:+X'=X!(X>999999999999)!(X<0)!(X?.E1"."8N.N) X
 | 
|---|
| 41 |  ;;^DD(.11,.01,1,0)
 | 
|---|
| 42 |  ;;=^.1^^-1
 | 
|---|
| 43 |  ;;^DD(.11,.01,1,1,0)
 | 
|---|
| 44 |  ;;=.11^B
 | 
|---|
| 45 |  ;;^DD(.11,.01,1,1,1)
 | 
|---|
| 46 |  ;;=S ^DD("IX","B",$E(X,1,30),DA)=""
 | 
|---|
| 47 |  ;;^DD(.11,.01,1,1,2)
 | 
|---|
| 48 |  ;;=K ^DD("IX","B",$E(X,1,30),DA)
 | 
|---|
| 49 |  ;;^DD(.11,.01,1,1,3)
 | 
|---|
| 50 |  ;;=Lets developers pick indexes by file number
 | 
|---|
| 51 |  ;;^DD(.11,.01,1,1,"%D",0)
 | 
|---|
| 52 |  ;;=^^2^2^2980911^
 | 
|---|
| 53 |  ;;^DD(.11,.01,1,1,"%D",1,0)
 | 
|---|
| 54 |  ;;=The B index, on the .01 (File) of the Index file, lets developers pick
 | 
|---|
| 55 |  ;;^DD(.11,.01,1,1,"%D",2,0)
 | 
|---|
| 56 |  ;;=indexes by the numbers of the files they cross-reference.
 | 
|---|
| 57 |  ;;^DD(.11,.01,3)
 | 
|---|
| 58 |  ;;=Answer must be between 0 and 999999999999, with up to 7 decimal digits. Answer '??' for more help.
 | 
|---|
| 59 |  ;;^DD(.11,.01,21,0)
 | 
|---|
| 60 |  ;;=^^3^3^2980910^^
 | 
|---|
| 61 |  ;;^DD(.11,.01,21,1,0)
 | 
|---|
| 62 |  ;;=Answer should be the number of the file cross-referenced by this index.
 | 
|---|
| 63 |  ;;^DD(.11,.01,21,2,0)
 | 
|---|
| 64 |  ;;=For whole file cross-references on subfiles, answer with the number of
 | 
|---|
| 65 |  ;;^DD(.11,.01,21,3,0)
 | 
|---|
| 66 |  ;;=the file where the index physically resides, not the subfile number.
 | 
|---|
| 67 |  ;;^DD(.11,.01,"DT")
 | 
|---|
| 68 |  ;;=2980611
 | 
|---|
| 69 |  ;;^DD(.11,.02,0)
 | 
|---|
| 70 |  ;;=NAME^RF^^0;2^K:$L(X)>30!($L(X)<1)!'(X?1A.AN) X
 | 
|---|
| 71 |  ;;^DD(.11,.02,1,0)
 | 
|---|
| 72 |  ;;=^.1^^0
 | 
|---|
| 73 |  ;;^DD(.11,.02,3)
 | 
|---|
| 74 |  ;;=Answer must be 1-30 characters in length. Answer '??' for more help.
 | 
|---|
| 75 |  ;;^DD(.11,.02,21,0)
 | 
|---|
| 76 |  ;;=^^4^4^2980911^
 | 
|---|
| 77 |  ;;^DD(.11,.02,21,1,0)
 | 
|---|
| 78 |  ;;=Answer must be the name of the index. For example, the name of the default
 | 
|---|
| 79 |  ;;^DD(.11,.02,21,2,0)
 | 
|---|
| 80 |  ;;=lookup index on a file's .01 field is B, the name of the uniqueness index
 | 
|---|
| 81 |  ;;^DD(.11,.02,21,3,0)
 | 
|---|
| 82 |  ;;=of a compound key is BB, and the name of an index not used for lookup must
 | 
|---|
| 83 |  ;;^DD(.11,.02,21,4,0)
 | 
|---|
| 84 |  ;;=start with A.
 | 
|---|
| 85 |  ;;^DD(.11,.02,"DT")
 | 
|---|
| 86 |  ;;=2990303
 | 
|---|
| 87 |  ;;^DD(.11,.1,0)
 | 
|---|
| 88 |  ;;=DESCRIPTION^.1101^^.1;0
 | 
|---|
| 89 |  ;;^DD(.11,.11,0)
 | 
|---|
| 90 |  ;;=SHORT DESCRIPTION^RF^^0;3^K:$L(X)>79!($L(X)<1) X
 | 
|---|
| 91 |  ;;^DD(.11,.11,3)
 | 
|---|
| 92 |  ;;=Answer must be 1-79 characters in length. Answer '??' for more help.
 | 
|---|
| 93 |  ;;^DD(.11,.11,21,0)
 | 
|---|
| 94 |  ;;=^^2^2^2980910^
 | 
|---|
| 95 |  ;;^DD(.11,.11,21,1,0)
 | 
|---|
| 96 |  ;;=Answer should be text briefly explaining the function of this
 | 
|---|
| 97 |  ;;^DD(.11,.11,21,2,0)
 | 
|---|
| 98 |  ;;=cross-reference.
 | 
|---|
| 99 |  ;;^DD(.11,.11,"DT")
 | 
|---|
| 100 |  ;;=2960216
 | 
|---|
| 101 |  ;;^DD(.11,.2,0)
 | 
|---|
| 102 |  ;;=TYPE^RS^R:REGULAR;MU:MUMPS;^0;4^Q
 | 
|---|
| 103 |  ;;^DD(.11,.2,3)
 | 
|---|
| 104 |  ;;=Answer '??' for more help.
 | 
|---|
| 105 |  ;;^DD(.11,.2,21,0)
 | 
|---|
| 106 |  ;;=^^5^5^2980911^
 | 
|---|
| 107 |  ;;^DD(.11,.2,21,1,0)
 | 
|---|
| 108 |  ;;=REGULAR - One or more field values are stored in an index on the file. The
 | 
|---|
| 109 |  ;;^DD(.11,.2,21,2,0)
 | 
|---|
| 110 |  ;;=index can be used for sorting, or optionally, looking up entries.
 | 
|---|
| 111 |  ;;^DD(.11,.2,21,3,0)
 | 
|---|
| 112 |  ;;= 
 | 
|---|
| 113 |  ;;^DD(.11,.2,21,4,0)
 | 
|---|
| 114 |  ;;=MUMPS - Customizable M code executes whenever a field that makes up the
 | 
|---|
| 115 |  ;;^DD(.11,.2,21,5,0)
 | 
|---|
| 116 |  ;;=cross-references changes.
 | 
|---|
| 117 |  ;;^DD(.11,.2,"DT")
 | 
|---|
| 118 |  ;;=2970718
 | 
|---|
| 119 |  ;;^DD(.11,.4,0)
 | 
|---|
| 120 |  ;;=EXECUTION^RS^F:FIELD;R:RECORD;^0;6^Q
 | 
|---|
| 121 |  ;;^DD(.11,.4,1,0)
 | 
|---|
| 122 |  ;;=^.1^^0
 | 
|---|
| 123 |  ;;^DD(.11,.4,3)
 | 
|---|
| 124 |  ;;=Answer '??' for more help.
 | 
|---|
| 125 |  ;;^DD(.11,.4,21,0)
 | 
|---|
| 126 |  ;;=^^7^7^2980911^^
 | 
|---|
| 127 |  ;;^DD(.11,.4,21,1,0)
 | 
|---|
| 128 |  ;;=Answer with the code that indicates whether the cross reference logic
 | 
|---|
| 129 |  ;;^DD(.11,.4,21,2,0)
 | 
|---|
| 130 |  ;;=should be executed after a field in the index changes, or only after all
 | 
|---|
| 131 |  ;;^DD(.11,.4,21,3,0)
 | 
|---|
| 132 |  ;;=fields in a record are updated. The logic for most simple (single-field)
 | 
|---|
| 133 |  ;;^DD(.11,.4,21,4,0)
 | 
|---|
| 134 |  ;;=indexes should be executed immediately after the field changes, and so
 | 
|---|
| 135 |  ;;^DD(.11,.4,21,5,0)
 | 
|---|
| 136 |  ;;=should get the code 'F'. The logic for most compound indexes should be
 | 
|---|
| 137 |  ;;^DD(.11,.4,21,6,0)
 | 
|---|
| 138 |  ;;=executed only once after a transaction on the entire record is complete,
 | 
|---|
| 139 |  ;;^DD(.11,.4,21,7,0)
 | 
|---|
| 140 |  ;;=and so should get the code 'R'. Exceptions to this rule are rare.
 | 
|---|
| 141 |  ;;^DD(.11,.4,"DT")
 | 
|---|
| 142 |  ;;=2980611
 | 
|---|
| 143 |  ;;^DD(.11,.41,0)
 | 
|---|
| 144 |  ;;=ACTIVITY^FX^^0;7^K:$L(X)>2!($L(X)<1)!($TR(X,"IR")]"") X
 | 
|---|
| 145 |  ;;^DD(.11,.41,3)
 | 
|---|
| 146 |  ;;=Answer must be 2 characters in length. Answer '??' for more help.
 | 
|---|
| 147 |  ;;^DD(.11,.41,21,0)
 | 
|---|
| 148 |  ;;=^^15^15^2990225^
 | 
|---|
| 149 |  ;;^DD(.11,.41,21,1,0)
 | 
|---|
| 150 |  ;;=Answer with the flags that control whether FileMan fires this
 | 
|---|
| 151 |  ;;^DD(.11,.41,21,2,0)
 | 
|---|
| 152 |  ;;=cross-reference during an installation and a re-cross-referencing
 | 
|---|
| 153 |  ;;^DD(.11,.41,21,3,0)
 | 
|---|
| 154 |  ;;=operation. The possible flags are:
 | 
|---|
| 155 |  ;;^DD(.11,.41,21,4,0)
 | 
|---|
| 156 |  ;;= 
 | 
|---|
| 157 |  ;;^DD(.11,.41,21,5,0)
 | 
|---|
| 158 |  ;;=  I = Installing an entry at a site
 | 
|---|
| 159 |  ;;^DD(.11,.41,21,6,0)
 | 
|---|
| 160 |  ;;=  R = Re-cross-referencing this index
 | 
|---|
| 161 |  ;;^DD(.11,.41,21,7,0)
 | 
|---|
| 162 |  ;;= 
 | 
|---|
| 163 |  ;;^DD(.11,.41,21,8,0)
 | 
|---|
| 164 |  ;;=FileMan automatically fires cross-references during an edit, regardless of
 | 
|---|
| 165 |  ;;^DD(.11,.41,21,9,0)
 | 
|---|
| 166 |  ;;=Activity, though you can control whether a cross-reference is fired by
 | 
|---|
| 167 |  ;;^DD(.11,.41,21,10,0)
 | 
|---|
| 168 |  ;;=entering Set and Kill Conditions.
 | 
|---|
| 169 |  ;;^DD(.11,.41,21,11,0)
 | 
|---|
| 170 |  ;;= 
 | 
|---|
| 171 |  ;;^DD(.11,.41,21,12,0)
 | 
|---|
| 172 |  ;;=Also, if you explicity select a cross-reference in an EN^DIK, EN1^DIK, or
 | 
|---|
| 173 |  ;;^DD(.11,.41,21,13,0)
 | 
|---|
| 174 |  ;;=ENALL^DIK call, or in the UTILITY FUNCTIONS/RE-INDEX FILE option on the VA
 | 
|---|
| 175 |  ;;^DD(.11,.41,21,14,0)
 | 
|---|
| 176 |  ;;=FileMan menu, that cross-reference will be fired whether or not its
 | 
|---|
| 177 |  ;;^DD(.11,.41,21,15,0)
 | 
|---|
| 178 |  ;;=Activity contains an "R".
 | 
|---|
| 179 |  ;;^DD(.11,.41,"DT")
 | 
|---|
| 180 |  ;;=2980611
 | 
|---|
| 181 |  ;;^DD(.11,.42,0)
 | 
|---|
| 182 |  ;;=USE^S^LS:LOOKUP & SORTING;S:SORTING ONLY;A:ACTION;^0;14^Q
 | 
|---|
| 183 |  ;;^DD(.11,.42,3)
 | 
|---|
| 184 |  ;;=Controls how the index will be used by Classic FileMan Lookup (^DIC), Finder (FIND^DIC and $$FIND1^DIC) and Sort/Print (EN1^DIP). Answer '??' for more help.
 | 
|---|
| 185 |  ;;^DD(.11,.42,21,0)
 | 
|---|
| 186 |  ;;=^^15^15^2980911^^
 | 
|---|
| 187 |  ;;^DD(.11,.42,21,1,0)
 | 
|---|
| 188 |  ;;=LOOKUP & SORTING - The index name starts with "B" or a letter that
 | 
|---|
| 189 |  ;;^DD(.11,.42,21,2,0)
 | 
|---|
| 190 |  ;;=alphabetically follows "B".  Calls to Classic FileMan lookup (^DIC) or the
 | 
|---|
| 191 |  ;;^DD(.11,.42,21,3,0)
 | 
|---|
| 192 |  ;;=Finder (FIND^DIC or $$FIND1^DIC) where the index is not specified will
 | 
|---|
| 193 |  ;;^DD(.11,.42,21,4,0)
 | 
|---|
| 194 |  ;;=include this index in the search. The index will be available for use by
 | 
|---|