@dmuylwyk dmuylwyk released this May 28, 2018 · 282 commits to master since this release

Assets 10

May 28, 2018 - HAPI FHIR 3.4.0 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This release brings lots of fixes and some significant enhancements. See the changelog for a full list of changes. Notable changes include:

  • HAPI FHIR now supports and requires JDK 8. Support for JDK 7 and below has officially been dropped.
  • The R4 draft structures have been updated to the latest versions.
  • Support for LOINC has been significantly improved thanks to a collaboration between the HAPI FHIR project and the Regenstrief Institute. The HAPI FHIR terminology service now imports LOINC parts, ValueSets, ConceptMaps, and all related artifacts.
  • Support for the ConceptMap $translate]]> method has been implemented, meaning that the terminology service now covers validation as well as translation use cases. Further enhancements are planned. A utility has also been added to the HAPI FHIR CLI for importing and exporting ConceptMaps as CSV files for external editing.
  • Several index table enhancements have been made to the JPA server schema in anticipation of future changes that will improve performance and decrease index sizes. These enhancements consist of new columns that have been added and will be populated in HAPI FHIR 3.4.0 but will not actually be used until HAPI FHIR 3.5.0. Please see the changelog for an upgrade script that should be run.
  • The HAPI FHIR CLI is now available for OSX users using Homebrew.
  • The validation framework has been further harmonized so that DSTU2 resources will now also share the harmonized DSTU3/R4 validation codebase. This has resulted in a significantly more accurate validator for DSTU2 resources.
  • A number of other enhancements have also been made, as well as several significant bugfixes.

Thanks to everyone who contributed to this release!

- Diederik Muylwyk



@jamesagnew jamesagnew released this Mar 29, 2018 · 490 commits to master since this release

Assets 10

Mar 29, 2018 - HAPI FHIR 3.3.0 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This release brings logs of fixes and some significant enhancements.See the changelog for a full list of changes. Notable changes include:

  • A schema change to the JPA server has been made which will result in significantly less storage space being used and better write performance for repositories which contain a large number of resource, or larger resource bodies. Prior to this change, resource bodies were stored in duplicate in two places in the database and this has now been corrected.
    Note that a database migration script must be run for this upgrade, see the changelog for details.
  • The validator has been refactored to use a single codebase across DSTU3/R4 validation which means that any fixes and enhancements will now affect both. This makes the DSTU3 validator much more complete in terms of support for advanced validation as well.
  • Several significant features were contributed by the community, including native OSGi support (several HAPI FHIR JARs now have OSGi metadata included) as well as initial experimental support for ElasticSearch instead of Raw Lucene for the JPA server.
  • Several enhancements and bugfixes have been made to the interceptor framework.
  • Many other bugfixes and enhancements have been made as well

Note also that we are hiring! If you have an interest in helping us develop HAPI FHIR or work on implementation projects, please get in touch!

Thanks to everyone who contributed to this release! The HAPI FHIR community continues to get bigger and bigger. Together we are transforming healthcare.

- James Agnew

@jamesagnew jamesagnew released this Jan 14, 2018 · 725 commits to master since this release

Assets 10

Jan 13, 2018 - HAPI FHIR 3.2.0 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This is a fairly light release, with only a small number of new features, and a few bugfixes. See the changelog for a full list of changes.

  • Support for using SearchParameter resources to define custom parameters in the JPA server has been backported to DSTU2, meaning that DSTU2 servers can now user this functionality (previously only DSTU3/R4 supported this)
  • Several tweaks and enhancements to the server interceptor framework have been added
  • Multitenancy support has been added to the server framework (note that this is only the plain server framework at this point, not the JPA server)
  • The R4 structures have been synced to the latest definitions in anticipation of the January FHIR Connecathon (see Downloads for version details)
  • Several bugfixes have been made

Thanks to everyone who contributed to this release!

- James Agnew

@jamesagnew jamesagnew released this Nov 23, 2017 · 800 commits to master since this release

Assets 10

HAPI FHIR 3.1.0 has been released!

This release brings several interesting things:

  • Support for Android has been restored, and improved while we're at it! The use of a special "uberjar" with its own classifier is no longer required, hapi-fhir-android works as a normal Gradle dependency in your Android build. See the HAPI FHIR Android Integration Test for an example.
  • Support for the Cache-Control header has been added for JPA server searches, allowing a client to request that cached results not be used.
  • A number of bugs were fixed and performance improvements were made (see the changelog for a full list)
  • Spring has been upgraded to the 5.0 series.
  • Some initial refactoring has occurred towards enabling ElasticSearch support in JPA server. Note that any existing JPA projects will need to add an additional property in their Spring config called hibernate.search.model_mapping. See this line in the example project.
  • Support for Spring Boot has been added to many of the modules of the libaray. See the Spring Boot Samples for examples of how to use this.

