1 | LEXAR ;ISA/FJF/KER-Look-up (Interpret User Response) ; 05/14/2003
|
---|
2 | ;;2.0;LEXICON UTILITY;**3,19,25**;Sep 23, 1996;Build 1
|
---|
3 | ;
|
---|
4 | ; User Responses
|
---|
5 | ;
|
---|
6 | ; Numeric -----------------------------------------------
|
---|
7 | ;
|
---|
8 | ; # Select Entry
|
---|
9 | ;
|
---|
10 | ; Numeric^Comment ----------------------------------------
|
---|
11 | ;
|
---|
12 | ; IEN^COMMENT Application comment about term
|
---|
13 | ;
|
---|
14 | ; Up-Arrow -----------------------------------------------
|
---|
15 | ;
|
---|
16 | ; ^# Jump to # on list
|
---|
17 | ; ^ End dialog with the user
|
---|
18 | ; ^^ End dialog with the application
|
---|
19 | ;
|
---|
20 | ; Question -----------------------------------------------
|
---|
21 | ;
|
---|
22 | ; ? Standard help in LEX("HLP")
|
---|
23 | ; ?? Extended help in LEX("HLP")
|
---|
24 | ; ?# Definition for # in LEX("HLP")
|
---|
25 | ;
|
---|
26 | ; Null ---------------------------------------------------
|
---|
27 | ;
|
---|
28 | ; Advance the selection list
|
---|
29 | ;
|
---|
30 | ; String -------------------------------------------------
|
---|
31 | ;
|
---|
32 | ; Narrative Return and store Unresolved Narrative
|
---|
33 | ;
|
---|
34 | ; --------------------------------------------------------
|
---|
35 | EN(LEXUR,LEXVDT) ; Interpret user response
|
---|
36 | I '$D(LEX) D APN Q
|
---|
37 | K LEX("HLP")
|
---|
38 | N LEXLL,LEXMAX
|
---|
39 | I $D(LEX("LIST",0)),+$G(^TMP("LEXSCH",$J,"NUM",0))>0 D
|
---|
40 | .S LEX=+$G(^TMP("LEXSCH",$J,"NUM",0))
|
---|
41 | I LEXUR="END",+LEX>0 S LEXUR="^"_LEX
|
---|
42 | S LEXLL=+$G(^TMP("LEXSCH",$J,"LEN",0))
|
---|
43 | S:LEXLL=0 LEXLL=5
|
---|
44 | S LEXMAX=+$G(^TMP("LEXSCH",$J,"LST",0))
|
---|
45 | S LEXUR=$G(LEXUR)
|
---|
46 | S (LEX("RES"),^TMP("LEXSCH",$J,"RES",0))=LEXUR
|
---|
47 | S ^TMP("LEXSCH",$J,"RES",1)="User Response"
|
---|
48 | ; Timed out/Quit
|
---|
49 | I LEXUR="DTOUT"!(LEXUR="QUIT") D EDA Q
|
---|
50 | ; Yes/No response list has one entry
|
---|
51 | I $G(LEX)=1,+LEXUR=0,LEXUR'["^" D
|
---|
52 | .I $E(LEXUR,1)="Y"!($E(LEXUR,1)="y") S LEXUR=1 Q
|
---|
53 | .I LEXUR["?" D HLP^LEXAR3 Q
|
---|
54 | .S LEXUR=""
|
---|
55 | ; Null (Page Down)
|
---|
56 | I LEXUR="" D NULL^LEXAR2 D END Q
|
---|
57 | ; Minus (Page Up)
|
---|
58 | I $E(LEXUR,1)="-" D LIST^LEXAL2("PGUP") D END Q
|
---|
59 | ; Help
|
---|
60 | I LEXUR["?" D HLP^LEXAR3 D END Q
|
---|
61 | ; Up Arrow
|
---|
62 | I LEXUR["^",$D(^TMP("LEXSCH",$J)) D UPA^LEXAR2(LEXUR) D END Q
|
---|
63 | ; Select
|
---|
64 | I +LEXUR>0,+LEXUR'>LEXMAX D SEL^LEXAR4(+LEXUR,$G(LEXVDT)) D END Q
|
---|
65 | ; User Unresolved Narrative
|
---|
66 | I LEXUR=$G(^TMP("LEXSCH",$J,"NAR",0)),+$G(^TMP("LEXSCH",$J,"UNR",0))=1 D D END Q
|
---|
67 | .D SAVE^LEXAR6
|
---|
68 | APN ; Application Unresolved Narrative
|
---|
69 | I LEXUR["^",'$D(^TMP("LEXSCH",$J)),+LEXUR>0,$D(^LEX(757.01,+LEXUR,0)),$L($P(LEXUR,"^",2)) D Q
|
---|
70 | .K LEX
|
---|
71 | .D COM^LEXAR6(LEXUR)
|
---|
72 | D END
|
---|
73 | Q
|
---|
74 | END ; End of Interpretation of the Users Response
|
---|
75 | I $D(^TMP("LEXSCH",$J)) D
|
---|
76 | .S (LEX("RES"),^TMP("LEXSCH",$J,"RES",0))=LEXUR
|
---|
77 | .S ^TMP("LEXSCH",$J,"RES",1)="User Response"
|
---|
78 | I $D(LEX("LIST",0)),+$G(^TMP("LEXSCH",$J,"NUM",0))>0 D
|
---|
79 | .S LEX=+$G(^TMP("LEXSCH",$J,"NUM",0))
|
---|
80 | Q
|
---|
81 | SEL ; Selection made
|
---|
82 | K LEX("RES"),LEX("ERR"),LEX("LIST"),LEX("MIN"),LEX("MAX"),LEX("MAT"),LEX("HLP")
|
---|
83 | D NAR,EMF,KLST,KSCH
|
---|
84 | S:$D(LEX("SEL")) LEX=0
|
---|
85 | Q
|
---|
86 | EDU ; End Dialog with the User
|
---|
87 | D NAR,EMF,KLST,KARL,KSCH
|
---|
88 | S LEX=0
|
---|
89 | Q
|
---|
90 | EDA ; End Dialog with the Application
|
---|
91 | K LEX
|
---|
92 | D KLST,KSCH
|
---|
93 | Q
|
---|
94 | LST ; List exist
|
---|
95 | D NAR,MAX,MIN,MAT,EML
|
---|
96 | Q
|
---|
97 | ;
|
---|
98 | KLST ; Kill Global List
|
---|
99 | ; ^TMP("LEXFND",$J)
|
---|
100 | ; ^TMP("LEXHIT",$J)
|
---|
101 | K ^TMP("LEXFND",$J),^TMP("LEXHIT",$J)
|
---|
102 | Q
|
---|
103 | KSCH ; Kill Search Variables
|
---|
104 | ; ^TMP("LEXSCH",$J)
|
---|
105 | I +$G(LEX)'=0 K ^TMP("LEXSCH",$J) ; PCH 3 Do not kill if not found condition exist
|
---|
106 | Q
|
---|
107 | KARL ; Kill Array List and supporting variables
|
---|
108 | ; LEX("LIST"),LEX("MAT"),LEX("MIN"),LEX("MAX")
|
---|
109 | K LEX("LIST"),LEX("MAT"),LEX("MIN"),LEX("MAX")
|
---|
110 | K LEX("EXC"),LEX("EXM")
|
---|
111 | Q
|
---|
112 | LEX ; Set LEX to the number of entries on the list
|
---|
113 | S:+$G(^TMP("LEXSCH",$J,"NUM",0))>0 LEX=+$G(^TMP("LEXSCH",$J,"NUM",0))
|
---|
114 | Q
|
---|
115 | NAR ; Set LEX("NAR") to the user narrative
|
---|
116 | K LEX("NAR")
|
---|
117 | S:$L($G(^TMP("LEXSCH",$J,"NAR",0))) LEX("NAR")=$G(^TMP("LEXSCH",$J,"NAR",0))
|
---|
118 | Q
|
---|
119 | MAX ; Set LEX("MAX") to the last entry reviewed by the user
|
---|
120 | K LEX("MAX")
|
---|
121 | S:+$G(^TMP("LEXSCH",$J,"LST",0))>0 LEX("MAX")=+$G(^TMP("LEXSCH",$J,"LST",0))
|
---|
122 | Q
|
---|
123 | MIN ; Set LEX("MIN") to the first entry reviewed by the user
|
---|
124 | K LEX("MIN")
|
---|
125 | S:+$G(LEX("MAX"))>0 LEX("MIN")=1
|
---|
126 | Q
|
---|
127 | EML ; Set LEX("EXM") post-selection IEN^Expression text
|
---|
128 | K LEX("EXM")
|
---|
129 | S:$L($G(^TMP("LEXSCH",$J,"EXM",2))) LEX("EXM")=$G(^TMP("LEXSCH",$J,"EXM",2))
|
---|
130 | Q
|
---|
131 | EMF ; Set LEX("EXM") pre-selection LIST#^Expression text
|
---|
132 | K LEX("EXM")
|
---|
133 | I $L($G(^TMP("LEXSCH",$J,"EXM",0))),$L($G(^TMP("LEXSCH",$J,"EXM",1))) D
|
---|
134 | .S LEX("EXM")=$G(^TMP("LEXSCH",$J,"EXM",0))_"^"_$G(^TMP("LEXSCH",$J,"EXM",1))
|
---|
135 | Q
|
---|
136 | MAT ; Set "matches found" string and top of list flag
|
---|
137 | ; LEX("MAT") # Matches found
|
---|
138 | ; ^TMP("LEXSCH",$J,"TOL",0) 1 - Top of list
|
---|
139 | ; 0 - Not top of list
|
---|
140 | K LEX("MAT")
|
---|
141 | I $D(LEX("SEL"))!('$D(^TMP("LEXSCH",$J)))!('$D(LEX("LIST"))) Q
|
---|
142 | N LEXOL,LEXL
|
---|
143 | S LEXOL=$G(^TMP("LEXSCH",$J,"TOL",0))
|
---|
144 | S LEXL=$O(LEX("LIST",0))
|
---|
145 | I LEXOL'=0,LEXL=1 S ^TMP("LEXSCH",$J,"TOL",0)=1
|
---|
146 | I LEXOL'=0,LEXL'=1 S ^TMP("LEXSCH",$J,"TOL",0)=0
|
---|
147 | I LEXOL=1,$L($G(^TMP("LEXSCH",$J,"MAT",0))) D
|
---|
148 | .S LEX("MAT")=$G(^TMP("LEXSCH",$J,"MAT",0))
|
---|
149 | Q
|
---|