Recent Releases of com.eldrix/hermes
com.eldrix/hermes - v1.4.1474
- Improve automated downloads for distributions using MLDS service - 'Member Licensing and Distribution Service'
- Add GitHub Actions to test MLDS downloads for International, and Argentinian distributions and exclude some UK specific tests (localisation)
- Clojure
Published by wardle 7 months ago
com.eldrix/hermes - v1.4.1464
- Add support for 'null' values in reference set fields (custom fields used by some distributions)
- Clojure
Published by wardle 7 months ago
com.eldrix/hermes - v1.4.1463
- More lenient import of null/empty string reference set fields
- Improved logging to help with automated pipelines and distribution files
- Improve search for empty search strings
- Clojure
Published by wardle 7 months ago
com.eldrix/hermes - v1.4.1454
- Fix #70 with handling unicode characters in ECL parsing
- Fix #72 by forcing ordered choice to reduce ambiguity in parsing member filters
- Fix #73 by updating ECL parser with newer 2.2 updates
- Fix #75 with handling of unicode characters and normalization (folding) for search within ECL description term filter
- Upgrade dependencies including lmdbjava 0.9.1
- Clojure
Published by wardle about 1 year ago
com.eldrix/hermes - v1.4.1433
- Fix #69 by improving import of custom reference sets in which there are missing custom field values
- Improve build process for uberjar to ensure backwards compatibility with JDK>=11
- Update to latest trud library as the NHS TRUD service now supports SHA256 for integrity checks on downloaded files
- Add
intersect-ecl-fnto improve performance in data pipelines when an ECL expression may be re-used many times
- Clojure
Published by wardle about 1 year ago
com.eldrix/hermes - v1.4.1425
Updated to be compatible with JDK11 as v1.4.1424 was compiled with JDK21 and therefore required >=JDK21. See #69
- Clojure
Published by wardle over 1 year ago
com.eldrix/hermes - v1.4.1424
- Improvements to ranked-search
- Add support for Lucene 10 for testing and evaluation via a runtime switch (usable when run from source code, not from the released uberjar - a Lucene 10/Java>=21 version can be built or released on request).
- Clojure
Published by wardle over 1 year ago
com.eldrix/hermes - v1.4.1420
- Add ranked search
- Fix #68 and permit both additional custom query AND a constraint
- Upgrade dependencies
- Clojure
Published by wardle over 1 year ago
com.eldrix/hermes - v1.4.1400
- Add support for ECL v2.2, including the operators top and bottom
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1388...v1.4.1400
- Clojure
Published by wardle almost 2 years ago
com.eldrix/hermes - v1.4.1388
[1.4.1388] - 2024-05-19
- Avoid deprecated methods in Lucene 9.10 series (e.g. use CollectorManager and not Collector) - preparing for Lucene 10 release
- Upgrade dependencies
- Add more comprehensive tests for arbitrarily large descriptions (see #66) to prove Hermes will have no issues if maximum description length increases
What's Changed
- Use CollectorManager instead of now deprecated Collector API in search by @wardle in https://github.com/wardle/hermes/pull/65
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1368...v1.4.1388
- Clojure
Published by wardle almost 2 years ago
com.eldrix/hermes - v1.4.1368
- Upgrade dependencies - Clojure 1.11.2 and miscellaneous libraries
- Improve GitHub actions to run tests after every release automatically
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1362...v1.4.1368
- Clojure
Published by wardle almost 2 years ago
com.eldrix/hermes - v1.4.1351
- Upgrade to lmdbjava 0.9.0 - includes embedded lmdb binaries for multiple architectures and operating systems
- Upgrade to Apache Lucene 9.9.1
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1346...v1.4.1351
- Clojure
Published by wardle almost 2 years ago
com.eldrix/hermes - v1.4.1362
- Fix #64 such that integrity always maintained during updates-in-place and re-indexing
- Upgrade to Apache Lucene 9.10.0
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1351...v1.4.1362
- Clojure
Published by wardle almost 2 years ago
com.eldrix/hermes - v1.4.1346
- Fix #61 - attribute values defined by a subexpression that returns no results should not result in invalid expression error
- Bump to pedestal v0.6.2 - fixes CVE-2023-36478
- Fix resolution of relationship modifier in the graph API
- Improve documentation and functional specifications
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1320...v1.4.1346
- Clojure
Published by wardle about 2 years ago
com.eldrix/hermes - v1.4.1320
- Eclipse Public License v2.0
- Include license in build products
- Add support for automatically installing the new UK 'monolith' edition
Full Changelog: https://github.com/wardle/hermes/compare/v.1.4.1312...v1.4.1320
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.4.1312
- Upgrade to Apache Lucene 9.8
- Automatically generate CITATION.cff file for GitHub during build
- Generated artifacts such as library jar now include improved metadata (pom.xml) *
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1296...v1.4.1312
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.4.1296
- #60 When not explicitly set, derive database default fallback locale on the basis of installed reference sets rather than the system default locale
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1292...v1.4.1296
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.4.1292
- #59 Improve error reporting if installed reference sets do not support the requested, or default fallback locale
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1278...v1.4.1292
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.4.1278
- #58 In case of an aborted
compact, delete intermediary files prior to another attempt - #58 Close store after copying datafiles and before moving to new location during
compact.
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1275...v1.4.1278
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.4.1275
- #58 In case of an aborted
compact, delete intermediary files prior to another attempt.
Full Changelog: https://github.com/wardle/hermes/compare/v1.4.1265...v1.4.1275
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.4.1265
- Always use normalized search and normalized index
This version breaks compatibility with previously indexed databases. Either re-index or build a new database completely from latest release(s).
Full Changelog: https://github.com/wardle/hermes/compare/v1.3.1262...v1.4.1265
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.3.1262
- Use 'Accept-Language' header in HTTP server to select preferred terms
- Better logging during indexing
- Fail fast rather than trying to continue when there is a critical error during import (e.g. running out of disk space)
- Add term folding / normalization to improve search in content with diacritics (Fixes #55)
This version updates the index to add a search field for normalized (folded) text, particularly helpful in international deployments in which release centres do not include synonyms with and without non-semantically meaningful diacritics. This does not break compatibility with older indexes, but search using the folded index will obviously not work with indexes created by prior versions; as such, this release will show a warning to say that index is missing. This can be safely ignored if you do not need search against a folded index.
What's Changed
- Term folding by @wardle in https://github.com/wardle/hermes/pull/56
Full Changelog: https://github.com/wardle/hermes/compare/v1.3.1232...v1.3.1262
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.3.1232
- Change to search index structure to better handle runtime, dynamic results
based on requested locale. This version is therefore incompatible with databases created by previous versions. Hermes always permitted getting a preferred term given localisation preferences, but the search index, for convenience, cached a preferred term at the time of index creation. Instead, v1.3 series caches all preferred terms so that search can return locale-specific results without requiring further round-trips. - Remove --locale as an option during index creation given now unnecessary
- Add options
:accept-language:language-refset-idsto core search API
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1244...v1.3.1232
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.2.1224
- Add language preferences to
synonymsin core (Clojure), graph (Pathom) and Java APIs - For graph API, expect service to be under key
:com.eldrix/hermesin environment
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1218...v1.2.1224
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.2.1214
- Java source files are no longer included in the main repository - resume using hermes-api as an internal dependency
- Upgraded dependencies, include Lucene 9.7.0 and Pedestal 0.6.0, bringing performance benefits, particularly on modern Java.
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1208...v1.2.1214
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.2.1208
- Explicitly define Java 11 as the compilation target for Java source code files, as otherwise whatever is installed on build server is used.
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1204...v1.2.1208
- Clojure
Published by wardle over 2 years ago
com.eldrix/hermes - v1.2.1204
- Add
expand-ecl*to core API for human-readable results optimising fetch of preferred synonym for each result (and addexpandEclPreferredfor Java API clients) - Merge Java API wrapper ('hermes-api') into the main source repository
- Add build steps to compile Java source code as part of 'prep-lib' and build of jar/uberjar artefacts thus deprecating code in https://github.com/wardle/hermes-api. That repository will now be archived.
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1190...v1.2.1204
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1190
- Add
search-concept-idsto facilitate pre-populating search results in pick lists - When streaming concepts from store, abort if channel is closed rather than continuing to send to a closed channel
- Better reporting of errors when installing directly from MLDS
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1174...v1.2.1190
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1172
- Make
mrcm-domainspublic in library API - Add
/v1/snomed/mrcm-domainsto HTTP API - More uniform error reporting when parsing SNOMED ECL
- More comprehensive unit testing for SNOMED ECL
- Update instructions for use under different architectures and operating systems
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1151...v1.2.1172
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1150
- HTTP 404 for concept/properties if concept not found, rather than HTTP 200 response with empty data
- Upgrade to latest version of trud (fixing automatic downloads stalling when used without progress printing)
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1142...v1.2.1150
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1142
- Make
propertiespublic in top-level library API - Add
match-localeto top-level library API for when consumers need to parse the same language preferences for a number of separate calls - Add
/v1/snomed/concepts/:concept-id/propertiesendpoint to HTTP API with configuration options for pretty printing for human users, andexpandfor machine users - Improve handling of invalid parameters in HTTP API
- Improve documentation, including links to live examples
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1115...v1.2.1142
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1115
- Return HTTP 200 and empty collection instead of HTTP 404 when search gives no results
- Add trace logging for all HTTP requests although default configuration logs only at the INFO level. This means this can be configured at deployment.
- Add concrete values to 'status' and 'statistics' reports
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1108...v1.2.1115
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1108
- Avoid HTTP 500 errors for bad client input in HTTP server.
- More consistent responses for HTTP server (result vs. empty result vs. not found).
- Automated testing of HTTP server responses
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1102...v1.2.1108
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1102
- Show progress reporting when downloading from the UK's 'TRUD'
- Avoid unnecessary network calls for distribution metadata
- Fix import of concrete values when updating in place
- Add
valid-ecl?andisValidEcl()to top-level Clojure and Java APIs respectively.
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1088...v1.2.1102
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1088
- Add support for the MLDS (Member Licensing and Distribution Service) for automated downloads and install of a number of distributions across the World.
This uses a similar process to that already used for the UK release centre (TRUD), but I do not have permission to download distributions outside of the UK in order to fully test the whole process, either in automated tests, or manually. If there are issues, then please raise an issue and it is likely to be quite easy to fix.
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1080...v1.2.1088
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1080
- Add support for the MRCM (Machine Readable Concept Model)
- Use MRCM to return concept properties according to cardinality rules
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1060...v1.2.1080
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1060
- Add support for concrete values for store, indexing and search
- Improve server error handling and reporting
- Improve cardinality queries in ECL parsing/expansion
- Improve wildcard attribute search
This version does make a change to the backend file-based database. When this version is used against an older version of the database, a warning will be logged as that database will not support provided concrete value results. Any new databases created by this version of hermes will include concrete value support, but older versions of Hermes will ignore those indices. As such, this does not need to be regarded as a breaking change.
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1040...v1.2.1060
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1040
- Improvements to cardinality constraints during ECL processing
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1032...v1.2.1040
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1032
- Optimise handling wildcard value for attribute in an ECL refinement; the prior implementation had no special handling for this, and so expanded the value to all concepts, impacting performance.
- Fix handling of cardinality in expressions with a minimum of '0' (e.g. [0..1] or [0..0]).
Full Changelog: https://github.com/wardle/hermes/compare/v1.2.1026...v1.2.1032
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.2.1026
- Backwards-compatible changes to core Clojure API with shortened function names (removal of redundant
get-prefix) - Miscellaneous optimisations/speed-ups, including in building queries for ECL expansion
- Internal (private API) changes
- Improved, and more complete tests
- More deterministic derivation of 'replaced by' relationship in the graph API
- Remove unused dependencies from uberjar, speeding up startup
Full Changelog: https://github.com/wardle/hermes/compare/v1.1.1000...v1.2.1026
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.1.1000
- Update to version 1.1 series given drop in support for Lucene 8.x series and therefore Java 1.8
- Upgrade dependencies (e.g. netty-buffer 4.1.90)
- Add ability to stream search results asynchronously
- Miscellaneous performance improvements
- Miscellaneous code style improvements
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.960...v1.1.1000
- Clojure
Published by wardle almost 3 years ago
com.eldrix/hermes - v1.0.960
- Drop support for Lucene 8.x series and therefore Java 1.8 (latter out of support from 31 March 2022, and Lucene 9.x requires at least Java 11).
- Improved Java API with thin wrapper API for use by Java and other JVM languages when used as a library
- Add ability to stream all concepts to top level API
- Use new Lucene 9.5 'storedFields' in favour of deprecated document field access
- Add new benchmark test suite
- Optimisations
- Upgrade internal dependencies (Lucene 9.5, lmdbjava 0.8.3)
- Clojure
Published by wardle about 3 years ago
com.eldrix/hermes - v1.0.938
- Add support to give multiple commands in one invocation via command-line interface
- Improve speed of import through tweaking memory map synchronisation
- Improve speed of indexing through more efficient calculation of transitive closure tables for relationships
- Clojure
Published by wardle about 3 years ago
com.eldrix/hermes - v1.0.921
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.914...v1.0.921
- Clojure
Published by wardle about 3 years ago
com.eldrix/hermes - v1.0.910
This release has mainly internal changes compared to prior release. The only user-facing change is exposing status* as part of core API.
- Clojure
Published by wardle about 3 years ago
com.eldrix/hermes - v1.0.895
- Significant update to command-line operation, while maintaining backwards-compatibility
- Status reports now record count data in a nested map with a choice of formatting in the CLI.
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.875...v1.0.895
- Clojure
Published by wardle about 3 years ago
com.eldrix/hermes - v1.0.822
- Add native support for Apple Silicon, rather than needing to use an x86-64 JDK. Native aarm64 support currently dependent on manually building lmdb binary - see README.
- Log detailed system information on server startup, including architecture.
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.815...v1.0.822
- Clojure
Published by wardle about 3 years ago
com.eldrix/hermes - v1.0.815
- Upgrade to netty-buffer 4.1.86
- Improve namespace stratification by factoring out common Lucene functions shared by the two indices (descriptions and refset members).
- Move ECL and CG implementations into com.eldrix.hermes.impl as they contain no public-facing API.
- Explicitly use an opaque handle for core API to represent encapsulated runtime state. The prior public but undocumented Service is now deprecated in favour of a private Svc with hermes/open returning Closeable.
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.804...v1.0.815
- Clojure
Published by wardle about 3 years ago
com.eldrix/hermes - v1.0.804
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.792...v1.0.804
- Clojure
Published by wardle over 3 years ago
com.eldrix/hermes - v1.0.792
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.776...v1.0.792
- Clojure
Published by wardle over 3 years ago
com.eldrix/hermes - v1.0.776
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.772...v1.0.776
- Clojure
Published by wardle over 3 years ago
com.eldrix/hermes - v1.0.772
Full Changelog: https://github.com/wardle/hermes/compare/v1.0.770...v1.0.772
- Clojure
Published by wardle over 3 years ago
com.eldrix/hermes - v1.0.712
Given Hermes has been used in production in a number of healthcare facilities, without issues, it is now time to bump to a v1.0 release series. Its stability is principally the result of the use of battle-tested libraries for the majority of its work, such as LMDB and Apache Lucene, as well as its read-only operation making its use, and operation, simpler. Once deployed, the system runs as-is, and we upgrade by simply starting a brand new service and switching at the gateway level, or equivalent. Instead of changing-in-place, I can keep multiple versions running and available and simply switch, easing any worries about upgrades to either software or data versions. When a new SNOMED version is released, I can easily import, test and run on a local machine before deciding to spin up in production. I'd encourage you to think of your terminology resources as cattle, not pets.
- Clojure
Published by wardle over 3 years ago
com.eldrix/hermes - v0.12.640
A new release with a new lmdb based backend store.
- Clojure
Published by wardle almost 4 years ago
com.eldrix/hermes - v0.11.604
The 0.11 series has a new members index, used to support a new ECL2.0 implementation.
This release continues to use a mapdb based key value backend store, but the uberjar now includes the lmdb libraries in preparation for 0.12.
- Clojure
Published by wardle almost 4 years ago
com.eldrix/hermes - v0.10.516
This is a new release with a revised database format to handle reference set items and any extended properties.
For safety, this means you need to build a new database using this version. In fact, Hermes will refuse to load databases created with older versions. In general use, this shouldn't pose any difficulties, as Hermes is best used in pipelines and instances treated as cattle, not pets.
- Clojure
Published by wardle almost 4 years ago
com.eldrix/hermes - v0.8.353
This is hermes-server - an uber jar containing all dependencies. Simply run using:
shell
java -jar hermes-server-0.8.353.jar
It can:
- download the latest SNOMED distribution.
- build a SNOMED file-based database
- run a HTTP server - ideal as a microservice
- in conjunction with hades, support running a HL7 FHIR terminology server.
- Clojure
Published by wardle about 4 years ago
com.eldrix/hermes - v0.8.4--alpha - for testing
This adds a simple flag --allowed-origins to permit configuration of CORS.
- Clojure
Published by wardle over 4 years ago
com.eldrix/hermes - v0.7.0
This is the command-line tool. It can import multiple distributions, build a search index and run a terminology server.
The database file created by this tool can be used by https://github.com/wardle/hades to run a FHIR-compatible terminology server for SNOMED CT, if you wish.
To use as a library, you should build a jar file, or use git coordinates in deps.edn file. If there is interest I will post to clojars or maven central.
- Clojure
Published by wardle over 4 years ago