Features
Information on application features, license, and plans for future work.
License
This software is currently offered with restricted West Coast Informatics license that requires an agreement in place to use the software locally. At some point in the future, we plan to begin releasing a version under the standard Apache 2 license [1].
Features
Provides your organization with a “single source of truth” for all terminology questions
Lightweight and easy to build, configure, and deploy.
Web-based and mobile-friendly user interface (e.g. responsive design)
Data model built around the NLM Unified Medical Language System (UMLS) data model
Natively handles RRF, RF2, ClaML, OwL, OMOP and some other standard terminology formats
Natively handles a simple code list with parent/child relationships file format
Fully authenticated REST APIs with configurable authentication approaches (including no auth).
Examples also provided for commonly used/needed calls (see https://github.com/WestCoastInformatics/wci-terminology-service-in-5-minutes)
Supports multiple terminologies and versions.
Capable of handling terminologies of varying levels of complexity (e.g. MeSH, SNOMEDCT_US, ICD10CM, etc.)
Simple code lists
Taxonomies
Thesauri
Ontologies with DL features (supports EL++) and classification (via OwlAPI)
Supports transitive closure computation and maintenance.
Ancestor/descendant (and parent/child) computations are simple lookups and do not require computationally expensive graph walking.
Also supports individual tree-position representation of hierarchy (for terminologies that assign codes to individual tree positions).
Supports SNOMED-ECL-style querying language (across all hierarchical terminologies)
searching within subsets
searching based on mapping
searching ancestor/descendants
Supports both lexical and semantic querying
Handles complex field-based Lucene queries
Handles queries like "find all concepts with associated_morphology relationships to Kidney or any of its descendants" via a syntax like the SNOMED expression constraint language (ECL)
Handles generalized Lucene+SQL queries against the underlying persistence model
Supports paging, filtering, and sorting at the API level.
For example, a “find concepts” call can be combined with sorting and filtering and can also page results one page at a time with flexible page sizes.
Includes administrative, technical, and user documentation, and a REST API documented online with sample parameters.
Supports description logic constructs within the metadata model to allow interoperation with Owl and integration with classifiers.
Fairly comprehensive unit, functional, and integration testing across all layers of tech stack.
Flexible back-end data store.
Default support for MySQL and uses Hibernate to facilitate connections to a variety of other database environments, including document-based and graph databases.
Basic editing features (add concept, add synonym, change preferred name, edit subset membership, edit mappings)
Import/Export/Reindex admin features to extract changes made in an environment.
Bulk “lookup” feature to help map “lists of terms”
Extensibility
Supports customizable "loaders" to support additional terminology formats (as needed).
Supports customizable “synonym generation” algorithms to support more fruitful searching
Supports customizable preferred name computation to support different algorithms for different terminologies.
Can be used to allow different users to work with different preferred name algorithms for the same terminologies as well (useful for when editing a particular terminology within a Metathesaurus that is not highly ranked).
Supports a customizable authentication/authorization mechanism
Default implementations for UTS (http://uts.nlm.nih.gov), and "basic user/password” authentication.
Supports a customizable “graph resolver” mechanism to define the depth into the graph that various read and write calls should support.
Supports custom labelling of elements within the user interface (so when showing “descriptions”, you can use that label instead of “atoms”).
Supports a customizable identifier management solution for concept editing
Allows various approaches to ID maintenance, including application managed identifiers, content hash-based UUID assignment, and SNOMED CT® identifier assignment based on sequences.
Ability to assign UUID identifiers during development to core components followed by SNOMED CT® identifier assignment at release time.
Upcoming Features
Ability to search across all terminologies.
Better “history” mechanism within the UI to allow for use of back/forward buttons for navigation across searches
Enhanced “saving” of user preferences across sessions.
Customizable validation framework for content changes.
Reporting/messaging capabilities for environments that make use of basic editing features.
Additional “bulk” searching features to allow for multiple lookups, better parameterization of searching
Word-embedding based searching capabilities
Integration of NLP/entity extraction based on terminologies loaded.