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

LEXXFQ.m

Go to the documentation of this file.
  1. LEXXFQ ;ISL/KER - Set Frequencies in 757.001 ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**4,25,73,80**;Sep 23, 1996;Build 10
  1. ;
  1. ; Global Variables
  1. ; ^LEX(757.001) N/A
  1. ;
  1. ; External References
  1. ; $$FMDIFF^XLFDT ICR 10103
  1. ; $$FMTE^XLFDT ICR 10103
  1. ; HOME^%ZIS ICR 10086
  1. ; NOW^%DTC ICR 10000
  1. ; ^%ZTLOAD ICR 10063
  1. ;
  1. Q
  1. EN ; Update term frequencies when not found (at site)
  1. S ZTRTN="UP^LEXXFQ",ZTDESC="Update Term Frequency in file 757.001"
  1. S ZTIO="",ZTDTH=$H
  1. D ^%ZTLOAD,HOME^%ZIS
  1. K Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN
  1. Q
  1. EN2 ; Reset term frequencies to export values (at CIOFO)
  1. S ZTRTN="RE^LEXXFQ",ZTDESC="Reset Term Frequencies in file 757.001"
  1. S ZTIO="",ZTDTH=$H
  1. D ^%ZTLOAD,HOME^%ZIS
  1. K Y,ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN
  1. Q
  1. CHK ; Check frequencies (at site or IRMFO)
  1. N LEXI,LEXC S (LEXI,LEXC)=0
  1. F S LEXI=$O(^LEX(757,LEXI)) Q:+LEXI=0 S:'$D(^LEX(757.001,LEXI)) LEXC=LEXC+1
  1. I '$D(ZTQUEUED) D
  1. .W:LEXC>0 !!,LEXC," Concepts do not have frequencies set",!!
  1. .W:LEXC'>0 !!,"All concepts have frequencies set",!!
  1. Q
  1. UP ; Update frequencies
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. N LEX1,LEX2,LEXU,LEXUC,LEXDC,LEXMA,LEXT,LEXL,LEXH
  1. S (LEXDC,LEXU,LEXUC,LEXT,LEXL,LEXMA)=0,LEXH="."
  1. S LEX1=$$HACK
  1. I '$D(ZTQUEUED) D
  1. .W !!,"Initializing Global",!," Start: ",$P(LEX1,"^",2),!," "
  1. F S LEXMA=$O(^LEX(757,LEXMA)) Q:+LEXMA=0 D
  1. . S:'$D(^LEX(757.001,LEXMA,0)) LEXH="+" S LEXT=LEXT+1,LEXL=LEXMA
  1. . W:'$D(ZTQUEUED)&(LEXT#1000=0) LEXH S:LEXT#1000=0 LEXH=".",LEXDC=LEXDC+1
  1. . W:'$D(ZTQUEUED)&(LEXDC#76=0)&(LEXDC>0)&(LEXT#1000=0) !," "
  1. . I '$D(^LEX(757.001,LEXMA,0)) D SET S LEXUC=LEXUC+1
  1. W:'$D(ZTQUEUED) LEXH
  1. S:LEXT>0 $P(^LEX(757.001,0),"^",4)=LEXT
  1. S:LEXL>0 $P(^LEX(757.001,0),"^",3)=LEXL S:$D(ZTQUEUED) ZTREQ="@"
  1. S LEX2=$$HACK
  1. I '$D(ZTQUEUED) D
  1. .W !," Finished: ",$P(LEX2,"^",2)
  1. .W !," Time: ",$$TIME($P(LEX1,"^",1),$P(LEX2,"^",1)),!
  1. Q
  1. RE ; Reset frequencies
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. N LEXMA,LEXT,LEXL S (LEXT,LEXL,LEXMA)=0
  1. F S LEXMA=$O(^LEX(757,LEXMA)) Q:+LEXMA=0 S LEXT=LEXT+1,LEXL=LEXMA D SET
  1. S:LEXT>0 $P(^LEX(757.001,0),"^",4)=LEXT
  1. S:LEXL>0 $P(^LEX(757.001,0),"^",3)=LEXL S:$D(ZTQUEUED) ZTREQ="@" Q
  1. SET ; Set frequency
  1. N DIK,DIC,DA,LEXFQ
  1. S LEXMA=+($G(LEXMA))
  1. Q:'$D(^LEX(757,LEXMA,0))
  1. S DIC="^LEX(757.001,",DA=LEXMA,LEXFQ=+($$FQ(LEXMA))
  1. D:$D(^LEX(757.001,DA)) KILL^LEXNDX2
  1. S ^LEX(757.001,LEXMA,0)=LEXMA_"^"_LEXFQ_"^"_LEXFQ
  1. D SET^LEXNDX2
  1. Q
  1. FQ(LEXX) ; Frequency
  1. ;
  1. ; LEXSAB Source Abbreviation
  1. ; LEXSMC Semantic Class
  1. ; LEXNUR Nursing Class
  1. ; LEXBEH Behavior/Mental Health Class
  1. ; LEXPRO Procedural Class
  1. ; LEXDIA Diagnostic Class
  1. ; LEXSA IEN Source Code (ICD, CPT, DSM, etc)
  1. ; LEXMC IEN Major Concept
  1. ; LEXSO Code
  1. ;
  1. N LEXMC S LEXMC=+($G(LEXX)) Q:'$D(^LEX(757,LEXMC,0)) 0 Q:LEXMC<3 0
  1. N LEXSA,LEXSAB,LEXSMC,LEXNUR,LEXBEH,LEXPRO,LEXDIA,LEXSN,LEXSO,LEXSR
  1. S (LEXSA,LEXNUR,LEXBEH,LEXPRO,LEXDIA)=0
  1. F S LEXSA=$O(^LEX(757.02,"AMC",LEXMC,LEXSA)) Q:+LEXSA=0 D
  1. . S LEXSN=$G(^LEX(757.02,LEXSA,0))
  1. . S LEXSO=$P(LEXSN,"^",2),LEXSR=$P(LEXSN,"^",3)
  1. . Q:+$$STATCHK^LEXSRC2(LEXSO,,,LEXSR)=0
  1. . S LEXSAB=+($P($G(^LEX(757.02,LEXSA,0)),"^",3)) Q:LEXSAB=0
  1. . Q:LEXSAB>15 S:LEXSAB=1 LEXDIA=1
  1. . S:LEXSAB>1&(LEXSAB<5) LEXPRO=1
  1. . S:LEXSAB>4&(LEXSAB<7) LEXBEH=1
  1. . S:LEXSAB>10&(LEXSAB<16) LEXNUR=1
  1. S LEXSMC=$$SM(LEXMC),LEXX=0 I LEXDIA=1 S LEXX=4 Q LEXX
  1. I LEXBEH=1!(LEXSMC=1) S LEXX=3 Q LEXX
  1. I LEXPRO=1 S LEXX=2 Q LEXX
  1. I LEXNUR=1 S LEXX=1 Q LEXX
  1. Q LEXX
  1. SM(LEXX) ; Semantic Map (757.1)
  1. N LEXMC,LEXCL,LEXSA
  1. S LEXSA=0,LEXMC=+($G(LEXX)),LEXX=0
  1. Q:'$D(^LEX(757,LEXMC,0)) 0
  1. F S LEXSA=$O(^LEX(757.1,"B",LEXMC,LEXSA)) Q:+LEXSA=0 D
  1. .S LEXCL=+($P($G(^LEX(757.1,LEXSA,0)),"^",2))
  1. .I LEXCL=3!(LEXCL=6) S LEXX=1
  1. Q LEXX
  1. HACK(LEXX) ; Time Hack
  1. N X,%,%H,%I
  1. N HACK D NOW^%DTC S HACK=$$FMTE^XLFDT(%,1),HACK=$TR(HACK,"@"," ")
  1. S LEXX=%_"^"_HACK Q LEXX
  1. TIME(LEXBEG,LEXEND) ; Elapsed time from begining to end
  1. S LEXBEG=+($G(LEXBEG)) Q:LEXBEG=0 "" S LEXEND=+($G(LEXEND)) Q:LEXBEG=0 ""
  1. 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")
  1. Q LEXBEG