1 | LEXA4 ;ISA/CJE-Look-up (Loud) Unresolved Narrative ;01-13-00
|
---|
2 | ;;2.0;LEXICON UTILITY;**3,6,15**;Sep 23, 1996
|
---|
3 | ; JPK;Added more explanatory help text for display
|
---|
4 | ;
|
---|
5 | EN ; User input was not found
|
---|
6 | ; PCH 6 first two lines deleted (Narrative/Exact Match)
|
---|
7 | S LEX("UNR")=+($G(^TMP("LEXSCH",$J,"UNR",0)))
|
---|
8 | ; PCH 3 - Save number of matches found
|
---|
9 | S LEX=+($G(^TMP("LEXSCH",$J,"NUM",0)))
|
---|
10 | ; PCH 3 - "not found" flag
|
---|
11 | N LEXNF S LEXNF=$S(LEX=0:1,1:0)
|
---|
12 | ; Comment out next 2 lines to allow for unresolved narratives
|
---|
13 | ; after the user enters an up-arrow ("^")
|
---|
14 | ; S LEX("RES")=$G(^TMP("LEXSCH",$J,"RES",0))
|
---|
15 | ; I LEX("RES")["^" K LEX("RES"),LEX("NAR"),LEX("UNR") Q
|
---|
16 | S LEX("RES")=$G(^TMP("LEXSCH",$J,"RES",0))
|
---|
17 | I LEX("RES")["^" K LEX("RES"),LEX("NAR"),LEX("UNR") Q
|
---|
18 | ; Quit if:
|
---|
19 | ; User Narrative is NULL LEX("NAR")="" or
|
---|
20 | ; Unresolved not allowed ^TMP("LEXSCH",$J,"UNR",0)=0
|
---|
21 | I $G(LEX("NAR"))=""!($G(LEX("UNR"))=0) D EN^LEXAR("QUIT") Q
|
---|
22 | N LEXN
|
---|
23 | S:'LEXNF LEXN=$$NNS(LEX("NAR")) ; PCH 3 - Prompt for user when matches were found
|
---|
24 | S:LEXNF LEXN=$$NNF(LEX("NAR")) ; PCH 3 - Prompt for user when no matches were found
|
---|
25 | I LEXN["^" D EN^LEXAR(LEXN) Q
|
---|
26 | I +LEXN=1,LEX("UNR")=1 D Q
|
---|
27 | . ; Unresolved pointer when "not found" ; PCH 3 - added
|
---|
28 | . I LEXNF,$L($G(LEX("NAR"))),$L($G(DIC)),$L($G(DUZ)) D Q
|
---|
29 | . . S:+LEXN>0&($G(DIC(0))["F") ^DISV(DUZ,DIC)=LEXN_"^"_LEX("NAR")
|
---|
30 | . . S:DIC(0)["Z" Y(0)=$G(^LEX(757.01,1,0)),Y(0,0)=$P($G(^LEX(757.01,1,0)),"^",1)
|
---|
31 | . . K:'$L($G(Y(0,0))) Y(0,0)
|
---|
32 | . . D SET^LEXAR4(1)
|
---|
33 | . ; Unresolved pointer when not an exact match
|
---|
34 | . I $L($G(LEX("NAR"))),'$L($G(LEX("EXM"))),$L($G(DIC)),$L($G(DUZ)) D
|
---|
35 | . . S:+LEXN>0&($G(DIC(0))["F") ^DISV(DUZ,DIC)=LEXN_"^"_LEX("NAR")
|
---|
36 | . . S:DIC(0)["Z" Y(0)=$G(^LEX(757.01,1,0)),Y(0,0)=$P($G(^LEX(757.01,1,0)),"^",1)
|
---|
37 | . . K:'$L($G(Y(0,0))) Y(0,0)
|
---|
38 | . . D EN^LEXAR(LEX("NAR")),SET^LEXAR4(1)
|
---|
39 | . ; Resolved the pointer if an exact match is found
|
---|
40 | . I $L($G(LEX("NAR"))),$L($G(LEX("EXM"))),$L($G(DIC)),$L($G(DUZ)) D
|
---|
41 | . . S:+($G(LEX("EXM")))>2&($G(DIC(0))["F") ^DISV(DUZ,DIC)=+($G(LEX("EXM")))
|
---|
42 | . . S:DIC(0)["Z" Y(0)=$G(^LEX(757.01,+(LEX("EXM")),0)),Y(0,0)=$P($G(^LEX(757.01,+(LEX("EXM")),0)),"^",1)
|
---|
43 | . . K:'$L($G(Y(0,0))) Y(0,0)
|
---|
44 | . . D EN^LEXAR(+($G(LEX("EXM")))),SET^LEXAR4(+($G(LEX("EXM"))))
|
---|
45 | Q
|
---|
46 | NNS(X) ; Narrative not selected (LEX>0)
|
---|
47 | W ! N LEXNARR,LEXANY,LEXPMT1,LEXPMT2,%,%Y S LEXANY="",LEXNARR=X
|
---|
48 | D NNSA Q X
|
---|
49 | NNSA ; Use Narrative (anyway)
|
---|
50 | I +($G(LEX("EXM")))=0 D
|
---|
51 | . S LEXPMT1=">>> You have not selected a term from the Lexicon"
|
---|
52 | . S LEXPMT2=$S($L(LEXANY):">>> ",1:" ")_"Use "_LEXNARR_LEXANY
|
---|
53 | I +($G(LEX("EXM")))>0 D
|
---|
54 | . S LEXPMT1=">>> Exact match found"
|
---|
55 | . S LEXPMT2=$S($L(LEXANY):">>> ",1:" ")_"Use "_LEXNARR
|
---|
56 | W:$L(LEXPMT1)&('$L(LEXANY)) !,LEXPMT1 W:$L(LEXANY) !
|
---|
57 | W:$L(LEXPMT2) !,LEXPMT2
|
---|
58 | S %=$S(+($G(LEX("EXM")))>2:1,1:2)
|
---|
59 | D YN^DICN S:%Y["^" X="^" S:%Y["^^" X="^^" Q:X["^" I %=-1 S X=0 Q
|
---|
60 | I '%,+($G(LEX("EXM")))>0 D G NNSA
|
---|
61 | . W !!,"An exact match was found in the Lexicon. By answering"
|
---|
62 | . W !,"""Yes"" you will be selecting the exact match found in"
|
---|
63 | . W !,"Lexicon.",!
|
---|
64 | I '%,+($G(LEX("EXM")))'>0 D G NNSA
|
---|
65 | . W !!,"A suitable term was not found in the Lexicon. By answering"
|
---|
66 | . W !,"""Yes"" you will be keeping your exact text as typed rather than"
|
---|
67 | . W !,"a term from the Lexicon"
|
---|
68 | . S LEXANY=" anyway"
|
---|
69 | I %=1 S X=% Q
|
---|
70 | S X=0 Q
|
---|
71 | NNF(X) ; Narrative was not found ; PCH 3 - added
|
---|
72 | W ! N LEXNARR,LEXANY,LEXPMT1,LEXPMT2,LEXPMT3,LEXPMT4,LEXPMT5,%,%Y
|
---|
73 | S LEXANY="",LEXNARR=X
|
---|
74 | D NNFA Q X
|
---|
75 | NNFA ; Use Narrative (anyway) ; PCH 3 - added
|
---|
76 | N LEXC,LEXF,LEXV S LEXC=1,LEXF=$G(^TMP("LEXSCH",$J,"FIL",0)),LEXV=$G(^TMP("LEXSCH",$J,"VOC",0))
|
---|
77 | S LEXPMT1=">>> A suitable term was not found based on user input"
|
---|
78 | S:LEXF="I 1" LEXF="" S:$L(LEXF)!(LEXV'="WRD") LEXPMT1=LEXPMT1_" and current defaults"
|
---|
79 | S LEXPMT1=LEXPMT1_"."
|
---|
80 | S LEXPMT2="NOTE : "_$S($L($G(LEXNARR)):"'"_LEXNARR_"' m",1:"You m")
|
---|
81 | S LEXPMT2=LEXPMT2_"ay have found too many matches."
|
---|
82 | S LEXPMT3=" You can refine your search by entering more descriptive text"
|
---|
83 | S LEXPMT4=" (Eg. 'DISEASE' instead of 'DIS') ..."
|
---|
84 | S LEXPMT5=$S($L(LEXANY):">>> ",1:" ")_"Use "_LEXNARR_LEXANY
|
---|
85 | W:$L(LEXPMT1)&('$L(LEXANY)) !,LEXPMT1
|
---|
86 | ; W:$L(LEXANY) !
|
---|
87 | W !!,LEXPMT2,!,LEXPMT3,!,LEXPMT4
|
---|
88 | W:$L(LEXPMT5) !!!,LEXPMT5
|
---|
89 | S %=$S(+($G(LEX("EXM")))>2:1,1:2)
|
---|
90 | D YN^DICN S:%Y["^" X="^" S:%Y["^^" X="^^" Q:X["^" I %=-1 S X=0 Q
|
---|
91 | I '% D G NNFA
|
---|
92 | . W !!,"A suitable term was not found in the Lexicon. By answering"
|
---|
93 | . W !,"""Yes"" you will be keeping the exact text as typed rather than"
|
---|
94 | . W !,"a term from the Lexicon.",!
|
---|
95 | . S LEXANY=" anyway"
|
---|
96 | I %=1 S X=% Q
|
---|
97 | S X=0 Q
|
---|