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

BSTSLKP.m

Go to the documentation of this file.
  1. BSTSLKP ;GDIT/HS/BEE-Standard Terminology Lookups ; 15 Nov 2012 4:26 PM
  1. ;;2.0;IHS STANDARD TERMINOLOGY;**2**;Dec 01, 2016;Build 1
  1. Q
  1. ;
  1. DSC(OUT,BSTSWS) ;EP - Perform Lookup on Description Id
  1. ;
  1. ;Input
  1. ; OUT - Output variable/global to return information in (VAR)
  1. ; BSTSWS("SEARCH") - The Description/Concept Id to lookup
  1. ; BSTSWS("NAMESPACEID") (Optional) - The code set Id (default SNOMED US EXT '36')
  1. ; BSTSWS("SNAPDT") (Optional) - Snapshot Date to check (default DT)
  1. ;
  1. ;Output
  1. ; @VAR@(#) - [1]^[2]^[3]
  1. ; [1] - Concept ID
  1. ; [2] - DTS ID
  1. ; [3] - Descriptor ID
  1. ;
  1. N DESC,IEN,NMID,SDATE,INMID,TIEN,CONC,DTS,CIEN
  1. ;
  1. S DESC=$G(BSTSWS("SEARCH")) Q:DESC="" "0"
  1. S NMID=$G(BSTSWS("NAMESPACEID")) S:NMID="" NMID=36 S:NMID=30 NMID=36
  1. S SDATE=$G(BSTSWS("SNAPDT")) S:SDATE="" SDATE=DT
  1. ;
  1. ;Pull internal Code Set ID
  1. S INMID=$O(^BSTS(9002318.1,"B",NMID,"")) Q:INMID="" "0"
  1. ;
  1. ;Lookup of ID
  1. S TIEN=$O(^BSTS(9002318.3,"D",INMID,DESC,"")) Q:TIEN="" "0"
  1. S CIEN=$$GET1^DIQ(9002318.3,TIEN_",",.03,"I") Q:CIEN="0"
  1. S CONC=$$GET1^DIQ(9002318.4,CIEN_",",.02,"I")
  1. S DTS=$$GET1^DIQ(9002318.4,CIEN_",",.08,"I")
  1. S @OUT@(1)=CONC_U_DTS_U_DESC
  1. ;
  1. Q 1
  1. ;
  1. DTS(OUT,BSTSWS) ;EP - Perform lookup on DTS Id
  1. ;
  1. ;Input
  1. ; OUT - Output variable/global to return information in (VAR)
  1. ; BSTSWS("SEARCH") - The DTS Id to lookup
  1. ; BSTSWS("NAMESPACEID") (Optional) - The code set Id (default SNOMED US EXT '36')
  1. ; BSTSWS("SNAPDT") (Optional) - Snapshot Date to check (default DT)
  1. ;
  1. ;Output
  1. ; @VAR@(#) - [1]^[2]^[3]
  1. ; [1] - Concept ID
  1. ; [2] - DTS ID
  1. ; [3] - Descriptor ID
  1. ;
  1. N DTS,IEN,NMID,SDATE,CONC,CIEN
  1. ;
  1. S DTS=$G(BSTSWS("SEARCH")) Q:DTS="" "0"
  1. S NMID=$G(BSTSWS("NAMESPACEID")) S:NMID="" NMID=36 S:NMID=30 NMID=36
  1. S SDATE=$G(BSTSWS("SNAPDT")) S:SDATE="" SDATE=DT
  1. ;
  1. ;Lookup of ID
  1. S CIEN=$O(^BSTS(9002318.4,"D",NMID,DTS,"")) Q:CIEN="" "0"
  1. S CONC=$$GET1^DIQ(9002318.4,CIEN_",",.02,"I") Q:CONC="" "0"
  1. S @OUT@(1)=CONC_U_DTS_U
  1. ;
  1. Q 1
  1. ;
  1. CNC(OUT,BSTSWS) ;EP - Perform lookup on Concept Id
  1. ;
  1. ;Input
  1. ; OUT - Output variable/global to return information in (VAR)
  1. ; BSTSWS("SEARCH") - The Concept Id to lookup
  1. ; BSTSWS("NAMESPACEID") (Optional) - The code set Id (default SNOMED US EXT '36')
  1. ; BSTSWS("SNAPDT") (Optional) - Snapshot Date to check (default DT)
  1. ;
  1. ;Output
  1. ; @VAR@(#) - [1]^[2]^[3]
  1. ; [1] - Concept ID
  1. ; [2] - DTS ID
  1. ; [3] - Descriptor ID
  1. ;
  1. N DTS,IEN,NMID,SDATE,CONC,CIEN
  1. ;
  1. S CONC=$G(BSTSWS("SEARCH")) Q:CONC="" "0"
  1. S NMID=$G(BSTSWS("NAMESPACEID")) S:NMID="" NMID=36 S:NMID=30 NMID=36
  1. S SDATE=$G(BSTSWS("SNAPDT")) S:SDATE="" SDATE=DT
  1. ;
  1. ;Lookup of ID
  1. S CIEN=$O(^BSTS(9002318.4,"C",NMID,CONC,"")) Q:CIEN="" "0"
  1. S DTS=$$GET1^DIQ(9002318.4,CIEN_",",.08,"I")
  1. S @OUT@(1)=CONC_U_DTS_U
  1. ;
  1. Q 1
  1. ;
  1. VNLKP(OUT,BSTSWS) ;EP - Perform local NDC/VUID lookup
  1. ;
  1. NEW NMID,CONC,DTS,CCT,NMIEN
  1. S CCT=0
  1. ;
  1. ;Get internal namespace IEN
  1. S NMID=$G(BSTSWS("NAMESPACEID"))
  1. S NMIEN=$O(^BSTS(9002318.1,"B",NMID,"")) I NMIEN="" Q CCT
  1. ;
  1. ;NDC Search
  1. ;
  1. I $G(BSTSWS("LTYPE"))="N" D Q CCT
  1. . NEW NDC,CIEN
  1. . ;
  1. . ;Get NDC
  1. . S NDC=$G(BSTSWS("SEARCH")) I NDC="" Q
  1. . ;
  1. . ;Lookup the entry
  1. . S CIEN="" F S CIEN=$O(^BSTS(9002318.4,"G",NMIEN,NDC,CIEN)) Q:CIEN="" D
  1. .. NEW CONC,DTSID
  1. .. S CONC=$$GET1^DIQ(9002318.4,CIEN_",",".02","I") Q:CONC=""
  1. .. S DTSID=$$GET1^DIQ(9002318.4,CIEN_",",".08","I") Q:DTSID=""
  1. .. S CCT=CCT+1,@OUT@(CCT)=CONC_U_DTSID
  1. ;
  1. ;VUID search
  1. ;
  1. I $G(BSTSWS("LTYPE"))="V" D Q CCT
  1. . NEW VUID,CIEN
  1. . ;
  1. . ;Get VUID
  1. . S VUID=$G(BSTSWS("SEARCH")) I VUID="" Q
  1. . ;
  1. . ;Lookup the entry
  1. . S CIEN="" F S CIEN=$O(^BSTS(9002318.4,"H",NMIEN,VUID,CIEN)) Q:CIEN="" D
  1. .. NEW CONC,DTSID
  1. .. S CONC=$$GET1^DIQ(9002318.4,CIEN_",",".02","I") Q:CONC=""
  1. .. S DTSID=$$GET1^DIQ(9002318.4,CIEN_",",".08","I") Q:DTSID=""
  1. .. S CCT=CCT+1,@OUT@(CCT)=CONC_U_DTSID
  1. ;
  1. Q 0
  1. ;
  1. CIEN(CONC,NMID) ;EP - Return the CIEN for the concept
  1. ;
  1. I $G(CONC)="" Q ""
  1. I $G(NMID)="" Q ""
  1. ;
  1. NEW TRNCONC,FOUND,CIEN
  1. ;
  1. S TRNCONC=$E(CONC,1,30)
  1. ;
  1. S FOUND=""
  1. S CIEN="" F S CIEN=$O(^BSTS(9002318.4,"C",NMID,TRNCONC,CIEN),-1) Q:CIEN="" D I FOUND]"" Q
  1. . NEW CONCID
  1. . S CONCID=$$GET1^DIQ(9002318.4,CIEN_",",".02","I") Q:CONCID=""
  1. . I CONC'=CONCID Q
  1. . S FOUND=CIEN
  1. Q FOUND