IBM FHIR Server 4.7.0
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release expands search behavior, introduces a new experimental fhir-term-graph
module, includes numerous dependency updates, and makes significant changes to the ibmcom/ibm-fhir-server docker image.
Per JFrog, BinTray is being sunset. The IBM FHIR Server team has transitioned to Open Source Repository Hosting by Sonatype, and sychronizes to Maven Central. To reference any dependency in this project, please remove any existing references to Bintray in the <repositories>
tag of your pom.xml, and recompile with the latest version.
Added
- Maturity level annotations and javadoc to the fhir-model resource classes
- Support _total with _include and _revinclude
- Support _sort with _include and _revinclude
- Support token modifier ':text'
- Reindex is required to take advantage of this feature
- Support token modifiers ':in' and ':not-in'
- Support token modifiers ':above' and ':below'
- FHIR Search Feature: _include:iterate
- Support compartment search via POST
- Configurable expiration time for exported objects
- This change introduces
fhirServer/bulkdata/core/cos/presignedExpiry
for controlling the expiry (in seconds) of bulk data download urls (when using S3/COS storage provider with HMAC authentication and presign set to true).
- This change introduces
- Introduce fhir-term-graph module
- Support for implicit value sets
- Javadoc and convenience methods for Base64Binary
- FHIRPath CLI
- Compartment search variants to generated swagger / openapi
- POST [base]/[type]/_search to generated swagger / openapi
- Configuration option to control the default page size
- This change introduces
fhirServer/core/defaultPageSize
- This change introduces
Changed
- Upgrade to liberty 21.0.0.3
- Make it more obvious how to obtain primitive values from FHIRPathSystemValue
- Refactor fhir-term module
- More efficiently handle closure operation requests that have more than one coding
- Improve the docker image
- We changed the liberty server name from
fhir-server
todefaultServer
and modified how the image gets built; build times are longer but startup time is roughly 3x faster. We also moved from the Java 8 version of liberty to the Java 11 version.
- We changed the liberty server name from
- JSON Schema Clarification on required and minItems Validation Keywords
- Throw an exception when a value set include filter cannot be applied or a concept filter cannot be created
- Return an empty body when the healthcheck passes
- Construction of empty resource objects is now allowed
- Patient/$everything enabled by default
Deprecated
- list variants of ValidationSupport.requireNonEmpty and ValidationSupport.requireNonNull
- ValidationSupport.requireChildren
Removed
- commit() and rollback() methods from FHIRPersistenceTransaction
- LocalResourceReferenceRec (no longer used)
- fhir-persistence-proxy from the project build
Fixed
- Patch Replaces Can Save Invalid Types
- This change also modifies the response code for FHIRPath errors during a FHIRPath Patch from HTTP 500 (Sever Error) to HTTP 400 (Bad Request)
- Everything Operation doesn't respond correctly to deleted resources
- Fast export impl 'txTimeoutMillis' should be set relative to the configured transaction timeout
- This change introduces
fhirServer/bulkdata/core/maxChunkReadTime
for setting the amount of time to read resources from the persistence layer before we checkpoint, which must be less than the configured transaction timeout.
- This change introduces
- Avoid 'stream was already closed' when the client hangs up early
- Avoid the useless warning for jaxb-core,jaxb-api not found
- Add missing definitions to the metatadata swagger
- Dropping admin schema fails with: ERROR: syntax error at or near "VARIABLE"
- fhir-bucket: Drive Reindex Operation thread should exit after error
- FHIROpenApiGenerator generates invalid discriminator for OpenAPI 3
Migration Considerations
To migrate from a prior version of the IBM FHIR Server to version 4.7.0:
- Analyze configuration changes and prepare for the upgrade
- This release introduces
fhirServer/bulkdata/core/cos/presignedExpiry
,fhirServer/core/defaultPageSize
, andfhirServer/bulkdata/core/maxChunkReadTime
as described above. - This release introduces numerous new properties under
fhirServer/term/graphTermServiceProvider
for new, experimental, Graph-based terminology provider. - For users of the
ibmcom/ibm-fhir-server
docker image, the liberty server name has changed fromfhir-server
todefaultServer
. All absolute path references to the server's location within the image must be updated.
- This release introduces
- Deploy the new server.
- Perform re-indexing.
- Needed to enable support for token modifier ':text'
There are no database schema updates associated with this release, but fhir-persistence-schema-4.7.0-cli.jar --update-schema will be required for upgrading from versions prior to 4.6.1
If upgrading from a version prior to 4.6.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, and fhir-bucket projects are also available:
- fhir-persistence-schema-4.7.0-cli.jar
- fhir-swagger-generator-4.7.0-cli.jar
- fhir-bucket-4.7.0-cli.jar
- fhir-path-4.7.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.7.0
.