This log documents significant changes for each release.
- Add get description and relationship to code API
- Add polymorphic get component via graph API
- Add additional reference set item resolution via graph API
- Address miscellaneous code linting (removal unused imports and requires, avoid shadowing vars, improved comments / docstrings)
- Tweak indexing so that reference set items are indexed in a separate pass as
an interim step during import, for refset reification, and then re-indexed in
the formal 'index' step.
- Update documentation to recommend compaction should be run after indexing, now
that the core datastore is updated during indexing.
- Fix #42 in which relationship indices could be incorrect if
more than one relationship in a distribution relates to the same source-target-type tuple.
- Add 'intersect-ecl' to core library to intersect a set of concept identifiers with an ECL expression.
- Add recognised installed locales into status report
- Harmonise parameter style for HTTP REST server endpoints
- Upgrade dependencies (including netty-buffer,logback-classic and tools.cli)
- Add automated release to GitHub for uberjar, to supplement automation to clojars for library jar
- Add support to automatically remove duplicates during search, when term and conceptId match.
- Add ability to explicitly include or exclude inactive concepts and descriptions from HTTP API
- Tweak logging during import
- Refine handling of distribution metadata
- Remove unused code
- Fix graph resolution of a concept's membership of reference sets (via properties /refsetIds and /refsetItems).
- Upgrade dependencies (Lucene 9.3, netty buffers 4.1.79)
- Add ability to download a specific release by date, for UK users.
- Improve logging of metadata when importing distribution(s)
- For uberjar, fully ahead-of-time (AOT) compile, elide some metadata and use direct-linking
- Reduce logging during build process
- More deterministic build for uberjars
- Reduce build product sizes by reducing dependencies
- Simplify usage when used as a library by java clients, with an externally defined java API.
- Avoid ahead-of-time compilation when used as a library
- Improve logging for distribution import
- Upgrade dependencies (Lucene v9.2, trud v1.0.80,
- Improve download provider parameters so can optionally use explicit assignment e.g. api-key=../trud/api-key.txt
- Switch to new lmdb storage backend, version 'lmdb/15'
- Speed improvements and optional compaction step to reduce database size
- Bump file-based database to 0.11
- Improve refset extended attribute support
- Add new search index 'members.db' for search of reference set members
- Partial ECL v2.0 support including +HISTORY and member filters
- Add support for lucene v8 usage when required (e.g. for java 8 compatibility)
- New two-phase import permitting reification of refset items on import.
- Return refset items with extended attributes by default in graph and HTTP APIs.
- Improve speed and error handling in import
- Revise approach to extended fields in reference set items
- Bump to version 0.7 of the file-based database given changes in schema.
This means this version will refuse to read databases created in prior versions.
- Add runtime reification of refset items for those not reified during import.
- Add specifications for all supported SNOMED CT entities
- Add generative tests for parsing and unparsing SNOMED data files
- Add synth_test.clj to export and then re-import generated synthetic data
- Bump to Clojure 1.11.0
- Speed up import and indexing
- Upgrade to Lucene 9.1
- Add and improve graph API resolvers
- Improve synthetic and live test suite
- Fix extended reference set import pattern matching
- Add synthetic SNOMED data generation
- Much more complete automated testing using synthetic data
- Add greater instrumentation when in development or testing
- Add import of OWL reference set types
- Fix accept-language parsing and fallback in http server
- Bump to Lucene 9.0 - hermes now requires JDK 11 or newer.
- Switch to using clojure.data.json for JSON export.
- Bump other minor outdated dependencies (logback, trud).
- Support for mapping concepts into a defined subset of concepts.
- Add get-synonyms convenience function
- Expose get-all-children at top-level API
- Bump to Apache Lucene 8.11.0 - no API or index changes, but simply bug fixes
- Add --allowed-origins option to server to enable configuration of CORS, if required
- Add build via tools.build
- Add deployment to clojars.
- More complete UK language refset priority list
- Fail fast if there are any issues caught during processing (e.g. broken data such as invalid dates)
- Optimise import, parsing and storage flow. Better handling of errors during import.
- Fix import of simple reference sets, including when 'Simple' not in summary field of filename
- Tidy status output when importing data if no metadata found.
- Add support for simple reference set extensions with flexible fields based on 's' 'c' or 'i' in filename for local customisation
- Status command now prints installed reference sets, and optionally counts of SNOMED data
- Add -v --verbose flag to increase verbosity for commands, although they're pretty verbose already
- Better error reporting during import
- Add explicit choice of locale at time of index creation for preferred concept cache. Hermes supports multiple languages but for convenience caches the preferred synonym for a given locale (or set of reference sets) in the search index.
- Fallback to en-US if chosen locale, or system default locale, does not have a known set of 'best' language reference sets
- Add fuzzy and fallback-fuzzy search to graph API.
- Add get-all-parents, and parent-relationships to core API
- Permit configuration of with-historical to allow choice of association refset types
- Add ECL membership check
- Add reverse cross-map prefix search (useful for ICD-10 and Read)
- Optimisations
- Fix handling of '<<' in expressions.
- Improve validation of HTTP parameters
- Backend paths-to-root and some-indexed for dimensionality reduction work
- Make JSON default for HTTP server
- Add refsets HTTP endpoint
- Add reverse index specifically for association reference set items
- Add expand API endpoint to HTTP server, including historical if requested
- Bind address specified at command line now actually used.
- Add support for new SNOMED filename naming system used by UK since May 21
- Force UTF-8 encoding to ensure works on platforms with different default character encoding.
- New graph API using declarative approach permitting clients to ask for exactly what they need
- Expose fuzzy search in REST API.
- Restructuring - separate library code from cli commands / server
- Add rudimentary GitHub Actions tests, but not yet using live db
- Add historical associations reference set support
- Update database version to v0.6 given new indexes.
- Better query re-writing for when single must-not clauses used alone.
- Permit prefix search to run with one character or more, rather than minimum of three, for better autocompletion functionality.
- Upgrade dependencies
- Temporarily bind to 0.0.0.0 pending more complete server configuration options
- Support for unlimited results when used as a library, and when processing expressions
- Harmonise web service key names to use camel case and not mix in kebab-case.
- Expose library API call to get installed reference sets
- Expose support for 'Accept-Language' using BCP 47 language tags in REST server, with additional support for specific language reference set extension of form en-gb-x-XXXX where XXXX is preferred language refset.
- Release information included in log files
- Major change to backend store with new custom serialization resulting in enormous speed-up and size benefits.
- UK dictionary of medicines and devices (dm+d) custom code extracted to another repository
- Add support for transitive synonyms
- Add special custom extension for UK dictionary of medicines and devices (dm+d) to bring in non-SNOMED BSA data
- SNOMED ECL (expression constraint language) support
- SNOMED CG (compositional grammar) support
- Major improvements to server and backend. Unified terminology service abstracting underlying implementations.
- Add search and autocompletion using Apache Lucene
- Basic SNOMED service (store/retrieval/inference)