FHIR Extensions Pack v5.1.0-snapshot1 (2024-03-12)

This page is part of the FHIR Core Extensions Registry (v5.1.0-snapshot1: Release 5.1) based on FHIR (HL7® FHIR® Standard) v5.0.0. The current version which supersedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions

FHIR Infrastructure Work GroupMaturity Level: N/AStandards Status: InformativeSecurity Category: N/A Compartments: N/A

Primitive Datatypes

FML Conversion for primitive datatypes: R4 to R5 (Ready for Use)

/// url = 'http://hl7.org/fhir/StructureMap/Primitives4to5'
/// name = 'Primitives4to5'
/// title = 'FML Conversion for primitive datatypes: R4 to R5'
/// status = 'draft'

uses "http://hl7.org/fhir/4.0/StructureDefinition/base64Binary" alias base64BinaryR4 as source
uses "http://hl7.org/fhir/StructureDefinition/base64Binary" alias base64BinaryR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/boolean" alias booleanR4 as source
uses "http://hl7.org/fhir/StructureDefinition/boolean" alias booleanR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/canonical" alias canonicalR4 as source
uses "http://hl7.org/fhir/StructureDefinition/canonical" alias canonicalR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/code" alias codeR4 as source
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/date" alias dateR4 as source
uses "http://hl7.org/fhir/StructureDefinition/date" alias dateR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/dateTime" alias dateTimeR4 as source
uses "http://hl7.org/fhir/StructureDefinition/dateTime" alias dateTimeR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/decimal" alias decimalR4 as source
uses "http://hl7.org/fhir/StructureDefinition/decimal" alias decimalR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/id" alias idR4 as source
uses "http://hl7.org/fhir/StructureDefinition/id" alias idR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/instant" alias instantR4 as source
uses "http://hl7.org/fhir/StructureDefinition/instant" alias instantR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/integer" alias integerR4 as source
uses "http://hl7.org/fhir/StructureDefinition/integer" alias integerR5 as target
uses "http://hl7.org/fhir/StructureDefinition/integer64" alias integer64R5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/markdown" alias markdownR4 as source
uses "http://hl7.org/fhir/StructureDefinition/markdown" alias markdownR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/oid" alias oidR4 as source
uses "http://hl7.org/fhir/StructureDefinition/oid" alias oidR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/positiveInt" alias positiveIntR4 as source
uses "http://hl7.org/fhir/StructureDefinition/positiveInt" alias positiveIntR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as source
uses "http://hl7.org/fhir/StructureDefinition/string" alias stringR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/time" alias timeR4 as source
uses "http://hl7.org/fhir/StructureDefinition/time" alias timeR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/unsignedInt" alias unsignedIntR4 as source
uses "http://hl7.org/fhir/StructureDefinition/unsignedInt" alias unsignedIntR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/uri" alias uriR4 as source
uses "http://hl7.org/fhir/StructureDefinition/uri" alias uriR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/url" alias urlR4 as source
uses "http://hl7.org/fhir/StructureDefinition/url" alias urlR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/uuid" alias uuidR4 as source
uses "http://hl7.org/fhir/StructureDefinition/uuid" alias uuidR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/xhtml" alias xhtmlR4 as source
uses "http://hl7.org/fhir/StructureDefinition/xhtml" alias xhtmlR5 as target

imports "http://hl7.org/fhir/StructureMap/Element4to5"

group base64Binary(source src : base64BinaryR4, target tgt : base64BinaryR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "base64BinaryValue";
}

group boolean(source src : booleanR4, target tgt : booleanR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "booleanValue";
}

group canonical(source src : canonicalR4, target tgt : canonicalR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "canonicalValue";
}

group canonical2uri(source src : canonicalR4, target tgt : uriR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "canonical2uriValue";
}

group code(source src : codeR4, target tgt : codeR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "codeValue";
}

group code2id(source src : codeR4, target tgt : idR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2idValue";
}

group code2string(source src : codeR4, target tgt : stringR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2stringValue";
}

group code2uri(source src : codeR4, target tgt : uriR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2uriValue";
}

group date(source src : dateR4, target tgt : dateR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "dateValue";
}

group date2dateTime(source src : dateR4, target tgt : dateTimeR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "date2dateTimeValue";
}

group dateTime(source src : dateTimeR4, target tgt : dateTimeR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "dateTimeValue";
}

group dateTime2date(source src : dateTimeR4, target tgt : dateR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "dateTime2dateValue";
}

group decimal(source src : decimalR4, target tgt : decimalR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "decimalValue";
}

group id(source src : idR4, target tgt : idR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "idValue";
}

group id2code(source src : idR4, target tgt : codeR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "id2codeValue";
}

group id2string(source src : idR4, target tgt : stringR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "id2stringValue";
}

group instant(source src : instantR4, target tgt : instantR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "instantValue";
}

group integer(source src : integerR4, target tgt : integerR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integerValue";
}

group integer2integer64(source src : integerR4, target tgt : integer64R5) extends Element <<types>> {
  src.value as v -> tgt.value = v "integer2integer64Value";
}

group markdown(source src : markdownR4, target tgt : markdownR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "markdownValue";
}

group markdown2string(source src : markdownR4, target tgt : stringR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "markdown2stringValue"; // todo: deal with markdown escaping issues
}

group oid(source src : oidR4, target tgt : oidR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "oidValue";
}

group positiveInt(source src : positiveIntR4, target tgt : positiveIntR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "positiveIntValue";
}

group string(source src : stringR4, target tgt : stringR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "stringValue";
}

group string2markdown(source src : stringR4, target tgt : markdownR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2markdownValue"; // todo: deal with markdown escaping issues
}

group string2id(source src : stringR4, target tgt : idR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2idValue";
}

group string2code(source src : stringR4, target tgt : codeR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2codeValue";
}

group string2integer64(source src : stringR4, target tgt : integer64R5) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2integer64Value";
}

group time(source src : timeR4, target tgt : timeR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "timeValue";
}

group unsignedInt(source src : unsignedIntR4, target tgt : unsignedIntR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "unsignedIntValue";
}

group unsignedInt2integer64(source src : unsignedIntR4, target tgt : integer64R5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "unsignedInt2integer64Value";
}

group uri(source src : uriR4, target tgt : uriR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "uriValue";
}

group uri2canonical(source src : uriR4, target tgt : canonicalR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "uri2canonicalValue";
}

group uri2code(source src : uriR4, target tgt : codeR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "uri2codeValue";
}

group url(source src : urlR4, target tgt : urlR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "urlValue";
}

group uuid(source src : uuidR4, target tgt : uuidR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "uuidValue";
}

group xhtml(source src : xhtmlR4, target tgt : xhtmlR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "xhtmlValue";
}

FML Conversion for primitive datatypes: R4B to R5 (Ready for Use)

/// url = 'http://hl7.org/fhir/StructureMap/Primitives4to5'
/// name = 'Primitives4to5'
/// title = 'FML Conversion for primitive datatypes: R4 to R5'
/// status = 'draft'

uses "http://hl7.org/fhir/4.0/StructureDefinition/base64Binary" alias base64BinaryR4 as source
uses "http://hl7.org/fhir/StructureDefinition/base64Binary" alias base64BinaryR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/boolean" alias booleanR4 as source
uses "http://hl7.org/fhir/StructureDefinition/boolean" alias booleanR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/canonical" alias canonicalR4 as source
uses "http://hl7.org/fhir/StructureDefinition/canonical" alias canonicalR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/code" alias codeR4 as source
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/date" alias dateR4 as source
uses "http://hl7.org/fhir/StructureDefinition/date" alias dateR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/dateTime" alias dateTimeR4 as source
uses "http://hl7.org/fhir/StructureDefinition/dateTime" alias dateTimeR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/decimal" alias decimalR4 as source
uses "http://hl7.org/fhir/StructureDefinition/decimal" alias decimalR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/id" alias idR4 as source
uses "http://hl7.org/fhir/StructureDefinition/id" alias idR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/instant" alias instantR4 as source
uses "http://hl7.org/fhir/StructureDefinition/instant" alias instantR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/integer" alias integerR4 as source
uses "http://hl7.org/fhir/StructureDefinition/integer" alias integerR5 as target
uses "http://hl7.org/fhir/StructureDefinition/integer64" alias integer64R5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/markdown" alias markdownR4 as source
uses "http://hl7.org/fhir/StructureDefinition/markdown" alias markdownR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/oid" alias oidR4 as source
uses "http://hl7.org/fhir/StructureDefinition/oid" alias oidR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/positiveInt" alias positiveIntR4 as source
uses "http://hl7.org/fhir/StructureDefinition/positiveInt" alias positiveIntR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as source
uses "http://hl7.org/fhir/StructureDefinition/string" alias stringR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/time" alias timeR4 as source
uses "http://hl7.org/fhir/StructureDefinition/time" alias timeR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/unsignedInt" alias unsignedIntR4 as source
uses "http://hl7.org/fhir/StructureDefinition/unsignedInt" alias unsignedIntR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/uri" alias uriR4 as source
uses "http://hl7.org/fhir/StructureDefinition/uri" alias uriR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/url" alias urlR4 as source
uses "http://hl7.org/fhir/StructureDefinition/url" alias urlR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/uuid" alias uuidR4 as source
uses "http://hl7.org/fhir/StructureDefinition/uuid" alias uuidR5 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/xhtml" alias xhtmlR4 as source
uses "http://hl7.org/fhir/StructureDefinition/xhtml" alias xhtmlR5 as target

imports "http://hl7.org/fhir/StructureMap/Element4to5"

group base64Binary(source src : base64BinaryR4, target tgt : base64BinaryR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "base64BinaryValue";
}

group boolean(source src : booleanR4, target tgt : booleanR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "booleanValue";
}

group canonical(source src : canonicalR4, target tgt : canonicalR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "canonicalValue";
}

group canonical2uri(source src : canonicalR4, target tgt : uriR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "canonical2uriValue";
}

group code(source src : codeR4, target tgt : codeR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "codeValue";
}

group code2id(source src : codeR4, target tgt : idR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2idValue";
}

group code2string(source src : codeR4, target tgt : stringR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2stringValue";
}

group code2uri(source src : codeR4, target tgt : uriR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2uriValue";
}

group date(source src : dateR4, target tgt : dateR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "dateValue";
}

group date2dateTime(source src : dateR4, target tgt : dateTimeR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "date2dateTimeValue";
}

group dateTime(source src : dateTimeR4, target tgt : dateTimeR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "dateTimeValue";
}

group dateTime2date(source src : dateTimeR4, target tgt : dateR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "dateTime2dateValue";
}

group decimal(source src : decimalR4, target tgt : decimalR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "decimalValue";
}

group id(source src : idR4, target tgt : idR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "idValue";
}

group id2code(source src : idR4, target tgt : codeR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "id2codeValue";
}

group id2string(source src : idR4, target tgt : stringR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "id2stringValue";
}

group instant(source src : instantR4, target tgt : instantR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "instantValue";
}

group integer(source src : integerR4, target tgt : integerR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integerValue";
}

group integer2integer64(source src : integerR4, target tgt : integer64R5) extends Element <<types>> {
  src.value as v -> tgt.value = v "integer2integer64Value";
}

group markdown(source src : markdownR4, target tgt : markdownR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "markdownValue";
}

group markdown2string(source src : markdownR4, target tgt : stringR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "markdown2stringValue"; // todo: deal with markdown escaping issues
}

group oid(source src : oidR4, target tgt : oidR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "oidValue";
}

group positiveInt(source src : positiveIntR4, target tgt : positiveIntR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "positiveIntValue";
}

group string(source src : stringR4, target tgt : stringR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "stringValue";
}

group string2markdown(source src : stringR4, target tgt : markdownR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2markdownValue"; // todo: deal with markdown escaping issues
}

group string2id(source src : stringR4, target tgt : idR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2idValue";
}

group string2code(source src : stringR4, target tgt : codeR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2codeValue";
}

group string2integer64(source src : stringR4, target tgt : integer64R5) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2integer64Value";
}

