FHIR ballot issue: Identifying an extension

Oct 15, 2012

This issue is a follow on to the previous post about representing identifiers in FHIR. A FHIR extension is represented this way:

 <extension xmlns="http://hl7.org/fhir">
  <[**code**](null)><!-- **1..1** [id](null) Code that identifies the meaning of the extension --></code>
  <[**profile**](null)><!-- **1..1** [uri](null) Profile that defines the extension --></profile>
  <!-- content of the extension -->
 </extension>

So an extension is identified using a system:id pair, as discussed in the previous post, only called “profile” and “code” in this case. However this is a technical identifier, and the identification of the extension should simply be a url, like this:

 <extension xmlns="http://hl7.org/fhir">
  <definition><!-- **1..1** uri Where to find the definition of the extension --></definition>
  <!-- content of the extension -->
 </extension>

Where the definition would typically follow the pattern [url of profile]#[Profile.extensionDefn.code] like this:

 <code>http://hl7.org/fhir/registry/profiles/@iso-21090#updateMode<code>

if it references a formal extension definition (as it should). (btw, the registry doesn’t exist at that url, nor have we named the ISO 21090 profile, or it’s contents)

Discussion

This is a FHIR ballot issue. Comments on this blog post are discouraged – unless to point out outright errors in this analysis. Discussion will be taken up on the FHIR email list, with substantial contributions added to this wiki page. A doodle poll will be held for the final vote – this will be announced on the FHIR email list.