Skip to content

Releases: hapifhir/hapi-fhir

v6.0.3

19 Jul 15:01
Compare
Choose a tag to compare

6.0.3

v5.6.4

08 Jul 22:00
Compare
Choose a tag to compare

5.6.4

v5.7.5

08 Jul 14:37
Compare
Choose a tag to compare

5.7.5

HAPI FHIR 6.0.1 (Tanuki)

26 May 20:52
Compare
Choose a tag to compare

#3642 : Group bulk export failure
#3650 : Failure to boot without Lucene

HAPI FHIR 6.0.0 (Tanuki)

19 May 01:01
Compare
Choose a tag to compare

Welcome to a new major release of HAPI FHIR! Since there are many breaking changes, we are making this a major release.

Breaking Changes

  • Support for Java 8 has been dropped. A minimum of Java 11 is now required for HAPI FHIR. Java 17 is also supported.
  • Database indexes have been completely reworked for Search Index tables. This should result in significantly faster searches in most use cases.
  • A new batch operation framework for executing long running background jobs has been created. This new framework is called 'Batch2', and will eventually replace Spring Batch. This framework is intended to be much more resilient to failures as well as much more paralellized than Spring Batch job.

Security Changes

  • Previously, it was possible to update a resource with wrong tenantID. This issue has been fixed.
  • User was permitted to bulk export all groups/patients when they were unauthorized. This issue has been fixed.
  • The Spring Framework library was upgraded to version 5.3.18 in order to avoid depending on a version known to be vulnerable to CVE-2022-22965, known as Spring4Shell. HAPI FHIR is not believed to be vulnerable to this issue, but the library has been bumped as a precaution.

General Client/Server/Parser Changes

  • Added search parameter modifier :nickname that can be used with 'name' or 'given' search parameters.
  • Added a new pointcut: STORAGE_PRESTORAGE_CLIENT_ASSIGNED_ID which is invoked when a user attempts to create a resource with a client-assigned ID.
  • The XML and JSON Parsers are now encoding narratives of contained resources. Narratives were skipped before for contained resources.
  • Include property regex operation was not working when expanding ValueSet. This is now fixed
  • When performing a search with a _revinclude. the results sometimes incorrectly included resources that were reverse included by other search parameters with the same name. Thanks to GitHub user @vivektk84 for reporting and to Jean-Francois Briere for proposing a fix.
  • The HAPI FHIR server GraphQL endpoints now support GraphQL introspection, making them much easier to use with GraphQL-capable IDEs.
  • Support has been added to the JPA server for token :not-in queries.
  • SearchNarrowingInterceptor can now be used to automatically narrow searches to include a code:in or code:not-in expression, for mandating that results must be in a specified list of codes.
  • Support has now (finally!) been added for the FHIR Bulk Import ($import) operation.
  • A consent service implementation that enforces search narrowing rules specified by the SearchNarrowingInterceptor has been added.
  • GET resource with _total=accurate and _summary=count if consent service enabled should throw an InvalidRequestException. This issue has been fixed.
  • Reindexing jobs were not respecting the passed in date range in SearchParams. We now take date these date ranges into account when running re-indexing jobs.
  • The server now supports date searches with the NOT_EQUALS (ne) prefix.
  • Previously the Fhir parser would only set the resource type on the resource ID for resources which implemented IDomainResource. This caused a few resource types to be missed. This has been corrected, and resource type is now set on the id element for all IBaseResource instances instead.

CLI Tool changes:

  • Previously there was no way to recreate freetext indexes for terminology entities. A new CLI operation, reindex-terminology now exists for this purpose.

JPA Server General Changes

  • _include now supports canonicals as well as standard references.
  • The resource JSON can now be stored and retrieved in the Lucene/Elasticsearch index. This enables some queries to provide results without using the database. This is enabled via DaoConfig.setStoreResourceInLuceneIndex()
  • An occasional concurrency failure in AuthorizationInterceptor has been resolved. Thanks to Martin Visser for reporting and providing a reproducible test case!
  • When cross-partition reference Mode is used, the rest-hook subscriptions on a partition enabled server would cause a NPE. This has been resolved.
  • Group Bulk Export (e.g. Group/123/$export) now additionally supports Organization and Practitioner as valid _type parameters. This works internally by querying using a _has parameter

JPA Server Performance Changes

  • When deleting a large ValueSet operation was timing out. This issue has been fixed.
  • Performance for JPA Server ValueSet expansion has been significantly optimized in order to minimize database lookups, especially with large expansions.
  • When using JPA persistence with Hibernate Search (Lucene or Elasticsearch), simple FHIR queries that can be satisfied completely by Hibernate Search no longer query the database.
  • Added a new setting to BinaryStorageInterceptor which allows you to disable binary de-externalization during resource reads.