group time(source src : timeR4, target tgt : timeR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "timeValue";
}

group unsignedInt(source src : unsignedIntR4, target tgt : unsignedIntR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "unsignedIntValue";
}

group unsignedInt2integer64(source src : unsignedIntR4, target tgt : integer64R5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "unsignedInt2integer64Value";
}

group uri(source src : uriR4, target tgt : uriR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "uriValue";
}

group uri2canonical(source src : uriR4, target tgt : canonicalR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "uri2canonicalValue";
}

group uri2code(source src : uriR4, target tgt : codeR5) extends Element <<types>> {
  src.value as v -> tgt.value = v "uri2codeValue";
}

group url(source src : urlR4, target tgt : urlR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "urlValue";
}

group uuid(source src : uuidR4, target tgt : uuidR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "uuidValue";
}

group xhtml(source src : xhtmlR4, target tgt : xhtmlR5) extends Element <<type+>> {
  src.value as v -> tgt.value = v "xhtmlValue";
}

FML Conversion for primitive datatypes: R5 to R4 (Ready for Use)

/// url = 'http://hl7.org/fhir/StructureMap/Primitives5to4'
/// name = 'Primitives5to4'
/// title = 'FML Conversion for primitive datatypes: R5 to R4'
/// status = 'draft'

uses "http://hl7.org/fhir/StructureDefinition/base64Binary" alias base64BinaryR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/base64Binary" alias base64BinaryR4 as target
uses "http://hl7.org/fhir/StructureDefinition/boolean" alias booleanR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/boolean" alias booleanR4 as target
uses "http://hl7.org/fhir/StructureDefinition/canonical" alias canonicalR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/canonical" alias canonicalR4 as target
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/code" alias codeR4 as target
uses "http://hl7.org/fhir/StructureDefinition/date" alias dateR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/date" alias dateR4 as target
uses "http://hl7.org/fhir/StructureDefinition/dateTime" alias dateTimeR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/dateTime" alias dateTimeR4 as target
uses "http://hl7.org/fhir/StructureDefinition/decimal" alias decimalR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/decimal" alias decimalR4 as target
uses "http://hl7.org/fhir/StructureDefinition/id" alias idR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/id" alias idR4 as target
uses "http://hl7.org/fhir/StructureDefinition/instant" alias instantR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/instant" alias instantR4 as target
uses "http://hl7.org/fhir/StructureDefinition/integer" alias integerR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/integer" alias integerR4 as target
uses "http://hl7.org/fhir/StructureDefinition/integer64" alias integer64R5 as source
uses "http://hl7.org/fhir/StructureDefinition/markdown" alias markdownR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/markdown" alias markdownR4 as target
uses "http://hl7.org/fhir/StructureDefinition/oid" alias oidR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/oid" alias oidR4 as target
uses "http://hl7.org/fhir/StructureDefinition/positiveInt" alias positiveIntR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/positiveInt" alias positiveIntR4 as target
uses "http://hl7.org/fhir/StructureDefinition/string" alias stringR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as target
uses "http://hl7.org/fhir/StructureDefinition/time" alias timeR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/time" alias timeR4 as target
uses "http://hl7.org/fhir/StructureDefinition/unsignedInt" alias unsignedIntR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/unsignedInt" alias unsignedIntR4 as target
uses "http://hl7.org/fhir/StructureDefinition/uri" alias uriR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/uri" alias uriR4 as target
uses "http://hl7.org/fhir/StructureDefinition/url" alias urlR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/url" alias urlR4 as target
uses "http://hl7.org/fhir/StructureDefinition/uuid" alias uuidR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/uuid" alias uuidR4 as target
uses "http://hl7.org/fhir/StructureDefinition/xhtml" alias xhtmlR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/xhtml" alias xhtmlR4 as target

imports "http://hl7.org/fhir/StructureMap/Element5to4"

group base64Binary(source src : base64BinaryR5, target tgt : base64BinaryR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "base64BinaryValue";
}

group boolean(source src : booleanR5, target tgt : booleanR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "booleanValue";
}

group canonical(source src : canonicalR5, target tgt : canonicalR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "canonicalValue";
}

group canonical2uri(source src : canonicalR5, target tgt : uriR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "canonical2uriValue";
}

group code(source src : codeR5, target tgt : codeR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "codeValue";
}

group code2id(source src : codeR5, target tgt : idR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2idValue";
}

group code2string(source src : codeR5, target tgt : stringR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2stringValue";
}

group code2uri(source src : codeR5, target tgt : uriR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2uriValue";
}

group date(source src : dateR5, target tgt : dateR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "dateValue";
}

group date2dateTime(source src : dateR5, target tgt : dateTimeR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "date2dateTimeValue";
}

group dateTime(source src : dateTimeR5, target tgt : dateTimeR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "dateTimeValue";
}

group dateTime2date(source src : dateTimeR5, target tgt : dateR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "dateTime2dateValue";
}

group decimal(source src : decimalR5, target tgt : decimalR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "decimalValue";
}

group id(source src : idR5, target tgt : idR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "idValue";
}

group id2code(source src : idR5, target tgt : codeR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "id2codeValue";
}

group id2string(source src : idR5, target tgt : stringR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "id2stringValue";
}

group instant(source src : instantR5, target tgt : instantR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "instantValue";
}

group integer(source src : integerR5, target tgt : integerR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integerValue";
}

group integer64(source src : integer64R5, target tgt : integerR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integer64Value";
}

group markdown(source src : markdownR5, target tgt : markdownR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "markdownValue";
}

group markdown2string(source src : markdownR5, target tgt : stringR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "markdown2stringValue"; // todo: deal with markdown escaping issues
}

group oid(source src : oidR5, target tgt : oidR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "oidValue";
}

group positiveInt(source src : positiveIntR5, target tgt : positiveIntR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "positiveIntValue";
}

group string(source src : stringR5, target tgt : stringR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "stringValue";
}

group string2markdown(source src : stringR5, target tgt : markdownR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2markdownValue"; // todo: deal with markdown escaping issues
}

group string2id(source src : stringR5, target tgt : idR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2idValue";
}

group string2code(source src : stringR5, target tgt : codeR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2codeValue";
}

group time(source src : timeR5, target tgt : timeR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "timeValue";
}

group unsignedInt(source src : unsignedIntR5, target tgt : unsignedIntR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "unsignedIntValue";
}

group integer64(source src : integer64R5, target tgt : unsignedIntR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integer64Value";
}

group integer642string(source src : integer64R5, target tgt : stringR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integer642stringValue";
}

group uri(source src : uriR5, target tgt : uriR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "uriValue";
}

group uri2canonical(source src : uriR5, target tgt : canonicalR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "uri2canonicalValue";
}

group uri2code(source src : uriR5, target tgt : codeR4) extends Element <<types>> {
  src.value as v -> tgt.value = v "uri2codeValue";
}

group url(source src : urlR5, target tgt : urlR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "urlValue";
}

group uuid(source src : uuidR5, target tgt : uuidR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "uuidValue";
}

group xhtml(source src : xhtmlR5, target tgt : xhtmlR4) extends Element <<type+>> {
  src.value as v -> tgt.value = v "xhtmlValue";
}

FML Conversion for primitive datatypes: R5 to R4B (Ready for Use)

/// url = 'http://hl7.org/fhir/StructureMap/Primitives5to4B'
/// name = 'Primitives5to4B'
/// title = 'FML Conversion for primitive datatypes: R5 to R4B'
/// status = 'draft'

uses "http://hl7.org/fhir/StructureDefinition/base64Binary" alias base64BinaryR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/base64Binary" alias base64BinaryR4B as target
uses "http://hl7.org/fhir/StructureDefinition/boolean" alias booleanR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/boolean" alias booleanR4B as target
uses "http://hl7.org/fhir/StructureDefinition/canonical" alias canonicalR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/canonical" alias canonicalR4B as target
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/code" alias codeR4B as target
uses "http://hl7.org/fhir/StructureDefinition/date" alias dateR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/date" alias dateR4B as target
uses "http://hl7.org/fhir/StructureDefinition/dateTime" alias dateTimeR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/dateTime" alias dateTimeR4B as target
uses "http://hl7.org/fhir/StructureDefinition/decimal" alias decimalR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/decimal" alias decimalR4B as target
uses "http://hl7.org/fhir/StructureDefinition/id" alias idR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/id" alias idR4B as target
uses "http://hl7.org/fhir/StructureDefinition/instant" alias instantR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/instant" alias instantR4B as target
uses "http://hl7.org/fhir/StructureDefinition/integer" alias integerR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/integer" alias integerR4B as target
uses "http://hl7.org/fhir/StructureDefinition/integer64" alias integer64R5 as source
uses "http://hl7.org/fhir/StructureDefinition/markdown" alias markdownR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/markdown" alias markdownR4B as target
uses "http://hl7.org/fhir/StructureDefinition/oid" alias oidR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/oid" alias oidR4B as target
uses "http://hl7.org/fhir/StructureDefinition/positiveInt" alias positiveIntR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/positiveInt" alias positiveIntR4B as target
uses "http://hl7.org/fhir/StructureDefinition/string" alias stringR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/string" alias stringR4B as target
uses "http://hl7.org/fhir/StructureDefinition/time" alias timeR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/time" alias timeR4B as target
uses "http://hl7.org/fhir/StructureDefinition/unsignedInt" alias unsignedIntR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/unsignedInt" alias unsignedIntR4B as target
uses "http://hl7.org/fhir/StructureDefinition/uri" alias uriR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/uri" alias uriR4B as target
uses "http://hl7.org/fhir/StructureDefinition/url" alias urlR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/url" alias urlR4B as target
uses "http://hl7.org/fhir/StructureDefinition/uuid" alias uuidR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/uuid" alias uuidR4B as target
uses "http://hl7.org/fhir/StructureDefinition/xhtml" alias xhtmlR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/xhtml" alias xhtmlR4B as target

imports "http://hl7.org/fhir/StructureMap/Element5to4B"

group base64Binary(source src : base64BinaryR5, target tgt : base64BinaryR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "base64BinaryValue";
}

group boolean(source src : booleanR5, target tgt : booleanR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "booleanValue";
}

group canonical(source src : canonicalR5, target tgt : canonicalR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "canonicalValue";
}

group canonical2uri(source src : canonicalR5, target tgt : uriR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "canonical2uriValue";
}

group code(source src : codeR5, target tgt : codeR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "codeValue";
}

group code2id(source src : codeR5, target tgt : idR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2idValue";
}

group code2string(source src : codeR5, target tgt : stringR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2stringValue";
}

group code2uri(source src : codeR5, target tgt : uriR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "code2uriValue";
}

group date(source src : dateR5, target tgt : dateR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "dateValue";
}

group date2dateTime(source src : dateR5, target tgt : dateTimeR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "date2dateTimeValue";
}

group dateTime(source src : dateTimeR5, target tgt : dateTimeR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "dateTimeValue";
}

group dateTime2date(source src : dateTimeR5, target tgt : dateR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "dateTime2dateValue";
}

group decimal(source src : decimalR5, target tgt : decimalR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "decimalValue";
}

group id(source src : idR5, target tgt : idR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "idValue";
}

group id2Code(source src : idR5, target tgt : codeR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "id2CodeValue";
}

group id2string(source src : idR5, target tgt : stringR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "id2stringValue";
}

group instant(source src : instantR5, target tgt : instantR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "instantValue";
}

group integer(source src : integerR5, target tgt : integerR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integerValue";
}

group integer64(source src : integer64R5, target tgt : integerR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integer64Value";
}

group integer642string(source src : integer64R5, target tgt : stringR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "integer642stringValue";
}

group markdown(source src : markdownR5, target tgt : markdownR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "markdownValue";
}

group markdown2string(source src : markdownR5, target tgt : stringR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "markdown2stringValue"; // todo: deal with markdown escaping issues
}

group oid(source src : oidR5, target tgt : oidR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "oidValue";
}

group positiveInt(source src : positiveIntR5, target tgt : positiveIntR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "positiveIntValue";
}

