| 1 | LEXPL ; ISL Problem List Survey                 ; 05/14/2003
 | 
|---|
| 2 |  ;;2.0;LEXICON UTILITY;**25**;Sep 23, 1996;Build 1
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; Entry Points
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;    EN^LEXPL   Task Survey and Sends Mailman Message to ISC-IRMFO
 | 
|---|
| 7 |  ;    SV^LEXPL   Performs Survey (no task) and displays results
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | EN ; Tasked Survey
 | 
|---|
| 10 |  S ZTRTN="SV^LEXPL",ZTDESC="Problem List Survey",ZTIO="",ZTDTH=$H D ^%ZTLOAD D HOME^%ZIS K %X,%Y,Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN Q
 | 
|---|
| 11 | SV ; Operational Survey
 | 
|---|
| 12 |  K ^TMP("LEXS") D UD,PLUR,SG,SEND K:'$D(ZTQUEUED) ^TMP("LEXS") S:$D(ZTQUEUED) ZTREQ="@" Q
 | 
|---|
| 13 | UD ; UCI/Date
 | 
|---|
| 14 |  N %,%H,%I,X,Y X ^%ZOSF("UCI") D SET("Problem List Survey"),BL S X="  UCI:  "_Y
 | 
|---|
| 15 |  D:Y=$G(^%ZOSF("PROD")) SET((X_" (Production)")) D:Y'=$G(^%ZOSF("PROD")) SET((X_" (Test)"))
 | 
|---|
| 16 |  S X=$$DT Q:X=""  D SET(("  ON:   "_$P(X,"^",1)_" at "_$P(X,"^",2))),BL Q
 | 
|---|
| 17 | PLUR ; Survey
 | 
|---|
| 18 |  N LEXD,LEXCE,LEXCI,LEXICD,LEXIIC,LEXLC,LEXPE,LEXLI,LEXLU,LEXPU,LEXUC,LEXUI,LEXCU,LEXUU,X
 | 
|---|
| 19 |  S:$D(ZTQUEUED) LEXCE=$$EN2^LEXPLEM,LEXCI=$$EN2^LEXPLIA,LEXCU=$$EN2^LEXPLUP
 | 
|---|
| 20 |  S (LEXD,LEXUU,LEXUI,LEXUC,LEXLU,LEXLI,LEXLC,LEXPU)=0
 | 
|---|
| 21 |  S LEXPU=$O(^ICD9("AB","799.9 ",LEXPU)) Q:LEXPU=0
 | 
|---|
| 22 |  F  S LEXD=$O(^AUPNPROB(LEXD)) Q:+LEXD=0  D
 | 
|---|
| 23 |  . S LEXICD=+($G(^AUPNPROB(LEXD,0))),LEXPE=+($G(^AUPNPROB(LEXD,1)))
 | 
|---|
| 24 |  . S LEXIIC=+($P($G(^ICD9(LEXICD,0)),"^",9))
 | 
|---|
| 25 |  . S:LEXPE>1&(LEXICD=LEXPU) LEXLU=LEXLU+1
 | 
|---|
| 26 |  . S:LEXPE=1&(LEXICD=LEXPU) LEXUU=LEXUU+1
 | 
