Change Log
* 5.8.2
Update base docker image
* 5.8.1
Update docker-compose examples to cater for Postgres image changes
Add support for the 'definition' property in $lookup
Ensure required properties 'name' and 'display' are returned by $lookup
Allow an RF2 SNAPSHOT .zip to be POSTed to `[base]/CodeSystem/$x-upload-external` to create a SNOMED CT index.
Fix preformance bug with internal search caching
* 5.8.0
Add support for alternate negation syntax and childOrSelf (<<!) etc in ECL
Less noisy (in logs) healthcheck mechanism using Spring Boot health endpoint on private port
Update security model to use `scope` values in JWT token in preference to `authorities`
This also includes changes to the values - see documentation for details.
SNOMED CT Long normal forms that get really long will now be shortened somewhat (but still conformantly)
* 5.7.3
Work-arounds for changes in HAPI 4.1.0
* 5.7.2
Fix error where preload would attempt to import incompatible binary index versions
* 5.7.1
Fix bug regarding handling of preload and syndicated indexes
* 5.7.0
Add support for validating using "remote" profiles
Added support for "publisher" and "status" search parameters on ValueSet, CodeSystem, ConceptMap and StructureDefinition resources
Fix normalForm syntax to use RF2 syntax for numbers rather than scientific notation, correct grouping for concrete domain info, and nested relationships
Fix bug in MML automap strategy where low-ranked matches were returned
* 5.6.2
Adjusted ranking scores where synonyms are best matches
Fixed bug in recorded index version of SNOMED CT binary indexes
Badly formatted count and offset parameters for $expand will now result in a 400 instead of a 500
Fixed bug where some CodeSystem $validate-code requests would produce a 500 instead of a 400
Fixed bug in syndication feed; ids must be absolute URIs
* 5.6.1
Fixed bug in Ontoserver initialization that would cause problematic repair of CodeSystem indexes on startup
Fixed bug where unrecognized syndication entry categories would break the ability to fetch upstream syndicated content
Designations added to ValueSets should not be available using $expand with includeDesignations=true
Bug fixes related to fetching Bundle resources from syndication
* 5.6.0
Support for preloading content into Ontoserver on startup using a Bundle resource or ATOM syndication feed/s.
Support for indexing SNOMED CT releases based on the July 2019 international release
The /synd/fetchSyndicatedContentEntry endpoint now supports 'resourceType', 'url' and 'version' parameters, as an alternative to fetching using the ATOM entry ID
Fix bug when generating syndication feed of FHIR resources; exclude SCT and LOINC
* 5.5.2
Documentation improvements, especially for Authorization configuration to support RBAC
Fix bug where HTTP 500 rather than 404 would be returned when asking to index a non-existant code system
* 5.5.1
Fix syndication bug resulting in excessive redundant downloading of resources
* 5.5.0
Add support for [base]/$convert
Produce much more compact OperationOutcome Issue lists from $validate
Fix bug with paged _search results and ETags
Fix bugs with support for authorization using RS256 keys
* 5.4.0
Support SNOMED Edition URIs in version parameters (for $lookup etc)
Include Provenance resource for SNOMED CT CodeSystems
Fix bug where ECL cardinality constraints of [0..*] were incorrectly applied
Fix bug where CodeSystem.system was usable as an implicit ValueSet.url under certain circumstances
Support default filters parent EQUALS and child EQUALS for SNOMED CT
X-Correlation-Id and X-Request-Id support
Fix bug with automap and stemmed words that are not also prefixes
Fix bug with ValueSet filter on the 'inactive' property for FHIR CodeSystems
Support version:text in _search for terminology resources
Support distribution format changes for Loinc 2.65
Fix syndication bug whereby StructureDefinition syndication entries would have the wrong category
Improve robustness of syndication client when encountering unrecognized categories
* 5.3.1
Exception stack traces are now logged on a single line as a JSON array
Add support for kind as a search parameter on StructureDefinition
Add support for the _tag:not modifier
Fix bug with $validate-code and multiple versions of the same CodeSystem
Add support for .well-known and .well-known/logo.png in particular
* 5.3.0
Fix index error to support ValueSets with cross-version CodeSystems
This includes an index minor-version update and will trigger re-indexing of all (LOINC, SNOMED, and FHIR) CodeSystems
Fix bug in ECL that allowed never-grouped attributes (eg laterality) to match inside groups
Fix bug in language detection for designations without language
* 5.2.3
Fix bug where displayLanguage / Accept-Language support was ignoring the default display text
* 5.2.2
Enable support for HTTP(S)_PROXY_HOST, HTTP(S)_PROXY_PORT and HTTP_NON_PROXY_HOSTS
Support * as a property name in $lookup to represent all known properties
Add support for language ranges (eg en-*) with displayLanguage parameter
Fixed bug with overly permissive parsing of RF2 syndication feed entries
Fixed bug related to $translate using implicit ConceptMaps in reverse
Fixed bug where ECL expressions with certain unicode characters were incorrectly escaped
Fixed bug that would block ConceptMap create/update when source or target ValueSets were ambiguous
* 5.2.1
Fixed bug where caching of ECL constraints with multiple relationship clauses could return incorrect results
* 5.2.0
Upgraded LOINC importer and indexer to support more recent LOINC releases (2.59-2.64). Note: Because of this, the Binary Index Format for LOINC is now 1.6.0.
The LOINC property/filter DOCUMENT_SECTION is no longer supported, as it has been removed from the LOINC distribution
Greatly expanded the set of available LOINC Answer List and Part codes
LOINC axis properties and filters (PROPERTY, COMPONENT, SYSTEM, TIME_ASPCT, METHOD_TYP and SCALE_TYP) now correctly use codes instead of display strings
LOINC implicit ValueSet URIs now allow versions (e.g. http://loinc.org/2.64/vs), reflecting a likely upcoming normative change. Unversioned LOINC URIs are still valid, too
The following additional code-typed LOINC CodeSystem properties are now available on LOINC Terms: CHALLENGE, COUNT, TIME MODIFIER, SUPER SYSTEM, DIVISORS, ADJUSTMENT
Fixed bug in $expand of ValueSets using LOINC and 'exists' filters
Support context parameter for ValueSet/$expand and ValueSet/$validate-code
Support displayLanguage parameter for $expand
$validate-code now returns display text when code is valid
Support CodeSystem/$validate-code and CodeSystem/[id]/$validate-code, pre-adopted from R4
Support default = and in filters for all defined CodeSystem properties
Type-level $translate with no url parameter no longer uses available ConceptMap instances rather than a term-based string matching algorithm
$translate now includes match.source in most cases
$translate now includes match.concept.display when concept's CodeSystem is available
Add support for latest-version semantics when only a single Edition of SNOMED CT is available
Return ETag on DELETE
Support returning alternate display text in top-level ValueSet.compose.include
Support instance-level and type-level _history operations with both _since and _at parameters
Support type-level $validate for all Resource types
Switch to using validator reference implementation
Significantly reduce heap usage when obtaining syndicated content
Minimum required heap now documented as only 2GB
Fixed bug triggered by empty property parameter to $lookup operations on SNOMED-CT
* 5.1.1
Very slightly reduce scores for inactive concepts
Allow (encoded) newlines in ECL Implicit ValueSet URIs
Include request protocol in logs
SNOMED Concept Inactivation Indicators are now available as an implicit concept map
Fix rare bug when automapping unversioned codes and other complex conditions satisfied
Fix bug where CodeSystems with corrupt/missing index data could sometimes appear in search results
Fix bug in addBundle where reported resource Identities were of the supplied Resources rather than the updated Resources
Support direct POST of Bundle to addBundle in addition to POST of multipart/form-data
Add support for bundleInterpretation=collection in /synd/fetchSyndicatedContentEntry
Relax constraints around acceptable display text when validating SNOMED codes; now also allows any acceptable synonym
Report http://hl7.org/fhir/StructureDefinition/valueset-unclosed for expansion of certain SNOMED ValueSets
Support additional FHIR code properties in LOINC: EXAMPLE_UCUM_UNITS and STATUS
Fix race condition loading default and built-in profiles on startup
* 5.1.0
Pre-adopt the new SNOMED CT Implicit ValueSet URI pattern for the Expression Constraint Language, as defined for FHIR R4
Support consumption of FHIR_Bundle artifact type in the syndication feed.
Ontoserver now SCRUD operations on Bundle resources.
Ontoserver now SCRUD operations on StructureDefinition resources. Stored StructureDefinitions can be used for validation of terminology resources
$validate methods now support the profile parameter
* 5.0.10
Stricter parsing checks for JSON and XML Resources
Support CTV3 implicit map
Improve handling of inactive rows in the MDRS when building SNOMED indexes
Fixed problem where, in rare cases, inactive concepts would have missing display text
Certain resource validation errors that were not previously being reported are now being reported
Fixed bug where deleted ValueSets could cause $expand to fail in rare cases
* 5.0.9
Added support for Edition-specific language-reference-sets in config
Added explicit handling of OutOfMemory exceptions to allow Ontoserver to shutdown
Added optimisations for ECL-based ValueSets with expensive match criteria
Fixed bug handling malformed ValueSets with incompletely specified filters
Fixed recall performance in "automap" algorithms associated with automated spelling correction
Fixed bug in scoring algorithm that was failing to weight the score of preferred terms properly
Check codes are valid during $subsumes
* 5.0.8
Document minimum Java heap size and likely need to set it explicitly in docker-compose configuration.
Fixed a bug where ValueSet.compose.inactive=false was being ignored.
* 5.0.7
SNOMED Index version patch to 1.6.2
* Explicitly index SNOMED acronyms / abbreviations for better search behaviour
Support "inactive" property for FHIR Code Systems (already supported for SNOMED CT)
Use "inactive" property in ValueSet expansions to indicate whether an included code is inactive in the underlying code system.
Previously an Ontoserver-specific extension was used for this. It is now deprecated and is scheduled for removal in the 5.1.0 release.
Support SNOMED CT relationship properties as per http://hl7.org/fhir/snomedct.html#props
New buildLocal parameter for indexCodeSystem to avoid syndicated binary indexes
Binary index versions are now included in the Ontoserver CapabilityStatement
Avoid file copy when syndicating local content
Improved ranking of searches involving FSN semantic tag matches
* 5.0.6
Fixed a bug where inactive map entries were appearing in SNOMED implicit concept maps
Improved error reporting for malformed ValueSet filters
Improved metadata for LOINC CodeSystem and implicit ValueSets
* 5.0.5
Fixed a bug in syndication where downstream syndication entries were using an incorrectly named attribute for SHA256 checksums on download links ('sha256' instead of 'sha256Hash'). Links will now have the correct attribute.
When syndicating from an upstream feed, Ontoserver will now be stricter about the presence of a SHA256 checksum attribute (either 'sha256Hash' or the deprecated 'sha256') on links. (If necessary, this can be disabled using the atom.syndication.disableChecksums configuration property)
Improved cleanup of files when an index is deleted
* 5.0.4
Support Concrete Domains in ECL and use flatter DL representation of AMT Concrete Domains information ready for integration with SNOMED International drug model changes.
Fixed performance problem with batch requests.
Minor improvements to error reporting for $subsumes requests, and LOINC implicit ValueSets
* 5.0.3
Added support for version ordering. Resources whose versions are uniformly formatted using semantic versioning (x.y.z) or date versions (yyyymmdd) can now share a url, and will be resolved to the latest version if no specific version is provided.
Certain ECL errors no longer result in a 500 series error, instead producing a 422
Fix syndication bug when local binary index exists as well as an upstream binary index of the same version
* 5.0.2
Improved performance of batch operations by allowing concurrent execution
Added JSON-style logging for api/syndication methods
Fixed bug with batch operations when Ontoserver RBAC security is enabled
Updated NCTS profiles for ValueSet, CodeSystem and ConceptMap
Fixed bug for $subsumes requests that use codings rather than codes
$validate requests using the unsupported profile parameter will now result in 400-code responses.
* 5.0.1
Instance-level $translate no longer returns an empty 'source' parameter
$expand on an ambiguous ValueSet url will now result in a 422 error, not a 500 error
SNOMED CT ECL parser now correctly recognizes 'ChildrenOf'
Fixed bug in SNOMED CT indexer that affected some ECL cardinality constraints inside role groups
Fixed bug in ECL compiler that affected cardinality constraints on grouped relationships
Fixed some problems arising when publishing older binary indexes for syndication
Fixed a bug related to indexing extra columns in RF2 refsets, which affected the SNOMED International release
AuditEvent reporting is now turned off by default. Consult config documentation to enable and configure endpoint/s.
Some improvements to robustness of syndication.
* 5.0.0
Migrate to STU3 version of FHIR
Support inactive = true/false filter for SNOMED CT
Http/2 support added
Added support for explicit properties and filters on FHIR code systems
Added support for implicit filters on FHIR code systems: concept =/is-a/is-not-a/in/not-in, parent =/in/not-in
Fixed a bug where filters longer than 20 characters would return no matches
CodeSystems created/updated with content=not-present will now not list concepts in a read (concepts are still accessible through expand, lookup, etc)
Added support for lang.X values in the property parameter of $lookup requests
Updated properties and filters for LOINC CodeSystems including support for CLASS, CONSUMER_NAME, CLASSTYPE, ORDER_OBS and DOCUMENT_SECTION
Added support for the $subsumes operation (including within batch requests) for testing subsumption/equivalence between concepts within a code system
The 'descendent-of' filter is now available for the 'concept' property in both SNOMED and FHIR CodeSystems
Added support for the includeDesignations and includeDefinition parameters on ValueSet $expand
Support boosting in ValueSets via http://ontoserver.csiro.au/profiles/boost extension on ValueSet.compose.include
Updated properties and filters for SNOMED CT CodeSystems including support for sufficientlyDefined, effectiveTime, moduleId, normalForm, and normalFormTerse
Support multiple Syndication feed sources
Support implicit concept maps for SNOMED CT Historical Associations reference sets
Support implicit concept maps URI http://ontoserver.csiro.au/profiles/automapstrategy/default as default Automap strategy
Support the logging of code selection, through the creation of AuditEvent resources
$validate-code requests for SNOMED codes now respect concept permanence
Support for the _tag search parameter on all resources
Support for the source-uri, target-uri, source-system, target-system, source-code and target-code search parameters on ConceptMap
* 4.1.18
Fix problem with syndicating newer binary indexes (from Ontoserver >= 5.0.0)
* 4.1.17
Fix long standing bug related to OWL generation from RF2 (SNOMED Binary Index version incremented to 1.3.4)
* 4.1.16
Fix bug related to SNOMED codes without descriptions
* 4.1.15
Fix bug in CodeSystem/$lookup
Fix bug in SNOMED indexes where non-defining relationships were being treated as defining (SNOMED Binary Index version incremented to 1.3.3)
* 4.1.14
Bumped SNOMED Binary Index version to 1.3.2 for following five fixes/improvements:
1. Fix bug where | symbols in RF2 files would confuse the CSV parser during an addRf2 call
2. Fix bug where multiple language reference sets referring to the same description id would result in multiple designations
3. Fix minor bug where "fall-through semantics" for language reference sets was not being applied. Note, these semantics are under-specified in the SNOMED CT TIG.
4. Make description IDs searchable terms
5. Ensure that FSNs are always acceptable synonyms
* 4.1.13
Fix bug where Vary response header was incorrect when Accept-Encoding did not include gzip
* 4.1.12
Revert flyway change that broke database migration
* 4.1.11
$lookup now returns inactive status as a property (as per spec) rather than directly as an output parameter
Adding RF2 content to the database has been significantly sped up (Postgres only)
The If-None-Match request header (used to support caching) is now supported for read, vread and search operations on ValueSets, CodeSystems and ConceptMaps, as well as $lookup and instance-level $translate operations
ETag headers (usable for caching) are now produced by GET-style $lookup and instance-level $translate operations, and by search requests on ValueSets, CodeSystems and ConceptMaps
Changed syndication OAuth2 endpoint in line with NCTS change
Fixed bug related to incorrect formats reported in Conformance resource
Fixed bug related to international RF2 release package structure
* 4.1.10
Fixed (benign) bug where LOINC and FHIR index versions were not incremented with change to support index version compatibility
Fixed bug where some existing compatible indexes were not being detected in the file system, which triggered unnecessary updating of SNOMED indexes
* 4.1.9
Fixed a limitation that prevented support for type-level $translate without a source CodeSystem / value set and only display text in a Coding/CodeableConcept
Fixed a bug that prevented expansion of multi-version ValueSets with exclude criteria from working
Improve $translate's automap precision
Updated SNOMED CT binary index file format to 1.3.1 and implemented support for semantic versioning of binary indexes with forward and backward compatibility
Fixed a bug related to empty codes in batch validate-code requests
ValueSets that come back from $expand requests will now include the originating ValueSet's identifier and version elements (if any)
Fixed a bug that prevented including all of a LOINC code system in a ValueSet
* 4.1.8
Improved speed of SNOMED (RF2) indexing from source; if RF2 not in db then work directly from ZIP.
To get RF2 in db, use /synd/fetchSyndicatedContentEntry or /api/sct/addRf2
Improved log format to facilitate automated log processing
Improved transactional behaviour to avoid race conditions during creates/updates/deletes
Updated HL7 Sharable ValueSet Profile from 1.0.2 to 1.4.0
Fixed bug in $closure where incorrect subsumptions could be computed
Added support for the Prefer: return=representation Header
Fixed bug in $expand that made it impossible to use count/offset to retrieve concepts beyond the maxResults threshold
* 4.1.7
Updated IHTSDO ECL implementation to match v1.1.1
Fix implementation of cardinality constraints in SNOMED CT 'expression' filters
Significant speed increase for the 'automap' flavour of $translate
Performance improvement for loading SNOMED CT's RF2 data
Fix a bug where republished entries would not all have source links
Fix a bug regarding incorrect diagnosis of snomed/loinc index version mismatch on startup
* 4.1.6
Fixed handling of valueSet parameter on $validate-code
Batch requests will now permit String values for Code-typed parameters
Made $validate-code less dogmatic about matching the version parameter
Fixed handling of type-level $validate requests that do not provide a resource parameter
Allow the parameters 'valueSet' and 'source' to be used as alternatives on $translate
Allow CORS requests from Origin file://
Fixed bug in $closure where #additional edges > maxResults limit (default 10,000)
* 4.1.5
Include Vary and HTML Content-Type headers for exception responses
Improve handling of batch/transaction requests, especially regarding error handling
Added /api/mode endpoint for querying security mode
Support "property" parameter in batch GET $lookup
* 4.1.4
Include Vary header with Accept and Accept-Encoding to avoid caching problems
Include comment in Conformance to indicate which operations are supported in batch
Fix error code for unsupported conditional deletes
Customise CodeSystem.publisher for known editions of SNOMED (SCT-AU, AMT)
* 4.1.3
Return a 422 error when invoking operations with ambiguous resource references (URLs)
Include the HTTP 'Prefer' header as an acceptable CORS header
Fix incorrect behaviour of id:present and id:missing search modifiers
Added version search parameter for ValueSet, CodeSystem and ConceptMap
Added system search parameter for CodeSystem
Fixed bug with validation of multi-typed properties, e.g. ConceptMap.sourceUri
* 4.1.2
Issue a 400 Bad Request for $translate requests that do not specify a target value set
Fixed bug that was causing Ontoserver to not log to file.
* 4.1.1
Ontoserver no longer includes headers to disable caching
$closure operation now supports arbitrary CodeSystems (with hierarchy), not just SNOMED CT
Fixes for $closure table bug relating to the order of the added codes
Updated to Spring-Boot 1.3.6
Fix incorrect response code 5xx rather than 4xx when source/target URIs are omitted from a $translate request
Fix CodeSystem validation to report all duplicate codes at once, rather than just the first one found