Another quarter gone by, another HAPI-FHIR release.
HAPI FHIR 5.5.0 (Codename: Pangolin) 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 August 18 2021. Details available here: https://www.smilecdr.com/quarterly-product-release-webinar-reminder
Tag Versioning Mode, which determines how tags are maintained.
ForceOffsetSearchModeInterceptor. This interceptor forces all searches to be offset searches, instead of relying on the query cache.
$reindexoperation which creates a Spring Batch job to reindex selected resources.
_revincluderesources to be added to a single search page result. In addition, the include/revinclue processor have been redesigned to avoid accidentally overloading the server if an include/revinclude would return unexpected massive amounts of data.
Cache-Control: no-store) the loading of
_revincludewill now factor the maximum include count."
It's time for another release of HAPI FHIR.
HAPI FHIR 5.4.0 (Codename: Pangolin) 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 May 20 2021. Details available here: https://www.smilecdr.com/quarterly-product-release-webinar-reminder
Prefer: handling=lenientheader has been added via an optional interceptor.
_listsearch parameter has been added to the JPA server
:containedmodifier has been added, allowing searches to select from data in contained resources found within the resource being searches. Note that this feature is disabled by default and must be enabled if needed.
X-Upsert-Extistence-Check(note there is a typo in the name, this will be addressed in the next release of HAPI FHIR! Please be aware if you are planning on using this feature) can be added which avoids existence checks when using client assigned IDs to create new records. This can speed up performance.
Observation?patient:mdm=Patient/123can be used to search for Observation resources belonging to
Patient/123but also to other MDM-linked patient records.
It's August, so it's time for our next quarterly relese: HAPI FHIR 5.2.0 (Codename: Numbat).
Major New Features:
The JPA SearchBuilder (which turns FHIR searches into SQL statements to be executed by the database) has been completely rewritten to not use Hibernate. This allows for much more efficient SQL to be generated in some cases. For some specific queries on a very large test repository running on Postgresql this new search builder performed 10x faster. Note that this new module is enabled by default in HAPI FHIR 5.2.0 but can be disabled via a DaoConfig setting. It is disabled by default in Smile CDR 2020.11.R01 but will be enabled by default in the next major release.
Support for RDF Turtle encoding has been added, finally bringing native support for the 3rd official FHIR encoding to HAPI FHIR. This support was contributed by Josh Collins and Eric Prud'hommeaux of the company Janeiro Digital. We greatly appreciate the contribution! To see an example of the RDF encoding: hapi.fhir.org/baseR4/Patient?_format=rdf
Integration with remote terminology services has been improved so that required bindings to closed valuesets are no longer delegated to the remote terminology server. This improves performance since there is no need for remote services in this case.
CodeSystem/$validate-code operation has been implemented for R4+ JPA servers.
The JPA Terminology Server is now version aware, meaning that multiple versions of a single CodeSystem can now be stored in a single FHIR terminology server repository. ValueSet expansion, CodeSystem lookup, and ConceptMap translation are all now fully version aware. Note that implementing support for fully versioned terminology is mostly complete, but some validation operations may still not work. This should be completed by our next major release.
ValueSet expansion with filtering (e.g. using the
filter parameter on the
$expand operation) has now been implemented in such a way that it fully supports filtering on pre-expanded ValueSets, including using offsets and counts. This is a major improvement for people building picker UIs leveraging the $expand operation.
Identifier matchers have been added, providing native FHIR support for matching on resource identifiers
$empi-clear operation performance has been greatly improved
Other Notable Improvements:
A new combined "delete+expunge" mode has been added to the DELETE operation in the JPA server. This mode deletes resources and expunges (physically deletes) them in a single fast operation. Note that with this mode must be enabled, and completely bypasses interceptor hooks notifying registered listeners that data is being deletes and expunged. It is several orders of magnitude faster when deleting large sets of data, and is generally intended for test scenarios.
The Package Server module now supports installing non-conformance resources from packages.
_typeFilter parameter has been implemented for the $bulk-export module.
As always, see the changelog for a full list of changes.
Thanks to everyone who contributed to this release!