NAME
ws-getUMLSInfo
SYNOPSIS
Basic Usuage
perl ws-getUMLSInfo.pl -verbose -sources SNOMEDCT,MSH --rels PAR,CHD --config configfilename
--verbose: Sets verbose flag to true and thus displays all the authentication information 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.
Follwing is a sample output
- Enter username to connect to UMLSKS:mchoudhari
- Enter password:
- Enter query term/CUI:migraine
- Query term:migraine
- Preferred 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.
- SAB:CSP
- 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)
- SAB:MSH
- CUI:C0149931
- Enter query term/CUI:stop
DESCRIPTION
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.
Modules/Packages
This program uses following packages:
- package Connect
-
->sub Connect::get_pt to get the proxy ticket using a web service.
->sub Connect::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.
Structure
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.
SUBROUTINES
SOAP::Serializer::as_boolean
subroutine for serialization -- non-Perl types / complex types
SOAP::Serializer::as_ArrayOf_xsd_string
subroutine for serialization -- non-Perl types / complex types
SEE ALSO
ValidateTerm.pm GetUserData.pm Query.pm ConnectUMLS.pm
AUTHORS
Mugdha Choudhari University of Minnesota Duluth <chou0130 at d.umn.edu>
Ted Pedersen, University of Minnesota Duluth <tpederse at d.umn.edu>
COPYRIGHT
Copyright (C) 2010, 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.