1 | ZVEMSF2 ;DJB,VSHL**DIC [8/3/97 1:29pm]
|
---|
2 | ;;12;VPE;;COPYRIGHT David Bolduc @1993
|
---|
3 | ;
|
---|
4 | DIC ;;;
|
---|
5 | ;;; D I C Look-up/Add New Entries
|
---|
6 | ;;;
|
---|
7 | ;;; 1. ENTRY POINT: ^DIC
|
---|
8 | ;;;
|
---|
9 | ;;; 2. INPUT VARIABLES
|
---|
10 | ;;; DIC.....File number or global root ("^GLOBAL(" or "^GLOBAL(X,Y,").
|
---|
11 | ;;; DIC(0)....A Ask entry
|
---|
12 | ;;; C Cross reference suppression is turned off
|
---|
13 | ;;; E Echo back information
|
---|
14 | ;;; F Forget look-up value
|
---|
15 | ;;; I Ignore special look-up program
|
---|
16 | ;;; L LAYGO allowed
|
---|
17 | ;;; M Multiple-index look-up allowed
|
---|
18 | ;;; N Internal Number look-up allowed
|
---|
19 | ;;; O Only find one entry if it matches exactly
|
---|
20 | ;;; Q Question erroneous input
|
---|
21 | ;;; S Suppress display of .01
|
---|
22 | ;;; X EXact match required
|
---|
23 | ;;; Z Zero node returned in Y(0) and external form in Y(0,0)
|
---|
24 | ;;; X........If DIC(0) doesn't contain A, set X=Value you want to look up.
|
---|
25 | ;;; DIC("A")...Prompt.
|
---|
26 | ;;; DIC("B")...Default answer.
|
---|
27 | ;;; DIC("S")...Screen. When screen is executed Y=Internal number, and naked.
|
---|
28 | ;;; indicator is at zero node.
|
---|
29 | ;;; DIC("W")...Command string executed when DIC displays each of the entries
|
---|
30 | ;;; that match user's input. Y and naked ref is same as DIC("S").
|
---|
31 | ;;; Overrides identifiers. DIC("W")="" will suppress identifiers.
|
---|
32 | ;;; DIC("DR")..Fields that will be asked if LAYGO and you add new entry.
|
---|
33 | ;;; DIC("P")...Needed to successfully add FIRST subentry to a multiple field.
|
---|
34 | ;;; Set it to 2nd piece of zero node of multiple field's
|
---|
35 | ;;; definition in ^DD. Ex: S DIC("P")=$P(^DD(2,9,0),"^",2)
|
---|
36 | ;;; DTIME......Number of seconds for time-out.
|
---|
37 | ;;; DLAYGO.....If set equal to file number, user may add a new entry.
|
---|
38 | ;;; DINUM......Identifies subscript at which data is to be stored.
|
---|
39 | ;;;
|
---|
40 | ;;; 3. OUTPUT VARIABLES
|
---|
41 | ;;; Y........Y=-1 Look-up unsuccessful.
|
---|
42 | ;;; Y=N^S N is the internal number, S is the .01 field.
|
---|
43 | ;;; Y=N^S^1 1 indicates entry has just been added.
|
---|
44 | ;;; Y(0).....Set to zero node if DIC(0) contains Z.
|
---|
45 | ;;; Y(0,0)...External form of .01 field if DIC(0) contains Z.
|
---|
46 | ;;; X........If DIC(0) contains A, X will store users look-up value.
|
---|
47 | ;;; DTOUT....Time-out occurred.
|
---|
48 | ;;; DUOUT....User entered "^".
|
---|
49 | ;;;
|
---|
50 | ;;; Sample code where file ^DIZ(16 has multiple field 9 at node 4.
|
---|
51 | ;;; S DIC="^DIZ(16,",DIC(0)="QEAL" D ^DIC ;Get entry
|
---|
52 | ;;; S DA(1)=+Y,DIC=DIC_DA(1)_",4," ;Root of subfile
|
---|
53 | ;;; S DIC(0)="QEAL",DIC("P")=$P(^DD(16,9,0),"^",2)
|
---|
54 | ;;; D ^DIC ;Get subentry
|
---|
55 | ;;; S DIE=DIC KILL DIC S DA=+Y,DR="1;2" D ^DIE ;Edit multiples directly
|
---|
56 | ;;;
|
---|
57 | ;;; 1. ENTRY POINT: IX^DIC
|
---|
58 | ;;;
|
---|
59 | ;;; 2. INPUT VARIABLES
|
---|
60 | ;;; DIC......Global root
|
---|
61 | ;;; DIC(0)...Same as ^DIC
|
---|
62 | ;;; D........The cross reference in which to start looking. If DIC(0) contains
|
---|
63 | ;;; M, then DIC will continue with further cross references. If it
|
---|
64 | ;;; does not, then the look-up is only on the single cross reference.
|
---|
65 | ;;; X........If DIC(0) does not contain an A, then X must equal look-up value.
|
---|
66 | ;;;
|
---|
67 | ;;; 3. OUTPUT VARIABLES
|
---|
68 | ;;; Y........Y=-1 Look-up unsuccessful.
|
---|
69 | ;;; Y=N^S N is the internal number, S is the .01 field.
|
---|
70 | ;;; Y=N^S^1 1 indicates entry has just been added.
|
---|
71 | ;;; Y(0).....Set to zero node if DIC(0) contains Z.
|
---|
72 | ;;; Y(0,0)...External form of .01 field if DIC(0) contains Z.
|
---|
73 | ;;; X........If DIC(0) contains A, X will store users look-up value.
|
---|
74 | ;;; DTOUT....Time-out occurred.
|
---|
75 | ;;; DUOUT....User entered "^".
|
---|
76 | ;;;
|
---|
77 | ;;; 1. ENTRY POINT: MIX^DIC1
|
---|
78 | ;;;
|
---|
79 | ;;; 2. INPUT VARIABLES
|
---|
80 | ;;; Same as IX^DIC except variable D can contain a list of xrefs
|
---|
81 | ;;; separated by up-arrow. If DIC(0) does not contain M, only the
|
---|
82 | ;;; first xref in D will be used for the look-up.
|
---|
83 | ;;;
|
---|
84 | ;;; 3. OUTPUT VARIABLES
|
---|
85 | ;;; Same as IX^DIC.
|
---|
86 | ;;;***
|
---|