2nd DSTU Draft For Comment

This page was published as part of FHIR v0.4.0: Draft For Comment (January 2015 Ballot). It has been superceded by R4. For a full list of available versions, see the Directory of published versions .. Page versions: R5 R4B R4 R3 R2

See below for version history details.

1.5 Version History

This is the developmental version of FHIR. The only changes tracked here are changes from after the publication of the DSTU. For changes from before this, see the DSTU Version History. Note that a full archive history of everything is available through the HL7 gForge SVN archives.

1.5.1 How FHIR Versioning works

This section is draft

The FHIR version policy is based on Semantic versioning, but with some differences due to fact that FHIR is a specification, not a software API.

There is a single development version of FHIR. This undergoes cycles of development as managed by HL7. Each major cycle of development is concluded by a formal ballot, and then a new specification is published. In version control terms, each published specification is a branch off the development trunk, which may then itself undergo further change as HL7 maintains the published specification.

The following kinds of changes may be made to the specification:

  • Non-substantiative changes do not cause changes in any conformant application. For example, section renumbering, broken links, style corrections, typos, and clarifications that do not change the meaning. Some corrections may be judged not to create any expectation of change to a conformant application
  • Substantiative changes that are not breaking. These introduce new functionality - changes to the specification that create new capabilities, but would not render existing applications non-conformant if they do not change
  • Breaking changes would mean that previously conformant applications are not longer conformant

Note that the following are, by definition, considered non-breaking changes, even though some implementations (including the reference implementations) may not be able to handle these changes without error:

  • creation of new resources
  • adding new elements in an existing resource
  • defining new datatypes
  • Adding new API operations

Also, the examples are never substantiative - every effort is made to ensure that they are correct, but changes to the examples in the specification are not considered substantiative.

Each FHIR version is identified by a string composed from 4 parts: publication.major.minor.revision.

publication
  • Incremented when HL7 publishes FHIR as an updated specification, e.g. a DSTU or normative version of FHIR
  • HL7 plans to do this every 1 to 2 years
  • The first DSTU was version 0
major
  • Increments every time a breaking change is made
  • When a new publication is made, this is reset to 0 in the publication, and 1 in the development branch
  • Since HL7 does not make breaking changes as technical corrections to a published specification, these versions of FHIR always have a version number X.0.n.r
  • Because the development version is the subject of ongoing analysis, debate, ballot and repeated alterations, breaking changes are to be expected
minor
  • Increments every time a substantive change is made
  • Resets to 0 any time the major version changes
revision
  • Incremented any time a change is made to the specification
  • At present, this is the SVN version number (this allows anyone to reconstruct the source from which the version was built from)

Additional notes:

  • Changes to a formally published specification (except for minor publishing corrections, such as correcting broken links) are only made via announced technical corrections
  • The reference implementations have 2 versions - the version of the specification that they implement, and their own version. Consult the reference implementation documentation for policy regarding this version number
  • The specification published by the continuous integration service (http://hl7-fhir.github.io/) build may not conform to this version policy, but the versions published on the HL7 web site will (Current published specification at http://hl7.org/implement/standards/FHIR/) and current development version at http://hl7.org/implement/standards/FHIR-Develop/)
  • The first DSTU was published prior to these rules being agreed as v0.80-2286. This has been updated to 0.0.81.2382 as a technical correction to align with this policy on 9-May 2014

1.5.2 Version History since DSTU #1

This table lists substantiative changes only.

Version Changes
0.4.0

Draft For Comment, January 2015 Ballot

Breaking Changes (full list):

  • Replace atom and taglist with a native Bundle format (3728, 3558, 2889) (and also Binary)
  • JSON: change how extensions are represented (3471)
  • RESTful API: change how version specific upgrades work (3451)
  • DataTypes:
  • Rename Schedule to Timing (3536, 3236)
  • Rename Contact to ContactPoint (3533) and swap order of elements (3108))
  • Address - change zip to postCode (2888)
  • Quantity: Correct schema spelling for "QuantityCompararator" (3531)
  • Change allowable values for the id type to include capital letters, and allow up to 64 chars (3750)
  • Restructure Profile - only one structure, and pull ExtensionDefinition out of Profile (3647, 3498), and pull SearchParameter out (3626)
  • Profile: allow 0..* discriminator (3131), and change the way discriminators work across resource boundaries (3124) + generate multiple types properly (2856)
  • remove _validate interaction, and replace with $validate operation (3686)
  • Patient: separate birth time from birthDate (3731), Change Administrative Gender from a CodableConcept to a Code. Also fixed the values as male|female|other|unknown with mappings to v2 and v3 (3070)
  • Supply: Change Name of supply.kind binding (3412)
  • DocumentReference: change encoding of Hash to Base64 (3291)
  • Group: rename header to title (3126)
  • Condition: split relatedItem into two (3111)
  • Questionnaire: drop questionnaire.group.question.remarks (3255) and move omitReason from extension to base resource (3260)
  • QuestionnaireAnswers: allow multiple answers (3146)
  • ValueSet: replace ValueSet.compose.include.code with ValueSet.compose.include.concept (3258), added new rules about expansion content (3138)
  • Media: Rename element 'dateTime' to 'created' (3174) and length to duration (2866)
  • Remove DeviceObservationReport and Query
  • Collapse AdverseReaction into AllergyIntolerance
  • Appointment changes - individual field renamed to actor, and added mappings to v2 and v3

New Resources:

New Implementation Guides

0.3.0
0.2.1
  • Minor new optional elements on value set for metadata, new extensions for all the rest of the VSD project metadata, formal profile to express basic minimum metadata for value set
0.2.0
  • Namespace: adjustments based on Grahame's feedback
0.1.0

Note: a useful tool for displaying the differences between pages is the W3C HTML Diff engine.