New #FHIR Open License

Oct 1, 2014

Today, HL7 released an updated version of the FHIR™ Draft Standard, which is now covered under a Creative Commons License: No Rights Reserved. This marks the formal adoption of a recognized open license for the FHIR specification, and one that is truly open: this is an unencumbered license. Under the terms of the Creative Commons license, HL7:

… has dedicated the work to the public domain by waiving all of it’s rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.

This is a truly open license - even more open than most open source projects, which usually require some form of attribution. However since FHIR is a standard, and many implementations will be required to implement it, it would be inappropriate to require acknowledgement of the specification. Note, though, that the reference implementations may require attribution - and most of them use a mix of BSD or Apache licenses that do.

It should be clear, though, that HL7 has not chosen the public domain license because we don’t care about FHIR - on the contrary, HL7 cares greatly about FHIR and is investing heavily in it. HL7 wants all health care systems, whether commercial or open source, to use the FHIR specification - hence the unencumbered license terms. Because HL7 cares about the specification, it means that HL7 needs to protect the Trademark carefully, since control of the FHIR specification is how HL7 derives value from it’s investment. So the specification itself makes this clear:

HL7 protects the “FHIR” trademark carefully. This means that:

  • You cannot publish an altered version of the FHIR specification unless it clearly identifies that it is a derivative specification, not FHIR itself
  • Derivative Specifications cannot redefine what conformance to FHIR means
  • The letter sequence “FHIR” can only appear as part of a product name with specific written agreement from HL7
  • You can only use the FHIR logo as part of a commercial product with specific written agreement from HL7
  • When used in other contexts, the word “FHIR” and the “FHIR” logo should bear the ™ symbol

The point isn’t to restrict the use of the name FHIR, but to prevent it from falling into ‘common use’. Where FHIR is used as part of an existing product name - whether a commercial product, or an open source server or library, please contact [email protected] to ask for this permission (I need to do this myself). Note: As a point of reference, you can compare these rules to the Mozilla Foundation’s equivalent policy.

History

In the past, FHIR was published under a different license, adapted from OMG (thanks for Richard Soley for allowing this), but using a custom license increased implementation costs, and caused perceptions that the FHIR license wasn’t a proper open license. This new license doesn’t change the effective license terms that apply to FHIR at all - it’s just an expression of the same intent in a form that is more aligned with the open software and standards communities. Changing the license was a process that involved agreement from a very large number of people with HL7, and the fact that this has happened shows the importance that HL7 places in FHIR’s openness. I’d like also to thank two people outside HL7 who particularly contributed to the process - Paul Biondich (from Regenstrief / OpenMRS) and Larry Rosen.

Specification Technical Correction

The update to the license was accompanied by a technical correction to the specification itself. Quoting from the version history entry:

Fix major bug in reading/writing JSON instances: the json equivalent for xml:id is specified as “id” but the java reference implementation had been using “_id”.This is a breaking changed for users of the JSON representation using the Java reference implementation. Note also that this means thatall the example JSON instances in the specification were wrong; these have also been fixed in this update

Because of this, the reference implementations and the test servers accept either “id” or “_id”, but “id” is correct.

So the spec used to have, for JSON examples such as this one:

  "contained": [
    {
      "resourceType": "Observation",
      "_id": "obx1-4",

and now it has

  "contained": [
    {
      "resourceType": "Observation",
      "id": "obx1-4",

This only affected contained resources. Thanks for Doug Martin from Regenstrief for pointing this error out.

Reference Implementations

This updated version of the FHIR specification includes updated reference implementations, and an updated maven package has also been posted.