Database-specific Changes

  • When searching for date search parameters on Postgres, ordinals could sometimes be represented as strings, causing a search failure. This has been corrected.
  • A regression in HAPI FHIR 5.5.0 meant that very large transactions where the bundle contained over 1000 distinct client-assigned resource IDs could fail on MSSQL and Oracle due to SQL parameter count limitations.

Terminology Server and Validation Changes

  • ValueSet pre-expansion was failing when number of concepts was larger than configured BooleanQuery.maxClauseCount value (default is 1024). This is now fixed.
  • A regression in HAPI FHIR 5.7.0 meant that when UnknownCodeSystemWarningValidationSupport was configured for WARNING behaviour, validating a field with an implicit code system could incorrectly result in an error.
  • We now Provide a Remote Terminology Service implementation for the $translate operation.
  • The JPA server terminology service can now process IS-A filters in ValueSet expansion on servers with Hibernate Search disabled.
  • HAPI-FHIR no longer performs Repository Validation on resources that are implicitly created, e.g. placeholder resources.

HAPI FHIR 5.7.0 (Sojourner)

22 Feb 18:34
Compare
Choose a tag to compare

First release for 2022 comes with version 5.7.0, Sojourner!

Highlights of this release are shown below. See the Changelog for a complete list. There will be a live Webinar (recording available on-demand afterward) on Feb 17 2021. Details available here: https://www.smilecdr.com/quarterly-product-release-webinar-reminder

General Client/Server/Parser Changes

  • Calling the $document operation previously omitted the fullUrl of the bundle entries. This has been corrected.
  • New configuration option added to validate bundle resources concurrently.
  • Fixed language code validation so that it is case insensitive (eg, en-US, en-us, EN-US, EN-us should all work)
  • Implement support for $member-match operation by coverage-id or coverage-identifier. (Beneficiary demographic matching not supported)
  • Fixed a bug in pagination of the $everything operation when using offset mode.
  • Transactions with entries that have request.url values that are fully qualified urls will now be rejected.
  • Previously, $binary-access-read and other operations that return neither method outcomes nor resources were causing no invocation of the SERVER_OUTGOING_RESPONSE pointcut. This has been corrected, and those operations will now correctly invoke SERVER_OUTGOING_RESPONSE.
  • Added ability to specify max code lengths for supported Phonetic Encoders (Metaphone, Double_Metaphone).
  • Added ability to load Implementation Guide packages from filesystem by supporting the file:/ syntax of url.

JPA Server General Changes

  • In the JPA server, the token :of-type modifier is now supported. This is an optional feature and must be explicitly enabled (default is disabled).
  • Added http://hapifhir.io/fhir/StructureDefinition/subscription-delivery-retry-count extension that can be provided to a subscription to define a specific retry strategy.
  • Provided a Remote Terminology Service implementation for the $validate-code Operation."
  • Fixed a race condition in tag creation when multiple identical tags were being created.
  • Added the ability for rest hook subscriptions to send Delete requests

JPA Server Partitioning Changes

  • Added partition support for subscriptions. Subscriptions will now only match resource from the same partition
  • Added support for cross-partition subscriptions. Subscription in the default partition can now listen to resource changes from all partitions
  • In rare cases where patient ID String happened to have hashCode equal to Integer.MIN_VALUE, PatientIdPartitionInterceptor would generate an invalid partition ID. This has been fixed.

Terminology Server and Validation Changes

JPA Server MDM Enhancements

  • Previously in configuring MDM, you were only allowed to set a single eidSystem which was global regardless of how many resource types you were performing MDM on. This has been changed. That field is now deprecated, and a new field called eidSystems (a json object) should be used instead.

Performance Changes

  • A redundant set of hash calculations in the JPA server was eliminated.
  • Code System deletion background tasks were taking over a day to complete on very large CodeSystems for PostgreSQL, SQL Server and Oracle databases. That was improved now taking less than an hour in all three platforms
  • A number of minor optimizations have been added to the JsonParser serializer module as well as to the transaction processor. These optimizations lead to a significant performance improvement when processing large transaction bundles (i.e. transaction bundles containing a larger number of entries).
  • Fixed a serious performance issue with the $reindex operation.
  • Improved validation performance by switching validation serialization from XML to JSON.
  • Significantly improved $delete-expunge performance by adding database indexes, and filtering needed foreign keys to delete by resource type.
  • A new JPA setting has been added to DaoConfig settings called Inline Resource Text Below Size. This improves read/write performance (often by a significant amount) at the expense of a slightly larger amount of disk usage.
  • Improved the performance of the query for searching by chained search parameter when the Index Contained Resources feature is enabled.

