Releases: LinuxForHealth/FHIR
IBM FHIR Server 4.6.0
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release moves datasource connection properties from fhir-server-config.json
to Liberty server configDropins, completely revamps the bulkdata section of the fhir-server-config.json, introduces a high-speed whole-system "changes feed", modifies the IBM FHIR Server schema to handle composite search parameters more efficiently, and more.
For users upgrading from a previous release, please review the Migration Considerations before attempting the upgrade.
Added
- Support resource change tracking via whole-system history changes feed
- Support token modifier ':not'
- Support for ":missing" modifiers on chained parameters and whole-system search parameters
- bootstrap.sh entrypoint for the ibmcom/ibm-fhir-server image
- bootstrap a derby database for the default tenant's default datastore by setting
BOOTSTRAP_DB=true
- bootstrap a derby database for the default tenant's default datastore by setting
- FHIRNotificationService should emit event for delete
- Tenant id and datastore id on FHIRNotificationEvent
- Support PATCH as part of a bundled request (batch and transaction)
- Narrative.EMPTY constant for 'empty' narrative text
- Bulk Data Audit Logging
- Bulk import/export from the local filesystem
- Use COS/S3 presign-url for download URLs of bulkdata export results
- only supported when using HMAC authentication with an S3-compatible storageProvider
Changed
- Refactoring of the fhirServer/bulkdata configuration
- Note: bulkdata jobs created prior to 4.6.0 will no longer run and must be re-created
- See Migration Considerations below for information on adapting fhir-server-config.json from a previous version
- Retire the fhirProxyDatasource in favor of Liberty JDBC datasource configuration
- Note: with this change, we no longer package
fhir-persistence-proxy
(or its dependencies) under the Liberty shared resources directory - See Migration Considerations below for information on adapting fhir-server-config.json from a previous version
- Note: with this change, we no longer package
- Change current Branch Naming to Main
- Upgrade liberty, postgresql, db2, and cxf
- Upgrade Pom.xml to latest versions of Dependencies
- Regenerated default certificates for client and server
- the old certificates expire in April of 2021; the new certificates are valid for 30 years
- these certificates should still be replaced in production deployments of the IBM FHIR Server
- fhir-audit: Ensure HOSTNAME is obtained correctly and consistently
- Do not log full stack trace for a simple 404 not found
- Normalize token values used for composite parameters
- fhir-persistence-schema --update-schema action now performs --refresh-tenants for associated tenants
Removed
- Support for FHIRProxyXADataSource
- Users of the FHIRProxyXADataSource must move their db connection information to Liberty configDropins as described at https://ibm.github.io/FHIR/guides/FHIRServerUsersGuide#331-the-jdbc-persistence-layer
- Derby DB bootstrapping during server startup
- This was replaced by a custom entrypoint script in the docker image. See https://hub.docker.com/r/ibmcom/ibm-fhir-server for more information.
- For FHIR Server developers using non-Docker servers, we delivered a bash script which accomplishes the same thing as the old bootstrap process...useful for preparing your environment for executing fhir-server-test.
Fixed
- Getting FHIR notifications for all resources including those not listed in the 'includeResourceTypes' field
- Duplicate Job Parameters fhir.dataSourcesInfo are created
- Link urls are wrong when originalRequestUriHeader contains unencoded pipe
- FullUrl of whole-system search response bundle entries improperly contain query parameters
- PostgreSQL poor search performance with multiple search parameters on a Compartment Search
- Auditing work performed when auditing is turned off for the fhir-server
- ConfigDropins for Bulkdata.xml is specified incorrectly for db2
- AuthzPolicyEnforcement interceptor returns 500 for select client errors
- Schema name case normalization is not working as expected
- fhir-persistence-schema cli contains unnecessary dependencies
- Relative References with the Same Logical Identifier should throw an error
- Bulk Data Client Fails with Fault on ReflectionUtil
- Bulkdata - Timeouts on Derby/Db2
- NullPointer in ImportJobListener.afterJob
- Fast export implementation fails to close GZIPInputStream
Security
Migration Considerations
To migrate from a prior version of the IBM FHIR Server to version 4.6.0:
- Analyze configuration changes and prepare for the upgrade
- remove
persistence/jdbc/enableProxyDatasource
from fhir-server-config.json - remove
persistence/jdbc/dataSourceJndiName
from fhir-server-config.json - remove
persistence/datasources/<dsid>/connectionProperties
and put the connection information into a configDropin as documented in the User's Guide - ensure there are no references to the
com.ibm.fhir.persistence.proxy.FHIRProxyXADataSource
jdbcDriver in your server.xml or configDropins (this used to be in our default server.xml but was removed along with the implementation) - for bulkdata users, the bulkdata configuration section of fhir-server-config.json has been totally reworked; please see the User's Guide for updated configuration information
- remove
- Stop the server (or otherwise prevent write requests).
- Perform a database back up.
- Run the
fhir-persistence-schema
--update-schema command. If using a non-admin user (recommended), also perform the --grant-to action. Note: it is no longer necessary to separately invoke--refresh-tenants
. - Deploy the new server.
- Perform re-indexing. Note that this step is only required for resources with composite search values.
Covered in these steps are one-time special considerations for upgrading to 4.6.0:
- For #1955, we introduced a new table named
RESOURCE_CHANGE_LOG
which stores all resource changes (creates, updates, and deletes) and serves the new whole-system history interaction. If (and only if) this table is empty, the--update-schema
action will auto-populate this table with historical data from the database. - For #1929, we introduced a new index. This can take a while to populate (~1000s on our test DB with ~10M resources).
- For #1958 and #2011, we introduced
IS_DELETED
andLAST_UPDATED
columns to thex_LOGICAL_RESOURCES
tables. These columns are automatically populated from the database as part of the--update-schema
action. - For #1683, we removed the
x_COMPOSITES
tables from the database and added a newcomposite_id
column to thex_y_VALUES
tables in its stead. Populating these new column values is what requires the re-index and so this step can be skipped for resource types that have no search parameters of type composite.
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-schem...
IBM FHIR Server 4.5.5
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release focuses on fixing bugs, improving query performance, and introducing a new high-performance bulkdata system export implementation.
Added
- Bundle.entry.search to Search Response
- Performance and sizing reference guide
- Support for _elements and _summary on vread
- Search query optimization parameters for PostgreSQL
- This change introduces new postgres datasource config options
from_collapse_limit
andjoin_collapse_limit
and increases them to 16 by default. See https://ibm.github.io/FHIR/guides/FHIRPerformanceGuide#41-postgresql for more information.
- This change introduces new postgres datasource config options
Changed
- Improve system bulk export performance
- This change introduces a new method named
fetchResourcePayloads
to the FHIRPersistence interface and uses this method to stream raw bytes to the configured S3/COS endpoint. Patient export, Group export, and System exports with a _typeFilter are still served by the old export implementation. Users can opt in to the old implementation for System export by settingfhirServer/bulkdata/systemExportImpl
tolegacy
.
- This change introduces a new method named
- Control the writing of $import operational outcomes
- Update SMART AuthzPolicyEnforcement to allow read access to Provenance resources that target resources to which the user has access
- Update handling of _type and other singleton search params
- This changes normalizes our handling of return parameters like
_sort
,_count
,_summary
, and_elements
that should be in the query string at most once. See https://ibm.github.io/FHIR/Conformance/#search-parameters for documentation of the updated behavior.
- This changes normalizes our handling of return parameters like
Deprecated
- FHIRDbProxyDatasourceConnectionStrategy; this has been our default connection strategy since 4.0. Starting with 4.6.0, we plan to change the default to FHIRDbTenantDatasourceConnectionStrategy, which will mean that all datasource configuration will be configured via Liberty's server.xml and related configDropins. See the User's Guide for more information.
Fixed
- Handle versioned references in chained and include/revinclude searches
- Make the 'compartment param not found' warning conditional
- date search with =ap against a range is not finding the intersect when there is no end or no start date
- Date parameter values in the link urls of search response are not accurate
- Compartment search self link contains extraneous '&' character
- A search with _include returns the same included resource multiple times if it matches more than once
- _elements option should not be applied to the _include option on a search
- versioned read ignores unexpected/unsupported parameters
- Unable to use search parameters on resources imported via bulk import
- Unable to import bulk data from Minio
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.5.5-cli.jar
- fhir-swagger-generator-4.5.5-cli.jar
- fhir-bucket-4.5.5-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
For Maven users, all project binaries are posted to BinTray with a version of 4.5.5
.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.5.5.zip to cache your repository locally.
IBM FHIR Server 4.5.4
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release focuses on fixing bugs and finishing patient-access-related changes including the ability to limit the server to specific resource types and the ability to automatically scope searches by the current patient context.
Added
Changed
Fixed
- Confusing error when request is targeted for an invalid tenant id
- Duplicate Job Parameters fhir.dataSourcesInfo are created
Security
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.5.4-cli.jar
- fhir-swagger-generator-4.5.4-cli.jar
- fhir-bucket-4.5.4-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
For Maven users, all project binaries are posted to BinTray with a version of 4.5.4
.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.5.4.zip to cache your repository locally.
IBM FHIR Server 4.5.3
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release changes fhir-audit configuration to add early support for FHIR's AuditEvent, decouples the Kafka configuration from the EventsStreams binding, improves multi-tenant support for the refresh of Db2 tenants, and addresses a number of issues.
Please be sure to review the notes section.
Changed
- Audit event logging and the event streams dependency needs investigation #1541
- Add support for AuditEvent to Audit Log Service #1423
- fhir-audit: Update Kafka configuration #1542
Fixed
- Schema tool --refresh-tenants does not handle Db2 multi-tenant/multi-schema scenarios #1789
- reindex resource selection update slows down as reindex progresses (postgres) #1818
- IBM FHIR Server audit does not log bundles correctly. #1803
- Derby bootstrap reports SQLException when updating existing databases #1793
- Addressed issues for the ibm-fhir-schematool - 1795 1796 1797 1802
- Added the Target to the CADFEvent format and updated the docs
- Search parameter filtering fails for search parameter which has multiple base resource types #1831
Security
- encode the error messages from FHIRProvider with Encode.forHtml #1785
- removed auditLogService from capabilities statement
Deprecated
- fhir-audit: Update Kafka configuration #1542 which decouples the Kafka configuration also changes the package name and structure of the
serviceClassName
:- com.ibm.fhir.audit.logging.impl.DisabledAuditLogService is now com.ibm.fhir.audit.impl.NopService
- com.ibm.fhir.audit.logging.impl.WhcAuditCadfLogService is now com.ibm.fhir.audit.impl.KafkaService
This change is backwards compatible, however, it is recommended you update your configuration to use the new serviceClassName as the mapping may be removed in the future.
Notes
- If you are updating from a release prior to 4.5.2, be sure to "reindex" the resources after the upgrade. See the Search Configuration Guide for information on the $reindex operation.
- If you are updating from a prior release with an IBM Db2 as the persistence layer, be sure to refresh tenants as documented in the 4.5.0 Release Notes when you have the following conditions:
- migrating from prior to 4.5.0 (because 4.5.0 added a table); or
- migrating from ANY prior version if using multiple tenants in a single schema (due to #1789)
- The Docker container ibmcom/ibm-fhir-schematool is an early technology preview and is experimental.
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 and fhir-swagger-generator projects are also available:
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
For Maven users, all project binaries are posted to BinTray with a version of 4.5.3
.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.5.3.zip to cache your repository locally.
IBM FHIR Server 4.5.2
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release fixes multiple issues with the fhir-persistence-schema
tool:
--update-schema
does not properly update the user function for PostgreSQL databases--update-proc
is broken due to an extraneous commit- schema versioning (FHIR_ADMIN) is case sensitive; fails with DuplicateNameException when user executes
--update-schema
with an existing schema name with different casing
If you are updating from a previous release, be sure to "reindex" the resources after the upgrade.
See the Search Configuration Guide for information on the $reindex operation.
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.
Note: The Docker image ibmcom/ibm-fhir-schematool is an early technology preview and is experimental.
Executable jar files for the fhir-persistence-schema and fhir-swagger-generator projects are also available:
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
For Maven users, all project binaries are posted to BinTray with a version of 4.5.2
.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.5.2.zip to cache your repository locally.
IBM FHIR Server 4.5.1
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release focuses on fixing bugs, improving the performance of select search queries, and updating the pre-packaged Implementation Guides associated with the CMS Interoperability and Patient Access final rule.
If you are updating from a previous release, be sure to "reindex" the resources after the upgrade.
See the Search Configuration Guide for information on the $reindex
operation.
Added
- Support standard liberty datasources
- This static datasource option is expected to become the default in version 4.6.0
- Configurable profile handling
- This change introduces a new fhir-server-config property
fhirServer/resources/<resourceType>/profiles/atLeastOne
for enforcing mandatory profile checking
- This change introduces a new fhir-server-config property
- Include Da Vinci PDex and HRex IGs to the IBM FHIR Server release
Changed
- Split COS endpointurl into internal and external
- Note: this is a breaking config change for the bulkdata section of
fhir-server-config.json
which replacesfhirServer/bulkdata/jobParameters/cos.endpointurl
with new parameters. Expect more changes here in the future.
- Note: this is a breaking config change for the bulkdata section of
- Include license text in the Docker image
- Favor is_deleted = 'N' over is_deleted <> 'Y' in generated SQL
- Remove _ from reindex custom operation parameter names
- Carin-BB: Update CarinBB to 1.0.0 - STU1
- DaVinci PDEX Plan Net: Update for 1.0.0 - STU1
- Update PDEX Drug Formulary IG to 1.0.1
- Update PDEX IG to 1.0.0
- Timezone for the fhir server should be UTC and set as the default on install.
- With this change, the server will always use UTC by default. This is something we generally recommend but have never made the default until now.
Fixed
- reindex operation does not compute all search parameters
- Private Memory on Db2 results in -930 errors at load
- This changes the Db2 Stored Procedure for saving resources; be sure to update the stored procedures when upgrading to 4.5.1 with an existing Db2 database (via fhir-persistence-schema)
- _has search with _lastUpdated not working correctly
- Invalid Query with Combination of Parameters
- ParameterVisitorBatchDAO uses fixed string as a server base
- Suboptimal compartment search execution plan on Postgres
- This change requires a reindex of all compartment-based resources. After upgrading and reindexing the data, set
fhirServer/search/useStoredCompartmentParam
totrue
to opt in to the change.
- This change requires a reindex of all compartment-based resources. After upgrading and reindexing the data, set
- Stale search filtering documentation
- Search with reverse chaining performing slowly
- No error message issued when passing in a incorrect resource on _revinclude.
- Docker image of version 4.5.0 contains conflicting datasource definition files under
configDropins/overrides
- COS properties should not be needed for reindexing resources via fhir-bucket
- FHIRValidationException on absolute ElementDefinition.contentReference
- ValueSet expansion does not contain ValueSet.expansion.contains.display element
Security
- Externalize the Credentials in the server.xml
- now the default fhiruser password can be set via environment variable (still defaults to
change-password
if not set)
- now the default fhiruser password can be set via environment variable (still defaults to
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 and fhir-swagger-generator projects are also available:
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
For Maven users, all project binaries are posted to BinTray with a version of 4.5.1
.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.5.1.zip to cache your repository locally.
IBM FHIR Server 4.5.0
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release introduces an improved schema design that stores reference and token values more efficiently. It also introduces the $reindex operation which must be used to move existing data into the updated schema. See Database Migration below for more information.
Added
- FHIR Resource Re-indexing
- Reverse chaining (
_has
parameter) - Easy way to extend the TransactionManager timeout interval
- Reference target annotations, javadoc, and validation for choice types and repeating fields
- if the increased validation prevents you from parsing previously-stored resources, you may disable reference type checking globally by setting
fhirServer/core/checkReferenceTypes
to false in your default fhir-server-config.json
- if the increased validation prevents you from parsing previously-stored resources, you may disable reference type checking globally by setting
- Create a static datasource option
- this is not yet the default, but paves the way for simpler packaging because our FHIRProxyDatasource is the thing that ties us to a liberty shared lib approach
Changed
- Update schema for efficient storage of reference search parameters and tokens
- this change requires re-indexing as part of migration (see See Database Migration below)
- Constrain search based on IG CapabilityStatements
- Upgrade to PDEX PlanNet 0.1.7
- Note that the previous packaged version of this IG was version
0.3.0
, but was subsequently "fixed" to indicate that this is still a revision of STU1 Ballot 1 and hence has been dropped to0.1.7
- Note that the previous packaged version of this IG was version
- Favor is_deleted = 'N' over is_deleted <> 'Y' for better execution plans
Removed
Fixed
- Inserts on common_token_values can cause contention
- Resolve absolute references to the current FHIR server similar to relative ones
- Multi-tenancy. Tables added to schema need to be created with all tenant partitions
- Bulk Data $import and $export must inject the incomingURL to FHIRRequestContext
- Reference fields in fhir-examples generated resources should include resource type
- Constraint generator does not correctly handle slicing for choice type constraints
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 and fhir-swagger-generator projects are also available:
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
For Maven users, all project binaries are posted to BinTray with a version of 4.5.0
.
Database Migration
Issue #1366 introduces a significant schema change related to the storage of references and token values, reducing the size of the database for a set of resources with the additional benefit of improving ingestion performance. To migrate to 4.5.0, you must:
- Migrate the schema;
- Reindex existing resources
Schema Migration
With the server stopped, run the following commands to migrate the schema (using Db2 as an example):
# Add new tables/columns/indexes etc
java -jar schema/fhir-persistence-schema-*-cli.jar \
--prop-file db2.properties --schema-name FHIRDATA --update-schema \
--pool-size 1
# Rerun grants to cover any new tables added by the above migration step
java -jar schema/fhir-persistence-schema-*-cli.jar \
--prop-file db2.properties --schema-name <FHIR-DATA-SCHEMA> --grant-to <FHIR-USER> --pool-size 2
# ***Db2-only***: Make sure that the new tables have partitions for existing tenants
java -jar schema/fhir-persistence-schema-*-cli.jar \
--prop-file db2.properties --refresh-tenants
Note that the --update-schema operation uses a pool-size of 1. This is to avoid deadlocks in the Db2 catalog when trying to manipulate foreign keys in parallel.
Reindex resources
After the schema has been migrated, new resources and be stored and retrieved per normal. However, some searches for existing resources will not be successful until those resources are reindexed. Reindexing is a new custom operation introduced in release 4.5.0 which tells the server to read each resource, and replace the existing search parameters with those newly extracted from the resource body.
After migrating the schema and starting the server, use the new fhir-bucket tool to drive reindexing of resources currently stored in the server. The fhir-bucket tool uses a thread-pool to make concurrent POST requests to the IBM FHIR Server $reindex
custom operation. This custom operation reads each resource in turn (up to the limit specific as a parameter) and updates the stored parameter data. This is very similar to creating a new version of a resource, except in this case the version number doesn't change and the data for the resource never leaves the server.
To run the reindex step, see this example (using Postgres):
JAR="/path/to/fhir-bucket-4.5.0-cli.jar"
java \
-Djava.util.logging.config.file=logging.properties \
-jar "${JAR}" \
--db-type postgresql \
--fhir-properties fhir.properties \
--tenant-name "YOUR-TENANT-NAME" \
--max-concurrent-fhir-requests 200 \
--no-scan \
--reindex-tstamp YYYY-MM-DD \
--reindex-resource-count 10 \
--reindex-concurrent-requests 200
The value of YYYY-MM-DD is a date-stamp used to indicate the date on which the resources have been reindexed. The IBM FHIR Server tracks when a resource was last reindexed and only resources with a reindex_tstamp value less than the given YYYY-MM-DD parameter will be processed. When a resource is reindexed, its reindex_tstamp is set to the given YYYY-MM-DD value indicating it has been processed. In most cases, using the current date (for example "2020-10-27") is the best option for this value.
Reindexing is resource-intensive and can take several hours or even days to complete depending on the number of resources currently in the system and the capability of the hosting platform.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.5.0.zip to cache your repository locally.
IBM FHIR Server 4.4.2
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release focuses on fixing bugs and improving the configurability of the server.
Added
- fhir-ig-davinci-pdex-formulary in the fhir-validation-distribution
- Note that we've modified the conformance artifacts for this version of Da Vinci PDEX Formulary to reflect the resolution of https://jira.hl7.org/browse/FHIR-28494
Changed
- Upgrade CARIN for BlueButton (C4BB) Support to 0.1.7
- Build CapabilityStatement.rest.resource elements from fhir-server-config
- This introduces another change to our
fhir-server-config.json
format; please see the issue, the User's Guide, or a sample config for more information
- This introduces another change to our
Removed
- Support for
fhirServer/searchParameterFilter
in fhir-server-config- Users of the searchParameterFilter feature should use the new
fhirServer/resources/<resourceType>/searchParameters/<code>
properties instead
- Users of the searchParameterFilter feature should use the new
--drop-schema
support in fhir-persistence-schema- Please use the
--drop-schema-fhir
,--drop-schema-batch
, and/or--drop-schema-oauth
options instead
- Please use the
Fixed
- smart-configuration properties in default fhir-server-config conflict with property constants
- Posted bundles are not returning warnings in the OperationOutcome
- Error dropping FHIR schema for PostgreSQL
- This change addresses the most glaring issues, but in some environments the drop may still fail due to resource constraints
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 and fhir-swagger-generator projects are also available:
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
For Maven users, all project binaries are posted to BinTray with a version of 4.4.2
.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.4.2.zip to cache your repository locally.
IBM FHIR Server 4.4.1
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release focuses on fixing bugs and improving support for the CMS Interoperability and Patient Access final rule.
Added
- Support for wildcards in include and revinclude
- Packaging for Da Vinci Payer Data Exchange (PDEX) version 0.1.8
- Packaging for Da Vinci Health Record Exchange (HRex) version 0.2.0
- Support for variable substitutions in
fhir-server-config.json
- Introduce JMeter tests via new fhir-meter project
Changed
- Improve CapabilityStatement to support Security
- This introduces changes to our
fhir-server-config.json
format; please see the issue, the pull request, or the User's Guide for more information
- This introduces changes to our
- Improve BCP47 / language code validation
- This extended validation can be controlled, globally, via the
fhirServer/core/extendedCodeableConceptValidation
parameter introduced in 4.4.0
- This extended validation can be controlled, globally, via the
- Pick up implicit base in FHIR Reference search
- Advertise support for packaged ImplementationGuides via CapabilityStatement.instantiates
- Improve batch/transaction processing by removing redundant validation
- Evaluate local to external reference mapping in transaction Bundle processing
- Upgrade to liberty 20.0.0.9
Removed
- Remove unused constants from FHIRDbConstants
- Top-level config parameters authFilter and oauth (now these are under the new security field)
Fixed
- valueUrl is used incorrectly in the CapabilityStatement
- Stale connections in JDBC connection pool cause requests to fail
- unable to parse datetimes with more than 6 digits of fractionalSeconds: fhir-model, fhir-search, and fhir-path
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 and fhir-swagger-generator projects are also available:
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
For Maven users, all project binaries are posted to BinTray with a version of 4.4.1
.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.4.1.zip to cache your repository locally.
IBM FHIR Server 4.4.0
This version of the IBM FHIR Server supports HL7 FHIR Specification version v4.0.1.
This release focuses on fixing bugs, improving validation support, adding and updating implementation guides.
Added
- Bulk export to parquet format (experimental)
- SMART Authorization token scope validation via persistence interceptor
- Add Advanced FHIR Path Expression Extraction Example and Search Test using custom between function
- Honor CodeSystem.caseSensitive during validation
- Introduce DaVinci PDEX PlanNet samples
- Validate UCUM unit strings
- Validate IETF BCP47 language codes
For the proceeding two additions, the extended validation performed during object construction can be turned on or off using fhirServer/core/extendedCodeableConceptValidation
as discussed in the IBM FHIR Server User's Guide
Changed
- Prevent config fallback behavior for persistence configuration
- Improve error handling for invalid profiles / extension definitions
- Update Implementation Guide for DaVinci Payer Data Exchange US Drug Formulary STU1
- Update Implementation Guide for US-Core STU3 Release 3.1.1
Deprecated
- None
Removed
- None
Fixed
- Unexpected validation passes if CodeableConcept bound to value set does not contain system and code
- Constraint generator incorrectly generates reference type constraints in some circumstances
- FHIR Validation throws Incorrect XML validation error
- Unit Tests on Windows Build fail due to Spark Dependency for SparkParquetWriterTest fails unexpectedly
- FHIRValidator should check ValueSet membership for preferred/extensible bindings in the base specification
- chained search with modifier :missing causes internal error
- conformsTo generates validation errors even when used inside an "or"
Security
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 and fhir-swagger-generator projects are also available:
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
For Maven users, all project binaries are posted to BinTray with a version of 4.4.0
.
Please note as of 2021-MAY-01, JCenter is shutting down BinTray. The libraries, as of that date, are no longer available on BinTray. Please download the release-repo-4.4.0.zip to cache your repository locally.