| 1 | LEXCODE ; ISL/KER Retrieval of IEN^Term based on Code ; 05/14/2003
 | 
|---|
| 2 |  ;;2.0;LEXICON UTILITY;**25**;Sep 23, 1996;Build 1
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA  10104  $$UP^XLFSTR
 | 
|---|
| 6 |  ;                   
 | 
|---|
| 7 |  Q
 | 
|---|
| 8 |  ; EN^LEXCODE(X,LEXVDT)
 | 
|---|
| 9 |  ;                   
 | 
|---|
| 10 |  ;   X        Code taken from a classification 
 | 
|---|
| 11 |  ;            system listed in Coding Systems
 | 
|---|
| 12 |  ;            file #757.03
 | 
|---|
| 13 |  ;                   
 | 
|---|
| 14 |  ;   LEXVDT   The date against which the codes 
 | 
|---|
| 15 |  ;            found by the search will be compared
 | 
|---|
| 16 |  ;            in order to determine whether they 
 | 
|---|
| 17 |  ;            are active or inactive. If null is 
 | 
|---|
| 18 |  ;            passed then it should default to
 | 
|---|
| 19 |  ;            the current date.
 | 
|---|
| 20 |  ;                   
 | 
|---|
| 21 |  ; Returns Local Array
 | 
|---|
| 22 |  ;     LEXS(0)=X
 | 
|---|
| 23 |  ;     LEXS(SAB,0)=#
 | 
