IBM FHIR Server 4.8.0
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release introduces a custom operation for the hard deletion of resources ($erase
) and focuses on improving search query performance and fixing bugs.
Added
- $erase operation for the hard deletion of a resource (or a specific resource version)
- This change introduces a new stored procedure and therefor requires a schema update.
- This change also introduces a new configuration section under
fhirServer/operations/erase
. - See the migration considerations for more detail.
- Expand support of X-FHIR-UPDATE-IF-MODIFIED to batch/transaction entries
- Resolve conditional references while processing transaction bundles
- A new JDBC query builder
- Set
fhirServer/search/enableOptQueryBuilder
to false to opt out of the new query builder and continue using the legacy query builder instead.
- Set
- Experimental support for the Structured Product Labeling (SPL) Implementation Guide
- Support generating constraints from slices with the "profile" discriminator type
- Documentation on how to use Keycloak with FHIR
- Support for searching a token by codesystem, irrespective of the value ([system]|)
- Support for the TerminologyCapabilities resource via the capabilities interaction
- Support for designating the default version of registry resources
Changed
- Use the new is_deleted and last_updated columns from xx_LOGICAL_RESOURCES to eliminate joins
- Rework search queries to avoid DISTINCT
- Conflicting search parameters messages should note the full URL of the conflict code
- Make quantity values searchable even without unit or code
- Rename fhir-model code subtype nested classes from ValueSet to Value
- Populate Bundle.entry.response.outcome with validation warnings
- Ensure bundle requests with DELETE entries behave similarly to non-bundle DELETEs
- FHIR primitive static factory helpers should throw appropriate exception when null is passed
- trustDefaultCerts=true by default in liberty configuration (server.xml)
- Trim whitespace from values in schema tool property files
- Bundles with all GET requests can use a single transaction for better performance
- Update Capabilities.java to use fhir-cache
Deprecated
- The
fhir-server-distribution.zip
name- When we moved from Bintray to Maven Central, we noticed that our zip installer reverted back to the default maven name (
fhir-install-VERSION.zip
) and we plan to publish only this versioned name for the zip installer going forward.
- When we moved from Bintray to Maven Central, we noticed that our zip installer reverted back to the default maven name (
- fhir-model nested ValueSet enum (and related helpers) in code subtypes
- use the new nested enum named Value instead
Fixed
- Token search should be case-insensitive when the system being searched is case-insensitive
- Implicit base not picked up for the patient search parameter
- Out of shared memory error while dropping fhir schema using ibm cloud databases for postgresql
- With the transaction timeout set unreasonably low, the resulting error does not reflect a timeout
- Equivalency check for X-FHIR-UPDATE-IF-MODIFIED fails to account for identifier updates
- Null pointer on custom operations invoked at the resource-type level for resource types that don't exist
- Search with both '_total=none' and '_include' or '_revinclude' parameter fails with FHIRPersistenceDataAccessException
- Allocate Tenant without TenantKey Fails in the ibm-fhir-schematool on db2
- Unexpected IllegalArgumentException --schema-name 'TEST1' argument does not match tenant schema: 'TEST1 '
- Empty Schema and Missing version Table results in Exception for list-tenants
- Misleading error message during $lookup for non-existent CodeSystem
- Conditional delete operation outcome has nulls in issue details
Migration Considerations
To migrate from a prior version of the IBM FHIR Server to version 4.8.0:
- Analyze configuration changes and prepare for the upgrade:
- Stop the server (or otherwise prevent write requests).
- Optional: perform a database back up
- Run the fhir-persistence-schema-4.8.0-cli.jar --update-schema command. If using a non-admin user (recommended), also perform the --grant-to action.
- Deploy the new server.
- Perform re-indexing.
- needed to support searching quantity values without a unit or code
- needed to support searching on token parameters (with a system) where the system is known and marked as case-sensitive
If upgrading from a version prior to 4.7.1, be sure to review the applicable migration considerations:
Using the Release
Run or extend the Docker image from https://hub.docker.com/r/ibmcom/ibm-fhir-server or download fhir-server-distribution.zip and install as described at https://ibm.github.io/FHIR/guides/FHIRServerUsersGuide.
Executable jar files for the fhir-persistence-schema, fhir-swagger-generator, fhir-bucket, and fhir-path projects are also available:
- fhir-persistence-schema-4.8.0-cli.jar
- fhir-swagger-generator-4.8.0-cli.jar
- fhir-bucket-4.8.0-cli.jar
- fhir-path-4.8.0-cli.jar
Usage is documented in the corresponding README files:
- https://github.com/IBM/FHIR/tree/master/fhir-persistence-schema
- https://github.com/IBM/FHIR/tree/master/fhir-swagger-generator
- https://github.com/IBM/FHIR/tree/master/fhir-bucket
- https://github.com/IBM/FHIR/tree/master/fhir-path
For Maven users, all project binaries are posted to Maven Central with a version of 4.8.0