group string(source src : stringR5, target tgt : stringR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "stringValue";
}

group string2markdown(source src : stringR5, target tgt : markdownR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2markdownValue"; // todo: deal with markdown escaping issues
}

group string2id(source src : stringR5, target tgt : idR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2idValue";
}

group string2code(source src : stringR5, target tgt : codeR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "string2codeValue";
}

group time(source src : timeR5, target tgt : timeR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "timeValue";
}

group unsignedInt(source src : unsignedIntR5, target tgt : unsignedIntR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "unsignedIntValue";
}

group unsignedInt(source src : integer64R5, target tgt : unsignedIntR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "unsignedIntValue";
}

group uri(source src : uriR5, target tgt : uriR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "uriValue";
}

group uri2canonical(source src : uriR5, target tgt : canonicalR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "uri2canonicalValue";
}

group uri2code(source src : uriR5, target tgt : codeR4B) extends Element <<types>> {
  src.value as v -> tgt.value = v "uri2codeValue";
}

group url(source src : urlR5, target tgt : urlR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "urlValue";
}

group uuid(source src : uuidR5, target tgt : uuidR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "uuidValue";
}

group xhtml(source src : xhtmlR5, target tgt : xhtmlR4B) extends Element <<type+>> {
  src.value as v -> tgt.value = v "xhtmlValue";
}

Attachment

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Attachment

FML Conversion for Attachment: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Attachment5to4'
/// name = 'Attachment5to4'
/// title = 'FML Conversion for Attachment: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Attachment" alias AttachmentR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Attachment" alias AttachmentR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Attachment(source src : AttachmentR5, target tgt : AttachmentR4) extends Element <<type+>> {
  src.contentType -> tgt.contentType;
  src.language -> tgt.language;
  src.data -> tgt.data;
  src.url -> tgt.url;
  src.size -> tgt.size;
  src.hash -> tgt.hash;
  src.title -> tgt.title;
  src.creation -> tgt.creation;
}

FML Conversion for Attachment: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Attachment5to4B'
/// name = 'Attachment5to4B'
/// title = 'FML Conversion for Attachment: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Attachment" alias AttachmentR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Attachment" alias AttachmentR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Attachment(source src : AttachmentR5, target tgt : AttachmentR4B) extends Element <<type+>> {
  src.contentType -> tgt.contentType;
  src.language -> tgt.language;
  src.data -> tgt.data;
  src.url -> tgt.url;
  src.size -> tgt.size;
  src.hash -> tgt.hash;
  src.title -> tgt.title;
  src.creation -> tgt.creation;
}

Maps from Attachment

FML Conversion for Attachment: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Attachment4Bto5'
/// name = 'Attachment4Bto5'
/// title = 'FML Conversion for Attachment: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/Attachment" alias AttachmentR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Attachment" alias AttachmentR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Attachment(source src : AttachmentR4B, target tgt : AttachmentR5) extends Element <<type+>> {
  src.contentType -> tgt.contentType;
  src.language -> tgt.language;
  src.data -> tgt.data;
  src.url -> tgt.url;
  src.size : unsignedInt -> tgt.size;
  src.hash -> tgt.hash;
  src.title -> tgt.title;
  src.creation -> tgt.creation;
}

FML Conversion for Attachment: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Attachment4to5'
/// name = 'Attachment4to5'
/// title = 'FML Conversion for Attachment: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/Attachment" alias AttachmentR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Attachment" alias AttachmentR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Attachment(source src : AttachmentR4, target tgt : AttachmentR5) extends Element <<type+>> {
  src.contentType -> tgt.contentType;
  src.language -> tgt.language;
  src.data -> tgt.data;
  src.url -> tgt.url;
  src.size : unsignedInt -> tgt.size;
  src.hash -> tgt.hash;
  src.title -> tgt.title;
  src.creation -> tgt.creation;
}

Coding

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Coding

FML Conversion for CodeableConcept: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/CodeableConcept5to4'
/// name = 'CodeableConcept5to4'
/// title = 'FML Conversion for CodeableConcept: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/CodeableConcept" alias CodeableConceptR4 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/Coding" alias CodingR4 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/code" alias codeR4 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as target
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConceptR5 as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableReference" alias CodeableReferenceR5 as source
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as source
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as source

imports "http://hl7.org/fhir/StructureMap/*5to4"

group CodeableConcept(source src : CodeableConceptR5, target tgt : CodeableConceptR4) extends Element <<type+>> {
  src.coding -> tgt.coding;
  src.text -> tgt.text;
}

group CodeableConcept2Coding(source src : CodeableConceptR5, target tgt : CodingR4) extends Element <<types>> {
  src.coding as s -> tgt as t then Coding(s, t);
}

group CodeableReference2Coding(source src : CodeableReferenceR5, target tgt : CodingR4) extends Element <<types>> {
  src.concept as s -> tgt then {
    s.coding as v -> tgt then Coding(v, tgt);
  };
}

group CodeableReference2CodeableConcept(source src : CodeableReferenceR5, target tgt : CodeableConceptR4) extends Element <<types>> {
  src.concept as s -> tgt as t then CodeableConcept(s, t);
}

group CodeableConcept2string(source src : CodeableConceptR5, target tgt : stringR4) extends Element <<types>> {
  src.text as v -> tgt.value = v "CodeableConcept2string";
}

group CodeableReference2string(source src : CodeableReferenceR5, target tgt : stringR4) extends Element <<types>> {
  src.concept as s -> tgt as t then CodeableConcept2string(s, t);
}

group Coding2CodeableConcept(source src : CodingR5, target tgt : CodeableConceptR4) extends Element <<types>> {
  src as s -> tgt.coding as t then Coding(s, t) "Coding";
}

group CodeableConcept2code(source src : CodeableConceptR5, target tgt : codeR4, source sysUrl : string) extends Element <<types>> {
  src.coding as s where s.system = sysUrl -> tgt then {
    s.code -> tgt.value;
  };
}

group code2CodeableConcept(source src : codeR5, target tgt : CodeableConceptR4, source sysUrl : string) extends Element <<types>> {
  src.value as s ->  tgt.coding = create('Coding') as t,  t.system = sysUrl,  t.code = s;
}

FML Conversion for CodeableConcept: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/CodeableConcept5to4B'
/// name = 'CodeableConcept5to4B'
/// title = 'FML Conversion for CodeableConcept: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/CodeableConcept" alias CodeableConceptR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/CodeableReference" alias CodeableReferenceR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/Coding" alias CodingR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/code" alias codeR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/string" alias stringR4B as target
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConceptR5 as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableReference" alias CodeableReferenceR5 as source
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as source
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as source

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group CodeableConcept(source src : CodeableConceptR5, target tgt : CodeableConceptR4B) extends Element <<type+>> {
  src.coding -> tgt.coding;
  src.text -> tgt.text;
}

group CodeableReference2CodeableConcept(source src : CodeableReferenceR5, target tgt : CodeableConceptR4B) extends Element <<types>> {
  src.concept as s -> tgt then CodeableConcept(s, tgt);
}

group CodeableReference2Coding(source src : CodeableReferenceR5, target tgt : CodingR4B) extends Element <<types>> {
  src.concept as s -> tgt then {
    s.coding as v -> tgt then Coding(v, tgt);
  };
}

group CodeableConcept2CodeableReference(source src : CodeableConceptR5, target tgt : CodeableReferenceR4B) extends Element <<types>> {
  src as s -> tgt.concept as t then CodeableConcept(s, t) "concept";
}

group CodeableConcept2string(source src : CodeableConceptR5, target tgt : stringR4B) extends Element <<types>> {
  src.text as v -> tgt.value = v "CodeableConcept2string";
}

group CodeableReference2string(source src : CodeableReferenceR5, target tgt : stringR4B) extends Element <<types>> {
  src.concept as s -> tgt as t then CodeableConcept2string(s, t);
}

group CodeableConcept2Coding(source src : CodeableConceptR5, target tgt : CodingR4B) extends Element <<types>> {
  src.coding as s -> tgt as t then Coding(s, t);
}

group Coding2CodeableConcept(source src : CodingR5, target tgt : CodeableConceptR4B) extends Element <<types>> {
  src as s -> tgt.coding as t then Coding(s, t) "Coding";
}

group CodeableConcept2code(source src : CodeableConceptR5, target tgt : codeR4B, source sysUrl : string) extends Element <<types>> {
  src.coding as s where s.system = sysUrl -> tgt then {
    s.code -> tgt.value;
  };
}

group code2CodeableConcept(source src : codeR5, target tgt : CodeableConceptR4B, source sysUrl : string) extends Element <<types>> {
  src.value as s ->  tgt.coding = create('Coding') as t,  t.system = sysUrl,  t.code = s;
}

FML Conversion for Coding: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Coding5to4'
/// name = 'Coding5to4'
/// title = 'FML Conversion for Coding: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Coding" alias CodingR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Coding(source src : CodingR5, target tgt : CodingR4) extends Element <<type+>> {
  src.system -> tgt.system;
  src.version -> tgt.version;
  src.code -> tgt.code;
  src.display -> tgt.display;
  src.userSelected -> tgt.userSelected;
}

FML Conversion for Coding: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Coding5to4B'
/// name = 'Coding5to4B'
/// title = 'FML Conversion for Coding: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Coding" alias CodingR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Coding(source src : CodingR5, target tgt : CodingR4B) extends Element <<type+>> {
  src.system -> tgt.system;
  src.version -> tgt.version;
  src.code -> tgt.code;
  src.display -> tgt.display;
  src.userSelected -> tgt.userSelected;
}

Maps from Coding

FML Conversion for CodeableConcept: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/CodeableConcept4Bto5'
/// name = 'CodeableConcept4Bto5'
/// title = 'FML Conversion for CodeableConcept: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/string" alias stringR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/CodeableConcept" alias CodeableConceptR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/CodeableReference" alias CodeableReferenceR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Coding" alias CodingR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/code" alias codeR4B as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConceptR5 as target
uses "http://hl7.org/fhir/StructureDefinition/CodeableReference" alias CodeableReferenceR5 as target
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as target
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group CodeableConcept(source src : CodeableConceptR4B, target tgt : CodeableConceptR5) extends Element <<type+>> {
  src.coding -> tgt.coding;
  src.text -> tgt.text;
}

group CodeableConcept2CodeableReference(source src : CodeableConceptR4B, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s -> tgt.concept as t then CodeableConcept(s, t) "concept";
}

group CodeableReference2CodeableConcept(source src : CodeableReferenceR4B, target tgt : CodeableConceptR5) extends Element <<types>> {
  src.concept as s -> tgt then CodeableConcept(s, tgt);
}

group string2CodeableConcept(source src : stringR4B, target tgt : CodeableConceptR5) extends Element <<types>> {
  src.value as v -> tgt.text = v "string2CodeableConcept";
}

group string2CodeableReference(source src : stringR4B, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s -> tgt.concept as t then string2CodeableConcept(s, t) "string2CodeableConcept";
}

group CodeableConcept2Coding(source src : CodeableConceptR4B, target tgt : CodingR5) extends Element <<types>> {
  src.coding as s -> tgt as t then Coding(s, t);
}

group Coding2CodeableConcept(source src : CodingR4B, target tgt : CodeableConceptR5) extends Element <<types>> {
  src as s -> tgt.coding as t then Coding(s, t) "Coding";
}

group Coding2CodeableReference(source src : CodingR4B, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s ->  tgt.concept = create('CodeableConcept') as t,  t.coding as tc then Coding(s, tc) "Coding"; // src as s -> tgt.concept = create('CodeableConcept') as tc, tc.coding = create ('Coding') as tcc, tcc.system = (a.system), tcc.code = (s.code), tcc.display = s.display "Coding2CodeableReference";
}

group CodeableConcept2code(source src : CodeableConceptR4B, target tgt : codeR5, source sysUrl : string) extends Element <<types>> {
  src.coding as s where s.system = sysUrl -> tgt then {
    s.code -> tgt.value;
  };
}