|---|
| 24 |  ;     LEXS(SAB,#)=IEN^TERM
 | 
|---|
| 25 |  ;                   
 | 
|---|
| 26 |  ; 3 character mnemonics for SAB (Source Abbreviation)
 | 
|---|
| 27 |  ;                   
 | 
|---|
| 28 |  ;     SAB   Nomenclature  Source
 | 
|---|
| 29 |  ;     -----------------------------------------------------------
 | 
|---|
| 30 |  ;     ICD     ICD-9-CM    Int'l Class of Disease (Diagnosis)
 | 
|---|
| 31 |  ;     ICP     ICD-9-CM    Int'l Class of Disease (Procedures)
 | 
|---|
| 32 |  ;     CPT     CPT-4       Current Procedural Terminology
 | 
|---|
| 33 |  ;     DSM     DSM-IIIR    Diag & Stat Manual of Mental Disorders
 | 
|---|
| 34 |  ;     SNM     SNOMED      Systematic Nomenclature for Medicine
 | 
|---|
| 35 |  ;     NAN     NANDA       North American Nursing Diagnosis Assoc
 | 
|---|
| 36 |  ;     NIC                 Nursing Intervention Classification
 | 
|---|
| 37 |  ;     OMA                 Omaha Nursing Diagnosis/Interventions
 | 
|---|
| 38 |  ;     ACR                 American College of Radiology (Diag)
 | 
|---|
| 39 |  ;     AIR     AI/RHEUM    National Library of Medicine source
 | 
|---|
| 40 |  ;     COS     COSTAR      Computer Stored Ambulatory Records
 | 
|---|
| 41 |  ;     CST     COSTART     Coding Sym Thes Adverse Reaction Terms
 | 
|---|
| 42 |  ;     DXP     DXPLAIN     Diagnostic Prompting System
 | 
|---|
| 43 |  ;     MCM                 McMaster University (Epidemiology)
 | 
|---|
| 44 |  ;     UMD                 Universal Medical Device Nomemclature
 | 
|---|
| 45 |  ;     CSP     CRISP    
 | 
|---|
| 46 |  ;     UWA                 University of Washington (Neuronames)
 | 
|---|
| 47 |  ;                   
 | 
|---|
| 48 |  ; Example returned array using code 309.24
 | 
|---|
| 49 |  ;                   
 | 
|---|
| 50 |  ;     LEXS(0)=309.24
 | 
|---|
| 51 |  ;     LEXS("DSM",0)=1
 | 
|---|
| 52 |  ;     LEXS("DSM",1)=3273^Adjustment disorder with anxious mood
 | 
|---|
| 53 |  ;     LEXS("ICD",0)=2
 | 
|---|
| 54 |  ;     LEXS("ICD",1)=268308^Adjustment reaction with anxious mood
 | 
|---|
| 55 |  ;     LEXS("ICD",2)=3273^Adjustment disorder with anxious mood
 | 
|---|
| 56 |  ;                   
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | EN(LEX,LEXVDT) ; Get terms associated with a Code
 | 
|---|
| 59 |  K LEXS S LEX=$$UP^XLFSTR($G(LEX)) Q:'$L(LEX)
 | 
|---|
| 60 |  N LEXSRC,LEXSO,LEXO,LEXSAB,LEXDA,LEXPF,LEXINA,LEXSTA
 | 
|---|
| 61 |  S LEXS(0)=LEX,LEXO=LEX_" ",LEXDA=0 Q:'$D(^LEX(757.02,"CODE",LEXO))
 | 
|---|
| 62 |  F  S LEXDA=$O(^LEX(757.02,"CODE",LEXO,LEXDA)) Q:+LEXDA=0  D CHK
 | 
|---|
| 63 |  D ASEM Q
 | 
|---|
| 64 | CHK ; Check if Valid
 | 
|---|
| 65 |  S LEXSO=$P($G(^LEX(757.02,LEXDA,0)),"^",2) Q:LEXSO'=LEX
 | 
|---|
| 66 |  S LEXSTA=$$STATCHK^LEXSRC2(LEXSO,$G(LEXVDT)) Q:+LEXSTA'>0
 | 
|---|
| 67 |  S LEXSRC=+($P($G(^LEX(757.02,LEXDA,0)),"^",3)) Q:LEXSRC'>0
 | 
|---|
| 68 |  S LEXSAB=$E($G(^LEX(757.03,+LEXSRC,0)),1,3) Q:$L(LEXSAB)'=3
 | 
|---|
| 69 |  S LEXPF=+($P($G(^LEX(757.02,LEXDA,0)),"^",5))
 | 
|---|
| 70 |  S:LEXPF=1 LEXS(LEXSAB,"PRE")=LEXDA
 | 
|---|
| 71 |  S:LEXPF'=1 LEXS(LEXSAB,"OTH",LEXDA)=""
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 | ASEM ; Assemble List
 | 
|---|
| 74 |  Q:'$D(LEXS)
 | 
|---|
| 75 |  N LEXSAB,LEXCT,LEXDA,LEXEX,LEXEXP,LEXY S LEXSAB=""
 | 
|---|
| 76 |  F  S LEXSAB=$O(LEXS(LEXSAB)) Q:LEXSAB=""  S LEXCT=0 D
 | 
|---|
| 77 |  . I $D(LEXS(LEXSAB,"PRE")) D LEXY
 | 
|---|
| 78 |  . S LEXDA=0
 | 
|---|
| 79 |  . F  S LEXDA=$O(LEXS(LEXSAB,"OTH",LEXDA)) Q:+LEXDA=0  D LEXY
 | 
|---|
| 80 |  . S:+LEXSAB'>0&(LEXSAB'="0") LEXS(LEXSAB,0)=LEXCT
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 | LEXY ; Get IEN^TERM for Code X
 | 
|---|
| 83 |  S:$D(LEXS(LEXSAB,"PRE")) LEXDA=LEXS(LEXSAB,"PRE")
 | 
|---|
| 84 |  K:'$D(LEXS(LEXSAB,"PRE")) LEXS(LEXSAB,"OTH",LEXDA) K LEXS(LEXSAB,"PRE")
 | 
|---|
| 85 |  S LEXY="",LEXEX=+($P($G(^LEX(757.02,LEXDA,0)),"^",1))
 | 
|---|
| 86 |  Q:'$L($G(^LEX(757.01,+LEXEX,0)))
 | 
|---|
| 87 |  S LEXEXP=$G(^LEX(757.01,+LEXEX,0)),LEXCT=LEXCT+1,LEXY=LEXEX_"^"_LEXEXP
 | 
|---|
| 88 |  S LEXS(LEXSAB,LEXCT)=LEXY
 | 
|---|
| 89 |  Q
 | 
|---|