Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: LEXAR6

LEXAR6.m

Go to the documentation of this file.
  1. LEXAR6 ;ISL/KER - Look-up Response (Unresolved Narr) ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**3,9,11,80**;Sep 23, 1996;Build 1
  1. ;
  1. ; Global Variables
  1. ; ^TMP("LEXSCH") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; NOW^%DTC ICR 10000
  1. ; HOME^%ZIS ICR 10086
  1. ; ^%ZTLOAD ICR 10063
  1. ; FILE^DICN ICR 10009
  1. ; ^DIE ICR 10018
  1. ; ^DIM ICR 10016
  1. ; $$UP^XLFSTR ICR 10103
  1. ;
  1. Q
  1. ; This routines saves Unresolved Narratives (terms not found
  1. ; in the Lexicon) in file 757.06. It also saves comments about
  1. ; a term. Both the Unresolved Narratives and comments are used
  1. ; as a tool to update the Lexicon Utility.
  1. ;
  1. SAVE ; Save Unresolved Narrative
  1. ; Quit saving Unresolved Narratives pch 80
  1. G SAVEQ
  1. G:'$L($G(^TMP("LEXSCH",$J,"NAR",0))) SAVEQ
  1. N Y,DIC,DO,D0,DA,ZTQUEUED,ZTREQ,ZTSAVE,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,%
  1. N LEXUNR S LEXUNR=$$UNR($G(^TMP("LEXSCH",$J,"NAR",0))) G:LEXUNR>0 SAVEQ
  1. S ZTSAVE("^TMP(""LEXSCH"",$J,")="",ZTRTN="SV^LEXAR6",ZTDESC="Saving Unresolved Narrative",ZTIO="",ZTDTH=$H
  1. D ^%ZTLOAD,HOME^%ZIS K ZTSAVE,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN
  1. D:+($G(^TMP("LEXSCH",$J,"NUM",0)))>0 SET^LEXAR4(1)
  1. G SAVEQ
  1. COM(LEXX) ; Save a comment as a Unresolved Narative
  1. D:+($G(LEX))'=0 KSCH^LEXAR K:+($G(LEX))=0 LEX N Y,DIC,DO,D0,DA,LEXCMT,LEXOK,LEXDUP,%,%X,%Y S LEXCMT=$G(LEXX)
  1. ; Internal Entry Number
  1. S ^TMP("LEXSCH",$J,"IEN",0)=+($P(LEXX,"^",1)) G:+($G(^TMP("LEXSCH",$J,"IEN",0)))=0 COMQ G:'$D(^LEX(757.01,+($G(^TMP("LEXSCH",$J,"IEN",0))),0)) COMQ
  1. ; Expression
  1. S ^TMP("LEXSCH",$J,"EXP",0)=$G(^LEX(757.01,+($G(^TMP("LEXSCH",$J,"IEN",0))),0)) G:'$L(^TMP("LEXSCH",$J,"EXP",0)) COMQ
  1. ; Duplicate Comment
  1. S LEXDUP=$$DUP($$UP^XLFSTR($G(^TMP("LEXSCH",$J,"EXP",0)))),LEXOK=$$OK(LEXCMT) G:'LEXOK COMQ
  1. ; Comment
  1. S ^TMP("LEXSCH",$J,"COM",0)=$P(LEXX,"^",2) G:'$L(^TMP("LEXSCH",$J,"COM",0)) COMQ
  1. K LEXCMT,LEXDUP,LEXOK S ZTSAVE("^TMP(""LEXSCH"",$J,")="",ZTRTN="SV^LEXAR6",ZTDESC="Saving Unresolved Narrative Comment",ZTIO="",ZTDTH=$H D ^%ZTLOAD,HOME^%ZIS
  1. COMQ ; End of Comment
  1. K Y,ZTSAVE,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN
  1. ;
  1. SAVEQ ; End of Save
  1. ;
  1. ; End Dialog with the Application (Unresolved Narrative)
  1. ; Kill LEX, ^TMP("LEXFND",$J), ^TMP("LEXHIT",$J), ^TMP("LEXSCH",$J)
  1. I +($G(LEX))'=0 D EDA^LEXAR
  1. ;
  1. ; End Dialog with the User
  1. ; Set LEX("NAR"), LEX("EXM") and LEX=0
  1. ; Kill ^TMP("LEXFND",$J), ^TMP("LEXHIT",$J)
  1. ; Kill LEX("LIST"),LEX("MAT"),LEX("MIN"),LEX("MAX")
  1. I +($G(LEX))=0 D EDU^LEXAR
  1. ;
  1. ; End Dialog with the Application (Comment)
  1. I $D(^TMP("LEXSCH",$J,"COM")) K ^TMP("LEXSCH",$J,"COM"),^TMP("LEXSCH",$J,"EXP"),^TMP("LEXSCH",$J,"IEN") K:+($G(LEX))=0 LEX
  1. Q
  1. SV ; Save an unresolved narrative (tasked) in file 757.06
  1. ; Quit saving Unresolved Narratives pch 80
  1. Q
  1. N X,Y,DA,DD,DO,D0,DIC,DLAYGO,DI,DIE,DIK,DQ,DR,LEXADD,LEXNAR,LEXDTG,LEXSCH,LEXNUM,LEXAPP,LEXCOM,LEXIEN,LEXSVC,LEXLOC,LEXFLN,LEXIDX,LEXSCT,LEXFIL
  1. S LEXDTG=$$DTG,LEXADD=0
  1. I '$D(^TMP("LEXSCH",$J,"COM",0)) D
  1. . S LEXNAR=$$NAR,LEXSCH=$$SCH,LEXNUM=$$NUM,LEXAPP=$$APP,LEXSVC=$$SVC
  1. . S LEXLOC=$$LOC,LEXFLN=$$FLN,LEXIDX=$$IDX,LEXSCT=$$SCT,LEXFIL=$$FIL
  1. . S (DR,DIC("DR"))=".01////^S X=LEXNAR;1////^S X=LEXDTG;2////^S X=LEXSCH;3////^S X=LEXNUM;4////^S X=LEXAPP;5////^S X=LEXSVC;6////^S X=LEXLOC;7////^S X=LEXFLN;8////^S X=LEXIDX;9////^S X=LEXSCT;10////^S X=LEXFIL"
  1. I $D(^TMP("LEXSCH",$J,"COM",0)) D
  1. . S (X,LEXNAR)=$$EXP,LEXIEN=$$IEN,LEXCOM=$$CMT S:'$L(LEXCOM)!(+LEXIEN=0) LEXNAR=""
  1. . S (DR,DIC("DR"))=".01///^S X=LEXNAR;1///^S X=LEXDTG;11////^S X=LEXIEN;12///^S X=LEXCOM"
  1. I $L($G(LEXNAR)) D
  1. . N X,DIC K DD,DO S DIC="^LEX(757.06,",DIC(0)="L",DLAYGO=757.06,X=LEXNAR
  1. . D FILE^DICN S LEXADD=+($P($G(Y),"^",3)) D:LEXADD ED,SF D:'LEXADD KF K DLAYGO
  1. S:$D(ZTQUEUED) ZTREQ="@" K:+($G(LEX))'=0 ^TMP("LEXSCH",$J) G:'LEXADD SVQ
  1. D:+($$TOT)>49 SEND^LEXAR7
  1. SVQ ; End of Narrative Save
  1. Q
  1. ED ; Edit fields PCH 11
  1. S DR=$G(DR),DIE="^LEX(757.06,",DA=+($G(Y)) Q:+DA'>0 Q:'$L(DR) D ^DIE
  1. Q
  1. DTG(LEXX) ; FM Day-Time-Group
  1. N %,%H,%I D NOW^%DTC S LEXX=% Q LEXX
  1. NAR(LEXX) ; Narrative (provided by user)
  1. S LEXX=$TR($$UP^XLFSTR($E($G(^TMP("LEXSCH",$J,"NAR",0)),1,99)),";"," ") S:$L(LEXX)'>0 LEXX="UNKNOWN" Q LEXX
  1. EXP(LEXX) ; Narrative (provided by user)
  1. S LEXX=$TR($$UP^XLFSTR($E($G(^TMP("LEXSCH",$J,"EXP",0)),1,99)),";"," ") S:$L(LEXX)'>0 LEXX="UNKNOWN" Q LEXX
  1. SCH(LEXX) ; String searched for (provided by LEX)
  1. S LEXX=$$UP^XLFSTR($E($G(^TMP("LEXSCH",$J,"SCH",0)),1,100)) S:'$L(LEXX) LEXX="UNKNOWN" Q LEXX
  1. NUM(LEXX) ; Number of terms found in search
  1. Q +($G(^TMP("LEXSCH",$J,"NUM",0)))
  1. APP(LEXX) ; Application conducting the search
  1. S LEXX=$$UP^XLFSTR($E($G(^TMP("LEXSCH",$J,"APP",1)),1,63)) S:'$L(LEXX) LEXX="UNKNOWN" Q LEXX
  1. IEN(LEXX) ; Internal Entry Number of term found (Comments only)
  1. Q +($G(^TMP("LEXSCH",$J,"IEN",0)))
  1. SVC(LEXX) ; User's Service
  1. S LEXX=$$UP^XLFSTR($E($G(^TMP("LEXSCH",$J,"SVC",0)),1,63)) S:'$L(LEXX) LEXX="UNKNOWN" Q LEXX
  1. LOC(LEXX) ; User's Hospital Location
  1. S LEXX=$$UP^XLFSTR($E($G(^TMP("LEXSCH",$J,"LOC",0)),1,63)) S:'$L(LEXX) LEXX="UNKNOWN" Q LEXX
  1. FLN(LEXX) ; File number where search was conducted
  1. S LEXX=$E($G(^TMP("LEXSCH",$J,"FLN",0)),1,7) S:'$L(LEXX)!($E(LEXX,1,3)'="757") LEXX="UNKNOWN" Q LEXX
  1. IDX(LEXX) ; Index used during the search
  1. S LEXX=$E($$UP^XLFSTR($G(^TMP("LEXSCH",$J,"IDX",0))),1,8) S:'$L(LEXX) LEXX="UNKNONWN" Q LEXX
  1. SCT(LEXX) ; Shortcuts used during the search
  1. S LEXX=$$UP^XLFSTR($E($G(^TMP("LEXSCH",$J,"SCT",1)),1,63)) S:'$L(LEXX) LEXX="NONE" Q LEXX
  1. FIL(LEXX) ; Filter used during the search - DIC("S")
  1. N X S X=$G(^TMP("LEXSCH",$J,"FIL",0)) D ^DIM S:$L($G(X))>244 X="" S LEXX=$G(X) Q LEXX
  1. CMT(LEXX) ; Comment
  1. S LEXX=$$UP^XLFSTR($E($G(^TMP("LEXSCH",$J,"COM",0)),1,199)) Q LEXX
  1. TOT(LEXX) ; Total # of narratives to send
  1. N DA S (DA,LEXX)=0 D SF,KF F S DA=$O(^LEX(757.06,DA)) Q:+DA=0 K:'$D(^LEX(757.06,DA,0)) ^LEX(757.06,DA,99) S:+($G(^LEX(757.06,DA,99)))>0 LEXX=LEXX+1
  1. Q LEXX
  1. SF ; Set Send flag
  1. N DA S DA=0 F S DA=$O(^LEX(757.06,DA)) Q:+DA=0 S:$D(^LEX(757.06,DA,0)) ^LEX(757.06,DA,99)=1
  1. Q
  1. KF ; Kill Send flag
  1. N DA S DA=0 F S DA=$O(^LEX(757.06,DA)) Q:+DA=0 K:'$D(^LEX(757.06,DA,0)) ^LEX(757.06,DA,99)
  1. Q
  1. UNR(LEXX) ; Is the narrative in file 757.06
  1. S LEXX=$G(LEXX) Q:LEXX="" 0
  1. N LEXIN,DA S LEXIN=0,DA=0 F S DA=$O(^LEX(757.06,"B",$E(LEXX,1,30),DA)) Q:+DA=0 S:$P($G(^LEX(757.06,+DA,0)),"^",1)=LEXX LEXIN=1
  1. S LEXX=LEXIN Q LEXX
  1. DUP(LEXX) ; Is the comment narrative a duplicate
  1. S LEXX=$G(LEXX) Q:LEXX="" 0
  1. N LEXIN,DA S LEXIN=0,DA=0
  1. F S DA=$O(^LEX(757.06,"B",$E(LEXX,1,30),DA)) Q:+DA=0 D
  1. . S:$E($P($G(^LEX(757.06,+DA,0)),"^",1),1,$L(LEXX))=LEXX LEXIN=LEXIN+1
  1. S LEXX=LEXIN Q LEXX
  1. OK(LEXX) ; Ok to process
  1. S LEXX=$G(LEXX) N LEXI,LEXN,LEXC,LEXOK S LEXOK=1,LEXC=$E($$UP^XLFSTR($G(^TMP("LEXSCH",$J,"EXP",0))),1,30)
  1. S LEXN=$E(LEXC,1,($L(LEXC)-1))_$C($A($E(LEXC,$L(LEXC)))-1)_"~"
  1. F S LEXN=$O(^LEX(757.06,"B",LEXN)) Q:LEXN=""!($E(LEXN,1,$L(LEXC))'=LEXC) D
  1. . S LEXI=0 F S LEXI=$O(^LEX(757.06,"B",LEXN,LEXI)) Q:+LEXI=0 D
  1. . . S:$G(^LEX(757.06,LEXI,4))=LEXX LEXOK=0
  1. S LEXX=LEXOK Q LEXX