group code2CodeableConcept(source src : codeR4B, target tgt : CodeableConceptR5, source sysUrl : string) extends Element <<types>> {
  src.value as s ->  tgt.coding = create('Coding') as t,  t.system = sysUrl,  t.code = s;
}

FML Conversion for CodeableConcept: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/CodeableConcept4to5'
/// name = 'CodeableConcept4to5'
/// title = 'FML Conversion for CodeableConcept: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/CodeableConcept" alias CodeableConceptR4 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Coding" alias CodingR4 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/code" alias codeR4 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConceptR5 as target
uses "http://hl7.org/fhir/StructureDefinition/CodeableReference" alias CodeableReferenceR5 as target
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as target
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group CodeableConcept(source src : CodeableConceptR4, target tgt : CodeableConceptR5) extends Element <<type+>> {
  src.coding -> tgt.coding;
  src.text -> tgt.text;
}

group CodeableConcept2Coding(source src : CodeableConceptR4, target tgt : CodingR5) extends Element <<types>> {
  src.coding as s -> tgt as t then Coding(s, t);
}

group CodeableConcept2CodeableReference(source src : CodeableConceptR4, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s -> tgt.concept as t then CodeableConcept(s, t) "CodeableConcept2CodeableReference";
}

group string2CodeableConcept(source src : stringR4, target tgt : CodeableConceptR5) extends Element <<types>> {
  src.value as v -> tgt.text = v "string2CodeableConcept";
}

group string2CodeableReference(source src : stringR4, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s -> tgt.concept as t then string2CodeableConcept(s, t) "string2CodeableConcept";
}

group Coding2CodeableConcept(source src : CodingR4, target tgt : CodeableConceptR5) extends Element <<types>> {
  src as s -> tgt.coding as t then Coding(s, t) "Coding";
}

group Coding2CodeableReference(source src : CodingR4, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s ->  tgt.concept = create('CodeableConcept') as t,  t.coding as tc then Coding(s, tc) "Coding"; // src as s -> tgt.concept = create('CodeableConcept') as tc, tc.coding = create ('Coding') as tcc, tcc.system = (s.system), tcc.code = (s.code), tcc.display = (s.display) "Coding2CodeableReference";
}

group CodeableConcept2code(source src : CodeableConceptR4, target tgt : codeR5, source sysUrl : string) extends Element <<types>> {
  src.coding as s where s.system = sysUrl -> tgt then {
    s.code -> tgt.value;
  };
}

group code2CodeableConcept(source src : codeR4, target tgt : CodeableConceptR5, source sysUrl : string) extends Element <<types>> {
  src.value as s ->  tgt.coding = create('Coding') as t,  t.system = sysUrl,  t.code = s;
}

FML Conversion for Coding: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Coding4Bto5'
/// name = 'Coding4Bto5'
/// title = 'FML Conversion for Coding: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/Coding" alias CodingR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Coding(source src : CodingR4B, target tgt : CodingR5) extends Element <<type+>> {
  src.system -> tgt.system;
  src.version -> tgt.version;
  src.code -> tgt.code;
  src.display -> tgt.display;
  src.userSelected -> tgt.userSelected;
}

FML Conversion for Coding: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Coding4to5'
/// name = 'Coding4to5'
/// title = 'FML Conversion for Coding: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/Coding" alias CodingR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Coding(source src : CodingR4, target tgt : CodingR5) extends Element <<type+>> {
  src.system -> tgt.system;
  src.version -> tgt.version;
  src.code -> tgt.code;
  src.display -> tgt.display;
  src.userSelected -> tgt.userSelected;
}

CodeableConcept

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to CodeableConcept

FML Conversion for CodeableConcept: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/CodeableConcept5to4'
/// name = 'CodeableConcept5to4'
/// title = 'FML Conversion for CodeableConcept: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/CodeableConcept" alias CodeableConceptR4 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/Coding" alias CodingR4 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/code" alias codeR4 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as target
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConceptR5 as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableReference" alias CodeableReferenceR5 as source
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as source
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as source

imports "http://hl7.org/fhir/StructureMap/*5to4"

group CodeableConcept(source src : CodeableConceptR5, target tgt : CodeableConceptR4) extends Element <<type+>> {
  src.coding -> tgt.coding;
  src.text -> tgt.text;
}

group CodeableConcept2Coding(source src : CodeableConceptR5, target tgt : CodingR4) extends Element <<types>> {
  src.coding as s -> tgt as t then Coding(s, t);
}

group CodeableReference2Coding(source src : CodeableReferenceR5, target tgt : CodingR4) extends Element <<types>> {
  src.concept as s -> tgt then {
    s.coding as v -> tgt then Coding(v, tgt);
  };
}

group CodeableReference2CodeableConcept(source src : CodeableReferenceR5, target tgt : CodeableConceptR4) extends Element <<types>> {
  src.concept as s -> tgt as t then CodeableConcept(s, t);
}

group CodeableConcept2string(source src : CodeableConceptR5, target tgt : stringR4) extends Element <<types>> {
  src.text as v -> tgt.value = v "CodeableConcept2string";
}

group CodeableReference2string(source src : CodeableReferenceR5, target tgt : stringR4) extends Element <<types>> {
  src.concept as s -> tgt as t then CodeableConcept2string(s, t);
}

group Coding2CodeableConcept(source src : CodingR5, target tgt : CodeableConceptR4) extends Element <<types>> {
  src as s -> tgt.coding as t then Coding(s, t) "Coding";
}

group CodeableConcept2code(source src : CodeableConceptR5, target tgt : codeR4, source sysUrl : string) extends Element <<types>> {
  src.coding as s where s.system = sysUrl -> tgt then {
    s.code -> tgt.value;
  };
}

group code2CodeableConcept(source src : codeR5, target tgt : CodeableConceptR4, source sysUrl : string) extends Element <<types>> {
  src.value as s ->  tgt.coding = create('Coding') as t,  t.system = sysUrl,  t.code = s;
}

FML Conversion for CodeableConcept: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/CodeableConcept5to4B'
/// name = 'CodeableConcept5to4B'
/// title = 'FML Conversion for CodeableConcept: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/CodeableConcept" alias CodeableConceptR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/CodeableReference" alias CodeableReferenceR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/Coding" alias CodingR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/code" alias codeR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/string" alias stringR4B as target
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConceptR5 as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableReference" alias CodeableReferenceR5 as source
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as source
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as source

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group CodeableConcept(source src : CodeableConceptR5, target tgt : CodeableConceptR4B) extends Element <<type+>> {
  src.coding -> tgt.coding;
  src.text -> tgt.text;
}

group CodeableReference2CodeableConcept(source src : CodeableReferenceR5, target tgt : CodeableConceptR4B) extends Element <<types>> {
  src.concept as s -> tgt then CodeableConcept(s, tgt);
}

group CodeableReference2Coding(source src : CodeableReferenceR5, target tgt : CodingR4B) extends Element <<types>> {
  src.concept as s -> tgt then {
    s.coding as v -> tgt then Coding(v, tgt);
  };
}

group CodeableConcept2CodeableReference(source src : CodeableConceptR5, target tgt : CodeableReferenceR4B) extends Element <<types>> {
  src as s -> tgt.concept as t then CodeableConcept(s, t) "concept";
}

group CodeableConcept2string(source src : CodeableConceptR5, target tgt : stringR4B) extends Element <<types>> {
  src.text as v -> tgt.value = v "CodeableConcept2string";
}

group CodeableReference2string(source src : CodeableReferenceR5, target tgt : stringR4B) extends Element <<types>> {
  src.concept as s -> tgt as t then CodeableConcept2string(s, t);
}

group CodeableConcept2Coding(source src : CodeableConceptR5, target tgt : CodingR4B) extends Element <<types>> {
  src.coding as s -> tgt as t then Coding(s, t);
}

group Coding2CodeableConcept(source src : CodingR5, target tgt : CodeableConceptR4B) extends Element <<types>> {
  src as s -> tgt.coding as t then Coding(s, t) "Coding";
}

group CodeableConcept2code(source src : CodeableConceptR5, target tgt : codeR4B, source sysUrl : string) extends Element <<types>> {
  src.coding as s where s.system = sysUrl -> tgt then {
    s.code -> tgt.value;
  };
}

group code2CodeableConcept(source src : codeR5, target tgt : CodeableConceptR4B, source sysUrl : string) extends Element <<types>> {
  src.value as s ->  tgt.coding = create('Coding') as t,  t.system = sysUrl,  t.code = s;
}

Maps from CodeableConcept

FML Conversion for CodeableConcept: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/CodeableConcept4Bto5'
/// name = 'CodeableConcept4Bto5'
/// title = 'FML Conversion for CodeableConcept: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/string" alias stringR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/CodeableConcept" alias CodeableConceptR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/CodeableReference" alias CodeableReferenceR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Coding" alias CodingR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/code" alias codeR4B as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConceptR5 as target
uses "http://hl7.org/fhir/StructureDefinition/CodeableReference" alias CodeableReferenceR5 as target
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as target
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group CodeableConcept(source src : CodeableConceptR4B, target tgt : CodeableConceptR5) extends Element <<type+>> {
  src.coding -> tgt.coding;
  src.text -> tgt.text;
}

group CodeableConcept2CodeableReference(source src : CodeableConceptR4B, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s -> tgt.concept as t then CodeableConcept(s, t) "concept";
}

group CodeableReference2CodeableConcept(source src : CodeableReferenceR4B, target tgt : CodeableConceptR5) extends Element <<types>> {
  src.concept as s -> tgt then CodeableConcept(s, tgt);
}

group string2CodeableConcept(source src : stringR4B, target tgt : CodeableConceptR5) extends Element <<types>> {
  src.value as v -> tgt.text = v "string2CodeableConcept";
}

group string2CodeableReference(source src : stringR4B, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s -> tgt.concept as t then string2CodeableConcept(s, t) "string2CodeableConcept";
}

group CodeableConcept2Coding(source src : CodeableConceptR4B, target tgt : CodingR5) extends Element <<types>> {
  src.coding as s -> tgt as t then Coding(s, t);
}

group Coding2CodeableConcept(source src : CodingR4B, target tgt : CodeableConceptR5) extends Element <<types>> {
  src as s -> tgt.coding as t then Coding(s, t) "Coding";
}

group Coding2CodeableReference(source src : CodingR4B, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s ->  tgt.concept = create('CodeableConcept') as t,  t.coding as tc then Coding(s, tc) "Coding"; // src as s -> tgt.concept = create('CodeableConcept') as tc, tc.coding = create ('Coding') as tcc, tcc.system = (a.system), tcc.code = (s.code), tcc.display = s.display "Coding2CodeableReference";
}

group CodeableConcept2code(source src : CodeableConceptR4B, target tgt : codeR5, source sysUrl : string) extends Element <<types>> {
  src.coding as s where s.system = sysUrl -> tgt then {
    s.code -> tgt.value;
  };
}

group code2CodeableConcept(source src : codeR4B, target tgt : CodeableConceptR5, source sysUrl : string) extends Element <<types>> {
  src.value as s ->  tgt.coding = create('Coding') as t,  t.system = sysUrl,  t.code = s;
}

FML Conversion for CodeableConcept: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/CodeableConcept4to5'
/// name = 'CodeableConcept4to5'
/// title = 'FML Conversion for CodeableConcept: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/CodeableConcept" alias CodeableConceptR4 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Coding" alias CodingR4 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/code" alias codeR4 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as source
uses "http://hl7.org/fhir/StructureDefinition/CodeableConcept" alias CodeableConceptR5 as target
uses "http://hl7.org/fhir/StructureDefinition/CodeableReference" alias CodeableReferenceR5 as target
uses "http://hl7.org/fhir/StructureDefinition/Coding" alias CodingR5 as target
uses "http://hl7.org/fhir/StructureDefinition/code" alias codeR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group CodeableConcept(source src : CodeableConceptR4, target tgt : CodeableConceptR5) extends Element <<type+>> {
  src.coding -> tgt.coding;
  src.text -> tgt.text;
}