Thanks to everyone who contributed to this release!

@jamesagnew jamesagnew released this Sep 27, 2017 · 974 commits to master since this release

Assets 10

Sep 27, 2017 - HAPI FHIR 3.0.0 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This is a massive release, and includes a huge number of enhancements, fixes, and new features. Unfotunately it also brings a few breaking API changes so we are calling it version 3.0.0 (we are also moving to SemVer versioning).

As always, the changelog has the full list of changes in this release. I am outlining a few of the important ones here:

FHIR R4 and DSTU1 Support

Support for FHIR R4 (current working draft) has been added (in a new module called hapi-fhir-structures-r4) and support for FHIR DSTU1 (hapi-fhir-structures-dstu) has been removed. Removing support for the legacy DSTU1 FHIR version was a difficult decision, but it allows us the opportunitity to clean up the codebase quite a bit, and remove some confusing legacy parts of the API (such as the legacy Atom Bundle class).

A new redesigned table of HAPI FHIR versions to FHIR version support has been added to the Download Page

Module Restructuring

HAPI FHIR's modules have been restructured for more consistency and less coupling between unrelated parts of the API.

A new complete list of HAPI FHIR modules has been added to the Download Page. Key changes include:

  • HAPI FHIR's client codebase has been moved out of hapi-fhir-base and in to a new module called hapi-fhir-client. Client users now need to explicitly add this JAR to their project (and non-client users now no longer need to depend on it)
  • HAPI FHIR's server codebase has been moved out of hapi-fhir-base and in to a new module called hapi-fhir-server. Server users now need to explicitly add this JAR to their project (and non-server users now no longer need to depend on it)
  • As a result of the client and server changes above, we no longer need to produce a special Android JAR which contains the client, server (which added space but was not used) and structures. There is now a normal module called hapi-fhir-android which is added to your Android Gradle file along with whatever structures JARs you wish to add. See the Android Integration Test to see a sample project using HAPI FHIR 3.0.0. Note that this has been reported to work by some people but others are having issues with it! In order to avoid delaying this release any further we are releasing now despite these issues. If you are an Android guru and want to help iron things out please get in touch. If not, it might be a good idea to stay on HAPI FHIR 2.5 until the next point release of the 3.x series.
  • A new JAR containing FHIR utilities called hapi-fhir-utilities has been added. This JAR reflects the ongoing harmonization between HAPI FHIR and the FHIR RI codebases and is generally required in order to use HAPI at this point (if you are using a dependency manager such as Maven or Gradle it will be brought in to your project automatically as a dependency)

Package Changes

In order to allow the reoganizations and decoupling above to happen, a number of important classes and interfaces have been moved to new packages. A sample list of these changes is listed below. When upgrading to 3.0.0 your project may well show a number of compile errors related to missing classes. In most cases this can be resolved by simply removing the HAPI imports from your classes and asking your IDE to "Organize Imports" once again. This is an annoying change we do realize, but it is neccesary in order to allow the project to continue to grow.

  • IGenericClient moved from package ca.uhn.fhir.rest.client to package ca.uhn.fhir.rest.client.api
  • IRestfulClient moved from package ca.uhn.fhir.rest.client to package ca.uhn.fhir.rest.client.api
  • AddProfileTagEnum moved from package ca.uhn.fhir.rest.server to package ca.uhn.fhir.context.api
  • IVersionSpecificBundleFactory moved from package ca.uhn.fhir.rest.server to package ca.uhn.fhir.context.api
  • BundleInclusionRule moved from package ca.uhn.fhir.rest.server to package ca.uhn.fhir.context.api
  • RestSearchParameterTypeEnum moved from package ca.uhn.fhir.rest.server to package ca.uhn.fhir.rest.api
  • EncodingEnum moved from package ca.uhn.fhir.rest.server to package ca.uhn.fhir.rest.api
  • Constants moved from package ca.uhn.fhir.rest.server to package ca.uhn.fhir.rest.api
  • IClientInterceptor moved from package ca.uhn.fhir.rest.client to package ca.uhn.fhir.rest.client.api
  • ITestingUiClientFactory moved from package ca.uhn.fhir.util to package ca.uhn.fhir.rest.server.util

Fluent Client Search Change

Because the Atom-based DSTU1 Bundle class has been removed from the library, users of the HAPI FHIR client must now always include a Bundle return type in search calls. For example, the following call would have worked previously:

Bundle bundle = client.search().forResource(Patient.class)
  .where(new TokenClientParam("gender").exactly().code("unknown"))
  .prettyPrint()
  .execute();