|---|
| 27 |  . S:LEXPE=1&(LEXICD'=LEXPU)&(LEXIIC=0) LEXUC=LEXUC+1
 | 
|---|
| 28 |  . S:LEXPE>1&(LEXICD'=LEXPU)&(LEXIIC=0) LEXLC=LEXLC+1
 | 
|---|
| 29 |  . S:LEXPE=1&(LEXICD'=LEXPU)&(LEXIIC=1) LEXUI=LEXUI+1
 | 
|---|
| 30 |  . S:LEXPE>1&(LEXICD'=LEXPU)&(LEXIIC=1) LEXLI=LEXLI+1
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ; Titles
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  D SET("    "),SET2(""),SET2("Inactive"),SET2("Active")
 | 
|---|
| 35 |  D SET("    "),SET2("Uncoded"),SET2("ICD Code"),SET2("ICD Code"),SET2("Total"),BL
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  ; Unresolved
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  D SET("    Unresolved Narratives")
 | 
|---|
| 40 |  D SET2(LEXUU) D SET2(LEXUI)
 | 
|---|
| 41 |  D SET2(LEXUC) D SET2((LEXUU+LEXUC+LEXUI))
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  ; Lexicon
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  D SET("    Lexicon Terms")
 | 
|---|
| 46 |  D SET2(LEXLU) D SET2(LEXLI)
 | 
|---|
| 47 |  D SET2(LEXLC) D SET2((LEXLU+LEXLC+LEXLI))
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  ; Total
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  D SET("    ---------------------------------------------------------------------")
 | 
|---|
| 52 |  D SET("    Total Problems")
 | 
|---|
| 53 |  D SET2(LEXUU+LEXLU),SET2(LEXUI+LEXLI)
 | 
|---|
| 54 |  D SET2(LEXUC+LEXLC),SET2((LEXUU+LEXUC+LEXUI+LEXLU+LEXLC+LEXLI))
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  I +($G(LEXCE))>0!(+($G(LEXCI))>0)!(+($G(LEXCU))>0) D
 | 
|---|
| 57 |  . D BL N LEXD S LEXCE=+($G(LEXCE)),LEXCI=+($G(LEXCI)),LEXCU=+($G(LEXCU))
 | 
|---|
| 58 |  . S LEXD=$L(LEXCE) S:$L(LEXCI)>LEXD LEXD=$L(LEXCI) S:$L(LEXCU)>LEXD LEXD=$L(LEXCU) S LEXD=LEXD+1
 | 
|---|
| 59 |  . I LEXCE>0 D SET(($J(LEXCE,LEXD)_" Exact match unresolved narratives resolved to to the Lexicon"))
 | 
|---|
| 60 |  . I LEXCI>0 D SET(($J(LEXCI,LEXD)_" Inactive ICD codes/6 digit codes re-coded to an active ICD Code"))
 | 
|---|
| 61 |  . I LEXCU>0 D SET(($J(LEXCU,LEXD)_" Uncoded Lexicon terms re-coded to an ICD code other than 799.9"))
 | 
|---|
| 62 |  . D BL
 | 
|---|
| 63 |  K LEXD,LEXCE,LEXCI,LEXICD,LEXIIC,LEXLC,LEXPE,LEXLI,LEXLU,LEXPU,LEXUC,LEXUI,LEXCU,LEXUU,X
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 | SG ; Show survey
 | 
|---|
| 66 |  Q:$D(ZTQUEUED)  N LEXD S LEXD=0
 | 
|---|
| 67 |  F  S LEXD=$O(^TMP("LEXS",LEXD)) Q:+LEXD=0  W !,^TMP("LEXS",LEXD)
 | 
|---|
| 68 |  W !! Q
 | 
|---|
| 69 | SEND ; Mailman
 | 
|---|
| 70 |  N DIFROM,LEXADR Q:'$D(ZTQUEUED)  S LEXADR=$$ADR^LEXU Q:'$L(LEXADR)
 | 
|---|
| 71 |  K XMZ S XMSUB="Lexicon/Problem List Survey"
 | 
|---|
| 72 |  S XMY(("G.LEXICON@"_LEXADR))=""
 | 
|---|
| 73 |  S XMTEXT="^TMP(""LEXS"",",XMDUZ=.5
 | 
|---|
| 74 |  D ^XMD K ^TMP("LEXS"),XCNP,XMDUZ,XMY,XMZ,XMSUB,XMTEXT,XMDUZ
 | 
|---|
| 75 |  S:$D(ZTQUEUED) ZTREQ="@" Q
 | 
|---|
| 76 | BL ; Blank
 | 
|---|
| 77 |  D SET("") Q
 | 
|---|
| 78 | SET(X) ; Column 1
 | 
|---|
| 79 |  S X=$G(X),^TMP("LEXS",0)=+($G(^TMP("LEXS",0)))+1,^TMP("LEXS",+($G(^TMP("LEXS",0))))=X Q
 | 
|---|
| 80 | SET2(X) ; Column X
 | 
|---|
| 81 |  S X=$G(X),X=$$L($G(^TMP("LEXS",+($G(^TMP("LEXS",0))))))_"    "_$J(X,8),^TMP("LEXS",+($G(^TMP("LEXS",0))))=X Q
 | 
|---|
| 82 | L(X) ; Lengthen text
 | 
|---|
| 83 |  F  Q:$L(X)=25!($L(X)>25)  S X=X_" "
 | 
|---|
| 84 |  Q X
 | 
|---|
| 85 | T(X) ; Trim text
 | 
|---|
| 86 |  S X=$G(X) F  Q:$E(X,1)'=" "  S X=$E(X,2,$L(X))
 | 
|---|
| 87 |  F  Q:$E(X,$L(X))'=" "  S X=$E(X,1,($L(X)-1))
 | 
|---|
| 88 |  Q X
 | 
|---|
| 89 | DT(X) ; Date and time
 | 
|---|
| 90 |  N %,%H,%I,X,Y D NOW^%DTC Q:+($G(X))=0 "" S X=$$FMTE^XLFDT(%,"1P") Q:$L(X," ")'=5 "" Q:$P(X," ",4)'[":" "" Q:$P(X," ",5)'["m" ""
 | 
|---|
| 91 |  S X=$P(X," ",1,3)_"^"_$P($P(X," ",4),":",1,2)_" "_$P(X," ",5)
 | 
|---|
| 92 |  Q X
 | 
|---|