group CodeableConcept2Coding(source src : CodeableConceptR4, target tgt : CodingR5) extends Element <<types>> {
  src.coding as s -> tgt as t then Coding(s, t);
}

group CodeableConcept2CodeableReference(source src : CodeableConceptR4, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s -> tgt.concept as t then CodeableConcept(s, t) "CodeableConcept2CodeableReference";
}

group string2CodeableConcept(source src : stringR4, target tgt : CodeableConceptR5) extends Element <<types>> {
  src.value as v -> tgt.text = v "string2CodeableConcept";
}

group string2CodeableReference(source src : stringR4, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s -> tgt.concept as t then string2CodeableConcept(s, t) "string2CodeableConcept";
}

group Coding2CodeableConcept(source src : CodingR4, target tgt : CodeableConceptR5) extends Element <<types>> {
  src as s -> tgt.coding as t then Coding(s, t) "Coding";
}

group Coding2CodeableReference(source src : CodingR4, target tgt : CodeableReferenceR5) extends Element <<types>> {
  src as s ->  tgt.concept = create('CodeableConcept') as t,  t.coding as tc then Coding(s, tc) "Coding"; // src as s -> tgt.concept = create('CodeableConcept') as tc, tc.coding = create ('Coding') as tcc, tcc.system = (s.system), tcc.code = (s.code), tcc.display = (s.display) "Coding2CodeableReference";
}

group CodeableConcept2code(source src : CodeableConceptR4, target tgt : codeR5, source sysUrl : string) extends Element <<types>> {
  src.coding as s where s.system = sysUrl -> tgt then {
    s.code -> tgt.value;
  };
}

group code2CodeableConcept(source src : codeR4, target tgt : CodeableConceptR5, source sysUrl : string) extends Element <<types>> {
  src.value as s ->  tgt.coding = create('Coding') as t,  t.system = sysUrl,  t.code = s;
}

Quantity

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Quantity

FML Conversion for Quantity: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Quantity5to4'
/// name = 'Quantity5to4'
/// title = 'FML Conversion for Quantity: R5 to R4'
/// status = 'active'

conceptmap "QuantityComparator" {
  prefix s = "http://hl7.org/fhir/quantity-comparator"
  prefix t = "http://hl7.org/fhir/4.0/quantity-comparator"

  s:"<" - t:"<"
  s:"<=" - t:"<="
  s:">=" - t:">="
  s:">" - t:">"
  s:ad - t:"<="
}

uses "http://hl7.org/fhir/StructureDefinition/Quantity" alias QuantityR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Quantity" alias QuantityR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Quantity(source src : QuantityR5, target tgt : QuantityR4) extends Element <<type+>> {
  src.value -> tgt.value;
  src.comparator as v -> tgt.comparator = translate(v, '#QuantityComparator', 'code');
  src.unit -> tgt.unit;
  src.system -> tgt.system;
  src.code -> tgt.code;
}

FML Conversion for Quantity: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Quantity5to4B'
/// name = 'Quantity5to4B'
/// title = 'FML Conversion for Quantity: R5 to R4B'
/// status = 'active'

conceptmap "QuantityComparator" {
  prefix s = "http://hl7.org/fhir/quantity-comparator"
  prefix t = "http://hl7.org/fhir/4.3/quantity-comparator"

  s:"<" - t:"<"
  s:"<=" - t:"<="
  s:">=" - t:">="
  s:">" - t:">"
  s:ad - t:"<="
}

uses "http://hl7.org/fhir/StructureDefinition/Quantity" alias QuantityR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Quantity" alias QuantityR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Quantity(source src : QuantityR5, target tgt : QuantityR4B) extends Element <<type+>> {
  src.value -> tgt.value;
  src.comparator as v -> tgt.comparator = translate(v, '#QuantityComparator', 'code');
  src.unit -> tgt.unit;
  src.system -> tgt.system;
  src.code -> tgt.code;
}

Maps from Quantity

FML Conversion for Quantity: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Quantity4Bto5'
/// name = 'Quantity4Bto5'
/// title = 'FML Conversion for Quantity: R4B to R5'
/// status = 'active'

conceptmap "QuantityComparator" {
  prefix s = "http://hl7.org/fhir/4.3/quantity-comparator"
  prefix t = "http://hl7.org/fhir/quantity-comparator"

  s:"<" - t:"<"
  s:"<=" - t:"<="
  s:">=" - t:">="
  s:">" - t:">"
}

uses "http://hl7.org/fhir/4.3/StructureDefinition/Quantity" alias QuantityR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Quantity" alias QuantityR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Quantity(source src : QuantityR4B, target tgt : QuantityR5) extends Element <<type+>> {
  src.value -> tgt.value;
  src.comparator as v -> tgt.comparator = translate(v, '#QuantityComparator', 'code');
  src.unit -> tgt.unit;
  src.system -> tgt.system;
  src.code -> tgt.code;
}

FML Conversion for Quantity: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Quantity4to5'
/// name = 'Quantity4to5'
/// title = 'FML Conversion for Quantity: R4 to R5'
/// status = 'active'

conceptmap "QuantityComparator" {
  prefix s = "http://hl7.org/fhir/4.0/quantity-comparator"
  prefix t = "http://hl7.org/fhir/quantity-comparator"

  s:"<" - t:"<"
  s:"<=" - t:"<="
  s:">=" - t:">="
  s:">" - t:">"
}

uses "http://hl7.org/fhir/4.0/StructureDefinition/Quantity" alias QuantityR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Quantity" alias QuantityR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Quantity(source src : QuantityR4, target tgt : QuantityR5) extends Element <<type+>> {
  src.value -> tgt.value;
  src.comparator as v -> tgt.comparator = translate(v, '#QuantityComparator', 'code');
  src.unit -> tgt.unit;
  src.system -> tgt.system;
  src.code -> tgt.code;
}

Money

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Money

FML Conversion for Money: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Money5to4'
/// name = 'Money5to4'
/// title = 'FML Conversion for Money: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Money" alias MoneyR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Money" alias MoneyR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Money(source src : MoneyR5, target tgt : MoneyR4) extends Element <<type+>> {
  src.value -> tgt.value;
  src.currency -> tgt.currency;
}

FML Conversion for Money: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Money5to4B'
/// name = 'Money5to4B'
/// title = 'FML Conversion for Money: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Money" alias MoneyR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Money" alias MoneyR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Money(source src : MoneyR5, target tgt : MoneyR4B) extends Element <<type+>> {
  src.value -> tgt.value;
  src.currency -> tgt.currency;
}

Maps from Money

FML Conversion for Money: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Money4Bto5'
/// name = 'Money4Bto5'
/// title = 'FML Conversion for Money: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/Money" alias MoneyR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Money" alias MoneyR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Money(source src : MoneyR4B, target tgt : MoneyR5) extends Element <<type+>> {
  src.value -> tgt.value;
  src.currency -> tgt.currency;
}

FML Conversion for Money: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Money4to5'
/// name = 'Money4to5'
/// title = 'FML Conversion for Money: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/Money" alias MoneyR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Money" alias MoneyR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Money(source src : MoneyR4, target tgt : MoneyR5) extends Element <<type+>> {
  src.value -> tgt.value;
  src.currency -> tgt.currency;
}

Range

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Range

FML Conversion for Range: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Range5to4'
/// name = 'Range5to4'
/// title = 'FML Conversion for Range: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Range" alias RangeR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Range" alias RangeR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Range(source src : RangeR5, target tgt : RangeR4) extends Element <<type+>> {
  src.low -> tgt.low;
  src.high -> tgt.high;
}

FML Conversion for Range: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Range5to4B'
/// name = 'Range5to4B'
/// title = 'FML Conversion for Range: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Range" alias RangeR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Range" alias RangeR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Range(source src : RangeR5, target tgt : RangeR4B) extends Element <<type+>> {
  src.low -> tgt.low;
  src.high -> tgt.high;
}

Maps from Range

FML Conversion for Range: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Range4Bto5'
/// name = 'Range4Bto5'
/// title = 'FML Conversion for Range: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/Range" alias RangeR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Range" alias RangeR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Range(source src : RangeR4B, target tgt : RangeR5) extends Element <<type+>> {
  src.low -> tgt.low;
  src.high -> tgt.high;
}

FML Conversion for Range: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Range4to5'
/// name = 'Range4to5'
/// title = 'FML Conversion for Range: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/Range" alias RangeR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Range" alias RangeR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Range(source src : RangeR4, target tgt : RangeR5) extends Element <<type+>> {
  src.low -> tgt.low;
  src.high -> tgt.high;
}

Ratio

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Ratio

FML Conversion for Ratio: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Ratio5to4'
/// name = 'Ratio5to4'
/// title = 'FML Conversion for Ratio: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Ratio" alias RatioR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Ratio" alias RatioR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Ratio(source src : RatioR5, target tgt : RatioR4) extends Element <<type+>> {
  src.numerator -> tgt.numerator;
  src.denominator -> tgt.denominator;
}

FML Conversion for Ratio: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Ratio5to4B'
/// name = 'Ratio5to4B'
/// title = 'FML Conversion for Ratio: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Ratio" alias RatioR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Ratio" alias RatioR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Ratio(source src : RatioR5, target tgt : RatioR4B) extends Element <<type+>> {
  src.numerator -> tgt.numerator;
  src.denominator -> tgt.denominator;
}

Maps from Ratio

FML Conversion for Ratio: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Ratio4Bto5'
/// name = 'Ratio4Bto5'
/// title = 'FML Conversion for Ratio: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/Ratio" alias RatioR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Ratio" alias RatioR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Ratio(source src : RatioR4B, target tgt : RatioR5) extends Element <<type+>> {
  src.numerator -> tgt.numerator;
  src.denominator -> tgt.denominator;
}

FML Conversion for Ratio: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Ratio4to5'
/// name = 'Ratio4to5'
/// title = 'FML Conversion for Ratio: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/Ratio" alias RatioR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Ratio" alias RatioR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Ratio(source src : RatioR4, target tgt : RatioR5) extends Element <<type+>> {
  src.numerator -> tgt.numerator;
  src.denominator -> tgt.denominator;
}

RatioRange

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Trial Use

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to RatioRange

FML Conversion for RatioRange: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/RatioRange5to4B'
/// name = 'RatioRange5to4B'
/// title = 'FML Conversion for RatioRange: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/RatioRange" alias RatioRangeR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/RatioRange" alias RatioRangeR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group RatioRange(source src : RatioRangeR5, target tgt : RatioRangeR4B) extends Element <<type+>> {
  src.lowNumerator -> tgt.lowNumerator;
  src.highNumerator -> tgt.highNumerator;
  src.denominator -> tgt.denominator;
}

Maps from RatioRange

FML Conversion for RatioRange: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/RatioRange4Bto5'
/// name = 'RatioRange4Bto5'
/// title = 'FML Conversion for RatioRange: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/RatioRange" alias RatioRangeR4B as source
uses "http://hl7.org/fhir/StructureDefinition/RatioRange" alias RatioRangeR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group RatioRange(source src : RatioRangeR4B, target tgt : RatioRangeR5) extends Element <<type+>> {
  src.lowNumerator -> tgt.lowNumerator;
  src.highNumerator -> tgt.highNumerator;
  src.denominator -> tgt.denominator;
}

Period

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Period

FML Conversion for Period: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Period5to4'
/// name = 'Period5to4'
/// title = 'FML Conversion for Period: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Period" alias PeriodR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Period" alias PeriodR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Period(source src : PeriodR5, target tgt : PeriodR4) extends Element <<type+>> {
  src.start -> tgt.start;
  src.end -> tgt.end;
}

FML Conversion for Period: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Period5to4B'
/// name = 'Period5to4B'
/// title = 'FML Conversion for Period: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Period" alias PeriodR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Period" alias PeriodR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Period(source src : PeriodR5, target tgt : PeriodR4B) extends Element <<type+>> {
  src.start -> tgt.start;
  src.end -> tgt.end;
}

Maps from Period

