| [613] | 1 | LEXXFQ ; ISL/FJF Set Frequencies in 757.001;04/08/03 | 
|---|
|  | 2 | ;;2.0;LEXICON UTILITY;**4,25**;Sep 23, 1996;Build 1 | 
|---|
|  | 3 | Q | 
|---|
|  | 4 | EN ; Update term frequencies when not found  (at site) | 
|---|
|  | 5 | S ZTRTN="UP^LEXXFQ",ZTDESC="Update Term Frequency in file 757.001" | 
|---|
|  | 6 | S ZTIO="",ZTDTH=$H | 
|---|
|  | 7 | D ^%ZTLOAD,HOME^%ZIS | 
|---|
|  | 8 | K Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN | 
|---|
|  | 9 | Q | 
|---|
|  | 10 | EN2 ; Reset term frequencies to export values (at IRMFO) | 
|---|
|  | 11 | S ZTRTN="RE^LEXXFQ",ZTDESC="Reset Term Frequencies in file 757.001" | 
|---|
|  | 12 | S ZTIO="",ZTDTH=$H | 
|---|
|  | 13 | D ^%ZTLOAD,HOME^%ZIS | 
|---|
|  | 14 | K Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN | 
|---|
|  | 15 | Q | 
|---|
|  | 16 | CHK ; Check frequencies                       (at site or IRMFO) | 
|---|
|  | 17 | N LEXI,LEXC S (LEXI,LEXC)=0 | 
|---|
|  | 18 | F  S LEXI=$O(^LEX(757,LEXI)) Q:+LEXI=0  S:'$D(^LEX(757.001,LEXI)) LEXC=LEXC+1 | 
|---|
|  | 19 | I '$D(ZTQUEUED) D | 
|---|
|  | 20 | .W:LEXC>0 !!,LEXC," Concepts do not have frequencies set",!! | 
|---|
|  | 21 | .W:LEXC'>0 !!,"All concepts have frequencies set",!! | 
|---|
|  | 22 | Q | 
|---|
|  | 23 | UP ; Update frequencies | 
|---|
|  | 24 | S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
|  | 25 | N LEX1,LEX2,LEXU,LEXUC,LEXDC,LEXMA,LEXT,LEXL,LEXH | 
|---|
|  | 26 | S (LEXDC,LEXU,LEXUC,LEXT,LEXL,LEXMA)=0,LEXH="." | 
|---|
|  | 27 | S LEX1=$$HACK | 
|---|
|  | 28 | I '$D(ZTQUEUED) D | 
|---|
|  | 29 | .W !!,"Initializing Global",!,"  Start:     ",$P(LEX1,"^",2),!,"  " | 
|---|
|  | 30 | F  S LEXMA=$O(^LEX(757,LEXMA)) Q:+LEXMA=0  D | 
|---|
|  | 31 | . S:'$D(^LEX(757.001,LEXMA,0)) LEXH="+" S LEXT=LEXT+1,LEXL=LEXMA | 
|---|
|  | 32 | . W:'$D(ZTQUEUED)&(LEXT#1000=0) LEXH S:LEXT#1000=0 LEXH=".",LEXDC=LEXDC+1 | 
|---|
|  | 33 | . W:'$D(ZTQUEUED)&(LEXDC#76=0)&(LEXDC>0)&(LEXT#1000=0) !,"  " | 
|---|
|  | 34 | . I '$D(^LEX(757.001,LEXMA,0)) D SET S LEXUC=LEXUC+1 | 
|---|
|  | 35 | W:'$D(ZTQUEUED) LEXH | 
|---|
|  | 36 | S:LEXT>0 $P(^LEX(757.001,0),"^",4)=LEXT | 
|---|
|  | 37 | S:LEXL>0 $P(^LEX(757.001,0),"^",3)=LEXL S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
|  | 38 | S LEX2=$$HACK | 
|---|
|  | 39 | I '$D(ZTQUEUED) D | 
|---|
|  | 40 | .W !,"  Finished:  ",$P(LEX2,"^",2) | 
|---|
|  | 41 | .W !,"  Time:      ",$$TIME($P(LEX1,"^",1),$P(LEX2,"^",1)),! | 
|---|
|  | 42 | Q | 
|---|
|  | 43 | RE ; Reset frequencies | 
|---|
|  | 44 | S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
|  | 45 | N LEXMA,LEXT,LEXL S (LEXT,LEXL,LEXMA)=0 | 
|---|
|  | 46 | F  S LEXMA=$O(^LEX(757,LEXMA)) Q:+LEXMA=0  S LEXT=LEXT+1,LEXL=LEXMA D SET | 
|---|
|  | 47 | S:LEXT>0 $P(^LEX(757.001,0),"^",4)=LEXT | 
|---|
|  | 48 | S:LEXL>0 $P(^LEX(757.001,0),"^",3)=LEXL S:$D(ZTQUEUED) ZTREQ="@" Q | 
|---|
|  | 49 | SET ; Set frequency | 
|---|
|  | 50 | N DIK,DIC,DA,LEXFQ | 
|---|
|  | 51 | S LEXMA=+($G(LEXMA)) | 
|---|
|  | 52 | Q:'$D(^LEX(757,LEXMA,0)) | 
|---|
|  | 53 | S DIC="^LEX(757.001,",DA=LEXMA,LEXFQ=+($$FQ(LEXMA)) | 
|---|
|  | 54 | D:$D(^LEX(757.001,DA)) KILL^LEXNDX2 | 
|---|
|  | 55 | S ^LEX(757.001,LEXMA,0)=LEXMA_"^"_LEXFQ_"^"_LEXFQ | 
|---|
|  | 56 | D SET^LEXNDX2 | 
|---|
|  | 57 | Q | 
|---|
|  | 58 | FQ(LEXX) ; Frequency | 
|---|
|  | 59 | ; | 
|---|
|  | 60 | ; LEXSAB  Source Abbreviation | 
|---|
|  | 61 | ; LEXSMC  Semantic Class | 
|---|
|  | 62 | ; LEXNUR  Nursing Class | 
|---|
|  | 63 | ; LEXBEH  Behavior/Mental Health Class | 
|---|
|  | 64 | ; LEXPRO  Procedural Class | 
|---|
|  | 65 | ; LEXDIA  Diagnostic Class | 
|---|
|  | 66 | ; LEXSA   IEN Source Code (ICD, CPT, DSM, etc) | 
|---|
|  | 67 | ; LEXMC   IEN Major Concept | 
|---|
|  | 68 | ; LEXSO   Code | 
|---|
|  | 69 | ; | 
|---|
|  | 70 | N LEXMC S LEXMC=+($G(LEXX)) Q:'$D(^LEX(757,LEXMC,0)) 0 Q:LEXMC<3 0 | 
|---|
|  | 71 | N LEXSA,LEXSAB,LEXSMC,LEXNUR,LEXBEH,LEXPRO,LEXDIA,LEXSO | 
|---|
|  | 72 | S (LEXSA,LEXNUR,LEXBEH,LEXPRO,LEXDIA)=0 | 
|---|
|  | 73 | F  S LEXSA=$O(^LEX(757.02,"AMC",LEXMC,LEXSA)) Q:+LEXSA=0  D | 
|---|
|  | 74 | . S LEXSO=$P(^LEX(757.02,LEXSA,0),"^",2) | 
|---|
|  | 75 | . Q:+$$STATCHK^LEXSRC2(LEXSO)=0 | 
|---|
|  | 76 | . S LEXSAB=+($P($G(^LEX(757.02,LEXSA,0)),"^",3)) Q:LEXSAB=0 | 
|---|
|  | 77 | . Q:LEXSAB>15  S:LEXSAB=1 LEXDIA=1 | 
|---|
|  | 78 | . S:LEXSAB>1&(LEXSAB<5) LEXPRO=1 | 
|---|
|  | 79 | . S:LEXSAB>4&(LEXSAB<7) LEXBEH=1 | 
|---|
|  | 80 | . S:LEXSAB>10&(LEXSAB<16) LEXNUR=1 | 
|---|
|  | 81 | S LEXSMC=$$SM(LEXMC),LEXX=0 I LEXDIA=1 S LEXX=4 Q LEXX | 
|---|
|  | 82 | I LEXBEH=1!(LEXSMC=1) S LEXX=3 Q LEXX | 
|---|
|  | 83 | I LEXPRO=1 S LEXX=2 Q LEXX | 
|---|
|  | 84 | I LEXNUR=1 S LEXX=1 Q LEXX | 
|---|
|  | 85 | Q LEXX | 
|---|
|  | 86 | SM(LEXX) ; Semantic Map (757.1) | 
|---|
|  | 87 | N LEXMC,LEXCL,LEXSA | 
|---|
|  | 88 | S LEXSA=0,LEXMC=+($G(LEXX)),LEXX=0 | 
|---|
|  | 89 | Q:'$D(^LEX(757,LEXMC,0)) 0 | 
|---|
|  | 90 | F  S LEXSA=$O(^LEX(757.1,"B",LEXMC,LEXSA)) Q:+LEXSA=0  D | 
|---|
|  | 91 | .S LEXCL=+($P($G(^LEX(757.1,LEXSA,0)),"^",2)) | 
|---|
|  | 92 | .I LEXCL=3!(LEXCL=6) S LEXX=1 | 
|---|
|  | 93 | Q LEXX | 
|---|
|  | 94 | HACK(LEXX) ; Time Hack | 
|---|
|  | 95 | N X,%,%H,%I | 
|---|
|  | 96 | N HACK D NOW^%DTC S HACK=$$FMTE^XLFDT(%,1),HACK=$TR(HACK,"@"," ") | 
|---|
|  | 97 | S LEXX=%_"^"_HACK Q LEXX | 
|---|
|  | 98 | TIME(LEXBEG,LEXEND) ; Elapsed time from begining to end | 
|---|
|  | 99 | S LEXBEG=+($G(LEXBEG)) Q:LEXBEG=0 "" S LEXEND=+($G(LEXEND)) Q:LEXBEG=0 "" | 
|---|
|  | 100 | S LEXBEG=$$FMDIFF^XLFDT(LEXEND,LEXBEG,3) S:$L($P(LEXBEG,":",1))=1 $P(LEXBEG,":",1)="0"_$P(LEXBEG,":",1) S LEXBEG=$TR(LEXBEG," ","0") | 
|---|
|  | 101 | Q LEXBEG | 
|---|