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

Difference between revisions of "Interaction Versioning"

From HL7Wiki
Jump to navigation Jump to search
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
(from an MnM discussion and decision during the Sept 2005 WGM)
+
{{Lore}}
 +
''See the [[Talk:{{PAGENAME}}|discussion page]] for discussions.''
 +
 
 +
==Issue==
  
 
Artifacts using traditional identifiers (SSDD_AAnnnnnnRRvv) are assigned versions under two circumstances:
 
Artifacts using traditional identifiers (SSDD_AAnnnnnnRRvv) are assigned versions under two circumstances:
 
#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.
 
#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.
#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.   
+
#When dependencies of the artifact (trigger events, wrappers, payloads) have been assigned new versions, the parent of those dependent artifacts will be assigned a new version as part of the normative release.   
  
 
Caveats:  
 
Caveats:  
 
*Assumption is that 'semantically backward compatible' means not necessarily schema-compatible, but doesn't allow for complete remodeling of content either.
 
*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.
+
*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.
 
*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.
 
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.
  
Question: the version of what things/artefacts can NOT be derived from the interaction identifier version? Or: the version of what things/artefacts can ONLY be derived from the Release/versionCode attribute? [[User:Rene spronk|Rene spronk]] 06:41, 30 Apr 2006 (CDT)
+
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".  See [[Interaction Conformance and Versioning - Implementation Issues]] for details.
 +
*[[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.

Latest revision as of 04:50, 24 October 2006

See the discussion page for discussions.

Issue

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 dependencies of the artifact (trigger events, wrappers, payloads) 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.

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". See Interaction Conformance and Versioning - Implementation Issues for details.
  • 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.