FML Conversion for Period: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Period4Bto5'
/// name = 'Period4Bto5'
/// title = 'FML Conversion for Period: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/Period" alias PeriodR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Period" alias PeriodR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Period(source src : PeriodR4B, target tgt : PeriodR5) extends Element <<type+>> {
  src.start -> tgt.start;
  src.end -> tgt.end;
}

FML Conversion for Period: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Period4to5'
/// name = 'Period4to5'
/// title = 'FML Conversion for Period: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/Period" alias PeriodR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Period" alias PeriodR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Period(source src : PeriodR4, target tgt : PeriodR5) extends Element <<type+>> {
  src.start -> tgt.start;
  src.end -> tgt.end;
}

SampledData

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Trial Use

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to SampledData

FML Conversion for SampledData: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/SampledData5to4'
/// name = 'SampledData5to4'
/// title = 'FML Conversion for SampledData: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/SampledData" alias SampledDataR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/SampledData" alias SampledDataR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group SampledData(source src : SampledDataR5, target tgt : SampledDataR4) extends Element <<type+>> {
  src.origin -> tgt.origin;
  src.interval where src.intervalUnit = 'ms' -> tgt.period;
  src.factor -> tgt.factor;
  src.lowerLimit -> tgt.lowerLimit;
  src.upperLimit -> tgt.upperLimit;
  src.dimensions -> tgt.dimensions;
  src.data -> tgt.data; // src.codeMap -> tgt.codeMap; - doesn't exist in R4
}

FML Conversion for SampledData: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/SampledData5to4B'
/// name = 'SampledData5to4B'
/// title = 'FML Conversion for SampledData: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/SampledData" alias SampledDataR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/SampledData" alias SampledDataR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group SampledData(source src : SampledDataR5, target tgt : SampledDataR4B) extends Element <<type+>> {
  src.origin -> tgt.origin;
  src.interval where src.intervalUnit = 'ms' -> tgt.period;
  src.factor -> tgt.factor;
  src.lowerLimit -> tgt.lowerLimit;
  src.upperLimit -> tgt.upperLimit;
  src.dimensions -> tgt.dimensions;
  src.data -> tgt.data; // src.codeMap -> tgt.codeMap; - doesn't exist in R4B
}

Maps from SampledData

FML Conversion for SampledData: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/SampledData4Bto5'
/// name = 'SampledData4Bto5'
/// title = 'FML Conversion for SampledData: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/SampledData" alias SampledDataR4B as source
uses "http://hl7.org/fhir/StructureDefinition/SampledData" alias SampledDataR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group SampledData(source src : SampledDataR4B, target tgt : SampledDataR5) extends Element <<type+>> {
  src.origin -> tgt.origin;
  src.period as vs ->  tgt.interval as vt,  tgt.intervalUnit = 'ms';
  src.factor -> tgt.factor;
  src.lowerLimit -> tgt.lowerLimit;
  src.upperLimit -> tgt.upperLimit;
  src.dimensions -> tgt.dimensions;
  src.data -> tgt.data; // src.codeMap -> tgt.codeMap; - doesn't exist in R4B
}

FML Conversion for SampledData: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/SampledData4to5'
/// name = 'SampledData4to5'
/// title = 'FML Conversion for SampledData: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/SampledData" alias SampledDataR4 as source
uses "http://hl7.org/fhir/StructureDefinition/SampledData" alias SampledDataR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group SampledData(source src : SampledDataR4, target tgt : SampledDataR5) extends Element <<type+>> {
  src.origin -> tgt.origin;
  src.period as vs ->  tgt.interval as vt,  tgt.intervalUnit = 'ms';
  src.factor -> tgt.factor;
  src.lowerLimit -> tgt.lowerLimit;
  src.upperLimit -> tgt.upperLimit;
  src.dimensions -> tgt.dimensions;
  src.data -> tgt.data; // src.codeMap -> tgt.codeMap; - doesn't exist in R4
}

Identifier

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Identifier

FML Conversion for Identifier: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Identifier5to4'
/// name = 'Identifier5to4'
/// title = 'FML Conversion for Identifier: R5 to R4'
/// status = 'active'

conceptmap "IdentifierUse" {
  prefix s = "http://hl7.org/fhir/identifier-use"
  prefix t = "http://hl7.org/fhir/4.0/identifier-use"

  s:usual - t:usual
  s:official - t:official
  s:temp - t:temp
  s:secondary - t:secondary
  s:old - t:old
}

uses "http://hl7.org/fhir/StructureDefinition/Identifier" alias IdentifierR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Identifier" alias IdentifierR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Identifier(source src : IdentifierR5, target tgt : IdentifierR4) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#IdentifierUse', 'code');
  src.type -> tgt.type;
  src.system -> tgt.system;
  src.value -> tgt.value;
  src.period -> tgt.period;
  src.assigner -> tgt.assigner;
}

FML Conversion for Identifier: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Identifier5to4B'
/// name = 'Identifier5to4B'
/// title = 'FML Conversion for Identifier: R5 to R4B'
/// status = 'active'

conceptmap "IdentifierUse" {
  prefix s = "http://hl7.org/fhir/identifier-use"
  prefix t = "http://hl7.org/fhir/4.3/identifier-use"

  s:usual - t:usual
  s:official - t:official
  s:temp - t:temp
  s:secondary - t:secondary
  s:old - t:old
}

uses "http://hl7.org/fhir/StructureDefinition/Identifier" alias IdentifierR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Identifier" alias IdentifierR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Identifier(source src : IdentifierR5, target tgt : IdentifierR4B) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#IdentifierUse', 'code');
  src.type -> tgt.type;
  src.system -> tgt.system;
  src.value -> tgt.value;
  src.period -> tgt.period;
  src.assigner -> tgt.assigner;
}

Maps from Identifier

FML Conversion for Identifier: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Identifier4Bto5'
/// name = 'Identifier4Bto5'
/// title = 'FML Conversion for Identifier: R4B to R5'
/// status = 'active'

conceptmap "IdentifierUse" {
  prefix s = "http://hl7.org/fhir/4.3/identifier-use"
  prefix t = "http://hl7.org/fhir/identifier-use"

  s:usual - t:usual
  s:official - t:official
  s:temp - t:temp
  s:secondary - t:secondary
  s:old - t:old
}

uses "http://hl7.org/fhir/4.3/StructureDefinition/Identifier" alias IdentifierR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Identifier" alias IdentifierR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Identifier(source src : IdentifierR4B, target tgt : IdentifierR5) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#IdentifierUse', 'code');
  src.type -> tgt.type;
  src.system -> tgt.system;
  src.value -> tgt.value;
  src.period -> tgt.period;
  src.assigner -> tgt.assigner;
}

FML Conversion for Identifier: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Identifier4to5'
/// name = 'Identifier4to5'
/// title = 'FML Conversion for Identifier: R4 to R5'
/// status = 'active'

conceptmap "IdentifierUse" {
  prefix s = "http://hl7.org/fhir/4.0/identifier-use"
  prefix t = "http://hl7.org/fhir/identifier-use"

  s:usual - t:usual
  s:official - t:official
  s:temp - t:temp
  s:secondary - t:secondary
  s:old - t:old
}

uses "http://hl7.org/fhir/4.0/StructureDefinition/Identifier" alias IdentifierR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Identifier" alias IdentifierR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Identifier(source src : IdentifierR4, target tgt : IdentifierR5) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#IdentifierUse', 'code');
  src.type -> tgt.type;
  src.system -> tgt.system;
  src.value -> tgt.value;
  src.period -> tgt.period;
  src.assigner -> tgt.assigner;
}

HumanName

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to HumanName

FML Conversion for HumanName: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/HumanName5to4'
/// name = 'HumanName5to4'
/// title = 'FML Conversion for HumanName: R5 to R4'
/// status = 'active'

conceptmap "NameUse" {
  prefix s = "http://hl7.org/fhir/name-use"
  prefix t = "http://hl7.org/fhir/4.0/name-use"

  s:usual - t:usual
  s:official - t:official
  s:temp - t:temp
  s:nickname - t:nickname
  s:anonymous - t:anonymous
  s:old - t:old
}

uses "http://hl7.org/fhir/StructureDefinition/HumanName" alias HumanNameR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/HumanName" alias HumanNameR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group HumanName(source src : HumanNameR5, target tgt : HumanNameR4) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#NameUse', 'code');
  src.text -> tgt.text;
  src.family -> tgt.family;
  src.given -> tgt.given;
  src.prefix -> tgt.prefix;
  src.suffix -> tgt.suffix;
  src.period -> tgt.period;
}

FML Conversion for HumanName: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/HumanName5to4B'
/// name = 'HumanName5to4B'
/// title = 'FML Conversion for HumanName: R5 to R4B'
/// status = 'active'

conceptmap "NameUse" {
  prefix s = "http://hl7.org/fhir/name-use"
  prefix t = "http://hl7.org/fhir/4.3/name-use"

  s:usual - t:usual
  s:official - t:official
  s:temp - t:temp
  s:nickname - t:nickname
  s:anonymous - t:anonymous
  s:old - t:old
  s:maiden - t:maiden
}

uses "http://hl7.org/fhir/StructureDefinition/HumanName" alias HumanNameR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/HumanName" alias HumanNameR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group HumanName(source src : HumanNameR5, target tgt : HumanNameR4B) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#NameUse', 'code');
  src.text -> tgt.text;
  src.family -> tgt.family;
  src.given -> tgt.given;
  src.prefix -> tgt.prefix;
  src.suffix -> tgt.suffix;
  src.period -> tgt.period;
}

Maps from HumanName

FML Conversion for HumanName: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/HumanName4Bto5'
/// name = 'HumanName4Bto5'
/// title = 'FML Conversion for HumanName: R4B to R5'
/// status = 'active'

conceptmap "NameUse" {
  prefix s = "http://hl7.org/fhir/4.3/name-use"
  prefix t = "http://hl7.org/fhir/name-use"

  s:usual - t:usual
  s:official - t:official
  s:temp - t:temp
  s:nickname - t:nickname
  s:anonymous - t:anonymous
  s:old - t:old
  s:maiden - t:maiden
}

uses "http://hl7.org/fhir/4.3/StructureDefinition/HumanName" alias HumanNameR4B as source
uses "http://hl7.org/fhir/StructureDefinition/HumanName" alias HumanNameR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group HumanName(source src : HumanNameR4B, target tgt : HumanNameR5) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#NameUse', 'code');
  src.text -> tgt.text;
  src.family -> tgt.family;
  src.given -> tgt.given;
  src.prefix -> tgt.prefix;
  src.suffix -> tgt.suffix;
  src.period -> tgt.period;
}

FML Conversion for HumanName: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/HumanName4to5'
/// name = 'HumanName4to5'
/// title = 'FML Conversion for HumanName: R4 to R5'
/// status = 'active'

conceptmap "NameUse" {
  prefix s = "http://hl7.org/fhir/4.0/name-use"
  prefix t = "http://hl7.org/fhir/name-use"

  s:usual - t:usual
  s:official - t:official
  s:temp - t:temp
  s:nickname - t:nickname
  s:anonymous - t:anonymous
  s:old - t:old
  s:maiden - t:maiden
}

uses "http://hl7.org/fhir/4.0/StructureDefinition/HumanName" alias HumanNameR4 as source
uses "http://hl7.org/fhir/StructureDefinition/HumanName" alias HumanNameR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group HumanName(source src : HumanNameR4, target tgt : HumanNameR5) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#NameUse', 'code');
  src.text -> tgt.text;
  src.family -> tgt.family;
  src.given -> tgt.given;
  src.prefix -> tgt.prefix;
  src.suffix -> tgt.suffix;
  src.period -> tgt.period;
}

Address

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Address

FML Conversion for Address: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Address5to4'
/// name = 'Address5to4'
/// title = 'FML Conversion for Address: R5 to R4'
/// status = 'active'

conceptmap "AddressType" {
  prefix s = "http://hl7.org/fhir/address-type"
  prefix t = "http://hl7.org/fhir/4.0/address-type"

  s:postal - t:postal
  s:physical - t:physical
  s:both - t:both
}

