Package in.cdac.medinfo.csnotk.csnolib.api

## Interface ISNOMEDAgent

- All Superinterfaces:
    `java.io.Serializable`
  All Known Implementing Classes:
    `SNOMEDAgent`

      public interface ISNOMEDAgent
      extends java.io.Serializable

  Library interface for application. It provides the basic methods to query the SNOMED CT repository for finding suggestions, searching, and retrieving `Concept` and corresponding `Description` for known concept identifiers.
  See Also:
    `Concept`, `Description`, `EnumSemanticTag`, `EnumState`, `EnumAcceptability`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `createExtensiondb​(java.lang.String snomedExtDirPath, boolean overridedb)` | This method creates SNOMED CT extension database
    `boolean` | `createRefsetdb​(java.lang.String refsetFilePath, boolean overridedb)` | This method creates database for given refsets
    `boolean` | `createSimpleMapdb​(java.lang.String snomedIntDirPath, boolean overridedb)` | This method creates simple map database
    `boolean` | `createSNOMEDdb​(java.lang.String snomedIntDirPath, boolean overridedb)` | This method creates SNOMED CT database
    `boolean` | `createSNOMEDRefsetdb​(java.lang.String snomedIntDirPath, boolean overridedb)` | This method creates SNOMED CT Refset database
    `java.util.Set<Concept>` | `executeEcl​(java.lang.String ecl, java.lang.String term)` | Parses ECL query and fetches result.
    `java.util.Set<Concept>` | `getAllAncestorConcepts​(java.lang.String id)` | Returns a `Set` of all Ancestors `Concept`s for given concept identifier.
    `java.util.Set<Concept>` | `getAllDescendantConcepts​(java.lang.String id)` | Returns a `Set` of all Descendants `Concept`s for given concept identifier.
    `java.util.List<CompositeDescription>` | `getAllDescriptions​(java.lang.String conceptId, EnumLangRefset enumLangRefset)` | Returns the list of descriptions including Fully specified names (FSN).
    `java.util.Set<Refset>` | `getAllExtension()` | Returns a `Set` of all Extensions `Refset`s.
    `java.util.Set<Refset>` | `getAllRefset()` | Returns a `Set` of `Refset`s for given concept identifier.
    `Concept` | `getConcept​(java.lang.String id)` | Returns a SNOMED CT `Concept` associated for a given `Concept` identifier.
    `java.util.List<Concept>` | `getConcept​(java.util.List<java.lang.String> ids)` | Returns `List` of SNOMED CT `Concept` associated for a given `Concept` identifier.
    `ConceptDetails` | `getConceptDetails​(java.lang.String id, EnumLangRefset enumLangRefset)` | Returns concept details associated for a given concept identifier (corresponding descriptions and relationships are also listed)
    `java.util.List<Relationship>` | `getConcepts​(java.lang.String attribute)` | Returns all concept associated for a given attribute name
    `java.util.List<Relationship>` | `getConcepts​(java.lang.String attribute, java.lang.String destinationId)` | Returns all concept associated for a given attribute name and destination id (attribute value)
    `java.util.List<Relationship>` | `getConcepts​(java.lang.String attribute, java.util.List<java.lang.String> semanticTagList)` | Returns all concept associated for a given attribute name and semantic tags
    `java.util.List<Relationship>` | `getConcepts​(java.lang.String attribute, java.util.List<java.lang.String> semanticTagList, java.lang.String destinationId)` | Returns all concept associated for a given attribute name, semantic tags and destination id (attribute value)
    `java.util.List<Relationship>` | `getConcepts​(java.lang.String attribute, java.util.List<java.lang.String> semanticTagList, java.lang.String destinationId, boolean subsumption, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Returns all concept associated for a given attribute name and other parameters
    `java.util.Set<Concept>` | `getExtensionMember​(java.lang.String string, int pageNumber)` | Returns a `Set` of all Extension Members `Concept`s for given concept extension identifier.
    `java.lang.String` | `getHierarchy​(java.lang.String conceptId, java.lang.String typeId, java.lang.String term)` | Retrieves the Semantic Tag for a given concept identifier.
    `java.util.Set<RelationshipTC>` | `getIsARelationshipsWithCount​(java.lang.String conceptId)` | Searches for the immediate children descriptions.
    `java.util.List<java.util.List<java.lang.String>>` | `getLangRefset()` | This method used for retrieving language refset values from LangRefsetEnum
    `java.util.Set<Concept>` | `getRefsetMember​(java.lang.String string)` | Returns a `Set` of all Refset Members `Concept`s for given concept refset identifier.
    `java.util.Set<Concept>` | `getRelations​(java.lang.String conceptId, java.lang.String relationshipType, EnumDirection direction)` | Searches given concept id in the SNOMED CT repository based on provided relationship type, direction.
    `java.util.List<java.lang.String>` | `getRelationShipType()` | It will return all relationship type name based on provided SNOMED CT RF2
    `java.util.Set<java.lang.String>` | `getSemanticTags()` | It will return all semantic tags based on provided SNOMED CT RF2
    `java.util.Set<java.lang.String>` | `getSuggestions​(java.lang.String matchTerm, int returnLimit, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Returns limited best matching suggestions for given term/text or concept id in SNOMED CT repository.
    `java.util.Set<java.lang.String>` | `getSuggestions​(java.lang.String matchTerm, EnumState enumState, int returnLimit, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Returns most matching suggestions for term/text or concept id in the SNOMED CT repository based on provided component state (active, inactive, both).
    `java.util.Set<java.lang.String>` | `getSuggestions​(java.lang.String matchTerm, EnumState enumState, java.util.List<java.lang.String> semanticTagList, int returnLimit, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Returns most matching suggestions for given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag.
    `java.util.Set<java.lang.String>` | `getSuggestions​(java.lang.String matchTerm, EnumState enumState, java.util.List<java.lang.String> semanticTagList, EnumAcceptability enumAcceptability, int returnLimit, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Returns most matching suggestions for given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag, acceptability.
    `java.util.Set<java.lang.String>` | `getSuggestions​(java.lang.String matchTerm, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Returns most matching suggestions for given term/text or concept id in SNOMED CT repository.
    `void` | `init()` | The method will configure the properties to default values
    `void` | `init​(java.lang.String dataDir, java.lang.String errorLogDir, java.lang.Integer searchReturnlimit, java.lang.Integer suggestReturnlimit, java.lang.Integer topSuggestReturnlimit)` | The method will configure properties by values provided in parameters
    `Concept` | `search​(java.lang.String conceptId)` | Searches given conceptId in the SNOMED CT repository
    `java.util.Set<CompositeDescription>` | `search​(java.lang.String matchTerm, boolean groupByConcept, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Searches given term/text or concept id in SNOMED CT repository.
    `java.util.Set<CompositeDescription>` | `search​(java.lang.String matchTerm, int returnLimit, boolean groupByConcept, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Searches limited best matching terms for given term/text or concept iD in SNOMED CT repository.
    `java.util.Set<CompositeDescription>` | `search​(java.lang.String matchTerm, EnumState enumState, int returnLimit, boolean groupByConcept, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Searches given term/text or concept id in the SNOMED CT repository based on provided component state (active, inactive, both).
    `java.util.Set<CompositeDescription>` | `search​(java.lang.String matchTerm, EnumState enumState, java.util.List<java.lang.String> semanticTagList, int returnLimit, boolean groupByConcept, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Searches given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag.
    `java.util.Set<CompositeDescription>` | `search​(java.lang.String matchTerm, EnumState enumState, java.util.List<java.lang.String> semanticTagList, int returnLimit, boolean groupByConcept, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean fullConcept, boolean excludeConcept)` | Searches given term/text or concept id in the SNOMED CT repository based on provided component state (active, inactive, both).
    `java.util.Set<CompositeDescription>` | `search​(java.lang.String matchTerm, EnumState enumState, java.util.List<java.lang.String> semanticTagList, EnumAcceptability enumAcceptability, int returnLimit, boolean groupByConcept, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean excludeConcept)` | Searches given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag, acceptability.
    `java.util.Set<CompositeDescription>` | `search​(java.lang.String matchTerm, EnumState enumState, java.util.List<java.lang.String> semanticTagList, EnumAcceptability enumAcceptability, int returnLimit, boolean groupByConcept, java.lang.String refsetId, java.util.List<java.lang.String> parentIdList, boolean fullConcept, boolean excludeConcept)` | Searches given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag, acceptability.
    `SimpleMapRefsetResult` | `searchSimpleMap​(java.lang.String refsetComponentId)` | Searches the simpleMapTarget of refsetComponentId provided .

- - ### Method Detail

    - #### getAllDescriptions

          java.util.List<CompositeDescription> getAllDescriptions​(java.lang.String conceptId,
                                                                  EnumLangRefset enumLangRefset)

      Returns the list of descriptions including Fully specified names (FSN).
      Parameters:
        `conceptId` - SNOMED CT concept identifier.
        `enumLangRefset` - `EnumLangRefset` Specifies English language reference set for US or UK.
      Returns:
        List of `CompositeDescription` for given concept id.

    - #### getConceptDetails

          ConceptDetails getConceptDetails​(java.lang.String id,
                                           EnumLangRefset enumLangRefset)

      Returns concept details associated for a given concept identifier (corresponding descriptions and relationships are also listed)
      Parameters:
        `id` - `String` identifier of the SNOMED CT `Concept`.
        `enumLangRefset` - `EnumLangRefset` Specifies English language reference set for US or UK.
      Returns:
        `ConceptDetails` that contains the details corresponding to a particular SNOMED CT Concept (including descriptions and relationships related to that particular concept).

    - #### search

          Concept search​(java.lang.String conceptId)

      Searches given conceptId in the SNOMED CT repository
      Parameters:
        `conceptId` - String it will search on the basis of given conceptId and also use for checking the entered conceptId is valid or not
      Returns:
        Object of `Concept` respected to given conceptId

    - #### search

          java.util.Set<CompositeDescription> search​(java.lang.String matchTerm,
                                                     boolean groupByConcept,
                                                     java.lang.String refsetId,
                                                     java.util.List<java.lang.String> parentIdList,
                                                     boolean excludeConcept)

      Searches given term/text or concept id in SNOMED CT repository. Result includes active as well as inactive terms.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched.
        `groupByConcept` - boolean value, if true, then method will return set of `CompositeDescription` which will contain one description from one concept.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
        `excludeConcept` - give result for search term excluding the given concepts ID (parentID)
      Returns:
        Set of `CompositeDescription` matching the given term/text or Concept ID.

    - #### search

          java.util.Set<CompositeDescription> search​(java.lang.String matchTerm,
                                                     int returnLimit,
                                                     boolean groupByConcept,
                                                     java.lang.String refsetId,
                                                     java.util.List<java.lang.String> parentIdList,
                                                     boolean excludeConcept)

      Searches limited best matching terms for given term/text or concept iD in SNOMED CT repository.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `returnLimit` - Maximum number of matching terms to be fetched.
        `groupByConcept` - boolean value, if true, then method will return set of `CompositeDescription` which will contain one description from one concept.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `CompositeDescription` matching the given term/text or Concept ID.

    - #### search

          java.util.Set<CompositeDescription> search​(java.lang.String matchTerm,
                                                     EnumState enumState,
                                                     int returnLimit,
                                                     boolean groupByConcept,
                                                     java.lang.String refsetId,
                                                     java.util.List<java.lang.String> parentIdList,
                                                     boolean excludeConcept)

      Searches given term/text or concept id in the SNOMED CT repository based on provided component state (active, inactive, both).
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `enumState` - `EnumState` State of a component.
        If enumState is,
        active - It will return only active Components.
        inactive - It will return only inactive Components.
        both - It will return both active and inactive Components.
        `returnLimit` - Maximum number of matching terms to be fetched.
        `groupByConcept` - boolean value, if true, then method will return set of `CompositeDescription` which will contain one description from one concept.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `CompositeDescription` matching the given term/text or Concept ID.

    - #### search

          java.util.Set<CompositeDescription> search​(java.lang.String matchTerm,
                                                     EnumState enumState,
                                                     java.util.List<java.lang.String> semanticTagList,
                                                     int returnLimit,
                                                     boolean groupByConcept,
                                                     java.lang.String refsetId,
                                                     java.util.List<java.lang.String> parentIdList,
                                                     boolean excludeConcept)

      Searches given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `enumState` - `EnumState` State of a component.
        If enumState is,
        active - It will return only active Components.
        inactive - It will return only inactive Components.
        both - It will return both active and inactive Components.
        `enumSemanticTagList` - `EnumSemanticTag` Refers to the Semantic Tag in which SNOMED CT term/text or concept id will be searched.
        If enumSemanticTag is,
        all - It will search SNOMED CT term in all the Semantic Tags.
        For other possible values please refer `EnumSemanticTag`.
        `returnLimit` - Maximum number of matching terms to be fetched.
        `groupByConcept` - boolean value, if true, then method will return set of `CompositeDescription` which will contain one description from one concept.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `CompositeDescription` matching the given term/text or Concept ID.

    - #### search

          java.util.Set<CompositeDescription> search​(java.lang.String matchTerm,
                                                     EnumState enumState,
                                                     java.util.List<java.lang.String> semanticTagList,
                                                     EnumAcceptability enumAcceptability,
                                                     int returnLimit,
                                                     boolean groupByConcept,
                                                     java.lang.String refsetId,
                                                     java.util.List<java.lang.String> parentIdList,
                                                     boolean excludeConcept)

      Searches given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag, acceptability.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `enumState` - `EnumState` State of a component.
        If enumState is,
        active - It will return only active Components.
        inactive - It will return only inactive Components.
        both - It will return both active and inactive Components.
        `enumSemanticTagList` - `EnumSemanticTag` Refers to the Semantic Tag in which SNOMED CT term/text or concept id will be searched.
        If enumSemanticTag is,
        all - It will search SNOMED CT term in all the Semantic Tags.
        For other possible values please refer `EnumSemanticTag`.
        `enumAcceptability` - `EnumAcceptability` Represents the type of description i.e. whether the search results contains preferred terms or preferred terms other than FSN or only acceptable terms and so on.
        If enumAcceptability is,
        preferred - refers to all preferred description for a concept (including FSN).
        preferredexcludingfsn - refers to SNOMEDCT description for preferred terms excluding FSN.
        synonyms - refers to all description for a concept (excluding FSN).
        acceptable- refers to all description for a concept excluding preferred.
        all - refers to all description for a concept (both preferred and acceptable).
        `returnLimit` - Maximum number of matching terms to be fetched.
        `groupByConcept` - boolean value, if true, then method will return set of `CompositeDescription` which will contain one description from one concept.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `CompositeDescription` matching the given term/text or Concept ID.

    - #### search

          java.util.Set<CompositeDescription> search​(java.lang.String matchTerm,
                                                     EnumState enumState,
                                                     java.util.List<java.lang.String> semanticTagList,
                                                     EnumAcceptability enumAcceptability,
                                                     int returnLimit,
                                                     boolean groupByConcept,
                                                     java.lang.String refsetId,
                                                     java.util.List<java.lang.String> parentIdList,
                                                     boolean fullConcept,
                                                     boolean excludeConcept)

      Searches given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag, acceptability.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `enumState` - `EnumState` State of a component.
        If enumState is,
        active - It will return only active Components.
        inactive - It will return only inactive Components.
        both - It will return both active and inactive Components.
        `enumSemanticTagList` - `EnumSemanticTag` Refers to the Semantic Tag in which SNOMED CT term/text or concept id will be searched.
        If enumSemanticTag is,
        all - It will search SNOMED CT term in all the Semantic Tags.
        For other possible values please refer `EnumSemanticTag`.
        `enumAcceptability` - `EnumAcceptability` Represents the type of description i.e. whether the search results contains preferred terms or preferred terms other than FSN or only acceptable terms and so on.
        If enumAcceptability is,
        preferred - refers to all preferred description for a concept (including FSN).
        preferredexcludingfsn - refers to SNOMEDCT description for preferred terms excluding FSN.
        synonyms - refers to all description for a concept (excluding FSN).
        acceptable- refers to all description for a concept excluding preferred.
        all - refers to all description for a concept (both preferred and acceptable).
        `returnLimit` - Maximum number of matching terms to be fetched.
        `groupByConcept` - boolean value, if true, then method will return set of `CompositeDescription` which will contain one description from one concept.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
        `fullConcept` - boolean value, if true, then method will return all details for concept otherwise limited data like FSN,term and concpetid
      Returns:
        Set of `CompositeDescription` matching the given term/text or Concept ID.

    - #### search

          java.util.Set<CompositeDescription> search​(java.lang.String matchTerm,
                                                     EnumState enumState,
                                                     java.util.List<java.lang.String> semanticTagList,
                                                     int returnLimit,
                                                     boolean groupByConcept,
                                                     java.lang.String refsetId,
                                                     java.util.List<java.lang.String> parentIdList,
                                                     boolean fullConcept,
                                                     boolean excludeConcept)

      Searches given term/text or concept id in the SNOMED CT repository based on provided component state (active, inactive, both). by the user.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `enumState` - `EnumState` State of a component.
        If enumState is,
        active - It will return only active Components.
        inactive - It will return only inactive Components.
        both - It will return both active and inactive Components.
        `returnLimit` - Maximum number of matching terms to be fetched.
        `groupByConcept` - boolean value, if true, then method will return set of `CompositeDescription` which will contain one description from one concept.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
        `fullConcept` - boolean value, if true, then method will return all details for concept otherwise limited data like FSN,term and concpetid
        `sematicTagList` - List<`String`> contains semantic tags list
      Returns:
        Set of `CompositeDescription` matching the given term/text or Concept ID.

    - #### getConcept

          Concept getConcept​(java.lang.String id)

      Returns a SNOMED CT `Concept` associated for a given `Concept` identifier.
      Parameters:
        `id` - `String` identifier of the SNOMED CT `Concept`.
      Returns:
        `Concept` SNOMED CT concept

    - #### getSuggestions

          java.util.Set<java.lang.String> getSuggestions​(java.lang.String matchTerm,
                                                         java.lang.String refsetId,
                                                         java.util.List<java.lang.String> parentIdList,
                                                         boolean excludeConcept)

      Returns most matching suggestions for given term/text or concept id in SNOMED CT repository.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `String` suggestions matching the given term/text or Concept ID.

    - #### getSuggestions

          java.util.Set<java.lang.String> getSuggestions​(java.lang.String matchTerm,
                                                         int returnLimit,
                                                         java.lang.String refsetId,
                                                         java.util.List<java.lang.String> parentIdList,
                                                         boolean excludeConcept)

      Returns limited best matching suggestions for given term/text or concept id in SNOMED CT repository.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `returnLimit` - Maximum number of matching terms to be fetched.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `String` matching the given term/text or Concept ID.

    - #### getSuggestions

          java.util.Set<java.lang.String> getSuggestions​(java.lang.String matchTerm,
                                                         EnumState enumState,
                                                         int returnLimit,
                                                         java.lang.String refsetId,
                                                         java.util.List<java.lang.String> parentIdList,
                                                         boolean excludeConcept)

      Returns most matching suggestions for term/text or concept id in the SNOMED CT repository based on provided component state (active, inactive, both).
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `enumState` - `EnumState` State of a component.
        If enumState is,
        active - It will return only active Components.
        inactive - It will return only inactive Components.
        both - It will return both active and inactive Components.
        `returnLimit` - Maximum number of matching terms to be fetched.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `String` matching the given term/text or Concept ID.

    - #### getSuggestions

          java.util.Set<java.lang.String> getSuggestions​(java.lang.String matchTerm,
                                                         EnumState enumState,
                                                         java.util.List<java.lang.String> semanticTagList,
                                                         int returnLimit,
                                                         java.lang.String refsetId,
                                                         java.util.List<java.lang.String> parentIdList,
                                                         boolean excludeConcept)

      Returns most matching suggestions for given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `enumState` - `EnumState` State of a component.
        If enumState is,
        active - It will return only active Components.
        inactive - It will return only inactive Components.
        both - It will return both active and inactive Components.
        `enumSemanticTagList` - `EnumSemanticTag` Refers to the Semantic Tag in which SNOMED CT term/text or concept id will be searched.
        If enumSemanticTag is,
        all - It will search SNOMED CT term in all the Semantic Tags.
        For other possible values please refer `EnumSemanticTag`.
        `returnLimit` - Maximum number of matching terms to be fetched.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `String` matching the given term/text or Concept ID.

    - #### getSuggestions

          java.util.Set<java.lang.String> getSuggestions​(java.lang.String matchTerm,
                                                         EnumState enumState,
                                                         java.util.List<java.lang.String> semanticTagList,
                                                         EnumAcceptability enumAcceptability,
                                                         int returnLimit,
                                                         java.lang.String refsetId,
                                                         java.util.List<java.lang.String> parentIdList,
                                                         boolean excludeConcept)

      Returns most matching suggestions for given term/text or concept id in the SNOMED CT repository based on provided component state, semantic tag, acceptability.
      Parameters:
        `matchTerm` - `String` term/text or Concept ID to be searched in SNOMED CT repository.
        `enumState` - `EnumState` State of a component.
        If enumState is,
        active - It will return only active Components.
        inactive - It will return only inactive Components.
        both - It will return both active and inactive Components.
        `enumSemanticTagList` - `EnumSemanticTag` Refers to the Semantic Tag in which SNOMED CT term/text or concept id will be searched.
        If enumSemanticTag is,
        all - It will search SNOMED CT term in all the Semantic Tags.
        For other possible values please refer `EnumSemanticTag`.
        `enumAcceptability` - `EnumAcceptability` Represents the type of description i.e. whether the search results contains preferred terms or preferred terms other than FSN, only acceptable terms or synonyms.
        If enumAcceptability is,
        preferred - refers to all preferred description for a concept (including FSN).
        preferredexcludingfsn - refers to SNOMEDCT description for preferred terms excluding FSN.
        synonyms - refers to all description for a concept (excluding FSN).
        acceptable- refers to all description for a concept excluding preferred.
        all - refers to all description for a concept (both preferred and acceptable).
        `returnLimit` - Maximum number of matching terms to be fetched.
        `refsetId` - Identifier of Refset if search is to be done from a specific Refset and null if search is to be done from whole SNOMED CT Terminology.
        `parentIdList` - List of Identifier of Concepts if search is to be done from it's descendants only and null if search is to be done from whole SNOMED CT Terminology.
      Returns:
        Set of `String` matching the given term/text or Concept ID.

    - #### getAllDescendantConcepts

          java.util.Set<Concept> getAllDescendantConcepts​(java.lang.String id)

      Returns a `Set` of all Descendants `Concept`s for given concept identifier.
      Parameters:
        `id` - SNOMED CT concept identifier.
      Returns:
        Set of `Concept`s.

    - #### getHierarchy

          java.lang.String getHierarchy​(java.lang.String conceptId,
                                        java.lang.String typeId,
                                        java.lang.String term)
                                 throws java.sql.SQLException

      Retrieves the Semantic Tag for a given concept identifier.
      Parameters:
        `conceptId` - `String` value for Concept identifier for which hierarchy is to be identified.
        `typeId` - type of the description.
        `term` - the description for that concept.
      Returns:
        the hierarchy to which the concept belongs.
      Throws:
        `java.sql.SQLException` - if error occurs while accessing database.

    - #### getConcept

          java.util.List<Concept> getConcept​(java.util.List<java.lang.String> ids)

      Returns `List` of SNOMED CT `Concept` associated for a given `Concept` identifier.
      Parameters:
        `ids` - `List` `String` identifier of the SNOMED CT `Concept`.
      Returns:
        `List` `Concept` SNOMED CT concept

    - #### getRelations

          java.util.Set<Concept> getRelations​(java.lang.String conceptId,
                                              java.lang.String relationshipType,
                                              EnumDirection direction)

      Searches given concept id in the SNOMED CT repository based on provided relationship type, direction.
      Parameters:
        `conceptId` - - `String` Concept ID to be searched in SNOMED CT repository.
        enumRelationshipType - `EnumRelationshipType` Type of relationship.
        If enumRelationshipType is,
        is a - It will return only "is a" relation type Components.
        all - It will return only "all" relation type Components.
        finding site - It will return only "finding site" relation type Components.
        directions- `EnumDirection` Relationship direction i.e whether the specified concept Id is the source or destination Possible values for directions is,
        source - concept Id is a source
        destination - concept Id is a destination
      Returns:
        Set of `Concept` matching the given parameter.
      Throws:
        `java.io.IOException`

    - #### getConcepts

          java.util.List<Relationship> getConcepts​(java.lang.String attribute)

      Returns all concept associated for a given attribute name
      Parameters:
        `attributeName` -
      Returns:
        `Relationship` that contains the list of Relationships corresponding to a particular SNOMED CT attribute value

    - #### getConcepts

          java.util.List<Relationship> getConcepts​(java.lang.String attribute,
                                                   java.util.List<java.lang.String> semanticTagList)

      Returns all concept associated for a given attribute name and semantic tags
      Parameters:
        `attributeName` -
        `semanticTagList` -
      Returns:
        `Relationship` that contains the list of Relationships corresponding to a particular SNOMED CT attribute value

    - #### getConcepts

          java.util.List<Relationship> getConcepts​(java.lang.String attribute,
                                                   java.lang.String destinationId)

      Returns all concept associated for a given attribute name and destination id (attribute value)
      Parameters:
        `attributeName` -
        `destinationId` -
      Returns:
        `Relationship` that contains the list of Relationships corresponding to a particular SNOMED CT attribute value

    - #### getConcepts

          java.util.List<Relationship> getConcepts​(java.lang.String attribute,
                                                   java.util.List<java.lang.String> semanticTagList,
                                                   java.lang.String destinationId)

      Returns all concept associated for a given attribute name, semantic tags and destination id (attribute value)
      Parameters:
        `attributeName` -
        `semanticTagList` -
        `destinationId` -
      Returns:
        `Relationship` that contains the list of Relationships corresponding to a particular SNOMED CT attribute value

    - #### getConcepts

          java.util.List<Relationship> getConcepts​(java.lang.String attribute,
                                                   java.util.List<java.lang.String> semanticTagList,
                                                   java.lang.String destinationId,
                                                   boolean subsumption,
                                                   java.util.List<java.lang.String> parentIdList,
                                                   boolean excludeConcept)

      Returns all concept associated for a given attribute name and other parameters
      Parameters:
        `attributeName` -
        `semanticTagList` -
        `destinationId` -
        `subsumption` -
        `parentIdList` -
        `excludeConcept` -
      Returns:
        `Relationship` that contains the list of Relationships corresponding to a particular SNOMED CT attribute value

    - #### init

          void init​(java.lang.String dataDir,
                    java.lang.String errorLogDir,
                    java.lang.Integer searchReturnlimit,
                    java.lang.Integer suggestReturnlimit,
                    java.lang.Integer topSuggestReturnlimit)

      The method will configure properties by values provided in parameters
      Parameters:
        `dataDir` - location for database and lucene index.
        `errorLogDir` - location for logs.
        `searchReturnlimit` - maximum number record from which search should be perform example: 10000
        `suggestReturnlimit` - maximum number of record from which suggest should be perform example: 500
        `topSuggestReturnlimit` - maximum number of top suggestions that would be return in suggestion list example: 50

    - #### init

          void init()

      The method will configure the properties to default values

    - #### createSNOMEDdb

          boolean createSNOMEDdb​(java.lang.String snomedIntDirPath,
                                 boolean overridedb)

      This method creates SNOMED CT database
      Parameters:
        `snomedIntDirPath` - Directory path for SNOMED CT International Release directory path example: G:\SnomedCT_InternationalRF2_PRODUCTION_20170731T150000Z\Snapshot
        `overridedb` - will override database and index if true. It should be false after database creation process

    - #### createSNOMEDRefsetdb

          boolean createSNOMEDRefsetdb​(java.lang.String snomedIntDirPath,
                                       boolean overridedb)

      This method creates SNOMED CT Refset database
      Parameters:
        `snomedIntDirPath` - Directory path for SNOMED CT International Release directory path example: G:\SnomedCT_InternationalRF2_PRODUCTION_20170731T150000Z\Snapshot
        `overridedb` - will override database and index if true. It should be false after database creation process

    - #### createRefsetdb

          boolean createRefsetdb​(java.lang.String refsetFilePath,
                                 boolean overridedb)

      This method creates database for given refsets
      Parameters:
        `refsetFilePath` - file path for refset example: G:/SnomedCT_GPFPICPC2_PRODUCTION_20171018T120000Z/Snapshot/Refset/Content/der2_Refset_SimpleSnapshot_INT_20170731.txt
        `overridedb` - will override database and index if true. It should be false after database creation process

    - #### createExtensiondb

          boolean createExtensiondb​(java.lang.String snomedExtDirPath,
                                    boolean overridedb)

      This method creates SNOMED CT extension database
      Parameters:
        `snomedExtDirPath` - Directory path for SNOMED CT extension Release directory path example: G:\SnomedCT_InternationalRF2_PRODUCTION_20170731T150000Z\Snapshot
        `overridedb` - will override database and index if true. It should be false after database creation process

    - #### getSemanticTags

          java.util.Set<java.lang.String> getSemanticTags()

      It will return all semantic tags based on provided SNOMED CT RF2
      Returns:
        Set<`String`> Set of `String` containing semantic tags
      Throws:
        `java.text.ParseException`

    - #### getRelationShipType

          java.util.List<java.lang.String> getRelationShipType()

      It will return all relationship type name based on provided SNOMED CT RF2
      Returns:
        List<`String`> List of `String` containing relationship type name
      Throws:
        `java.text.ParseException`

    - #### getLangRefset

          java.util.List<java.util.List<java.lang.String>> getLangRefset()

      This method used for retrieving language refset values from LangRefsetEnum
      Returns:
        List of List `String` containing language refset values in it

    - #### createSimpleMapdb

          boolean createSimpleMapdb​(java.lang.String snomedIntDirPath,
                                    boolean overridedb)

      This method creates simple map database
      Parameters:
        `snomedIntDirPath` - Directory path for SNOMED CT International Release directory path example: G:\SnomedCT_InternationalRF2_PRODUCTION_20170731T150000Z\Snapshot
        `overridedb` - will override database and index if true. It should be false after database creation process

    - #### searchSimpleMap

          SimpleMapRefsetResult searchSimpleMap​(java.lang.String refsetComponentId)

      Searches the simpleMapTarget of refsetComponentId provided .
      Parameters:
        `queryParams` -
      Returns:
        SimpleMapRefsetResult mapped to the given Refset Component ID.
      Throws:
        `java.io.IOException`
        `java.text.ParseException`
        `org.apache.lucene.queryparser.classic.ParseException`

    - #### getIsARelationshipsWithCount

          java.util.Set<RelationshipTC> getIsARelationshipsWithCount​(java.lang.String conceptId)

      Searches for the immediate children descriptions.
      Parameters:
        `conceptId` - Concept Id whose immediate children to search
      Returns:
        Set of `RelationshipTC` matching the given Concept ID.
      Throws:
        `java.io.IOException` - if any error occurs while processing.
        `java.text.ParseException`

    - #### getAllRefset

          java.util.Set<Refset> getAllRefset()

      Returns a `Set` of `Refset`s for given concept identifier. *
      Returns:
        Set of `Refset`s.

    - #### getAllExtension

          java.util.Set<Refset> getAllExtension()

      Returns a `Set` of all Extensions `Refset`s. *
      Returns:
        Set of `Refset`s.

    - #### getRefsetMember

          java.util.Set<Concept> getRefsetMember​(java.lang.String string)

      Returns a `Set` of all Refset Members `Concept`s for given concept refset identifier.
      Parameters:
        `id` - SNOMED CT concept identifier.
      Returns:
        Set of `Concept`s.

    - #### getExtensionMember

          java.util.Set<Concept> getExtensionMember​(java.lang.String string,
                                                    int pageNumber)

      Returns a `Set` of all Extension Members `Concept`s for given concept extension identifier.
      Parameters:
        `id` - SNOMED CT concept identifier.
      Returns:
        Set of `Concept`s.

    - #### getAllAncestorConcepts

          java.util.Set<Concept> getAllAncestorConcepts​(java.lang.String id)

      Returns a `Set` of all Ancestors `Concept`s for given concept identifier. *
      Returns:
        Set of `Concept`s.

    - #### executeEcl

          java.util.Set<Concept> executeEcl​(java.lang.String ecl,
                                            java.lang.String term)

      Parses ECL query and fetches result.
      Parameters:
        `ecl` - SNOMED CT Expression Constraint Language (ECL) query.
        `term` - Filter result based on given `String`.
      Returns:
        Set of `Concept`s.