View on
Ted Pedersen > WebService-UMLSKS-Similarity > ws-getUMLSInfo


Annotate this POD


New  1
Open  0
View/Report Bugs




This program authenticates user by asking for valid username and password to connect to UMLSKS. Once the user is authenticated he can enter different terms and CUIs and get back the information about them from the UMLSKS Metathesaurus database. The program queries SNOMED-CT database with the term/CUI user enters and displays information like its source, CUI, definitions, etc.


Basic Usuage

perl --verbose 1 --sources SNOMEDCT,MSH --rels PAR,CHD --config configfilename --login loginfilename

--verbose: Sets verbose to true if you give value 1 and thus displays debug information in log for the user.

--sources : UMLS sources can be specified by providing list of sources seperated by comma. These sources will be used to query and retrieve the information.

--rels : UMLS relations can be specified by providing list of relations seperated by comma. These relations will be used to query and retrieve the information.

--config : Instead of providing sources and relations on command line, they can be specified using a configuration file, which can be provided with this option. It takes complete path and name of the file. The config file is expected in following format:

REL :: include PAR

-login : User can specify login credentials through the file, which should of of form:

username :: xyz
password :: pqr

Follwing is a sample output of the program

Enter username to connect to UMLSKS:mchoudhari
Enter password:
Enter query term/CUI:migraine
Query term:migraine
Prefered Term:Migraine Disorders
DEF:neural condition characterized by a severe recurrent vascular headache, usually on one side of the head, often accompanied by nausea, vomiting, and photophobia, sometimes preceded by sensory disturbances; triggers include allergic reactions, excess carbohydrates or iodine in the diet, alcohol, bright lights or loud noises.
DEF:A class of disabling primary headache disorders, characterized by recurrent unilateral pulsatile headaches. The two major subtypes are common migraine (without aura) and classic migraine (with aura or neurological symptoms). (International Classification of Headache Disorders, 2nd ed. Cephalalgia 2004: suppl 1)
CUI/s associated:C0149931
Enter query term/CUI:stop


This program uses following packages:

package ConnectUMLS

->sub ConnectUMLS::get_pt to get the proxy ticket using a web service.

->sub ConnectUMLS::connect_umls to connect to UMLS by sending username and password and getting back a proxy ticket.

package ValidateTerm

->sub ValidateTerm::validateTerm to accepts input term and validates it for a valid term or a valid CUI.

package GetUserData

->sub GetUserData::getUserDetails to get username and password from the user.

package Query

->sub Query::runQuery which takes method name, service and other parameters as argument and calls the web service. It also displays the information received from the web service and other error messages.

Other subs which provide the serialization of complex types and UMLSKS specific types.


The authentication process is done by 'authenticate' module and includes four steps:

1. sub Initialize Authentication service.
2. Get username and password from user to get proxy granting ticket.
3. Get proxy ticket using the proxy granting ticket.
4. Initialize UMLSKS web service using SOAP::Lite.

This programs reads input from the authenticated user and decides whether the input is a valid medical term or valid CUI. A valid CUI starts with 'C' followed by exactly seven digits and all seven digits cannot be zeros. An invalid term is the one that does not exist in UMLSKS database.It gives an error message if user enters invalid term or CUI. Then it queries the respective web service with source as SNOMED-CT, UMLSKS version as 2009AA, language as English and other parameters. If the input is a medical term, then findCUIByExact web service is called which returns a CUI for the entered term. Then getConceptProperties webservice is called with the returned CUI, which returns the information about the concept. If the user enters a CUI, directly getConceptProperties web service is called to get the information.



subroutine for serialization -- non-Perl types / complex types


subroutine for serialization -- non-Perl types / complex types



Mugdha Choudhari University of Minnesota Duluth <chou0130 at>

Ted Pedersen, University of Minnesota Duluth <tpederse at>


Copyright (C) 2011, Mugdha Choudhari, Ted Pedersen

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to The Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

syntax highlighting: