This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Interaction Versioning

From HL7Wiki
Revision as of 05:43, 28 May 2006 by Rene spronk (talk | contribs)
Jump to navigation Jump to search

(from an MnM discussion and decision during the Sept 2005 WGM)

Artifacts using traditional identifiers (SSDD_AAnnnnnnRRvv) are assigned versions under two circumstances:

  1. When the artifact passes membership and is Semantically Backward Compatible with the previous version. If not semantically backward compatible, you *must* assign a new identifier, not a new version.
  2. When dependents of the artifact have been assigned new versions, the parent of those dependent artifacts will be assigned a new version as part of the normative release.

Caveats:

  • Assumption is that 'semantically backward compatible' means not necessarily schema-compatible, but doesn't allow for complete remodeling of content either.
  • Non-semantically compatible changes in approach to Datatypes, RIM, Vocabulary and/or ITS could result in a mass version change to all artifacts.
  • The version specified in the instance interactionId attribute must be the same as the interaction version published in the edition specified in the instance versionCode attribute.

Implication: The complete version of all message types, CMETs, Vocabulary, Datatypes and ITS is fully pre-coordinated in the version of the identifier combined with the Release version.

(clarification in a later e-mail)

Not all versions are pre-coordinated in the interaction version. There are two separate versioning activities that go on:

  • infrastructure versioning (CMETs, datatypes, vocabulary, transports) which is communicated using the "version" attribute and has values such as "2006NormativeEdition". The version indicates "all infrastructure stuff that was normative as of the point and time the normative edition was released". For early adopters, it could be one of the development editions or an equivalent "packaged release" by a particular Realm.
  • interaction versioning (trigger events, message payloads, receiver responsibilities) which is communicated using the version component of the interaction id. A new interaction version is issued whenever an interaction passes normative ballot, and binds specific versions of trigger events, message payloads & receiver responsibilities.

In other words you can use new CMETs and datatypes and vocabulary just by declaring a different version attribute without creating a new version of the interaction.