<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<taeDescription xmlns="http://uima.apache.org/resourceSpecifier">
  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
  <primitive>true</primitive>
  <annotatorImplementationName>org.apache.ctakes.dictionary.lookup.ae.UmlsDictionaryLookupAnnotator</annotatorImplementationName>
  <analysisEngineMetaData>
    <name>UmlsDictionaryLookupAnnotator</name>
    <description/>
    <version/>
    <vendor/>
    <configurationParameters>
      <configurationParameter>
        <name>maxListSize</name>
        <description>Specifies the maximum number of items to be returned
					from an lucene query.</description>
        <type>Integer</type>
        <multiValued>false</multiValued>
        <mandatory>false</mandatory>
      </configurationParameter>
      <configurationParameter>
        <name>ctakes.umlsaddr</name>
        <description>
        A UMLS is required to use the UMLS Dictionary.
        Address to verify UMLS License.  If you do not have one,
        Please request one at: https://uts.nlm.nih.gov/license.html
        </description>
        <type>String</type>
        <multiValued>false</multiValued>
        <mandatory>true</mandatory>
      </configurationParameter>    
      <configurationParameter>
        <name>ctakes.umlsvendor</name>
        <description>UMLS Vendor ID</description>
        <type>String</type>
        <multiValued>false</multiValued>
        <mandatory>true</mandatory>
      </configurationParameter>     
      <configurationParameter>
        <name>ctakes.umlsuser</name>
        <description>UMLS User Name</description>
        <type>String</type>
        <multiValued>false</multiValued>
        <mandatory>true</mandatory>
      </configurationParameter>    
      <configurationParameter>
        <name>ctakes.umlspw</name>
        <description>UMLS Password</description>
        <type>String</type>
        <multiValued>false</multiValued>
        <mandatory>true</mandatory>
      </configurationParameter>                    
    </configurationParameters>
    <configurationParameterSettings>
      <nameValuePair>
        <name>maxListSize</name>
        <value>
          <integer>2147483647</integer>
        </value>
      </nameValuePair>
      <nameValuePair>
        <name>ctakes.umlsaddr</name>
        <value>
          <string>https://uts-ws.nlm.nih.gov/restful/isValidUMLSUser</string>
        </value>
      </nameValuePair>    
      <nameValuePair>
        <name>ctakes.umlsvendor</name>
        <value>
          <string>NLM-6515182895</string>
        </value>
      </nameValuePair>
      <nameValuePair>
        <name>ctakes.umlsuser</name>
        <value>
          <string>YOUR_UMLS_USERNAME_HERE</string>
        </value>
      </nameValuePair> 
      <nameValuePair>
        <name>ctakes.umlspw</name>
        <value>
          <string>YOUR_UMLS_PASSWORD_HERE</string>
        </value>
      </nameValuePair>                      
    </configurationParameterSettings>
    <typeSystemDescription>
      <imports>
      </imports>
    </typeSystemDescription>
    <typePriorities/>
    <fsIndexCollection/>
    <capabilities>
      <capability>
        <inputs>
          <type allAnnotatorFeatures="true">org.apache.ctakes.typesystem.type.syntax.BaseToken</type>
          <type allAnnotatorFeatures="true">org.apache.ctakes.typesystem.type.textspan.LookupWindowAnnotation</type>
        </inputs>
        <outputs>
          <type allAnnotatorFeatures="true">org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation</type>
        </outputs>
        <languagesSupported/>
      </capability>
    </capabilities>
    <operationalProperties>
      <modifiesCas>true</modifiesCas>
      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
      <outputsNewCASes>false</outputsNewCASes>
    </operationalProperties>
  </analysisEngineMetaData>
  <externalResourceDependencies>
    <externalResourceDependency>
      <key>LookupDescriptor</key>
      <description/>
      <interfaceName>org.apache.ctakes.core.resource.FileResource</interfaceName>
      <optional>false</optional>
    </externalResourceDependency>
    <externalResourceDependency>
      <key>DbConnection</key>
      <description/>
      <interfaceName>org.apache.ctakes.core.resource.JdbcConnectionResource</interfaceName>
      <optional>false</optional>
    </externalResourceDependency>
    <externalResourceDependency>
      <key>RxnormIndexReader</key>
      <description/>
      <interfaceName>org.apache.ctakes.core.resource.JdbcConnectionResource</interfaceName>
      <optional>false</optional>
    </externalResourceDependency>
    <externalResourceDependency>
      <key>OrangeBookIndexReader</key>
      <description/>
      <interfaceName>org.apache.ctakes.core.resource.JdbcConnectionResource</interfaceName>
      <optional>false</optional>
    </externalResourceDependency>
  </externalResourceDependencies>
  <resourceManagerConfiguration>
    <externalResources>
      <externalResource>
        <name>LookupDescriptorFile</name>
        <description/>
        <fileResourceSpecifier>
          <fileUrl>file:org/apache/ctakes/dictionary/lookup/LookupDesc_Db.xml</fileUrl>
        </fileResourceSpecifier>
        <implementationName>org.apache.ctakes.core.resource.FileResourceImpl</implementationName>
      </externalResource>
      <externalResource>
        <name>DbConnectionResrc</name>
        <description/>
        <configurableDataResourceSpecifier>
          <url/>
          <resourceMetaData>
            <name/>
            <configurationParameters>
              <configurationParameter>
                <name>DriverClassName</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>URL</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>Username</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>Password</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
            </configurationParameters>
            <configurationParameterSettings>
              <nameValuePair>
                <name>DriverClassName</name>
                <value>
                  <string>org.hsqldb.jdbcDriver</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>URL</name>
                <value>
                  <string>jdbc:hsqldb:res:org/apache/ctakes/dictionary/lookup/umls2011ab/umls</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>Username</name>
                <value>
                  <string>SA</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>Password</name>
                <value>
                  <string/>
                </value>
              </nameValuePair>
            </configurationParameterSettings>
          </resourceMetaData>
        </configurableDataResourceSpecifier>
        <implementationName>org.apache.ctakes.core.resource.JdbcConnectionResourceImpl</implementationName>
      </externalResource>
      <externalResource>
        <name>RxnormIndex</name>
        <description/>
        <configurableDataResourceSpecifier>
          <url/>
          <resourceMetaData>
            <name/>
            <configurationParameters>
              <configurationParameter>
                <name>DriverClassName</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>URL</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>Username</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>Password</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
            </configurationParameters>
            <configurationParameterSettings>
              <nameValuePair>
                <name>DriverClassName</name>
                <value>
                  <string>org.hsqldb.jdbcDriver</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>URL</name>
                <value>
                  <string>jdbc:hsqldb:res:org/apache/ctakes/dictionary/lookup/rxnorm-hsqldb/umls</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>Username</name>
                <value>
                  <string>SA</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>Password</name>
                <value>
                  <string/>
                </value>
              </nameValuePair>
            </configurationParameterSettings>
          </resourceMetaData>
        </configurableDataResourceSpecifier>
        <implementationName>org.apache.ctakes.core.resource.JdbcConnectionResourceImpl</implementationName>
      </externalResource>
      <externalResource>
        <name>OrangeBookIndex</name>
        <description/>
        <configurableDataResourceSpecifier>
          <url/>
          <resourceMetaData>
            <name/>
            <configurationParameters>
              <configurationParameter>
                <name>DriverClassName</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>URL</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>Username</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
              <configurationParameter>
                <name>Password</name>
                <type>String</type>
                <multiValued>false</multiValued>
                <mandatory>true</mandatory>
              </configurationParameter>
            </configurationParameters>
            <configurationParameterSettings>
              <nameValuePair>
                <name>DriverClassName</name>
                <value>
                  <string>org.hsqldb.jdbcDriver</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>URL</name>
                <value>
                  <string>jdbc:hsqldb:res:org/apache/ctakes/dictionary/lookup/orange_book_hsqldb/umls</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>Username</name>
                <value>
                  <string>SA</string>
                </value>
              </nameValuePair>
              <nameValuePair>
                <name>Password</name>
                <value>
                  <string/>
                </value>
              </nameValuePair>
            </configurationParameterSettings>
          </resourceMetaData>
        </configurableDataResourceSpecifier>
        <implementationName>org.apache.ctakes.core.resource.JdbcConnectionResourceImpl</implementationName>
      </externalResource>
    </externalResources>
    <externalResourceBindings>
      <externalResourceBinding>
        <key>LookupDescriptor</key>
        <resourceName>LookupDescriptorFile</resourceName>
      </externalResourceBinding>
      <externalResourceBinding>
        <key>DbConnection</key>
        <resourceName>DbConnectionResrc</resourceName>
      </externalResourceBinding>
      <externalResourceBinding>
        <key>RxnormIndexReader</key>
        <resourceName>RxnormIndex</resourceName>
      </externalResourceBinding>
      <externalResourceBinding>
        <key>OrangeBookIndexReader</key>
        <resourceName>OrangeBookIndex</resourceName>
      </externalResourceBinding>
    </externalResourceBindings>
  </resourceManagerConfiguration>
</taeDescription>