conceptmap "AddressUse" {
  prefix s = "http://hl7.org/fhir/address-use"
  prefix t = "http://hl7.org/fhir/4.0/address-use"

  s:home - t:home
  s:work - t:work
  s:temp - t:temp
  s:old - t:old
  s:billing - t:billing
}

uses "http://hl7.org/fhir/StructureDefinition/Address" alias AddressR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Address" alias AddressR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Address(source src : AddressR5, target tgt : AddressR4) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#AddressUse', 'code');
  src.type as v -> tgt.type = translate(v, '#AddressType', 'code');
  src.text -> tgt.text;
  src.line -> tgt.line;
  src.city -> tgt.city;
  src.district -> tgt.district;
  src.state -> tgt.state;
  src.postalCode -> tgt.postalCode;
  src.country -> tgt.country;
  src.period -> tgt.period;
}

FML Conversion for Address: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Address5to4B'
/// name = 'Address5to4B'
/// title = 'FML Conversion for Address: R5 to R4B'
/// status = 'active'

conceptmap "AddressType" {
  prefix s = "http://hl7.org/fhir/address-type"
  prefix t = "http://hl7.org/fhir/4.3/address-type"

  s:postal - t:postal
  s:physical - t:physical
  s:both - t:both
}

conceptmap "AddressUse" {
  prefix s = "http://hl7.org/fhir/address-use"
  prefix t = "http://hl7.org/fhir/4.3/address-use"

  s:home - t:home
  s:work - t:work
  s:temp - t:temp
  s:old - t:old
  s:billing - t:billing
}

uses "http://hl7.org/fhir/StructureDefinition/Address" alias AddressR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Address" alias AddressR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Address(source src : AddressR5, target tgt : AddressR4B) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#AddressUse', 'code');
  src.type as v -> tgt.type = translate(v, '#AddressType', 'code');
  src.text -> tgt.text;
  src.line -> tgt.line;
  src.city -> tgt.city;
  src.district -> tgt.district;
  src.state -> tgt.state;
  src.postalCode -> tgt.postalCode;
  src.country -> tgt.country;
  src.period -> tgt.period;
}

Maps from Address

FML Conversion for Address: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Address4Bto5'
/// name = 'Address4Bto5'
/// title = 'FML Conversion for Address: R4B to R5'
/// status = 'active'

conceptmap "AddressType" {
  prefix s = "http://hl7.org/fhir/4.3/address-type"
  prefix t = "http://hl7.org/fhir/address-type"

  s:postal - t:postal
  s:physical - t:physical
  s:both - t:both
}

conceptmap "AddressUse" {
  prefix s = "http://hl7.org/fhir/4.3/address-use"
  prefix t = "http://hl7.org/fhir/address-use"

  s:home - t:home
  s:work - t:work
  s:temp - t:temp
  s:old - t:old
  s:billing - t:billing
}

uses "http://hl7.org/fhir/4.3/StructureDefinition/Address" alias AddressR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Address" alias AddressR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Address(source src : AddressR4B, target tgt : AddressR5) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#AddressUse', 'code');
  src.type as v -> tgt.type = translate(v, '#AddressType', 'code');
  src.text -> tgt.text;
  src.line -> tgt.line;
  src.city -> tgt.city;
  src.district -> tgt.district;
  src.state -> tgt.state;
  src.postalCode -> tgt.postalCode;
  src.country -> tgt.country;
  src.period -> tgt.period;
}

FML Conversion for Address: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Address4to5'
/// name = 'Address4to5'
/// title = 'FML Conversion for Address: R4 to R5'
/// status = 'active'

conceptmap "AddressType" {
  prefix s = "http://hl7.org/fhir/4.0/address-type"
  prefix t = "http://hl7.org/fhir/address-type"

  s:postal - t:postal
  s:physical - t:physical
  s:both - t:both
}

conceptmap "AddressUse" {
  prefix s = "http://hl7.org/fhir/4.0/address-use"
  prefix t = "http://hl7.org/fhir/address-use"

  s:home - t:home
  s:work - t:work
  s:temp - t:temp
  s:old - t:old
  s:billing - t:billing
}

uses "http://hl7.org/fhir/4.0/StructureDefinition/Address" alias AddressR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Address" alias AddressR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Address(source src : AddressR4, target tgt : AddressR5) extends Element <<type+>> {
  src.use as v -> tgt.use = translate(v, '#AddressUse', 'code');
  src.type as v -> tgt.type = translate(v, '#AddressType', 'code');
  src.text -> tgt.text;
  src.line -> tgt.line;
  src.city -> tgt.city;
  src.district -> tgt.district;
  src.state -> tgt.state;
  src.postalCode -> tgt.postalCode;
  src.country -> tgt.country;
  src.period -> tgt.period;
}

ContactPoint

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to ContactPoint

FML Conversion for ContactPoint: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/ContactPoint5to4'
/// name = 'ContactPoint5to4'
/// title = 'FML Conversion for ContactPoint: R5 to R4'
/// status = 'active'

conceptmap "ContactPointSystem" {
  prefix s = "http://hl7.org/fhir/contact-point-system"
  prefix t = "http://hl7.org/fhir/4.0/contact-point-system"

  s:phone - t:phone
  s:fax - t:fax
  s:email - t:email
  s:pager - t:pager
  s:url - t:url
  s:sms - t:sms
  s:other - t:other
}

conceptmap "ContactPointUse" {
  prefix s = "http://hl7.org/fhir/contact-point-use"
  prefix t = "http://hl7.org/fhir/4.0/contact-point-use"

  s:home - t:home
  s:work - t:work
  s:temp - t:temp
  s:old - t:old
  s:mobile - t:mobile
}

uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" alias ContactPointR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/ContactPoint" alias ContactPointR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group ContactPoint(source src : ContactPointR5, target tgt : ContactPointR4) extends Element <<type+>> {
  src.system as v -> tgt.system = translate(v, '#ContactPointSystem', 'code');
  src.value -> tgt.value;
  src.use as v -> tgt.use = translate(v, '#ContactPointUse', 'code');
  src.rank -> tgt.rank;
  src.period -> tgt.period;
}

FML Conversion for ContactPoint: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/ContactPoint5to4B'
/// name = 'ContactPoint5to4B'
/// title = 'FML Conversion for ContactPoint: R5 to R4B'
/// status = 'active'

conceptmap "ContactPointSystem" {
  prefix s = "http://hl7.org/fhir/contact-point-system"
  prefix t = "http://hl7.org/fhir/4.3/contact-point-system"

  s:phone - t:phone
  s:fax - t:fax
  s:email - t:email
  s:pager - t:pager
  s:url - t:url
  s:sms - t:sms
  s:other - t:other
}

conceptmap "ContactPointUse" {
  prefix s = "http://hl7.org/fhir/contact-point-use"
  prefix t = "http://hl7.org/fhir/4.3/contact-point-use"

  s:home - t:home
  s:work - t:work
  s:temp - t:temp
  s:old - t:old
  s:mobile - t:mobile
}

uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" alias ContactPointR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/ContactPoint" alias ContactPointR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group ContactPoint(source src : ContactPointR5, target tgt : ContactPointR4B) extends Element <<type+>> {
  src.system as v -> tgt.system = translate(v, '#ContactPointSystem', 'code');
  src.value -> tgt.value;
  src.use as v -> tgt.use = translate(v, '#ContactPointUse', 'code');
  src.rank -> tgt.rank;
  src.period -> tgt.period;
}

Maps from ContactPoint

FML Conversion for ContactPoint: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/ContactPoint4Bto5'
/// name = 'ContactPoint4Bto5'
/// title = 'FML Conversion for ContactPoint: R4B to R5'
/// status = 'active'

conceptmap "ContactPointSystem" {
  prefix s = "http://hl7.org/fhir/4.3/contact-point-system"
  prefix t = "http://hl7.org/fhir/contact-point-system"

  s:phone - t:phone
  s:fax - t:fax
  s:email - t:email
  s:pager - t:pager
  s:url - t:url
  s:sms - t:sms
  s:other - t:other
}

conceptmap "ContactPointUse" {
  prefix s = "http://hl7.org/fhir/4.3/contact-point-use"
  prefix t = "http://hl7.org/fhir/contact-point-use"

  s:home - t:home
  s:work - t:work
  s:temp - t:temp
  s:old - t:old
  s:mobile - t:mobile
}

uses "http://hl7.org/fhir/4.3/StructureDefinition/ContactPoint" alias ContactPointR4B as source
uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" alias ContactPointR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group ContactPoint(source src : ContactPointR4B, target tgt : ContactPointR5) extends Element <<type+>> {
  src.system as v -> tgt.system = translate(v, '#ContactPointSystem', 'code');
  src.value -> tgt.value;
  src.use as v -> tgt.use = translate(v, '#ContactPointUse', 'code');
  src.rank -> tgt.rank;
  src.period -> tgt.period;
}

FML Conversion for ContactPoint: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/ContactPoint4to5'
/// name = 'ContactPoint4to5'
/// title = 'FML Conversion for ContactPoint: R4 to R5'
/// status = 'active'

conceptmap "ContactPointSystem" {
  prefix s = "http://hl7.org/fhir/4.0/contact-point-system"
  prefix t = "http://hl7.org/fhir/contact-point-system"

  s:phone - t:phone
  s:fax - t:fax
  s:email - t:email
  s:pager - t:pager
  s:url - t:url
  s:sms - t:sms
  s:other - t:other
}

conceptmap "ContactPointUse" {
  prefix s = "http://hl7.org/fhir/4.0/contact-point-use"
  prefix t = "http://hl7.org/fhir/contact-point-use"

  s:home - t:home
  s:work - t:work
  s:temp - t:temp
  s:old - t:old
  s:mobile - t:mobile
}

uses "http://hl7.org/fhir/4.0/StructureDefinition/ContactPoint" alias ContactPointR4 as source
uses "http://hl7.org/fhir/StructureDefinition/ContactPoint" alias ContactPointR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group ContactPoint(source src : ContactPointR4, target tgt : ContactPointR5) extends Element <<type+>> {
  src.system as v -> tgt.system = translate(v, '#ContactPointSystem', 'code');
  src.value -> tgt.value;
  src.use as v -> tgt.use = translate(v, '#ContactPointUse', 'code');
  src.rank -> tgt.rank;
  src.period -> tgt.period;
}

Timing

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Timing

FML Conversion for Timing: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Timing5to4'
/// name = 'Timing5to4'
/// title = 'FML Conversion for Timing: R5 to R4'
/// status = 'active'

conceptmap "DayOfWeek" {
  prefix s = "http://hl7.org/fhir/days-of-week"
  prefix t = "http://hl7.org/fhir/4.0/days-of-week"

  s:mon - t:mon
  s:tue - t:tue
  s:wed - t:wed
  s:thu - t:thu
  s:fri - t:fri
  s:sat - t:sat
  s:sun - t:sun
}

uses "http://hl7.org/fhir/StructureDefinition/Timing" alias TimingR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Timing" alias TimingR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Timing(source src : TimingR5, target tgt : TimingR4) extends Element <<type+>> {
  src.modifierExtension -> tgt.modifierExtension;
  src.event -> tgt.event;
  src.repeat as s -> tgt.repeat as t then TimingRepeat(s, t);
  src.code -> tgt.code;
}

group TimingRepeat(source src, target tgt) extends Element {
  src.bounds : Duration -> tgt.bounds;
  src.bounds : Range -> tgt.bounds;
  src.bounds : Period -> tgt.bounds;
  src.count -> tgt.count;
  src.countMax -> tgt.countMax;
  src.duration -> tgt.duration;
  src.durationMax -> tgt.durationMax;
  src.durationUnit -> tgt.durationUnit;
  src.frequency -> tgt.frequency;
  src.frequencyMax -> tgt.frequencyMax;
  src.period -> tgt.period;
  src.periodMax -> tgt.periodMax;
  src.periodUnit -> tgt.periodUnit;
  src.dayOfWeek as v -> tgt.dayOfWeek = translate(v, '#DayOfWeek', 'code');
  src.timeOfDay -> tgt.timeOfDay;
  src.when -> tgt.when;
  src.offset -> tgt.offset;
}