This now needs an explicit returnBundle statement, as follows:
Bundle bundle = client.search().forResource(Patient.class)
  .where(new TokenClientParam("gender").exactly().code("unknown"))
  .prettyPrint()
  .returnBundle(Bundle.class)
  .execute();

Thanks to everyone who contributed to this release, either by submitting pull requests, suggesting new features, or filing bug requests!

- James Agnew

@jamesagnew jamesagnew released this Jun 8, 2017 · 1192 commits to master since this release

Assets 10

June 8, 2017 - HAPI FHIR 2.5 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This release brings number of bugfixes and improvements. Most importantly for many users, this release brings a significant performance enhacement to the JPA server for searches. Essentially our search module has been rewritten to stream results back to the client as soon as they become available, and to reuse previous cached search results for a period of time. This cacheing behaviour in the JPA server is important to consider, since it does mean that your clients can see stale search results for a short period of time under some circumstances. The default cache period is 1 minute, but this can be changed or even disabled through configuration.

As always, the changelog has the full list of changes in this release. Thanks to everyone who contributed to this release, either by submitting pull requests, suggesting new features, or filing bug requests!

  • James Agnew

@jamesagnew jamesagnew released this Apr 20, 2017 · 1340 commits to master since this release

Assets 10

April 19, 2017 - HAPI FHIR 2.4 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This release brings the STU3 definitions up to the final R3 (aka STU3) definitions (FHIR 3.0.1)! Happy R3 everybody!

As always, the changelog has the full list of changes in this release. Thanks to everyone who contributed to this release, either by submitting pull requests, suggesting new features, or filing bug requests!

We were later than we would have liked in delivering this release, as we are focusing heavily on performance improvements in the JPA module. We were hoping to have our performance branch merged in time for this release, but it needs a bit more time to stabilize. We will be releasing the initial snapshot builds of HAPI FHIR 2.5-SNAPSHOT immediately following this release. Please try these out if you want to test the JPA module with significant performance improvements when searching large datasets, or under heavy load.

- James Agnew

@jamesagnew jamesagnew released this Mar 18, 2017 · 1415 commits to master since this release

Assets 10

March 17, 2017 - HAPI FHIR 2.3 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This release brings the STU3 definitions up to the latest definitions (FHIR 1.9.0 - SVN 11501). It also brings in the latest validator fixes, as well as a number of other useful enhancements and fixes, including:

As always, the changelog has the full list of changes in this release. Thanks to everyone who contributed to this release, either by submitting pull requests, suggesting new features, or filing bug requests!

- James Agnew

@jamesagnew jamesagnew released this Dec 20, 2016 · 1604 commits to master since this release

Assets 8

December 20, 2016 - HAPI FHIR 2.2 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This release is mainly to bring the STU3 definitions up to the latest definitions (FHIR 1.8.0 - SVN 10528) and is the version that should be used for the upcoming San Antonio Connectathon.

This release also introduces a new JAR (and associated Maven dependency library) called hapi-fhir-structures-dstu2.1. This module provides the structure classes for FHIR 1.4.0 (Montreal spanshot, sometimes referred to as DSTU2.1) which is used by a number of projects.

This release also brings a few miscellaneous bug fixes, and a few validation enhancements. As always, the changelog has the full list.

Note, to build this release from source, use commit 0ec61533a8d3f4c36fb38c09000f867349940157. The GitHub tag for this release accidentally points to the commit before this one.

  • James Agnew

@jamesagnew jamesagnew released this Nov 12, 2016 · 1694 commits to master since this release

Assets 7

November 11, 2016 - HAPI FHIR 2.1 Released - The next release of HAPI has now been uploaded to the Maven repos and GitHub's releases section.

This release brings several primary changes:

  • STU3 definitions have been updated to the latest definitions (FHIR 1.7.0 - SVN 10129)
  • Add support for FHIR Patch operation (thanks to Peter Girard of McKesson for his help on this!)
  • Android library has been streamlined to use the OkHttp client by default (no more fighting with out-of-date Apache HttpClient. Thanks to Matt Clarke of Orion Health for his help on this!)
  • The STU3 client now supports both the Conformance resource (which is going away) and the new CapabilityStatement (which replaces it). This should allow for a bridge while servers are migrated to the new resource type being returned by the /metadata endpoint.
    This release also brings a number of bugfixes and also quite a few enhancements. As always, the changelog has the full list of changes in this version. Among the enhancements in this release are:

As always, we welcome new contributions and contributors! Please feel free to get in touch if you are interested in getting involved with HAPI but don't know where to start.

  • James Agnew