Security Changes

  • Users were able to access data on partitions they did not have access to by using pagination links generated by users who did have access.

HAPI FHIR 5.6.0 (Raccoon)

17 Nov 18:51
Compare
Choose a tag to compare

Welcome to the winter-ish release of HAPI-FHIR 5.6.0!

HAPI FHIR 5.6.0 (Codename: Raccoon) brings a whole bunch of great new features, bugfixes, and more.

Highlights of this release are shown below. See the Changelog for a complete list. There will be a live Webinar (recording available on-demand afterward) on November 18 2021. Details available here: https://www.smilecdr.com/quarterly-product-release-webinar-reminder

Security Changes

  • Add new RuleBuilder options which allow you to specify additional resources and search parameters which match a given compartment. More explanations of the enhancements can be found in the documentation.
  • Previously, when a search query explicitly includes a search parameter that is for the same resource type but a different resource instance from the one(s) specified on the authorized list, the search narrowing interceptor would include both search parameters in the final query, resulting in an empty bundle being returned to the caller. Now, such a call will result in a 403 Forbidden error, making it more clear why no resources were returned.
  • Inline match URL searches (e.g. search URLs for conditional creates, conditional updates, etc.) are now subject to the same security and access control checks as other searches.

General Client/Server/Parser Changes

  • HAPI-FHIR will now index canonical references if the base url is set via property.
  • Added displayLanguage support for CodeSystem $lookup operation.
  • Loosened BCP47 validation to permit languages that are without region, e.g. nl instead of nl-DE or nl-NL.
  • Previously, % symbol was causing searches to fail to return results. This has been corrected.
  • Added an NDJSON parser.
  • Previously, the package registry would not work correctly when externalized binary storage was enabled. This has been corrected.

CLI Tool changes:

  • This PR eliminates the search coordinator threadpool, and executes searches synchronously on the HTTP client thread.

JPA Server General Changes

  • Improved ordinal date searches to handle lower granularity MONTH and YEAR searches.
  • Support for the _language search parameter has been dropped.
  • FHIR Batch transaction GET operations are now executed in parallel where applicable.
  • Fixed a regression which causes transactions with multiple identical ifNoneExist clauses to create duplicate data.
  • Added the ability for Hibernate Search to prefix all elasticsearch tables it creates, allowing you to have multiple HAPI-FHIR's using the same elasticsearch instance.
  • Support has been added for chained searches traversing contained resources much more effectively.
  • Experimental additions have been made to search parameter indexing in lucene. These can be enabled via advanced property.
  • Fixed a critical bug with Postgresql database which caused the VACUUMLO tool to delete data.
  • A new _id parameter has been added to the Patient/$everything type-level operation so you can narrow down a specific list of patient IDs to export.

JPA Server Partitioning Changes

  • Swagger UI is now supported in partitioned servers

Terminology Server and Validation Changes

  • Provided a Remote Terminology Service implementation for the $lookup Operation.
  • Support added for uploading non-current versions of LOINC ValueSets

JPA Server MDM Enhancements

  • _mdm parameter support has been added to the $everything operation.
  • Modified the MDM_AFTER_PERSISTED_RESOURCE_CHECKED pointcut to include additional information.
  • The $mdm-clear operation has been refactor to use spring batch.
  • Added $mdm-create-link operation.

HAPI FHIR 5.5.3

01 Nov 14:14
Compare
Choose a tag to compare

This release primarily focuses on the addition of enhanced contained resource search capabilities.

#3088 : Traverse outbound references from contained resources during search
#3100 : Enable chained searches over multiple contained resources
#3106 : Chained searches over complex models

HAPI FHIR 5.5.2

11 Oct 12:49
Compare
Choose a tag to compare

This release includes a small set of changes. Notably:

#2935: Fixed a bug with searching with a keyword that contained a trailing percent symbol.
#2967: Initial support for search supporting chains where the chain traverses a contained element.

HAPI FHIR 5.5.1

01 Sep 18:48
Compare
Choose a tag to compare

During usage of HAPI-FHIR v5.5.0, it was found that Transaction bundles that contained duplicate conditionalCreates were not being successfully collapsed. The issue and fix can be found here. This release contains only this fix on top of v5.5.0.