FML Conversion for Timing: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Timing5to4B'
/// name = 'Timing5to4B'
/// title = 'FML Conversion for Timing: R5 to R4B'
/// status = 'active'

conceptmap "DayOfWeek" {
  prefix s = "http://hl7.org/fhir/days-of-week"
  prefix t = "http://hl7.org/fhir/4.3/days-of-week"

  s:mon - t:mon
  s:tue - t:tue
  s:wed - t:wed
  s:thu - t:thu
  s:fri - t:fri
  s:sat - t:sat
  s:sun - t:sun
}

uses "http://hl7.org/fhir/StructureDefinition/Timing" alias TimingR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Timing" alias TimingR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Timing(source src : TimingR5, target tgt : TimingR4B) extends Element <<type+>> {
  src.modifierExtension -> tgt.modifierExtension;
  src.event -> tgt.event;
  src.repeat as s -> tgt.repeat as t then TimingRepeat(s, t);
  src.code -> tgt.code;
}

group TimingRepeat(source src, target tgt) extends Element {
  src.bounds : Duration -> tgt.bounds;
  src.bounds : Range -> tgt.bounds;
  src.bounds : Period -> tgt.bounds;
  src.count -> tgt.count;
  src.countMax -> tgt.countMax;
  src.duration -> tgt.duration;
  src.durationMax -> tgt.durationMax;
  src.durationUnit -> tgt.durationUnit;
  src.frequency -> tgt.frequency;
  src.frequencyMax -> tgt.frequencyMax;
  src.period -> tgt.period;
  src.periodMax -> tgt.periodMax;
  src.periodUnit -> tgt.periodUnit;
  src.dayOfWeek as v -> tgt.dayOfWeek = translate(v, '#DayOfWeek', 'code');
  src.timeOfDay -> tgt.timeOfDay;
  src.when -> tgt.when;
  src.offset -> tgt.offset;
}

Maps from Timing

FML Conversion for Timing: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Timing4Bto5'
/// name = 'Timing4Bto5'
/// title = 'FML Conversion for Timing: R4B to R5'
/// status = 'active'

conceptmap "DayOfWeek" {
  prefix s = "http://hl7.org/fhir/4.3/days-of-week"
  prefix t = "http://hl7.org/fhir/days-of-week"

  s:mon - t:mon
  s:tue - t:tue
  s:wed - t:wed
  s:thu - t:thu
  s:fri - t:fri
  s:sat - t:sat
  s:sun - t:sun
}

uses "http://hl7.org/fhir/4.3/StructureDefinition/Timing" alias TimingR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Timing" alias TimingR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Timing(source src : TimingR4B, target tgt : TimingR5) extends Element <<type+>> {
  src.modifierExtension -> tgt.modifierExtension;
  src.event -> tgt.event;
  src.repeat as s -> tgt.repeat as t then TimingRepeat(s, t);
  src.code -> tgt.code;
}

group TimingRepeat(source src, target tgt) extends Element {
  src.bounds : Duration -> tgt.bounds;
  src.bounds : Range -> tgt.bounds;
  src.bounds : Period -> tgt.bounds;
  src.count -> tgt.count;
  src.countMax -> tgt.countMax;
  src.duration -> tgt.duration;
  src.durationMax -> tgt.durationMax;
  src.durationUnit -> tgt.durationUnit;
  src.frequency -> tgt.frequency;
  src.frequencyMax -> tgt.frequencyMax;
  src.period -> tgt.period;
  src.periodMax -> tgt.periodMax;
  src.periodUnit -> tgt.periodUnit;
  src.dayOfWeek as v -> tgt.dayOfWeek = translate(v, '#DayOfWeek', 'code');
  src.timeOfDay -> tgt.timeOfDay;
  src.when -> tgt.when;
  src.offset -> tgt.offset;
}

FML Conversion for Timing: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Timing4to5'
/// name = 'Timing4to5'
/// title = 'FML Conversion for Timing: R4 to R5'
/// status = 'active'

conceptmap "DayOfWeek" {
  prefix s = "http://hl7.org/fhir/4.0/days-of-week"
  prefix t = "http://hl7.org/fhir/days-of-week"

  s:mon - t:mon
  s:tue - t:tue
  s:wed - t:wed
  s:thu - t:thu
  s:fri - t:fri
  s:sat - t:sat
  s:sun - t:sun
}

uses "http://hl7.org/fhir/4.0/StructureDefinition/Timing" alias TimingR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Timing" alias TimingR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Timing(source src : TimingR4, target tgt : TimingR5) extends Element <<type+>> {
  src.modifierExtension -> tgt.modifierExtension;
  src.event -> tgt.event;
  src.repeat as s -> tgt.repeat as t then TimingRepeat(s, t);
  src.code -> tgt.code;
}

group TimingRepeat(source src, target tgt) extends Element {
  src.bounds : Duration -> tgt.bounds;
  src.bounds : Range -> tgt.bounds;
  src.bounds : Period -> tgt.bounds;
  src.count -> tgt.count;
  src.countMax -> tgt.countMax;
  src.duration -> tgt.duration;
  src.durationMax -> tgt.durationMax;
  src.durationUnit -> tgt.durationUnit;
  src.frequency -> tgt.frequency;
  src.frequencyMax -> tgt.frequencyMax;
  src.period -> tgt.period;
  src.periodMax -> tgt.periodMax;
  src.periodUnit -> tgt.periodUnit;
  src.dayOfWeek as v -> tgt.dayOfWeek = translate(v, '#DayOfWeek', 'code');
  src.timeOfDay -> tgt.timeOfDay;
  src.when -> tgt.when;
  src.offset -> tgt.offset;
}

Signature

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Trial Use

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Signature

FML Conversion for Signature: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Signature5to4'
/// name = 'Signature5to4'
/// title = 'FML Conversion for Signature: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Signature" alias SignatureR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Signature" alias SignatureR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Signature(source src : SignatureR5, target tgt : SignatureR4) extends Element <<type+>> {
  src.type -> tgt.type;
  src.when -> tgt.when;
  src.who -> tgt.who;
  src.onBehalfOf -> tgt.onBehalfOf;
  src.targetFormat -> tgt.targetFormat;
  src.sigFormat -> tgt.sigFormat;
  src.data -> tgt.data;
}

FML Conversion for Signature: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Signature5to4B'
/// name = 'Signature5to4B'
/// title = 'FML Conversion for Signature: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Signature" alias SignatureR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Signature" alias SignatureR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Signature(source src : SignatureR5, target tgt : SignatureR4B) extends Element <<type+>> {
  src.type -> tgt.type;
  src.when -> tgt.when;
  src.who -> tgt.who;
  src.onBehalfOf -> tgt.onBehalfOf;
  src.targetFormat -> tgt.targetFormat;
  src.sigFormat -> tgt.sigFormat;
  src.data -> tgt.data;
}

Maps from Signature

FML Conversion for Signature: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Signature4Bto5'
/// name = 'Signature4Bto5'
/// title = 'FML Conversion for Signature: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/Signature" alias SignatureR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Signature" alias SignatureR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Signature(source src : SignatureR4B, target tgt : SignatureR5) extends Element <<type+>> {
  src.type -> tgt.type;
  src.when -> tgt.when;
  src.who -> tgt.who;
  src.onBehalfOf -> tgt.onBehalfOf;
  src.targetFormat -> tgt.targetFormat;
  src.sigFormat -> tgt.sigFormat;
  src.data -> tgt.data;
}

FML Conversion for Signature: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Signature4to5'
/// name = 'Signature4to5'
/// title = 'FML Conversion for Signature: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/Signature" alias SignatureR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Signature" alias SignatureR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Signature(source src : SignatureR4, target tgt : SignatureR5) extends Element <<type+>> {
  src.type -> tgt.type;
  src.when -> tgt.when;
  src.who -> tgt.who;
  src.onBehalfOf -> tgt.onBehalfOf;
  src.targetFormat -> tgt.targetFormat;
  src.sigFormat -> tgt.sigFormat;
  src.data -> tgt.data;
}

Annotation

FHIR Infrastructure Work GroupMaturity Level: 5Standards Status: Normative

See also Base Definition, Examples, Detailed Descriptions, Mappings, Profiles, Extensions and R4 Conversions

Maps to Annotation

FML Conversion for Annotation: R5 to R4 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Annotation5to4'
/// name = 'Annotation5to4'
/// title = 'FML Conversion for Annotation: R5 to R4'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Annotation" alias AnnotationR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Annotation" alias AnnotationR4 as target
uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as target

imports "http://hl7.org/fhir/StructureMap/*5to4"

group Annotation(source src : AnnotationR5, target tgt : AnnotationR4) extends Element <<type+>> {
  src.author : Reference -> tgt.author;
  src.author : string -> tgt.author;
  src.time -> tgt.time;
  src.text -> tgt.text;
}

group Annotation2string(source src : AnnotationR5, target tgt : stringR4) extends Element <<types>> {
  src.text as v -> tgt.value = v "Annotation2string";
}

FML Conversion for Annotation: R5 to R4B (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Annotation5to4B'
/// name = 'Annotation5to4B'
/// title = 'FML Conversion for Annotation: R5 to R4B'
/// status = 'active'

uses "http://hl7.org/fhir/StructureDefinition/Annotation" alias AnnotationR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Annotation" alias AnnotationR4B as target
uses "http://hl7.org/fhir/4.3/StructureDefinition/string" alias stringR4B as target

imports "http://hl7.org/fhir/StructureMap/*5to4B"

group Annotation(source src : AnnotationR5, target tgt : AnnotationR4B) extends Element <<type+>> {
  src.author : Reference -> tgt.author;
  src.author : string -> tgt.author;
  src.time -> tgt.time;
  src.text -> tgt.text;
}

group Annotation2string(source src : AnnotationR5, target tgt : stringR4B) extends Element <<types>> {
  src.text as v -> tgt.value = v "Annotation2string";
}

Maps from Annotation

FML Conversion for Annotation: R4B to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Annotation4Bto5'
/// name = 'Annotation4Bto5'
/// title = 'FML Conversion for Annotation: R4B to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.3/StructureDefinition/string" alias stringR4B as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/Annotation" alias AnnotationR4B as source
uses "http://hl7.org/fhir/StructureDefinition/Annotation" alias AnnotationR5 as target

imports "http://hl7.org/fhir/StructureMap/*4Bto5"

group Annotation(source src : AnnotationR4B, target tgt : AnnotationR5) extends Element <<type+>> {
  src.author : Reference -> tgt.author;
  src.author : string -> tgt.author;
  src.time -> tgt.time;
  src.text -> tgt.text;
}

group string2Annotation(source src : stringR4B, target tgt : AnnotationR5) extends Element <<types>> {
  src.value as v -> tgt.text = v "string2Annotation";
}

FML Conversion for Annotation: R4 to R5 (Ready for Use/Trial Use)

/// url = 'http://hl7.org/fhir/StructureMap/Annotation4to5'
/// name = 'Annotation4to5'
/// title = 'FML Conversion for Annotation: R4 to R5'
/// status = 'active'

uses "http://hl7.org/fhir/4.0/StructureDefinition/string" alias stringR4 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/Annotation" alias AnnotationR4 as source
uses "http://hl7.org/fhir/StructureDefinition/Annotation" alias AnnotationR5 as target

imports "http://hl7.org/fhir/StructureMap/*4to5"

group Annotation(source src : AnnotationR4, target tgt : AnnotationR5) extends Element <<type+>> {
  src.author : Reference -> tgt.author;
  src.author : string -> tgt.author;
  src.time -> tgt.time;
  src.text -> tgt.text;
}

group string2Annotation(source src : stringR4, target tgt : AnnotationR5) extends Element <<types>> {
  src.value as v -> tgt.text = v "string2Annotation";
}