US Government Web Services and XML Data Sources
Load and stress tested with SiteBlaster
USGovXML Icon
Home     Index     About     Contact     Examples     Help      Mobile Apps 
US Government Data Sources

UMLS Terminology Services (UTS) Web Services

Department: Department of Health and Human Services (HHS)
Agency: National Institute of Health (NIH) (http://www.nih.gov/ )
Sub Agency: U.S. National Library of Medicine (http://www.nlm.nih.gov/ )
Description:
The UMLS Terminology Services Web Services (https://uts.nlm.nih.gov/home.html ) provides programmatic access to the features and capabilities of the UMLS. The UMLS, or Unified Medical Language System (http://www.nlm.nih.gov/research/umls/index.html ), is a set of files and software that brings together many health and biomedical vocabularies and standards to enable interoperability between computer systems.

Registration is required to use the web services. There is no cost to register or to use the web services. You can register at the following URL: https://utslogin.nlm.nih.gov/cas/login?service=https%3A%2F%2Futs.nlm.nih.gov%3A443%2F%2Fj_spring_cas_security_check
Help/Documentation:
https://uts.nlm.nih.gov//doc/devGuide/index.html , http://www.nlm.nih.gov/research/umls/quickstart.html , http://www.nlm.nih.gov/research/umls/new_users/online_learning/index.htm
WSDL/Data Location:
The two web services required to interact with the UMLS are for authorization and for data retrieval. They are:

Authorization:
    https://uts-ws.nlm.nih.gov/authorization/services/AuthorizationPort?wsdl

Data Retrieval:
    https://uts-ws.nlm.nih.gov/UMLSKS/services/UMLSKSService?wsdl

Before you can retrieve data, you must 1) Access the authorization web service to receive a PGT (Proxy Grant Ticket) and 2) For each data request, you must provide the PGT to the authorization web service to receive a SUT (Single Use Ticket).

Note: Retrieving a PGT will require the UserName and Password that was provided when you registered to use the web services.
Operations:
OperationDescription
N/A

Support: http://www.nlm.nih.gov/research/umls/support.html
Example: UMLS

.
.
.
/// <summary>
/// Get authorization to make calls to the UTS.
/// </summary>
/// <param name="objAppErr">The application error object</param>
/// <returns></returns>
protected string getProxyGrantTicket(ref ToolKit.AppErr objAppErr)
{
    objAppErr.Initialize();
    string pgt = "";
    var svc = new AuthorizationPortTypeService();

    try
    {
        pgt = svc.getProxyGrantTicket(_utsUserName, _utsPassword);
    }
    catch (Exception ex)
    {
        objAppErr.AppErrNum = -1;
        objAppErr.AppErrMsg = ex.Message;
        objAppErr.LoadException(ex);
    }
    finally
    {
        svc.Dispose();
    }

    svc = null;
    return pgt;
}

/// <summary>
/// Returns a single use ticket that must be supplied with every call
/// </summary>
/// <param name="objAppErr">The application error object</param>
/// <returns></returns>
protected string getSingleUseTicket(ref ToolKit.AppErr objAppErr)
{
    objAppErr.Initialize();
    string singleUseTicket = "";
    var svc = new AuthorizationPortTypeService();

    try
    {
        singleUseTicket = svc.getProxyTicket(_proxyGrantTicket, "http://umlsks.nlm.nih.gov");
    }
    catch (Exception ex)
    {
        objAppErr.AppErrNum = -1;
        objAppErr.AppErrMsg = ex.Message;
        objAppErr.LoadException(ex);
    }
    finally
    {
        svc.Dispose();
    }

    svc = null;
    return singleUseTicket;
}

/// <summary>
/// Returns the current version of the service
/// </summary>
/// <param name="objAppErr">The application error object</param>
/// <returns></returns>
protected string getCurrentUMLSVersion(ref ToolKit.AppErr objAppErr)
{
    string currentUMLSVersion = "";
    objAppErr.Initialize();

    // get single use ticket (Note: every call must have a single use ticket
    string singleUseTicket = getSingleUseTicket(ref objAppErr);

    if (objAppErr.AppErrNum == 0)
    {
        var svc = new UMLSKSService();
        var request = new CurrentUMLSRequest();
        request.casTicket = singleUseTicket;

        try
        {
            currentUMLSVersion = svc.getCurrentUMLSVersion(request);
        }
        catch (Exception ex)
        {
            objAppErr.AppErrNum = -1;
            objAppErr.AppErrMsg = ex.Message;
            objAppErr.LoadException(ex);
        }
        finally
        {
            svc.Dispose();
        }
        
        svc = null;
    }

    return currentUMLSVersion;
}
.
.
.






 
Terms of Use     Contact     Mobile    

Copyright © 2008-2016 USGovXML.com All rights reserved.