FHIR Extensions Pack
5.1.0 - 5.1.0 (April 2024) International flag

This page is part of the FHIR Core Extensions Registry (v5.1.0: Release 5.1) based on FHIR (HL7® FHIR® Standard) v5.0.0. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

StructureMap: FML Conversion for primitive datatypes: R5 to R4B

Official URL: http://hl7.org/fhir/StructureMap/Primitives5to4B Version: 5.1.0
Standards status: Trial-use Maturity Level: 1 Computable Name: Primitives5to4B

FMLConversionforprimitivedatatypesR5toR4B

/// 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";
}