| [613] | 1 | LEXA4 ;ISA/CJE-Look-up (Loud) Unresolved Narrative ;01-13-00 | 
|---|
|  | 2 | ;;2.0;LEXICON UTILITY;**3,6,15**;Sep 23, 1996;Build 1 | 
|---|
|  | 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 | 
|---|