Skip to main content


class %UMLS.Install.Utils extends %Library.RegisteredObject

Installation Utility for UMLS

UMLS stands for Unified Medical Language System.It consists of several parts including ICD-10, MeSH, SNOMED CT, DSM-IV, LOINC. We can map either to any UMLS concept or only to a concept present in a specified vocabulary (or several vocabularies).

For detailed information on UMLS see:

To install UMLS inisde Cache you first need to install UMLS distribution files on your local machine by following UMLS Installation InstructionsOpens in a new tab. During installation UMLS Installation tool offers to create Database Load Scripts. Cache is not in the list of databases, select MySQL - we will later convert them to Cache.

Once local installation is completed you need to create UMLS database by running the following method:

  d ##class(%UMLS.Install.Utils).createDatabase()

This method also adds mappings so UMLS is acessible from all existing namespaces. If you create another namespace later in order to enable UMLS on the new namespace you need to run:

  d ##class(%UMLS.Install.Utils).addMapping("newNamespace")
  d ##class(%UMLS.Install.Utils).addMapToAllNamespaces()

When database is created run import utility:

  d ##class(%UMLS.Install.Utils).import("/OS/Path/To/UMLS/Installation")

Property Inventory

Method Inventory


parameter packageLEX = %UMLS.lex;
parameter packageMETA = %UMLS.meta;


property LoadData as %Boolean [ InitialExpression = 1 ];
Property methods: LoadDataDisplayToLogical(), LoadDataGet(), LoadDataIsValid(), LoadDataLogicalToDisplay(), LoadDataNormalize(), LoadDataSet()
property Pattern as %String;
Property methods: PatternDisplayToLogical(), PatternGet(), PatternIsValid(), PatternLogicalToDisplay(), PatternLogicalToOdbc(), PatternNormalize(), PatternSet()
property ProcessOther as %Boolean [ InitialExpression = 1 ];
Property methods: ProcessOtherDisplayToLogical(), ProcessOtherGet(), ProcessOtherIsValid(), ProcessOtherLogicalToDisplay(), ProcessOtherNormalize(), ProcessOtherSet()
property ProcessSystem as %Boolean [ InitialExpression = 1 ];
Property methods: ProcessSystemDisplayToLogical(), ProcessSystemGet(), ProcessSystemIsValid(), ProcessSystemLogicalToDisplay(), ProcessSystemNormalize(), ProcessSystemSet()
property Replace as %Boolean [ InitialExpression = 1 ];
Property methods: ReplaceDisplayToLogical(), ReplaceGet(), ReplaceIsValid(), ReplaceLogicalToDisplay(), ReplaceNormalize(), ReplaceSet()
property verbose as %Boolean [ InitialExpression = 0 ];
Property methods: verboseDisplayToLogical(), verboseGet(), verboseIsValid(), verboseLogicalToDisplay(), verboseNormalize(), verboseSet()


method ClearLog()
classmethod InsertCUI(cui As %String, coll As %List, lat As %String)
classmethod InsertSUI(sui As %String, coll As %List, lat As %String)
classmethod LogError(sc As %Status)
classmethod LogInstall(table As %String, path As %String, loaded As %String)
classmethod LogLoaded(table As %String)
classmethod SetInfo(dir As %String) as %Status
method SetOptions(qspec As %String = "") as %Status
classmethod addLAT(lat As %String) as %Status
Build indices for an additional language in UMLS.

Note that languages are sepcified in UMLS format. For example English is "ENG" and Dutch is "DUT". Languages supported by iKnow are: 1:"ENG",2:"FRE",3:"GER",4:"DUT",5:"SPA",6:"POR",7:"RUS"

classmethod addMapToAllNamespaces() as %Status
classmethod addMapping(ns As %String = "") as %Status
classmethod buildCUIColl() as %Status
classmethod buildNormTable() as %Status
classmethod buildSUIColl() as %Status
classmethod checkDatabase() as %Status
classmethod checkFiles(dir As %String) as %Status
Verifies that the given directory contains original UMLS install files.
classmethod classForTable(table As %String, Output cacheTable As %String, Output type As %String) as %String
classmethod createDatabase(dbpath As %String = "") as %Status
Creates UMLS database

dbpath - Optional parameter to specify path to the new database. Full UMLS can take up to 50G.

classmethod createIndex(command As %String, table As %String, code As %String) as %Status
classmethod deleteDatabase() as %Status
classmethod deleteMapFromAllNamespaces() as %Status
classmethod deleteMapping(ns As %String = "") as %Status
method doImport(dir As %String) as %Status
classmethod executeSQL(code As %String) as %Status
classmethod import(dir As %String, pattern As %String = "%", qspec As %String = "", verbose As %Boolean = 0) as %Status
Imprts UMLS from a local installation into Cache dir - Path to local UMLS installation pattern - Specify if you would like only partial import qpec options:
  • "load" or "/noload" - whether to load data. If load = 0 or "noload" then just create classes but do not import data
  • "system"/"nosystem" - Import/Do not import classes that are used for iKnow UMLS mapping
  • "other"/"noother" - Import/Do not import classes that are not used for iKnow UMLS mapping
  • "replace/noreplace" - Replace/Do not replace existing data
method importLEX(dir As %String) as %Status
method importMETA(dir As %String) as %Status
method importTable(dir As %String, line As %String, ByRef pDesc, forceLoad As %Boolean = 0) as %Status
classmethod isInstalled(dir As %String, table As %String, Output installed As %Boolean, Output loaded As %Boolean) as %Status
classmethod isSystem(className As %String, Output system As %Boolean) as %Status
classmethod loadData(table As %String, columns As %String, infile As %String, size As %Integer, nrec As %Integer) as %Status

Inherited Members

Inherited Methods

FeedbackOpens in a new tab